Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
298 commits
Select commit Hold shift + click to select a range
95bf7d7
docs: update changelog for 2026-04-03
mathewtaylor Apr 3, 2026
b45fadc
feat: add FilterFunction and SearchQueryChanged to BbCommandDialog AP…
mathewtaylor Apr 3, 2026
07afb5c
Merge pull request #289 from blazorblueprintui/develop
mathewtaylor Apr 3, 2026
9982377
Update README with out of box working missing code
mxmissile Apr 3, 2026
790100e
Merge pull request #290 from mxmissile/patch-1
mathewtaylor Apr 6, 2026
55ef586
feat: add BbComboboxGroup for grouped combobox items (#291)
mathewtaylor Apr 7, 2026
788fe21
docs: release notes for Components v3.9.5
mathewtaylor Apr 7, 2026
b16dae6
docs: add code example source files for grouped combobox demos
mathewtaylor Apr 7, 2026
a716ef6
Merge pull request #292 from blazorblueprintui/develop
mathewtaylor Apr 7, 2026
e69add4
fix: BbFormFieldCombobox search filter bypassed when wrapper is used …
mathewtaylor Apr 10, 2026
6009f75
Merge pull request #297 from blazorblueprintui/fix/296-combobox-searc…
mathewtaylor Apr 10, 2026
52a5266
docs: release notes for Components v3.9.6
mathewtaylor Apr 10, 2026
238a56d
Merge pull request #298 from blazorblueprintui/develop
mathewtaylor Apr 10, 2026
754f952
fix: update source property from Avatar component
alanlecart Apr 16, 2026
2c80efa
fix: BbTabs now forwards AdditionalAttributes to primitive root (#293)
mathewtaylor Apr 18, 2026
462a567
Merge pull request #303 from blazorblueprintui/fix/293-bbtabs-additio…
mathewtaylor Apr 18, 2026
27e3f97
Merge pull request #302 from alanlecart/main
mathewtaylor Apr 18, 2026
935d16d
fix(BbFilterBuilder): wrap condition rows on small screens (#311)
mathewtaylor May 2, 2026
4ee59a1
fix(BbDataTable): remove Phase 2 column-filter placeholder (#309)
mathewtaylor May 2, 2026
f5b52f2
feat(css): wrap component CSS in @layer bb cascade layer
mathewtaylor May 2, 2026
09f3fac
Merge pull request #312 from blazorblueprintui/fix/css-cascade-and-da…
mathewtaylor May 2, 2026
417f8be
chore: bump BlazorBlueprint.Primitives to 3.10.0
mathewtaylor May 2, 2026
5f7ce3d
docs: release notes for Components v3.10.0
mathewtaylor May 2, 2026
72c69f2
Merge pull request #313 from blazorblueprintui/develop
mathewtaylor May 3, 2026
a4ad348
chore: cross-platform build fixes for macOS / .NET 8 SDK
mathewtaylor May 14, 2026
c82039e
fix(css): scope @layer bb to authored CSS only (#318)
mathewtaylor May 14, 2026
c802590
test: exclude Razor _Imports compile-types from API surface snapshot
mathewtaylor May 14, 2026
ed54468
chore: bump BlazorBlueprint.Primitives to 3.10.1
mathewtaylor May 14, 2026
c01ace3
docs: release notes for Components v3.10.1
mathewtaylor May 14, 2026
753a2af
fix(toast): stop empty toast container from blocking clicks (#316)
mathewtaylor May 14, 2026
cb49781
Merge pull request #322 from blazorblueprintui/fix/316-toast-containe…
mathewtaylor May 14, 2026
f161d49
Merge pull request #321 from blazorblueprintui/develop
mathewtaylor May 14, 2026
daa7193
feat(filterbuilder): localize WHERE, AND/OR, and operator labels (#319)
mathewtaylor May 14, 2026
08c035a
Merge pull request #323 from blazorblueprintui/fix/319-filter-builder…
mathewtaylor May 14, 2026
a0d829c
fix(gitignore): add .vscode-ai-images to ignore list
mathewtaylor May 14, 2026
f5f74f1
docs: release notes for Primitives v3.10.2
mathewtaylor May 14, 2026
4d1f57f
chore: bump BlazorBlueprint.Primitives to 3.10.2
mathewtaylor May 14, 2026
30c9171
docs: release notes for Components v3.10.2
mathewtaylor May 14, 2026
24d72d5
Merge pull request #324 from blazorblueprintui/develop
mathewtaylor May 14, 2026
6841e58
docs: update CHANGELOG for changes since 2026-04-07
mathewtaylor May 14, 2026
1c6e2c1
Merge remote-tracking branch 'origin/main' into develop
mathewtaylor May 14, 2026
0f3bd40
Merge pull request #325 from blazorblueprintui/develop
mathewtaylor May 14, 2026
06e1e92
fix: keep spinners animating under bb-no-animate (#330)
mathewtaylor May 21, 2026
4880100
Merge pull request #334 from blazorblueprintui/fix/no-animate-preserv…
mathewtaylor May 21, 2026
4aec88a
fix: set data-active on sidebar menu links during navigation
mathewtaylor May 21, 2026
5932b50
docs: update CHANGELOG for #331 sidebar data-active fix
mathewtaylor May 21, 2026
0919d26
Merge pull request #335 from blazorblueprintui/fix/sidebar-data-activ…
mathewtaylor May 21, 2026
e2733e3
Added ItemsProvider to BbDataView. Added example in demo page. (#306)
djb-fnz May 27, 2026
e52ab9d
Add Font Awesome Icon Pack (#333)
djb-fnz May 28, 2026
bea77ae
fix(combobox): resolve trigger display text for pre-bound values in c…
mathewtaylor Jun 6, 2026
7cb4730
fix(primitives): restore focus to trigger on intentional overlay clos…
mathewtaylor Jun 6, 2026
58a06fc
chore: update .gitignore and changelog for recent changes
mathewtaylor Jun 6, 2026
bc1e412
fix(primitives): reference-count body scroll lock so nested overlays …
mathewtaylor Jun 6, 2026
6e299a8
fix(combobox): show selected label for pre-bound values in compositio…
mathewtaylor Jun 6, 2026
cfd52d3
docs: add render modes & interactive layouts guide (#339) (#344)
mathewtaylor Jun 6, 2026
cc90f4e
feat(command): add ItemsProvider for server-side lazy loading in BbCo…
mathewtaylor Jun 6, 2026
d9eb8c1
feat(datagrid): CellClass/HeaderClass on BbDataGridSelectColumn (#332…
mathewtaylor Jun 6, 2026
53b4aaa
fix(combobox,multiselect): restore focus to trigger on close so Tab c…
mathewtaylor Jun 8, 2026
13ab0e5
docs: update CHANGELOG for unreleased fixes/features; add PR-comment …
mathewtaylor Jun 8, 2026
e2039fc
fix(collapsible,dropdown-menu): Space/Enter no longer double-toggles …
mathewtaylor Jun 8, 2026
6c9eea8
docs: add #350 (Space/Enter trigger double-toggle fix) to CHANGELOG
mathewtaylor Jun 8, 2026
1716e90
docs: release notes for Primitives v3.11.0
mathewtaylor Jun 8, 2026
27dc149
chore: bump BlazorBlueprint.Primitives to 3.11.0
mathewtaylor Jun 8, 2026
659bfbe
docs: release notes for Components v3.11.0
mathewtaylor Jun 8, 2026
f9d8554
Initial implementation.
djb-fnz Jun 10, 2026
6f0b543
release: Primitives v3.11.0 + Components v3.11.0 (#351)
mathewtaylor Jun 10, 2026
f7f7b18
Added pinned tab support and changed maximize icon.
djb-fnz Jun 10, 2026
9b61182
Added horizontal resizable support for vertically stacked dock panels.
djb-fnz Jun 11, 2026
dacfcf6
Added support for hiding tabs that don't fit into the tab strip when …
djb-fnz Jun 11, 2026
dc224f0
Swapped svg elements to Lucide icons.
djb-fnz Jun 11, 2026
ed8f493
Merge branch 'develop' into feat/dock-component
djb-fnz Jun 12, 2026
3696dce
Added context menu icons ,'Close All But Pinned' option and fix in 'C…
djb-fnz Jun 13, 2026
de7fb39
No border radius and no drag handle for floating panels.
djb-fnz Jun 13, 2026
916de06
Added button titles for better accessibility.
djb-fnz Jun 13, 2026
c5d3322
Pinned tabs retain existing tab icon. Close button always visible.
djb-fnz Jun 13, 2026
0fd00d8
Added dock demo card in components index. Re-ordered dropdown menu an…
djb-fnz Jun 13, 2026
f9b9514
Added support for localization in docking components.
djb-fnz Jun 13, 2026
0bcac3c
Added panel constraints (min/max width, min/max height, locked).
djb-fnz Jun 13, 2026
0c9f692
feat(theme-switcher): add Variant parameter to BbThemeSwitcher (#363)
mathewtaylor Jun 14, 2026
7e7b822
fix(input-otp): fire OnComplete when entering the OTP manually (#362)
mathewtaylor Jun 14, 2026
c3edf93
feat(BbAccordionTrigger): allow custom icon. (#347)
djb-fnz Jun 14, 2026
2306cef
fix(dialog): honor ShowClose on programmatically opened dialogs (#364)
mathewtaylor Jun 14, 2026
e946ffc
fix(sidebar): let explicit IsActive override auto location matching (…
mathewtaylor Jun 14, 2026
0a45312
feat(select-family): align trigger heights to h-10 and add MultiSelec…
mathewtaylor Jun 14, 2026
9a80d43
feat(datagrid): add SelectAllScope and make "select all on this page"…
mathewtaylor Jun 14, 2026
2d7a91f
docs: update CHANGELOG for 2026-06-14 changes
mathewtaylor Jun 14, 2026
749ba8e
chore: bump BlazorBlueprint.Primitives to 3.12.0
mathewtaylor Jun 14, 2026
74d72b8
docs: release notes for Components v3.12.0
mathewtaylor Jun 14, 2026
6b12f23
Merge branch 'main' into develop
mathewtaylor Jun 14, 2026
973ef94
Merge pull request #368 from blazorblueprintui/develop
mathewtaylor Jun 14, 2026
e864365
feat(calendar): make outside-month days clickable
mathewtaylor Jun 17, 2026
ca4de17
feat(calendar): focus active day so keyboard nav works on open
mathewtaylor Jun 17, 2026
2f40351
docs: changelog for calendar outside-day selection and keyboard focus
mathewtaylor Jun 17, 2026
235c07b
Merge pull request #370 from blazorblueprintui/feat/calendar-outside-…
mathewtaylor Jun 17, 2026
c02bd5d
docs: release notes for Components v3.12.1
mathewtaylor Jun 17, 2026
98fa324
Merge pull request #372 from blazorblueprintui/develop
mathewtaylor Jun 17, 2026
d2a8859
feat: add BbCopyText component
garrenf Jun 23, 2026
ac90247
fix(copy-text): remove redundant code
garrenf Jun 25, 2026
1572faa
fix(copy-text): added Copy Text to the components page
garrenf Jun 25, 2026
40f6d23
feat(Attachment): Added attachments components
HugoVG Jun 27, 2026
014dd0b
feat: Add sidebar items for components
HugoVG Jun 27, 2026
1ad589f
fix(floating): render portal position with invariant culture
mathewtaylor Jul 2, 2026
3f33926
Merge pull request #382 from blazorblueprintui/fix/floating-portal-in…
mathewtaylor Jul 2, 2026
e88a485
Merge remote-tracking branch 'origin/develop' into pr-377-copytext
mathewtaylor Jul 2, 2026
1dea3b6
Merge remote-tracking branch 'origin/develop' into pr-358-dock
mathewtaylor Jul 2, 2026
7a98d60
Merge remote-tracking branch 'origin/develop' into pr-244-daterange
mathewtaylor Jul 2, 2026
23bbcfb
Merge remote-tracking branch 'origin/develop' into pr-380-shadcn
mathewtaylor Jul 2, 2026
25ce9a5
fix(copy-text): keyboard activation, a11y, demo docs, and polish
mathewtaylor Jul 2, 2026
94848ac
feat(datagrid): add CellClassFunc for conditional per-cell styling
mathewtaylor Jul 2, 2026
338fb36
Merge pull request #383 from blazorblueprintui/feat/datagrid-cell-cla…
mathewtaylor Jul 2, 2026
30d62f7
feat(BbDateRangePicker): rename DisplayButtons to ShowButtons, auto-a…
mathewtaylor Jul 2, 2026
21eb702
fix: swallow JSException on JS-interop dispose paths for WebView2 rel…
mathewtaylor Jul 2, 2026
1cea899
Merge pull request #377 from garrenf/feature/copy-text
mathewtaylor Jul 2, 2026
c165f3f
Merge pull request #244 from Yoannnn/develop
mathewtaylor Jul 2, 2026
707870e
Merge pull request #384 from blazorblueprintui/fix/webview2-jsexcepti…
mathewtaylor Jul 2, 2026
356bf9f
fix(dock): address review feedback on drag sessions, theming and a11y
mathewtaylor Jul 2, 2026
a26afdf
Merge pull request #358 from djb-fnz/feat/dock-component
mathewtaylor Jul 2, 2026
ebd870c
feat(inputs): expose Element and FocusAsync on input components
mathewtaylor Jul 2, 2026
7fba886
Merge pull request #385 from blazorblueprintui/feat/input-focus-async
mathewtaylor Jul 2, 2026
14581f2
refactor(chat): review fixes for Attachment, Bubble, Message, Marker
mathewtaylor Jul 2, 2026
aa59eaf
fix(sidebar): fire OnClick when menu button renders as anchor
mathewtaylor Jul 2, 2026
38f022f
Merge pull request #386 from blazorblueprintui/fix/sidebar-menu-butto…
mathewtaylor Jul 2, 2026
9a0c465
Merge pull request #380 from HugoVG/feature/message
mathewtaylor Jul 2, 2026
b32543e
feat(calendar): per-day customization via DayTemplate and DayClassFunc
mathewtaylor Jul 2, 2026
4f08dd2
fix(forms): emit full model path in name attributes for SSR form posts
mathewtaylor Jul 2, 2026
4311544
Merge pull request #388 from blazorblueprintui/fix/ssr-form-field-names
mathewtaylor Jul 2, 2026
083052f
Merge pull request #387 from blazorblueprintui/feat/calendar-day-cust…
mathewtaylor Jul 2, 2026
b03e777
feat(theme-switcher): independent base and primary color selection
mathewtaylor Jul 2, 2026
e829708
fix(popover): apply pointer-events guard to AsChild triggers
mathewtaylor Jul 2, 2026
fa8f999
Merge pull request #389 from blazorblueprintui/fix/popover-aschild-po…
mathewtaylor Jul 2, 2026
ddc4e9c
Merge pull request #390 from blazorblueprintui/feat/theme-switcher-sp…
mathewtaylor Jul 2, 2026
1a470b9
feat(datetime-picker): add BbDateTimePicker and BbFormFieldDateTimePi…
mathewtaylor Jul 2, 2026
0fdf7d2
Merge pull request #391 from blazorblueprintui/feat/datetime-picker
mathewtaylor Jul 2, 2026
2b52bc8
feat(event-calendar): add BbEventCalendar with month, week, and agend…
mathewtaylor Jul 2, 2026
f73f23e
Merge remote-tracking branch 'origin/develop' into feat/event-calendar
mathewtaylor Jul 2, 2026
42a4929
Merge pull request #392 from blazorblueprintui/feat/event-calendar
mathewtaylor Jul 2, 2026
07a8f28
docs: changelog for 2026-07-02 component and fix batch
mathewtaylor Jul 2, 2026
b02f306
Merge pull request #393 from blazorblueprintui/docs/changelog-2026-07-02
mathewtaylor Jul 2, 2026
55c122b
feat(date-picker): manual date entry via Editable and InputFormats
mathewtaylor Jul 2, 2026
96ecd68
Merge pull request #394 from blazorblueprintui/feat/datepicker-manual…
mathewtaylor Jul 2, 2026
1f8feeb
docs: refresh README component catalog and remove stray image
mathewtaylor Jul 2, 2026
2bc5787
Merge pull request #395 from blazorblueprintui/docs/readme-refresh-an…
mathewtaylor Jul 2, 2026
489f772
docs: correct component count to 112 and add Dark Mode Toggle
mathewtaylor Jul 2, 2026
ab9faf1
docs: release notes for Primitives v3.13.0
mathewtaylor Jul 2, 2026
d5adae2
chore: bump BlazorBlueprint.Primitives to 3.13.0
mathewtaylor Jul 2, 2026
c355e10
docs: release notes for Components v3.13.0
mathewtaylor Jul 2, 2026
f84922c
Merge pull request #396 from blazorblueprintui/develop
mathewtaylor Jul 2, 2026
c5586b5
feat(sidebar): add EnableToggleShortcut to BbSidebarProvider
mathewtaylor Jul 15, 2026
969605b
chore(demo): remove dead sidebar JS files
mathewtaylor Jul 15, 2026
105b799
Merge pull request #403 from blazorblueprintui/feat/sidebar-toggle-sh…
mathewtaylor Jul 15, 2026
ecbb3f1
chore(ci): auto-remove "working on it" label when an issue closes
mathewtaylor Jul 15, 2026
7f0e94f
Merge pull request #405 from blazorblueprintui/chore/auto-remove-work…
mathewtaylor Jul 15, 2026
2d25367
refactor: allow ability to set the Id of the file input in FileUpload
HugoVG Jul 15, 2026
314b508
fix(css): restore border colour utilities defeated by bb layer (#398)
mathewtaylor Jul 15, 2026
c014003
Merge pull request #407 from blazorblueprintui/fix/398-alert-variant-…
mathewtaylor Jul 15, 2026
14d46e7
fix(theme): restore theme when Blazor re-merges the document (#400)
mathewtaylor Jul 15, 2026
0cd8661
Merge pull request #408 from blazorblueprintui/fix/400-hot-reload-the…
mathewtaylor Jul 15, 2026
fecbdf5
docs(release): document Font Awesome and correct the release guide (#…
mathewtaylor Jul 15, 2026
bec13a6
Merge pull request #409 from blazorblueprintui/fix/401-fontawesome-nu…
mathewtaylor Jul 15, 2026
5182df5
Merge pull request #410 from blazorblueprintui/develop
mathewtaylor Jul 15, 2026
7f6940e
feat(datagrid): runtime grouping, RefreshDataAsync, and live collecti…
mathewtaylor Jul 15, 2026
b3b6908
docs(changelog): add 2026-07-15 DataGrid grouping and refresh entry (…
mathewtaylor Jul 15, 2026
e7f4d67
docs(demo): show descending group ordering in the interactive groupin…
mathewtaylor Jul 15, 2026
d544a86
Merge pull request #411 from blazorblueprintui/feat/402-datagrid-grou…
mathewtaylor Jul 15, 2026
6b2df64
review: align file input id with the library's Id convention, add demo
mathewtaylor Jul 15, 2026
7dc5d65
docs(changelog): add sidebar shortcut, border utilities, and theme me…
mathewtaylor Jul 15, 2026
8fdf020
docs: release notes for Primitives v3.14.0
mathewtaylor Jul 15, 2026
65c94b2
chore: bump BlazorBlueprint.Primitives to 3.14.0
mathewtaylor Jul 15, 2026
4f88bb0
docs: release notes for Components v3.14.0
mathewtaylor Jul 15, 2026
c815332
Merge pull request #413 from blazorblueprintui/develop
mathewtaylor Jul 15, 2026
7db962a
fix(input): guard IME composition across text, numeric, tag, and sear…
mathewtaylor Jul 16, 2026
77b1507
docs(changelog): add 2026-07-16 IME composition guard entry (#415)
mathewtaylor Jul 16, 2026
31fac83
Merge pull request #415 from blazorblueprintui/fix/414-ime-compositio…
mathewtaylor Jul 16, 2026
d25c115
chore: bump BlazorBlueprint.Primitives to 3.14.1
mathewtaylor Jul 16, 2026
8442bd5
docs: release notes for Components v3.14.1
mathewtaylor Jul 16, 2026
e83b1d5
Merge pull request #416 from blazorblueprintui/develop
mathewtaylor Jul 17, 2026
3944b6c
fix(portal): recover content-only updates dropped in Server render→AC…
mathewtaylor Jul 19, 2026
3e2fadf
docs(changelog): link PR #419 for the #418 portal fix
mathewtaylor Jul 19, 2026
6308af1
Merge pull request #419 from blazorblueprintui/fix/418-server-portal-…
mathewtaylor Jul 19, 2026
be27b35
Merge pull request #406 from HugoVG/fix/file-upload-improvement
mathewtaylor Jul 19, 2026
4a9a661
Add mouse wheel support for numeric input adjustments
whis Jul 19, 2026
2940f43
Merge remote-tracking branch 'upstream/develop' into feat/numeric-inp…
whis Jul 19, 2026
439a496
fix(deps): resolve AngleSharp vulnerability (GHSA-pgww-w46g-26qg)
djb-fnz Jul 20, 2026
b69c6c2
Merge pull request #422 from djb-fnz/fix/anglesharp-vulnerability
mathewtaylor Jul 20, 2026
ab84a61
docs(changelog): record the HtmlSanitizer bump for the AngleSharp adv…
mathewtaylor Jul 20, 2026
8acf6f2
docs(changelog): add BbFileUpload Id and attribute splatting (#406); …
mathewtaylor Jul 20, 2026
f24a857
feat(datagrid): add HeaderTemplate to BbDataGridPropertyColumn (#423)
mathewtaylor Jul 21, 2026
d362492
fix(tooltip): warn when an AsChild trigger's child ignores TriggerCon…
mathewtaylor Jul 21, 2026
fb5d21f
fix(datagrid): keep late-registering columns and add explicit column …
mathewtaylor Jul 21, 2026
e78752b
Merge pull request #429 from blazorblueprintui/feat/423-property-colu…
mathewtaylor Jul 21, 2026
813894d
Merge remote-tracking branch 'origin/develop' into fix/425-tooltip-as…
mathewtaylor Jul 21, 2026
28df98b
Merge remote-tracking branch 'origin/develop' into fix/424-datagrid-c…
mathewtaylor Jul 21, 2026
5cb377a
Merge pull request #431 from blazorblueprintui/fix/425-tooltip-aschil…
mathewtaylor Jul 21, 2026
f7492a7
Merge remote-tracking branch 'origin/develop' into fix/424-datagrid-c…
mathewtaylor Jul 21, 2026
967cf4c
Merge pull request #430 from blazorblueprintui/fix/424-datagrid-colum…
mathewtaylor Jul 21, 2026
b29b25d
Merge remote-tracking branch 'origin/develop' into feature/numeric-in…
mathewtaylor Jul 21, 2026
13d1680
feat(numeric-input): gate wheel stepping behind EnableWheelStep and a…
mathewtaylor Jul 21, 2026
d7f9b65
fix(datagrid): name the header cell from Title when a HeaderTemplate …
mathewtaylor Jul 21, 2026
1c56940
fix(hovercard): warn when an AsChild trigger's child ignores TriggerC…
mathewtaylor Jul 21, 2026
aea76c2
fix(DataGrid): stop rightward column drags overshooting by one (#434)
mathewtaylor Jul 21, 2026
24bd569
fix(ColorPicker): use InvariantCulture for numeric formatting to supp…
Jul 25, 2026
4193b3e
fix(ColorPicker): use fixed-point format for hue and invariant cultur…
mathewtaylor Aug 3, 2026
317df2e
Merge pull request #436 from CholmesFr/fix/435-colorpicker-culture-in…
mathewtaylor Aug 3, 2026
123ff45
fix(RangeSlider): use InvariantCulture for tick mark positioning
mathewtaylor Aug 3, 2026
4d559cd
Merge pull request #444 from blazorblueprintui/fix/443-rangeslider-cu…
mathewtaylor Aug 3, 2026
6dea8e5
Merge pull request #421 from whis/feature/numeric-input-mousewheel
mathewtaylor Aug 3, 2026
9c29e89
docs(changelog): add entries for the ColorPicker and RangeSlider loca…
mathewtaylor Aug 3, 2026
50bbea2
Merge remote-tracking branch 'origin/develop' into fix/432-datagrid-h…
mathewtaylor Aug 3, 2026
87ed018
Merge pull request #445 from blazorblueprintui/fix/432-datagrid-heade…
mathewtaylor Aug 3, 2026
23506d1
Merge pull request #446 from blazorblueprintui/fix/433-hovercard-asch…
mathewtaylor Aug 3, 2026
1501a65
Merge remote-tracking branch 'origin/develop' into fix/434-datagrid-d…
mathewtaylor Aug 3, 2026
2bf94fd
Merge pull request #447 from blazorblueprintui/fix/434-datagrid-drag-…
mathewtaylor Aug 3, 2026
929b18b
fix(select,popover,dropdown): stop a close/teardown race killing the …
mathewtaylor Aug 3, 2026
e83e084
Merge pull request #448 from blazorblueprintui/fix/441-select-dispose…
mathewtaylor Aug 3, 2026
aeda7f0
docs(sidebar): document the open-state contract and fix wrong paramet…
mathewtaylor Aug 3, 2026
24dc38d
Merge pull request #449 from blazorblueprintui/fix/442-sidebar-api-re…
mathewtaylor Aug 3, 2026
6518201
feat(sidebar): add Open/OpenChanged and OpenMobile/OpenMobileChanged …
mathewtaylor Aug 3, 2026
c51b676
Merge pull request #450 from blazorblueprintui/feature/442-sidebar-co…
mathewtaylor Aug 3, 2026
01e56be
fix(DashboardGrid): stop stale JS->.NET callbacks to disposed grids
netclectic Aug 3, 2026
db8787b
docs: trim CLAUDE.md to what a session can't derive from the codebase
mathewtaylor Aug 4, 2026
f48173c
Merge pull request #454 from blazorblueprintui/docs/trim-claude-md
mathewtaylor Aug 4, 2026
ed482d3
fix(copytext): render the tooltip through the portal so containers ca…
mathewtaylor Aug 4, 2026
a471ec8
Merge pull request #455 from blazorblueprintui/fix/452-copytext-toolt…
mathewtaylor Aug 4, 2026
b5f5a2f
fix(a11y): give inputs a visible focus indicator
mathewtaylor Aug 4, 2026
6039374
fix(a11y): hug the ring on inputs instead of offsetting it
mathewtaylor Aug 4, 2026
ece41bf
Merge pull request #458 from blazorblueprintui/fix/355-input-focus-st…
mathewtaylor Aug 4, 2026
a472da6
Merge pull request #451 from netclectic/fix/dashboard-grid-disposed-r…
mathewtaylor Aug 5, 2026
332e9fc
test: add convention guards for culture-invariant styles and focus in…
mathewtaylor Aug 5, 2026
3107188
Merge pull request #460 from blazorblueprintui/test/convention-guards
mathewtaylor Aug 5, 2026
4b69a95
fix(charts): plot scatter, line and area against a real X value
mathewtaylor Aug 5, 2026
b661429
Merge pull request #461 from blazorblueprintui/fix/439-scatter-xy-dat…
mathewtaylor Aug 5, 2026
5e0965c
chore(deps): move HtmlSanitizer off the prerelease line to stable 9.1…
mathewtaylor Aug 5, 2026
a84fa8a
Merge pull request #462 from blazorblueprintui/chore/426-htmlsanitize…
mathewtaylor Aug 5, 2026
8d4d319
fix(currency-input): resolve focus, sanitise and parse through one cu…
mathewtaylor Aug 5, 2026
e4c28cc
feat(copy-text): add ValueFunc for copy-time value resolution
mathewtaylor Aug 5, 2026
d15d62c
Merge pull request #467 from blazorblueprintui/fix/438-currencyinput-…
mathewtaylor Aug 5, 2026
9ded299
Merge pull request #469 from blazorblueprintui/feat/453-copytext-valu…
mathewtaylor Aug 5, 2026
c8eee99
fix(numeric-input): size the stepper buttons from the field, not a co…
mathewtaylor Aug 5, 2026
d3ebea6
Merge pull request #468 from blazorblueprintui/fix/465-numericinput-s…
mathewtaylor Aug 5, 2026
8af7e91
fix(demo): correct ButtonSize.Sm -> ButtonSize.Small in CopyText demo
mathewtaylor Aug 5, 2026
a9dc7af
fix(demo): correct ButtonSize.Sm -> ButtonSize.Small in CopyText demo
mathewtaylor Aug 5, 2026
80e6e3d
fix(floating-portal): hide through JS, since showing went through JS
mathewtaylor Aug 5, 2026
cbc28a7
fix(popover): watch for Escape at the document, not on the content el…
mathewtaylor Aug 5, 2026
16aa272
Merge pull request #470 from blazorblueprintui/fix/copytext-demo-butt…
mathewtaylor Aug 5, 2026
c768b0c
Merge pull request #471 from blazorblueprintui/fix/copytext-tooltip-s…
mathewtaylor Aug 5, 2026
c35f755
docs: release notes for Primitives v3.15.0
mathewtaylor Aug 5, 2026
c4cfef6
chore: bump BlazorBlueprint.Primitives to 3.15.0
mathewtaylor Aug 5, 2026
bf32aa4
docs: release notes for Components v3.15.0
mathewtaylor Aug 5, 2026
99bf2bd
Merge pull request #472 from blazorblueprintui/develop
mathewtaylor Aug 5, 2026
9a616f4
Added demo desktop application
Hecatron Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 21 additions & 0 deletions .github/workflows/remove-working-on-it-label.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Remove "working on it" label on close

on:
issues:
types: [closed]

permissions:
issues: write

jobs:
remove-label:
if: contains(github.event.issue.labels.*.name, 'working on it')
runs-on: ubuntu-latest
steps:
- name: Remove the label
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh issue edit "${{ github.event.issue.number }}" \
--repo "${{ github.repository }}" \
--remove-label "working on it"
24 changes: 10 additions & 14 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ src/BlazorBlueprint.Components/wwwroot/blazorblueprint.css
node_modules/
tailwindcss.exe
tailwindcss-linux
tailwindcss-macos

# IDE
.vscode/
Expand All @@ -43,20 +44,15 @@ NUL
.env.local
.env.*.local

# Local test apps
tests/BlazorBlueprint.IssueTester/

# Local LLM docs
.llms
# Published output
publish/

# Development Tools
.claude
.audits
.scratchpad.md
themes
docs
scripts/release.sh
scripts/release-*.sh
scripts/compare-theme.sh
scripts/nuget-versions.sh
scripts/run-ui-tests.sh
devkit/

# External libs
pro/
/.vscode-ai-images/

docs/notes/checkpoint.md
15 changes: 15 additions & 0 deletions BlazorBlueprint.sln
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorBlueprint.Icons.Heroi
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorBlueprint.Icons.Feather", "src\BlazorBlueprint.Icons.Feather\BlazorBlueprint.Icons.Feather.csproj", "{078BABD8-4ACB-4002-95E8-99AB3DA3EBEA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorBlueprint.Icons.FontAwesome", "src\BlazorBlueprint.Icons.FontAwesome\BlazorBlueprint.Icons.FontAwesome.csproj", "{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorBlueprint.Demo.Shared", "demos\BlazorBlueprint.Demo.Shared\BlazorBlueprint.Demo.Shared.csproj", "{D1A2B3C4-E5F6-7890-ABCD-EF1234567890}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorBlueprint.Demo.Wasm", "demos\BlazorBlueprint.Demo.Wasm\BlazorBlueprint.Demo.Wasm.csproj", "{E2B3C4D5-F6A7-8901-BCDE-F12345678901}"
Expand Down Expand Up @@ -113,6 +115,18 @@ Global
{078BABD8-4ACB-4002-95E8-99AB3DA3EBEA}.Release|x64.Build.0 = Release|Any CPU
{078BABD8-4ACB-4002-95E8-99AB3DA3EBEA}.Release|x86.ActiveCfg = Release|Any CPU
{078BABD8-4ACB-4002-95E8-99AB3DA3EBEA}.Release|x86.Build.0 = Release|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Debug|x64.ActiveCfg = Debug|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Debug|x64.Build.0 = Debug|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Debug|x86.ActiveCfg = Debug|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Debug|x86.Build.0 = Debug|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Release|Any CPU.Build.0 = Release|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Release|x64.ActiveCfg = Release|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Release|x64.Build.0 = Release|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Release|x86.ActiveCfg = Release|Any CPU
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7}.Release|x86.Build.0 = Release|Any CPU
{D1A2B3C4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D1A2B3C4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1A2B3C4-E5F6-7890-ABCD-EF1234567890}.Debug|x64.ActiveCfg = Debug|Any CPU
Expand Down Expand Up @@ -184,6 +198,7 @@ Global
{C5E92A4D-9E3B-4C1A-B8D4-E1F5A6C7B9D2} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{6B3C876A-CB06-42DA-974E-6620581CE719} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{078BABD8-4ACB-4002-95E8-99AB3DA3EBEA} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{A1F2E3D4-B5C6-4789-A0B1-C2D3E4F5A6B7} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{D1A2B3C4-E5F6-7890-ABCD-EF1234567890} = {A39C23D2-F2C0-258D-165A-CF1E7FEE6E7B}
{E2B3C4D5-F6A7-8901-BCDE-F12345678901} = {A39C23D2-F2C0-258D-165A-CF1E7FEE6E7B}
{F3C4D5E6-A7B8-9012-CDEF-123456789012} = {A39C23D2-F2C0-258D-165A-CF1E7FEE6E7B}
Expand Down
351 changes: 343 additions & 8 deletions CHANGELOG.md

Large diffs are not rendered by default.

66 changes: 7 additions & 59 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,20 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
- Never commit to git unless explicitly instructed to
- This application does not support hot-reload — rebuild to see changes
- Do NOT add `Co-Authored-By` lines to commit messages
- Do NOT add "Generated with Claude" / AI-attribution footers to PR bodies or GitHub issue/PR comments
- When adding/changing public component API (new params, components, or features), add a demo example in `demos/BlazorBlueprint.Demo.Shared` (live example + `CodeExamples/.../*.txt` snippet + API Reference entry) — don't just temp-add an example to test and then revert it
- Always create a new branch from `develop` when starting work, unless explicitly told otherwise

---

## Build & Test Commands

```bash
# Build the Components project (most common during development)
dotnet build src/BlazorBlueprint.Components/BlazorBlueprint.Components.csproj --nologo --verbosity quiet

# Build entire solution
dotnet build

# Run tests (xunit + Verify snapshot tests)
dotnet test tests/BlazorBlueprint.Tests/BlazorBlueprint.Tests.csproj --verbosity normal

# Accept new API surface snapshots after reviewing .received.txt files
# (copy .received.txt → .verified.txt in tests/BlazorBlueprint.Tests/ApiSurface/)
./scripts/run-tests.sh --accept

# Run demo apps
# Demo apps — each host is pinned to its own port
dotnet run --project demos/BlazorBlueprint.Demo.Server # port 7172
dotnet run --project demos/BlazorBlueprint.Demo.Wasm # port 7173
dotnet run --project demos/BlazorBlueprint.Demo.Auto # port 7174
Expand All @@ -41,39 +34,14 @@ dotnet run --project demos/BlazorBlueprint.Demo.Auto # port 7174

## Architecture

**Two-layer component library** inspired by shadcn/ui and Radix UI, targeting .NET 8 Blazor (Server, WASM, and Auto render modes):

### Projects

| Project | Purpose |
|---------|---------|
| `BlazorBlueprint.Primitives` | Headless, unstyled components with accessibility/keyboard/ARIA. No CSS. |
| `BlazorBlueprint.Components` | Styled components built on Primitives. Ships pre-built Tailwind CSS. |
| `BlazorBlueprint.Icons.*` | Three icon packages: Lucide, Heroicons, Feather |
| `BlazorBlueprint.Demo.Shared` | Shared demo pages/layouts (Razor Class Library) |
| `BlazorBlueprint.Demo.Server/Wasm/Auto` | Thin host projects per render mode |
| `BlazorBlueprint.Tests` | API surface snapshot tests (Verify + xunit) |
**Two-layer component library** inspired by shadcn/ui and Radix UI, targeting .NET 8 Blazor (Server, WASM, and Auto render modes): `Primitives` are headless and unstyled, `Components` are styled and built on top of them.

### Dependency flow
`Components` → `Primitives` + `Icons.Lucide` (ProjectReference locally, PackageReference when packing for NuGet).

### Component structure
Each component lives in its own folder under `Components/` or `Primitives/` with:
- `ComponentName.razor` — markup
- `ComponentName.razor.cs` — code-behind (partial class)
- Enum/type files (e.g., `ButtonVariant.cs`, `ButtonSize.cs`)

Components inherit directly from `ComponentBase` (no custom base class). Text inputs (`Input`, `Textarea`, `InputGroupInput`, `InputGroupTextarea`) implement their own `Value`/`ValueChanged` pattern rather than `InputBase<T>`.

### JS Interop
- Primitives JS: `src/BlazorBlueprint.Primitives/wwwroot/js/primitives/` (focus, positioning, portal, scroll-lock, keyboard shortcuts, resize, dismiss)
- Components JS: `src/BlazorBlueprint.Components/wwwroot/js/` (file-upload, slider, resizable, sidebar, etc.)

### Services (registered via DI)
- `AddBlazorBlueprintComponents()` — registers everything (Components + Primitives)
- `AddBlazorBlueprintPrimitives()` — registers only Primitives services
- Key services: `IPortalService`, `IFocusManager`, `IPositioningService`, `DropdownManagerService`, `IKeyboardShortcutService`, `ToastService`

### Overlay pattern
Overlay components (Dialog, Sheet, Popover, Tooltip, etc.) render through `<PortalHost />` which must be placed in the root layout. Uses `IPortalService` + `FloatingPortal` + `IPositioningService` for positioning.

Expand All @@ -89,28 +57,8 @@ Tests use **Verify** (snapshot testing) to detect unintended public API changes.

---

## Code Style (enforced at build — TreatWarningsAsErrors)

- **Braces required** on all control flow (IDE0011 enforced as error)
- **Private fields**: `camelCase` (no underscore prefix)
- **Public members/types**: `PascalCase`
- **Constants**: `PascalCase`
- **Interfaces**: `I` prefix
- **Nullable reference types** enabled with null diagnostics as errors (CS8600-CS8625)
- Prefer `var` when type is apparent
- Allman-style braces (new line before `{`)
- Indent: 4 spaces for `.cs`/`.razor`, 2 spaces for `.csproj`/`.json`/`.js`/`.css`/`.yml`

---

## Versioning

Uses **MinVer** with git tags. Tag prefixes:
- Components: `components/v` (e.g., `components/v3.0.0`)
- Primitives: `primitives/v` (e.g., `primitives/v2.3.2`)

---
## Code Style

## Current Branch: v3
Style is enforced mechanically by `.editorconfig` + `TreatWarningsAsErrors` — the build is the source of truth, so it isn't restated here. The one convention the config does *not* enforce:

Active development branch for v3 with breaking changes. See `V3-MIGRATION-GUIDE.md` for details. Key v3 changes: namespace flattening, Combobox/MultiSelect API redesign, trigger `AsChild` defaults, and new usability parameters across components.
- **Private fields**: `camelCase` with **no underscore prefix** (deliberately unlike the common C# `_camelCase` default)
Loading