Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
efb9f4e
prepare release
mkocansey Aug 29, 2026
e005176
Merge main back into development after v5.0.0 release
mkocansey Aug 29, 2026
9715093
Fix Data Grid checkbox, search field and layout inconsistencies
mkocansey Aug 30, 2026
09c17c8
Restyle Command Palette to match the docs site's own search design
mkocansey Aug 30, 2026
3bea6d3
Fix select dropdown positioning, trigger background, and label centering
mkocansey Aug 30, 2026
586f512
Add highlight-today attribute to Calendar, default false
mkocansey Aug 30, 2026
f6d6318
Merge Calendar highlight-today attribute
mkocansey Aug 30, 2026
fa04f52
Fix "+N more" hiding every event on collapse, and squashed expanded rows
mkocansey Aug 30, 2026
e67d490
Fix "+N more" needing a scroll to see in the default, collapsed state
mkocansey Aug 30, 2026
8216e21
Fix a stray focus ring on Command Palette's search input
mkocansey Aug 30, 2026
338f201
Merge Command Palette focus-ring fix
mkocansey Aug 30, 2026
23bed8e
Merge Calendar overflow-toggle fixes
mkocansey Aug 30, 2026
5fce05f
Reorder the event details drawer: title, then date, then time (#609)
mkocansey Aug 30, 2026
9ed8d28
Fix/calendar event drawer layout (#610)
mkocansey Aug 31, 2026
1ea265d
Add has-separator and hide-input attributes to the code component
mkocansey Aug 31, 2026
e8ff7f8
Fix drawer auto-focus racing with focus set during the opening frame
mkocansey Aug 31, 2026
4663422
Update README.md (#612)
mkocansey Aug 31, 2026
a6ac498
Fix CI: restore former-name shim, publish code component config, drop…
mkocansey Aug 31, 2026
474161b
Document Calendar, Data Grid, and Command Palette in the README
mkocansey Aug 31, 2026
0e56eaf
Curate component backlog: reject niche candidates, add Livewire check…
mkocansey Sep 1, 2026
75aae0b
Fix Livewire re-render duplication and wire:model compatibility (#632)
mkocansey Sep 1, 2026
2badf43
Reflow README tables and add COMPONENT_AUDIT.md to gitignore
mkocansey Sep 3, 2026
5df20a5
Fix component audit findings: accessibility, wire:model, styling, tests
mkocansey Sep 3, 2026
2f3e1a9
Add Divider / separator component
mkocansey Sep 5, 2026
027a7f0
Add Confirm / alert dialog component
mkocansey Sep 5, 2026
a428e12
Add Context Menu component
mkocansey Sep 5, 2026
a3da48a
Add Currency / money input component
mkocansey Sep 5, 2026
70bc80e
Add Password strength meter component
mkocansey Sep 5, 2026
7c10712
Add Document / file preview component
mkocansey Sep 5, 2026
7956a19
Add Transfer List component
mkocansey Sep 5, 2026
bf81fd6
Add Inline Edit (editable text) component
mkocansey Sep 5, 2026
a109c3e
Add Keyboard Key component
mkocansey Sep 5, 2026
8ab7354
Add Copy to Clipboard Button component
mkocansey Sep 5, 2026
34b089a
Add Meter / gauge component
mkocansey Sep 5, 2026
1cb477c
Add Description List component (#621)
mkocansey Sep 5, 2026
c3a87b4
Add Banner component (#618)
mkocansey Sep 5, 2026
be04f9b
Add Code Block component (#619)
mkocansey Sep 5, 2026
9e00b3d
Add Chat component (#622)
mkocansey Sep 5, 2026
e27383a
Add Carousel component (#617)
mkocansey Sep 5, 2026
b8f809c
Add Kanban component (#624)
mkocansey Sep 5, 2026
7d60115
Add Scheduler component (#625)
mkocansey Sep 5, 2026
091fb5f
Add Credit Card component (#637)
mkocansey Sep 5, 2026
2972073
Add matrix entries for the 19 new leaf packages to split-packages.yml
mkocansey Sep 5, 2026
6b8ca06
Merge feature/divider into development
mkocansey Sep 6, 2026
e54e0e4
Merge feature/confirm-dialog into development
mkocansey Sep 6, 2026
0f38108
Merge feature/context-menu into development
mkocansey Sep 6, 2026
e624ebd
Merge feature/currency-input into development
mkocansey Sep 6, 2026
0099379
Merge feature/password-meter into development
mkocansey Sep 6, 2026
52286d5
Merge feature/file-preview into development
mkocansey Sep 6, 2026
c5255ec
Merge feature/transfer-list into development
mkocansey Sep 6, 2026
7662f96
Merge feature/inline-edit into development
mkocansey Sep 6, 2026
7d8e8ad
Merge feature/kbd into development
mkocansey Sep 6, 2026
e24dd85
Merge feature/copy-button into development
mkocansey Sep 6, 2026
2f7c29d
Merge feature/meter into development
mkocansey Sep 6, 2026
ba4392c
Merge feature/description-list into development
mkocansey Sep 6, 2026
12094ca
Merge feature/banner into development
mkocansey Sep 6, 2026
abc92bb
Merge feature/code-block into development
mkocansey Sep 6, 2026
71cbd30
Merge feature/chat into development
mkocansey Sep 6, 2026
053c9eb
Merge feature/carousel into development
mkocansey Sep 6, 2026
1b7e2fa
Merge feature/kanban into development
mkocansey Sep 6, 2026
f89b9b4
Merge feature/scheduler into development
mkocansey Sep 6, 2026
9d7a299
Remove duplicate bladewindui/scheduler entry in composer.json replace…
mkocansey Sep 6, 2026
38835e3
Merge feature/credit-card into development
mkocansey Sep 6, 2026
358c83b
Merge chore/split-workflow-new-packages into development
mkocansey Sep 6, 2026
52684e1
Mark 18 v5.5.0/v5.6.0 components complete now that they are merged
mkocansey Sep 6, 2026
86a7d76
Default scheduler slot_minutes to 30
mkocansey Sep 6, 2026
d7d8f09
Remove Banner component (duplicated Alert); bump scheduler to 5.0.1
mkocansey Sep 6, 2026
46962e0
Bump all components to 5.1.0
mkocansey Sep 6, 2026
5ac8b0e
Remove Confirm Dialog component; fix mkocansey/bladewind version left…
mkocansey Sep 6, 2026
cf3f1ba
Fix Context Menu and Dropmenu rendering behind later page content
mkocansey Sep 6, 2026
12a7f4e
Fix Copy Button success icon always showing alongside default icon
mkocansey Sep 6, 2026
4b52b18
Match scheduler appointment styling to calendar's timed events
mkocansey Sep 6, 2026
5c6c721
Fix scheduler top hour label overlap and short appointment text clipping
mkocansey Sep 6, 2026
4fc807d
Make scheduler's top and bottom edge gaps consistent
mkocansey Sep 6, 2026
28750fc
Stop inflating short scheduler appointments past their actual duration
mkocansey Sep 6, 2026
523e5a2
Reduce top/bottom padding in code block
mkocansey Sep 6, 2026
4a39c72
Reduce code block vertical padding further to 4px
mkocansey Sep 6, 2026
074449b
Fix line-highlight position and visibility in code block
mkocansey Sep 6, 2026
e537b6a
Fix credit card controls and preserve dynamic gradients
mkocansey Sep 8, 2026
95ec90b
Add target attribute to context menu, fix focus/danger-tone styling, …
mkocansey Sep 8, 2026
243dcd6
fix(modal): restore default Cancel/close button on all modals
mkocansey Sep 9, 2026
868953c
Fix: secondary button style and code block background colour
mkocansey Sep 9, 2026
f7f5f72
Merge remote-tracking branch 'origin/main' into development
mkocansey Sep 9, 2026
d2950c3
Fix CI: currency symbol fallback bypassed by ICU echoing the code bac…
mkocansey Sep 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .github/workflows/split-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,12 @@ jobs:
- { local_path: 'packages/checkcards', split_repository: 'checkcards' }
- { local_path: 'packages/number', split_repository: 'number' }
- { local_path: 'packages/code', split_repository: 'code' }
- { local_path: 'packages/currency-input', split_repository: 'currency-input' }
- { local_path: 'packages/password-meter', split_repository: 'password-meter' }
- { local_path: 'packages/file-preview', split_repository: 'file-preview' }
- { local_path: 'packages/transfer-list', split_repository: 'transfer-list' }
- { local_path: 'packages/inline-edit', split_repository: 'inline-edit' }
- { local_path: 'packages/credit-card', split_repository: 'credit-card' }

# ── Forms aggregate (metapackage) ─────────────────────────────────────
- { local_path: 'packages/forms', split_repository: 'forms' }
Expand All @@ -69,6 +75,16 @@ jobs:
- { local_path: 'packages/popover', split_repository: 'popover' }
- { local_path: 'packages/sortable', split_repository: 'sortable' }
- { local_path: 'packages/calendar', split_repository: 'calendar' }
- { local_path: 'packages/divider', split_repository: 'divider' }
- { local_path: 'packages/code-block', split_repository: 'code-block' }
- { local_path: 'packages/kbd', split_repository: 'kbd' }
- { local_path: 'packages/description-list', split_repository: 'description-list' }
- { local_path: 'packages/chat', split_repository: 'chat' }
- { local_path: 'packages/meter', split_repository: 'meter' }
- { local_path: 'packages/copy-button', split_repository: 'copy-button' }
- { local_path: 'packages/carousel', split_repository: 'carousel' }
- { local_path: 'packages/kanban', split_repository: 'kanban' }
- { local_path: 'packages/scheduler', split_repository: 'scheduler' }

# ── Content aggregate (metapackage) ───────────────────────────────────
- { local_path: 'packages/content', split_repository: 'content' }
Expand All @@ -82,6 +98,7 @@ jobs:
- { local_path: 'packages/dropmenu', split_repository: 'dropmenu' }
- { local_path: 'packages/pagination', split_repository: 'pagination' }
- { local_path: 'packages/theme-switcher',split_repository: 'theme-switcher'}
- { local_path: 'packages/context-menu', split_repository: 'context-menu' }

# ── Navigation aggregate (metapackage) ────────────────────────────────
- { local_path: 'packages/navigation', split_repository: 'navigation' }
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ node_modules
/playwright-report
/tests/E2E/public/*.html
COMPONENT_BACKLOG.md
COMPONENT_AUDIT.md
61 changes: 34 additions & 27 deletions COMPONENT_BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,44 +12,50 @@ Status key: `[ ]` not started · `[~]` in progress · `[x]` complete · `[!]` re
- [x] **Stepper / wizard** (`bladewind-stepper`, Navigation) — Horizontal and vertical steps with complete, current, error, and disabled states; allow clickable and linear workflows.
- [x] **Sidebar navigation** (`bladewind-sidebar`, Navigation): Responsive nested application navigation with sections, icons, active states, badges, collapsible groups, and a mobile drawer mode.
- [x] **Command palette** (`bladewind-command-palette`, Navigation) — Keyboard-first searchable action launcher with grouped actions, shortcuts, empty states, and asynchronous results.
- [ ] **Tree view** (`bladewind-tree`, Content) — Expandable hierarchical data with single/multiple selection, checkboxes, lazy-loaded children, and full keyboard navigation.
- [!] ~~**Tree view** (`bladewind-tree`, Content) — Expandable hierarchical data with single/multiple selection, checkboxes, lazy-loaded children, and full keyboard navigation.~~
- [x] **Data grid / Table v2** (`bladewind-data-grid`, Content) — A higher-level companion to Table with column sorting, filtering, selection, sticky headers, pagination hooks, and server-driven state.
- [x] **Calendar** (`bladewind-calendar`, Content) — Inline month/week calendar for displaying and selecting dates or events, distinct from the input-focused Datepicker.
- [ ] **Context menu** (`bladewind-context-menu`, Navigation) — Pointer and keyboard-triggered action menu with nested items, separators, disabled actions, and viewport-aware placement.
- [ ] **Segmented control** (`bladewind-segmented-control`, Forms) — Compact mutually exclusive choice control with text/icon options and form-compatible values.
- [x] **Context menu** (`bladewind-context-menu`, Navigation) — Pointer and keyboard-triggered action menu with nested items, separators, disabled actions, and viewport-aware placement.
- [!] ~~**Segmented control** (`bladewind-segmented-control`, Forms) — Compact mutually exclusive choice control with text/icon options and form-compatible values.~~
- [x] **Divider / separator** (`bladewind-divider`, Content) — Horizontal or vertical rule with optional centered label, spacing variants, and decorative/semantic modes.
- [!] ~~**Confirm / alert dialog** (`bladewind-confirm-dialog`, Content) — Purpose-built confirmation modal for destructive or consequential actions, with async pending state and cancel/confirm actions, distinct from the generic Modal.~~ Removed.

## Priority 2: forms and data entry

- [ ] **Fieldset / form section** (`bladewind-fieldset`, Forms) — Accessible grouping with legend, description, required/optional state, validation summary, and collapsible sections.
- [ ] **Masked input** (`bladewind-masked-input`, Forms) — Formatting and validation for phone numbers, currency, percentages, account numbers, and custom masks.
- [ ] **Cascader** (`bladewind-cascader`, Forms) — Hierarchical selection for country/region, categories, and organisational structures with searchable levels.
- [ ] **Transfer list** (`bladewind-transfer-list`, Forms) — Move one or many options between available and selected lists with search and select-all controls.
- [ ] **Mention input** (`bladewind-mention`, Forms) — Textarea-like input with `@`/`#` suggestions, keyboard selection, custom result rendering, and serialisable values.
- [ ] **Rich text editor** (`bladewind-editor`, Forms) — Opinionated, accessible editor with a deliberately small toolbar, sanitisation guidance, and pluggable upload handling.
- [ ] **Signature pad** (`bladewind-signature`, Forms) — Draw, clear, undo, and export a signature with touch/pointer support and a hidden form value.
- [ ] **Image cropper** (`bladewind-image-cropper`, Forms) — Preview, zoom, rotate, crop, and export an uploaded image; suitable for avatars and document capture.
- [ ] **Editable text** (`bladewind-inline-edit`, Forms) — Display-to-input editing with save, cancel, validation, loading, and optimistic-update hooks.
- [!] ~~**Fieldset / form section** (`bladewind-fieldset`, Forms) — Accessible grouping with legend, description, required/optional state, validation summary, and collapsible sections.~~
- [!] ~~**Masked input** (`bladewind-masked-input`, Forms) — Formatting and validation for phone numbers, currency, percentages, account numbers, and custom masks.~~
- [!] ~~**Cascader** (`bladewind-cascader`, Forms) — Hierarchical selection for country/region, categories, and organisational structures with searchable levels.~~
- [x] **Transfer list** (`bladewind-transfer-list`, Forms) — Move one or many options between available and selected lists with search and select-all controls.
- [!] ~~**Mention input** (`bladewind-mention`, Forms) — Textarea-like input with `@`/`#` suggestions, keyboard selection, custom result rendering, and serialisable values.~~
- [!] ~~**Rich text editor** (`bladewind-editor`, Forms) — Opinionated, accessible editor with a deliberately small toolbar, sanitisation guidance, and pluggable upload handling.~~
- [!] ~~**Signature pad** (`bladewind-signature`, Forms) — Draw, clear, undo, and export a signature with touch/pointer support and a hidden form value.~~
- [!] ~~**Image cropper** (`bladewind-image-cropper`, Forms) — Preview, zoom, rotate, crop, and export an uploaded image; suitable for avatars and document capture.~~
- [x] **Editable text** (`bladewind-inline-edit`, Forms) — Display-to-input editing with save, cancel, validation, loading, and optimistic-update hooks.
- [x] **Password strength meter** (`bladewind-password-meter`, Forms) — Rules-based strength scoring and visual feedback for password fields, distinct from the generic Meter/gauge.
- [x] **Currency / money input** (`bladewind-currency-input`, Forms) — Locale-aware currency formatting, symbol placement, and cents handling on top of the generic Number input.
- [x] **Document / file preview** (`bladewind-file-preview`, Forms) — Read-only preview of an uploaded file (thumbnail, filename, size, download/remove actions) as the display counterpart to Filepicker.

## Priority 3: content and feedback

- [ ] **Carousel** (`bladewind-carousel`, Content) — Responsive content/media slides with arrows, indicators, autoplay opt-in, swipe support, and reduced-motion handling.
- [ ] **Lightbox / gallery** (`bladewind-gallery`, Content) — Thumbnail grid with full-screen preview, captions, keyboard navigation, zoom, and lazy loading.
- [ ] **Guided tour / spotlight** (`bladewind-tour`, Content) — Anchored product walkthroughs with progress, skip/back controls, placement fallback, and persisted completion hooks.
- [ ] **Split button** (`bladewind-split-button`, Content) — Primary action plus related action menu with loading, disabled, and destructive variants.
- [ ] **Floating action button / speed dial** (`bladewind-speed-dial`, Content) — Fixed primary action that expands into labelled secondary actions with safe mobile positioning.
- [ ] **Banner** (`bladewind-banner`, Content) — Page-level or global announcement bar with tone, icon, actions, dismissibility, and optional persistence.
- [ ] **Code block** (`bladewind-code-block`, Content) — Syntax-highlighted code display with language label, line numbers/highlights, wrapping, and copy action; separate from the OTP Code component.
- [ ] **Keyboard key** (`bladewind-kbd`, Content) — Small semantic key/shortcut display for help text, menus, and command documentation.
- [ ] **Description list** (`bladewind-description-list`, Content) — Responsive label/value presentation for profiles, summaries, and record detail pages with action slots.
- [ ] **Chat / message thread** (`bladewind-chat`, Content) — Message bubbles, sender/avatar metadata, timestamps, delivery states, attachments, and grouped messages.
- [ ] **Meter / gauge** (`bladewind-meter`, Content) — Bounded value visualisation with thresholds and semantic low/medium/high states, distinct from progress completion.
- [x] **Carousel** (`bladewind-carousel`, Content) — Responsive content/media slides with arrows, indicators, autoplay opt-in, swipe support, and reduced-motion handling.
- [!] ~~**Lightbox / gallery** (`bladewind-gallery`, Content) — Thumbnail grid with full-screen preview, captions, keyboard navigation, zoom, and lazy loading.~~
- [!] ~~**Guided tour / spotlight** (`bladewind-tour`, Content) — Anchored product walkthroughs with progress, skip/back controls, placement fallback, and persisted completion hooks.~~
- [!] ~~**Split button** (`bladewind-split-button`, Content) — Primary action plus related action menu with loading, disabled, and destructive variants.~~
- [!] ~~**Floating action button / speed dial** (`bladewind-speed-dial`, Content) — Fixed primary action that expands into labelled secondary actions with safe mobile positioning.~~
- [!] ~~**Banner** (`bladewind-banner`, Content) — Page-level or global announcement bar with tone, icon, actions, dismissibility, and optional persistence.~~ Removed: duplicated Alert.
- [x] **Code block** (`bladewind-code-block`, Content) — Syntax-highlighted code display with language label, line numbers/highlights, wrapping, and copy action; separate from the OTP Code component.
- [x] **Keyboard key** (`bladewind-kbd`, Content) — Small semantic key/shortcut display for help text, menus, and command documentation.
- [x] **Description list** (`bladewind-description-list`, Content) — Responsive label/value presentation for profiles, summaries, and record detail pages with action slots.
- [x] **Chat / message thread** (`bladewind-chat`, Content) — Message bubbles, sender/avatar metadata, timestamps, delivery states, attachments, and grouped messages.
- [x] **Meter / gauge** (`bladewind-meter`, Content) — Bounded value visualisation with thresholds and semantic low/medium/high states, distinct from progress completion.
- [x] **Copy to clipboard button** (`bladewind-copy-button`, Content) — Copies a value or slot content to the clipboard with success/failure feedback and icon-only or labelled variants.

## Priority 4: specialised application widgets

- [ ] **Kanban board** (`bladewind-kanban`, Content) — Columns and draggable cards with empty/loading states, movement hooks, and keyboard-accessible reordering.
- [ ] **Scheduler** (`bladewind-scheduler`, Content) — Day/week resource schedule with time slots, event rendering, selection hooks, and timezone-aware values.
- [ ] **Gantt chart** (`bladewind-gantt`, Content) — Project timeline with dependencies, milestones, zoom levels, progress, and horizontal virtualisation.
- [ ] **Organisation chart** (`bladewind-org-chart`, Content) — Expandable reporting hierarchy with custom node slots, pan/zoom, and accessible list fallback.
- [x] **Kanban board** (`bladewind-kanban`, Content) — Columns and draggable cards with empty/loading states, movement hooks, and keyboard-accessible reordering.
- [x] **Scheduler** (`bladewind-scheduler`, Content) — Day/week resource schedule with time slots, event rendering, selection hooks, and timezone-aware values.
- [!] ~~**Gantt chart** (`bladewind-gantt`, Content) — Project timeline with dependencies, milestones, zoom levels, progress, and horizontal virtualisation.~~
- [!] ~~**Organisation chart** (`bladewind-org-chart`, Content) — Expandable reporting hierarchy with custom node slots, pan/zoom, and accessible list fallback.~~

## Deliberate non-duplicates

Expand All @@ -74,6 +80,7 @@ A component can be marked complete above only when all applicable items below ar
- [ ] Every `config('bladewind.*')` key the component's view reads is also present in `packages/meta/config/bladewind.php`, with a matching default. See "Config surface" below.
- [ ] The relevant group metapackage and root package dependencies/autoloading are updated.
- [ ] Light mode, dark mode, responsive layout, RTL, disabled/loading/error states, and reduced motion are handled where relevant.
- [ ] Livewire compatibility is considered: stateful JS-heavy components document a `wire:ignore` requirement so a Livewire re-render doesn't clobber client-side state, and form-bindable components fire native `input`/`change` events so `wire:model` picks up value changes.
- [ ] Keyboard interaction, focus management, semantic markup, ARIA labelling, and screen-reader announcements are verified.
- [ ] Unit/render tests and focused browser tests cover the component's important states and interactions.
- [ ] Package README, website documentation, examples, prop tables, and upgrade notes are complete.
Expand Down
Loading
Loading