# Dependencies

This framework incorporates a range of software, pre-bundled and ready for immediate use. These tools were directly included and not gotten from CDN for several key reasons:

Why this matters: you get a working UI (Bootstrap, icons, pickers, editors, alerts) and backend exports (Excel, PDF, media, QR) without CDN version drift or offline failures — `php artisan kfw:update` compiles them into one versioned bundle.

- **Customization**: Certain software has been modified and improved to align with the specific needs and objectives of the framework.
- **Offline Accessibility**: The framework is designed to function independently of web or CDN connectivity, ensuring usability in offline environments.
- **Seamless Integration**: Bundling ensures smooth compatibility and interaction with all components of the framework.

By embedding these dependencies, the framework delivers a cohesive and efficient user experience without reliance on external resources.

---
## Included bundles
- [JQuery](https://github.com/jquery/jquery) (3.7.1) — used for DOM helpers and legacy plugin compatibility (e.g. Select2).
- [Bootstrap](https://github.com/twbs/bootstrap) (5.3.3) — used for layout grid, cards, modals, and base styling.
- [FlatPickr](https://github.com/flatpickr/flatpickr) (4.6.13) — used for date/time pickers in form inputs.
- [Material Design Icons](https://fonts.google.com/icons) (7.4.47) — used for `preIcon` / `postIcon` attributes across components.
- [Select2](https://github.com/select2/select2) (4.1.0-rc.0) — used for searchable enhanced selects.
- [SweetAlert 2](https://github.com/sweetalert2/sweetalert2) (11.15.10) — used for confirm dialogs and popup feedback.
- [Trumbowyg](https://github.com/Alex-D/Trumbowyg) (2.31.0) — used for WYSIWYG rich-text areas.

## Included fonts
- [Geist](https://fonts.google.com/specimen/Geist) - default font — used for default UI typeface.
- [Inter](https://fonts.google.com/specimen/Inter) — used for alternative clean UI typeface.
- [OpenSans](https://fonts.google.com/specimen/Open+Sans) — used for highly legible body text option.

## Required PHP extensions
- `gd` — used for image manipulation (profile images, media conversions).
- `exif` — used for reading image orientation/metadata on upload.
- `zlib` — used for compression in exports and asset handling.
- `fileinfo` — used for reading file metadata.

## Required additional composer packages
- `scrivo/highlight.php` — used for server-side code syntax highlighting in CodeView.
- `maatwebsite/excel` — used for Excel import/export in tables/resources.
- `barryvdh/laravel-dompdf` — used for PDF export (e.g. table PDF).
- `spatie/laravel-medialibrary` — used for file/media attachments (e.g. file uploader).
- `simplesoftwareio/simple-qrcode` — used for QRCode component rendering.

