Download the PHP package nowo-tech/search-kit-bundle without Composer
On this page you can find all versions of the php package nowo-tech/search-kit-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download nowo-tech/search-kit-bundle
More information about nowo-tech/search-kit-bundle
Files in nowo-tech/search-kit-bundle
Package search-kit-bundle
Short Description Global header search (command palette) for Symfony: a magnifier that stretches into a field, grouped permission-aware results from your own providers, Ctrl/⌘K, keyboard navigation, recents, UX Icons and theme tokens.
License MIT
Homepage https://github.com/nowo-tech/SearchKitBundle
Informations about the package search-kit-bundle
Search Kit Bundle
⭐ Found this useful? Install from Packagist · Give it a star on GitHub so more developers can find it.
Search Kit Bundle — a global header search (command palette) for Symfony: a magnifier that stretches into a field, grouped permission-aware results from your own providers, Ctrl/⌘ K, keyboard navigation, recents, UX Icons and theme tokens.
📋 Compatible with Symfony 7.4+ and 8.0–8.1+ — PHP 8.3+ (Symfony 8.x requires PHP 8.4+).
This bundle is FrankenPHP worker mode friendly. See docs/FRANKENPHP-WORKER-AUDIT.md.
Features
- Header magnifier that stretches into a field in place (no modal), results in a dropdown under it; full-width field and dropdown on phones
- Your groups, your rules: implement
SearchProviderInterfaceonce per group (Projects, Issues, Users, …) — autoconfigured, ordered by priority; the kit never decides what a user may see - Pages group out of the box from DashboardMenuBundle menus (permission-filtered tree, breadcrumbs, deduplicated by URL)
- Scope chip:
SearchScopeResolverInterfacestarts the search inside the current project / team / space; Backspace removes it - Keyboard first: Ctrl/⌘ K anywhere,
/outside fields, ↑ ↓ across groups, Enter, Ctrl/⌘ Enter for a new tab, Esc or a click outside to fold - Accessible: ARIA combobox + listbox,
aria-activedescendant, live result count,prefers-reduced-motion - Recents (per browser,
localStorage, text only — never HTML) and configurable quick actions while the query is empty - Safe rendering: user text is escaped and highlighted with
<mark>through DOM nodes; only same-site paths or http(s) URLs are ever navigated - Debounced, aborted requests; JSON endpoint rate limited per user,
Cache-Control: no-store, private, 429{"error": "rate_limited"} - Optional UiKit integration (REQ-UI-003): with
nowo-tech/ui-kit-bundle^2.2 the widget takes the host classes of the UiKit theme slots and the--nowo-search-*tokens follow the UiKit tokens (templates) - Overridable Twig blocks, theme tokens (
--nowo-search-*, light / dark), Symfony UX Icons with a built-in SVG fallback - Framework-agnostic browser module (auto-mounted IIFE), an optional Stimulus wrapper and
nowo-search:state/nowo-search:navigateevents (morphing icons, Turbo) - FrankenPHP worker mode friendly; 7 locales (en, es, fr, de, it, pt, nl)
Installation
With Symfony Flex, the recipe registers the bundle and creates config/packages/nowo_search_kit.yaml and config/routes/nowo_search_kit.yaml (prefix /search). Without Flex, see docs/INSTALLATION.md.
Quick start
-
Import the routes and publish the assets (
bin/console assets:install): -
Add one provider per group — it returns only what the user may open:
- Render the search in your signed-in header:
Full guide: docs/USAGE.md.
Requirements
- PHP
>=8.3 <8.6(8.3 floor: typed class constants) - Symfony 7.4, 8.0, and 8.1+
- SecurityBundle, TwigBundle, Form, Asset, RateLimiter (installed with the bundle)
- Optional:
symfony/ux-icons(icons from your set; built-in SVG otherwise),nowo-tech/dashboard-menu-bundle(Pages group)
Version information
| Version | PHP | Symfony | Status |
|---|---|---|---|
| 1.x | 8.3 – 8.5 | 7.4, 8.0, 8.1+ | Supported (bug and security fixes) |
Demo
A Symfony 8.1 demo runs on FrankenPHP (worker mode by default); it needs no database:
Sign in as alice (admin) or bob (password password), press Ctrl/⌘ K and type shop, api or doc. See docs/DEMO-FRANKENPHP.md.
Playwright end-to-end tests and the README screenshots (WebP under docs/images/demo/): make -C demo/symfony8 test-e2e
and make -C demo/symfony8 demo-screenshots (see docs/CONTRIBUTING.md).
Documentation
- Installation
- Configuration
- Usage
- Contributing
- Code of Conduct
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
- GitHub Spec Kit
Additional documentation
- Templates (UiKit page contract)
- Architecture
- PSR evaluation
- Coverage policy
- Demo FrankenPHP
- FrankenPHP worker audit
- GitHub CI
- GitHub About
Tests and coverage
- Tests: PHPUnit (unit, integration, functional), Vitest (TypeScript), Playwright (demo e2e)
- PHP: 100%
- TS/JS: 97.57%
- Python: N/A
PHP line coverage: 100% of includable src/ (gate ≥ 99%; strict gate make test-coverage-100). TypeScript coverage is the minimum of statements / branches / functions / lines (REQ-TEST-009): statements, functions and lines 100%, branches 97.57% (defensive fallbacks); Vitest thresholds 100 / 95 (branches), make gate ≥ 90%.
License
MIT © 2026 Héctor Franco Aceituno / Nowo.tech
All versions of search-kit-bundle with dependencies
psr/log Version ^3.0
symfony/asset Version ^7.4 || ^8.0
symfony/config Version ^7.4 || ^8.0
symfony/dependency-injection Version ^7.4 || ^8.0
symfony/form Version ^7.4 || ^8.0
symfony/framework-bundle Version ^7.4 || ^8.0
symfony/http-foundation Version ^7.4 || ^8.0
symfony/http-kernel Version ^7.4 || ^8.0
symfony/options-resolver Version ^7.4 || ^8.0
symfony/rate-limiter Version ^7.4 || ^8.0
symfony/routing Version ^7.4 || ^8.0
symfony/security-bundle Version ^7.4 || ^8.0
symfony/translation Version ^7.4 || ^8.0
symfony/translation-contracts Version ^3.5
symfony/twig-bundle Version ^7.4 || ^8.0
twig/extra-bundle Version ^3.12
twig/string-extra Version ^3.12
twig/twig Version ^3.12