@brightspot/ui 5.4.3-pr.189 → 5.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/components/badge/Badge.d.ts +19 -0
  2. package/dist/components/badge/Badge.d.ts.map +1 -1
  3. package/dist/components/badge/Badge.js +16 -1
  4. package/dist/components/badge/Badge.js.map +1 -1
  5. package/dist/custom-elements.json +435 -417
  6. package/dist/storybook/assets/{ActionBar.stories-dJ6b62aS.js → ActionBar.stories-BwKZ8jTT.js} +1 -1
  7. package/dist/storybook/assets/{ActionItem.stories-BMt7tDCC.js → ActionItem.stories-Df3verWG.js} +1 -1
  8. package/dist/storybook/assets/{Avatar.stories-DP0HzU8B.js → Avatar.stories-Bghlkr3H.js} +1 -1
  9. package/dist/storybook/assets/{AvatarGroup.stories-CXYuhs_h.js → AvatarGroup.stories-CzeWxUTU.js} +1 -1
  10. package/dist/storybook/assets/{Badge.stories-_4lp2UGS.js → Badge.stories-BT5lSPGT.js} +56 -7
  11. package/dist/storybook/assets/{Banner.stories-Cd-ZNHQt.js → Banner.stories-BjFdFSa4.js} +1 -1
  12. package/dist/storybook/assets/{Button-D-07jKtF.js → Button-D180UbjB.js} +1 -1
  13. package/dist/storybook/assets/{Button.stories-QZbPBQ6h.js → Button.stories-CrSX4UIL.js} +1 -1
  14. package/dist/storybook/assets/{ButtonGroup.stories-Uw1ei2Cq.js → ButtonGroup.stories-BFObAokB.js} +1 -1
  15. package/dist/storybook/assets/{Card.stories-CPnBqyom.js → Card.stories-DuSjN2D2.js} +1 -1
  16. package/dist/storybook/assets/{Celebrate.stories-BzktpJAQ.js → Celebrate.stories-BWO2srfl.js} +1 -1
  17. package/dist/storybook/assets/{Checkbox.stories-DCo9Wrky.js → Checkbox.stories-BMfILOzR.js} +1 -1
  18. package/dist/storybook/assets/{CircularProgress.stories-DmTQQK-r.js → CircularProgress.stories-Dc8zPUpU.js} +1 -1
  19. package/dist/storybook/assets/{ClipboardMixin.stories-Bdh3byNu.js → ClipboardMixin.stories-CAjaKg7r.js} +1 -1
  20. package/dist/storybook/assets/{Color-6BZIO3FS-BTQ1ZWyh.js → Color-6BZIO3FS-BtiyepW3.js} +1 -1
  21. package/dist/storybook/assets/{Colors.stories-DsgNEVwW.js → Colors.stories-Dw2fTxL_.js} +1 -1
  22. package/dist/storybook/assets/{CombinedEffects.stories-RxNZHk8H.js → CombinedEffects.stories-B5sQuyyD.js} +1 -1
  23. package/dist/storybook/assets/{ComponentStatesMixin-Bf618GWK.js → ComponentStatesMixin-iTkOii8_.js} +1 -1
  24. package/dist/storybook/assets/{ComponentStatesMixin.stories-CaAGbAPk.js → ComponentStatesMixin.stories-Bf1PGTh8.js} +1 -1
  25. package/dist/storybook/assets/{CopyToClipboard.stories-C7nUw6RP.js → CopyToClipboard.stories-DyDVRVId.js} +1 -1
  26. package/dist/storybook/assets/{Debounce.stories-kJXqZtgy.js → Debounce.stories-_1QyhRvo.js} +1 -1
  27. package/dist/storybook/assets/{DocsRenderer-LL677BLK-Dmc3Qna4.js → DocsRenderer-LL677BLK-mX98SSbE.js} +3 -3
  28. package/dist/storybook/assets/{Dropdown.stories-DGpZSIFq.js → Dropdown.stories-CauEwIiv.js} +1 -1
  29. package/dist/storybook/assets/{EmptyState.stories-DiP-_5z9.js → EmptyState.stories-C-UcFH2P.js} +1 -1
  30. package/dist/storybook/assets/{EscaAvatar.stories-DGCXOAA6.js → EscaAvatar.stories-CrL2Tdi3.js} +1 -1
  31. package/dist/storybook/assets/{Events.stories-kcsqZ8qb.js → Events.stories-ClUoOf2J.js} +1 -1
  32. package/dist/storybook/assets/{Heading.stories-DpO1RJHs.js → Heading.stories-CqDURuaf.js} +1 -1
  33. package/dist/storybook/assets/{HueRipple.stories-C2yos8a7.js → HueRipple.stories-DJQOCvrv.js} +1 -1
  34. package/dist/storybook/assets/{Icon.stories-COW0rQWM.js → Icon.stories-WOCYLVIC.js} +1 -1
  35. package/dist/storybook/assets/{IconButton.stories-THk74Iv2.js → IconButton.stories-uIuDW2Jc.js} +1 -1
  36. package/dist/storybook/assets/{LinearProgress.stories-CmcgRbfo.js → LinearProgress.stories-CQZWZ94q.js} +1 -1
  37. package/dist/storybook/assets/{Message.stories-DKjhAA0_.js → Message.stories-DqD-EjEb.js} +1 -1
  38. package/dist/storybook/assets/{OnFindMixin.stories-D26YquLB.js → OnFindMixin.stories-DYrj1tfl.js} +1 -1
  39. package/dist/storybook/assets/{Pagination.stories-CK5izo-z.js → Pagination.stories-IvkB8_RP.js} +1 -1
  40. package/dist/storybook/assets/{Popover.stories-DsSXYe3T.js → Popover.stories-yeJxuJ_x.js} +1 -1
  41. package/dist/storybook/assets/{ReadyMixin-C15OdAIU.js → ReadyMixin-B0XVzdH2.js} +1 -1
  42. package/dist/storybook/assets/{RovingTabindexMixin.stories-BI3fGkOb.js → RovingTabindexMixin.stories-JKJXpQ1a.js} +1 -1
  43. package/dist/storybook/assets/{Rtc.stories-CPP3p_Ip.js → Rtc.stories-DfWQtLoI.js} +1 -1
  44. package/dist/storybook/assets/{ScrollShadow.stories-DCDipvB8.js → ScrollShadow.stories-DD_jQZ5k.js} +1 -1
  45. package/dist/storybook/assets/{Switch.stories-UXOYYrRr.js → Switch.stories-BC35M81K.js} +1 -1
  46. package/dist/storybook/assets/{Tab.stories-D0nyeDno.js → Tab.stories-Cy-KbsOG.js} +1 -1
  47. package/dist/storybook/assets/{Tabs.stories-LVVKwsP9.js → Tabs.stories-CvhLvl1p.js} +1 -1
  48. package/dist/storybook/assets/{Throttle.stories-CFrigNmM.js → Throttle.stories-nU7jf9yB.js} +1 -1
  49. package/dist/storybook/assets/{Tooltip.stories-CDHHP3xQ.js → Tooltip.stories-BT6j1z87.js} +1 -1
  50. package/dist/storybook/assets/{Upload.stories-yJfbpEKE.js → Upload.stories-DaF5wY54.js} +1 -1
  51. package/dist/storybook/assets/{UploadItem.stories-DmlrNszc.js → UploadItem.stories-CC8wtYPQ.js} +1 -1
  52. package/dist/storybook/assets/{Welcome.stories-CUkKbyN8.js → Welcome.stories-DAp73cbU.js} +1 -1
  53. package/dist/storybook/assets/{Widget.stories-DysLuEf5.js → Widget.stories-Ce_Ni_Rc.js} +1 -1
  54. package/dist/storybook/assets/{WithTooltip-65CFNBJE-CXhOM_G0.js → WithTooltip-65CFNBJE-Bkacmhfv.js} +1 -1
  55. package/dist/storybook/assets/{blocks-C2086Xov.js → blocks-CBDAfSKn.js} +5 -5
  56. package/dist/storybook/assets/{formatter-EIJCOSYU-DEHPdKEc.js → formatter-EIJCOSYU-BVbGt3s2.js} +1 -1
  57. package/dist/storybook/assets/if-defined-B4TUfCpr.js +1 -0
  58. package/dist/storybook/assets/iframe-Bsa4H6Fe.css +1 -0
  59. package/dist/storybook/assets/{iframe-D_dGJYtN.js → iframe-Dvs8mbFG.js} +4 -4
  60. package/dist/storybook/assets/{index-BLsbw6nz.js → index-DPIbqAS7.js} +1 -1
  61. package/dist/storybook/assets/{onFind-hilFTVtY.js → onFind-DLwO1HNO.js} +1 -1
  62. package/dist/storybook/assets/{onFind.stories-_ZC9_-GT.js → onFind.stories-Dq-zkOGi.js} +1 -1
  63. package/dist/storybook/assets/{onRemove.stories-ClU0phbv.js → onRemove.stories-gd3ki21J.js} +1 -1
  64. package/dist/storybook/assets/{onVisible.stories-40sS4W9u.js → onVisible.stories-5WTX6gRk.js} +1 -1
  65. package/dist/storybook/assets/{style-map-vP7xWnc4.js → style-map-K0t_tOsq.js} +1 -1
  66. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-CYIQ3gAb.js → syntaxhighlighter-ED5Y7EFY-AnjtyXja.js} +1 -1
  67. package/dist/storybook/iframe.html +2 -2
  68. package/dist/storybook/index.json +1 -1
  69. package/dist/storybook/project.json +1 -1
  70. package/dist/tailwind-plugin-badge.js +118 -2
  71. package/dist/tailwind-plugin-badge.js.map +1 -1
  72. package/dist/tailwind-plugin-badge.ts +134 -2
  73. package/docs/components/Badge.md +12 -10
  74. package/package.json +1 -1
  75. package/src/legacy/tool-ui/src/DashboardWidget.css +1 -1
  76. package/src/legacy/tool-ui/src/Entry.ts +1 -0
  77. package/src/legacy/tool-ui/src/main/webapp/dist/2111.3956b5196a514b2c0131.js +1 -0
  78. package/src/legacy/tool-ui/src/main/webapp/dist/4168.a224af7c5c5f6f2ddd7b.js +1 -0
  79. package/src/legacy/tool-ui/src/main/webapp/dist/7718.70d9e2ee26ead4bd147b.css +1 -0
  80. package/src/legacy/tool-ui/src/main/webapp/dist/7718.f5996ddd99f2353c7785.js +1 -0
  81. package/src/legacy/tool-ui/src/main/webapp/dist/7863.2a1d1fd229778a47e10b.js +1 -0
  82. package/src/legacy/tool-ui/src/main/webapp/dist/7923.8a92f55de8387f7a8a35.js +1 -0
  83. package/src/legacy/tool-ui/src/main/webapp/dist/9576.174d6a99544d17e7416d.js +1 -0
  84. package/src/legacy/tool-ui/src/main/webapp/dist/{8801.9c8ca0c98ec9c05e6f8c.js → RTEProseMirror.c6f3142a97caa5cd3c21.js} +9 -9
  85. package/src/legacy/tool-ui/src/main/webapp/dist/{v4.893d36633b6292f2a63b.js → v4.ebbbe25f838d4265081e.js} +4 -4
  86. package/src/legacy/tool-ui/src/main/webapp/dist/v4.fda8a624070bce61ac0d.css +3 -0
  87. package/src/legacy/tool-ui/src/main/webapp/dist/{v5.1062c4e2d4957e9d214c.js → v5.0c31b1ef75a387820deb.js} +4 -4
  88. package/src/legacy/tool-ui/src/main/webapp/dist/v5.e927095bfd14d91c35b3.css +5 -0
  89. package/src/legacy/tool-ui/src/main/webapp/v4/Entry.less +2 -2
  90. package/dist/storybook/assets/if-defined-xnpKbhyX.js +0 -1
  91. package/dist/storybook/assets/iframe-Ce3XRnL4.css +0 -1
  92. package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirror.f643928ee29a94e124c9.js +0 -1
  93. package/src/legacy/tool-ui/src/main/webapp/dist/RTEProseMirrorV5.6eb716922c71e7fff52e.js +0 -1
  94. package/src/legacy/tool-ui/src/main/webapp/dist/v4.361bbdb193ac4bca44d7.css +0 -3
  95. package/src/legacy/tool-ui/src/main/webapp/dist/v5.553c18f29cb4a71c3577.css +0 -5
  96. /package/src/legacy/tool-ui/src/main/webapp/dist/{RTEProseMirrorV5.70d9e2ee26ead4bd147b.css → 2111.70d9e2ee26ead4bd147b.css} +0 -0
  97. /package/src/legacy/tool-ui/src/main/webapp/dist/{8801.9c8ca0c98ec9c05e6f8c.js.LICENSE.txt → RTEProseMirror.c6f3142a97caa5cd3c21.js.LICENSE.txt} +0 -0
  98. /package/src/legacy/tool-ui/src/main/webapp/dist/{v4.893d36633b6292f2a63b.js.LICENSE.txt → v4.ebbbe25f838d4265081e.js.LICENSE.txt} +0 -0
  99. /package/src/legacy/tool-ui/src/main/webapp/dist/{v5.1062c4e2d4957e9d214c.js.LICENSE.txt → v5.0c31b1ef75a387820deb.js.LICENSE.txt} +0 -0
  100. /package/src/legacy/tool-ui/src/main/webapp/v4/{Downloads.css → Downloads.less} +0 -0
  101. /package/src/legacy/tool-ui/src/main/webapp/v4/{Utils.css → Utils.less} +0 -0
@@ -1600,6 +1600,15 @@
1600
1600
  "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
1601
1601
  "attribute": "size"
1602
1602
  },
1603
+ {
1604
+ "kind": "field",
1605
+ "name": "activity",
1606
+ "type": {
1607
+ "text": "'busy' | 'live' | undefined"
1608
+ },
1609
+ "description": "Attention state that draws the eye to the badge. Names the *intent*; the\ncomponent owns the visual treatment (so it can change without callers).\n- 'busy': an in-progress state — a glint shimmers across the label text\n- 'live': a live/active state — a ring ripples out from the leading dot\n (implies `dot`)",
1610
+ "attribute": "activity"
1611
+ },
1603
1612
  {
1604
1613
  "kind": "method",
1605
1614
  "name": "emit",
@@ -1671,6 +1680,15 @@
1671
1680
  "description": "Size variant.\n- 'sm': Small (default)\n- 'md': Medium\n- 'lg': Large",
1672
1681
  "fieldName": "size",
1673
1682
  "attribute": "size"
1683
+ },
1684
+ {
1685
+ "name": "activity",
1686
+ "type": {
1687
+ "text": "'busy' | 'live' | undefined"
1688
+ },
1689
+ "description": "Attention state that draws the eye to the badge. Names the *intent*; the\ncomponent owns the visual treatment (so it can change without callers).\n- 'busy': an in-progress state — a glint shimmers across the label text\n- 'live': a live/active state — a ring ripples out from the leading dot\n (implies `dot`)",
1690
+ "fieldName": "activity",
1691
+ "attribute": "activity"
1674
1692
  }
1675
1693
  ],
1676
1694
  "mixins": [
@@ -1712,151 +1730,197 @@
1712
1730
  },
1713
1731
  {
1714
1732
  "kind": "javascript-module",
1715
- "path": "src/components/button-group/ButtonGroup.ts",
1733
+ "path": "src/components/banner/Banner.ts",
1716
1734
  "declarations": [
1717
1735
  {
1718
1736
  "kind": "class",
1719
- "description": "A semantic container for grouping related buttons together.\n\nSupports connected (joined) and spaced layouts, horizontal and vertical\norientation, group-level size and disabled propagation, and optional\ntoggle/selection modes (single-select or multi-select).",
1720
- "name": "ButtonGroup",
1737
+ "description": "A full-width container that pins a `<btu-message>` to the top of the CMS or a\ncontent edit page. The banner has no content API of its own — compose a\n`<btu-message>` inside it (or several, e.g. for a paginated banner) and the banner\nspans each to 100% of the host, rendering it full-bleed (edge-to-edge, bottom\nborder only, no corner rounding).\n\nSet the content (variant, label, symbol, dismissible, badge/description/actions\nslots) on the message itself. The full-width treatment lives on this wrapper, so\nthe message has no `full-width` attribute — the banner owns that.",
1738
+ "name": "Banner",
1721
1739
  "cssProperties": [
1722
1740
  {
1723
- "description": "Space between buttons when variant=\"spaced\" (default: spacing.sm)",
1724
- "name": "--button-group-gap"
1725
- },
1741
+ "description": "Stack order for the banner (default: 100). The banner is `position: relative`, so this always applies; set `position: sticky` to also pin it to the viewport.",
1742
+ "name": "--banner-z-index"
1743
+ }
1744
+ ],
1745
+ "slots": [
1726
1746
  {
1727
- "description": "Corner radius of outer edges when variant=\"connected\" (default: 0.5rem)",
1728
- "name": "--button-group-border-radius"
1729
- },
1747
+ "description": "One or more `<btu-message>` elements, full-bleed to the host width. With more than one, the banner auto-creates a `<btu-pagination>` and shows one at a time.",
1748
+ "name": ""
1749
+ }
1750
+ ],
1751
+ "members": [
1730
1752
  {
1731
- "description": "Internal divider color between connected buttons (default: gray-300)",
1732
- "name": "--button-group-border-color"
1733
- },
1753
+ "kind": "method",
1754
+ "name": "emit",
1755
+ "parameters": [
1756
+ {
1757
+ "name": "type",
1758
+ "type": {
1759
+ "text": "K"
1760
+ },
1761
+ "description": "Event name from CustomEventMap"
1762
+ },
1763
+ {
1764
+ "name": "detail",
1765
+ "optional": true,
1766
+ "type": {
1767
+ "text": "UnpackCustomEvent<CustomEventMap[K]>"
1768
+ },
1769
+ "description": "Optional event detail payload"
1770
+ }
1771
+ ],
1772
+ "description": "Dispatches a type-safe CustomEvent with standardized configuration.\n\nAll events are configured with:\n- bubbles: true (event propagates up the DOM tree)\n- cancelable: false (event cannot be cancelled)\n- composed: true (event crosses shadow DOM boundaries)",
1773
+ "return": {
1774
+ "type": {
1775
+ "text": "boolean"
1776
+ }
1777
+ },
1778
+ "inheritedFrom": {
1779
+ "name": "EventEmitterMixin",
1780
+ "module": "src/util/EventEmitterMixin.ts"
1781
+ }
1782
+ }
1783
+ ],
1784
+ "events": [
1734
1785
  {
1735
- "description": "Background of a toggled/selected child (default: child's --button-tint-subtle)",
1736
- "name": "--button-group-selection-bg"
1786
+ "type": {
1787
+ "text": "CustomEvent"
1788
+ },
1789
+ "description": "Fired after the banner is first rendered and initialized",
1790
+ "name": "btu-banner-ready"
1791
+ }
1792
+ ],
1793
+ "mixins": [
1794
+ {
1795
+ "name": "EventEmitterMixin",
1796
+ "module": "/src/util/EventEmitterMixin.js"
1737
1797
  },
1738
1798
  {
1739
- "description": "Text/icon color of a toggled/selected child (default: child's --button-tint-strong)",
1740
- "name": "--button-group-selection-color"
1799
+ "name": "ReadyMixin",
1800
+ "module": "/src/util/ReadyMixin.js"
1801
+ }
1802
+ ],
1803
+ "superclass": {
1804
+ "name": "LitElement",
1805
+ "package": "lit"
1806
+ },
1807
+ "tagName": "btu-banner",
1808
+ "customElement": true
1809
+ }
1810
+ ],
1811
+ "exports": [
1812
+ {
1813
+ "kind": "js",
1814
+ "name": "default",
1815
+ "declaration": {
1816
+ "name": "Banner",
1817
+ "module": "src/components/banner/Banner.ts"
1818
+ }
1819
+ },
1820
+ {
1821
+ "kind": "custom-element-definition",
1822
+ "name": "btu-banner",
1823
+ "declaration": {
1824
+ "name": "Banner",
1825
+ "module": "src/components/banner/Banner.ts"
1826
+ }
1827
+ }
1828
+ ]
1829
+ },
1830
+ {
1831
+ "kind": "javascript-module",
1832
+ "path": "src/components/banner/Message.ts",
1833
+ "declarations": [
1834
+ {
1835
+ "kind": "class",
1836
+ "description": "A message for communicating high-visibility content that is not tied to the\nuser's current task — alerts, breaking news, and persistent status. Use it on\nits own as a contained, bordered card, or place it inside a `<btu-banner>` to\nspan the full width of the page (e.g., pinned above the CMS content area).\n\nMessages render a leading icon, an optional badge, a label, an optional\ndescription, and an optional dismiss control. The label and description\nstack vertically in a text column; everything else sits on the same row.",
1837
+ "name": "Message",
1838
+ "cssProperties": [
1839
+ {
1840
+ "description": "Overrides the background color for the message",
1841
+ "name": "--message-color-background"
1741
1842
  },
1742
1843
  {
1743
- "description": "Highlight color of the selection shimmer effect (default: child's --button-tint-highlight) Reads the following CSS custom properties from each child button (set by the button plugin per color variant — see tailwind-plugin-button.ts):",
1744
- "name": "--button-group-shimmer-highlight"
1844
+ "description": "Overrides the text and icon color",
1845
+ "name": "--message-color-foreground"
1745
1846
  },
1746
1847
  {
1747
- "description": "Subtle tint of the child button's color family (read-only here)",
1748
- "name": "--button-tint-subtle"
1848
+ "description": "Overrides the border color (defaults to the variant's 300 shade)",
1849
+ "name": "--message-color-border"
1749
1850
  },
1750
1851
  {
1751
- "description": "Strong tint of the child button's color family (read-only here)",
1752
- "name": "--button-tint-strong"
1852
+ "description": "Overrides the internal padding (default: 1rem)",
1853
+ "name": "--message-padding"
1753
1854
  },
1754
1855
  {
1755
- "description": "Highlight tint of the child button's color family (read-only here)",
1756
- "name": "--button-tint-highlight"
1856
+ "description": "Overrides the corner rounding (default: 8px)",
1857
+ "name": "--message-border-radius"
1757
1858
  }
1758
1859
  ],
1759
1860
  "slots": [
1760
1861
  {
1761
- "description": "One or more `<button class=\"btu-button …\">` or `<btu-icon-button>` elements to display in the group. The `connected` variant rounds the outer corners on the real `<button>`, so anchors styled as `.btu-button` slotted directly will not get rounded corners. Use `<button>` for grouped controls.",
1762
- "name": ""
1862
+ "description": "Pseudo-slot for a leading status/version tag, typically a `<btu-badge>`. The slotted child is moved into the header row, before the label.",
1863
+ "name": "badge"
1763
1864
  },
1764
1865
  {
1765
- "description": "Pushes the child to the end of the group via auto-margin (vertical: bottom, horizontal: right)",
1766
- "name": "end"
1866
+ "description": "Pseudo-slot for supporting text rendered directly beneath the label. Slot a single inline element (e.g., `<span slot=\"description\">`) or a block element to enable rich content (links, emphasis).",
1867
+ "name": "description"
1868
+ },
1869
+ {
1870
+ "description": "Pseudo-slot for CTA buttons, links, or a `<btu-pagination>`. Children with `slot=\"actions\"` are moved into an internal container on the trailing edge of the body. `.btu-button` children inherit the message's foreground color across all states. The message does not emit an action-click event — attach handlers to your own elements.",
1871
+ "name": "actions"
1767
1872
  }
1768
1873
  ],
1769
1874
  "members": [
1770
- {
1771
- "kind": "field",
1772
- "name": "tagName",
1773
- "static": true,
1774
- "readonly": true
1775
- },
1776
- {
1777
- "kind": "field",
1778
- "name": "label",
1779
- "type": {
1780
- "text": "string"
1781
- },
1782
- "default": "''",
1783
- "description": "Accessible name for the group, announced by assistive devices via aria-label.",
1784
- "attribute": "label"
1785
- },
1786
- {
1787
- "kind": "field",
1788
- "name": "orientation",
1789
- "type": {
1790
- "text": "'horizontal' | 'vertical'"
1791
- },
1792
- "default": "'horizontal'",
1793
- "description": "Layout direction of the buttons.",
1794
- "attribute": "orientation",
1795
- "reflects": true
1796
- },
1797
1875
  {
1798
1876
  "kind": "field",
1799
1877
  "name": "variant",
1800
1878
  "type": {
1801
- "text": "'connected' | 'spaced'"
1879
+ "text": "MessageVariant"
1802
1880
  },
1803
- "default": "'connected'",
1804
- "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
1881
+ "default": "'info'",
1882
+ "description": "Visual style and semantic meaning of the message.",
1805
1883
  "attribute": "variant",
1806
1884
  "reflects": true
1807
1885
  },
1808
1886
  {
1809
1887
  "kind": "field",
1810
- "name": "size",
1811
- "type": {
1812
- "text": "'sm' | 'md' | 'lg'"
1813
- },
1814
- "default": "'md'",
1815
- "description": "Propagates a uniform size to all child buttons.",
1816
- "attribute": "size",
1817
- "reflects": true
1818
- },
1819
- {
1820
- "kind": "field",
1821
- "name": "disabled",
1888
+ "name": "label",
1822
1889
  "type": {
1823
- "text": "boolean"
1890
+ "text": "string | undefined"
1824
1891
  },
1825
- "default": "false",
1826
- "description": "When true, disables all child buttons as a group.",
1827
- "attribute": "disabled"
1892
+ "description": "The primary message or title text displayed.",
1893
+ "attribute": "label"
1828
1894
  },
1829
1895
  {
1830
1896
  "kind": "field",
1831
- "name": "selection",
1897
+ "name": "symbol",
1832
1898
  "type": {
1833
- "text": "'none' | 'single' | 'multiple'"
1899
+ "text": "string | undefined"
1834
1900
  },
1835
- "default": "'none'",
1836
- "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
1837
- "attribute": "selection",
1838
- "reflects": true
1901
+ "description": "Name of the Lucide icon to display. Defaults to a sensible icon per variant.",
1902
+ "attribute": "symbol"
1839
1903
  },
1840
1904
  {
1841
1905
  "kind": "field",
1842
- "name": "value",
1906
+ "name": "dismissible",
1843
1907
  "type": {
1844
- "text": "string"
1908
+ "text": "boolean"
1845
1909
  },
1846
- "default": "''",
1847
- "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
1848
- "attribute": "value",
1910
+ "default": "false",
1911
+ "description": "If true, a close icon is provided to allow the user to hide the message.",
1912
+ "attribute": "dismissible",
1849
1913
  "reflects": true
1850
1914
  },
1851
1915
  {
1852
- "kind": "field",
1853
- "name": "name",
1854
- "type": {
1855
- "text": "string"
1856
- },
1857
- "default": "''",
1858
- "description": "When set, creates hidden input(s) for native form participation.",
1859
- "attribute": "name"
1916
+ "kind": "method",
1917
+ "name": "_handleDismiss",
1918
+ "privacy": "private",
1919
+ "return": {
1920
+ "type": {
1921
+ "text": "void"
1922
+ }
1923
+ }
1860
1924
  },
1861
1925
  {
1862
1926
  "kind": "method",
@@ -1888,187 +1952,69 @@
1888
1952
  "name": "EventEmitterMixin",
1889
1953
  "module": "src/util/EventEmitterMixin.ts"
1890
1954
  }
1955
+ }
1956
+ ],
1957
+ "events": [
1958
+ {
1959
+ "type": {
1960
+ "text": "CustomEvent"
1961
+ },
1962
+ "description": "Fired after the message is first rendered and initialized",
1963
+ "name": "btu-message-ready"
1891
1964
  },
1892
1965
  {
1893
- "kind": "field",
1894
- "name": "#stopFns",
1895
- "privacy": "private",
1896
1966
  "type": {
1897
- "text": "Array<() => void>"
1967
+ "text": "CustomEvent"
1898
1968
  },
1899
- "default": "[]",
1900
- "inheritedFrom": {
1901
- "name": "OnFindMixin",
1902
- "module": "src/util/OnFindMixin.ts"
1903
- }
1904
- },
1905
- {
1906
- "kind": "method",
1907
- "name": "onFindRegistration",
1908
- "return": {
1909
- "type": {
1910
- "text": "OnFindRegistration | OnFindRegistration[] | null"
1911
- }
1912
- },
1913
- "inheritedFrom": {
1914
- "name": "OnFindMixin",
1915
- "module": "src/util/OnFindMixin.ts"
1916
- }
1917
- },
1918
- {
1919
- "kind": "method",
1920
- "name": "#armFind",
1921
- "privacy": "private",
1922
- "inheritedFrom": {
1923
- "name": "OnFindMixin",
1924
- "module": "src/util/OnFindMixin.ts"
1925
- }
1969
+ "description": "Fired when the user clicks the close/dismiss button. Cancelable: the message hides itself (sets `hidden`) unless the listener calls `preventDefault()`.",
1970
+ "name": "btu-message-dismiss"
1926
1971
  }
1927
1972
  ],
1928
- "events": [
1929
- {
1930
- "type": {
1931
- "text": "CustomEvent"
1932
- },
1933
- "description": "Fired after first render and initialization",
1934
- "name": "btu-button-group-ready"
1935
- },
1973
+ "attributes": [
1936
1974
  {
1975
+ "name": "variant",
1937
1976
  "type": {
1938
- "text": "CustomEvent<{value: string}>"
1977
+ "text": "MessageVariant"
1939
1978
  },
1940
- "description": "Fired when selection changes (single/multiple modes only)",
1941
- "name": "btu-button-group-change"
1979
+ "default": "'info'",
1980
+ "description": "Visual style and semantic meaning of the message.",
1981
+ "fieldName": "variant",
1982
+ "attribute": "variant"
1942
1983
  },
1943
- {
1944
- "type": {
1945
- "text": "CustomEvent<{name: string | undefined}>"
1946
- },
1947
- "description": "Bubbles from child btu-icon-button elements when clicked",
1948
- "name": "btu-icon-button-click"
1949
- }
1950
- ],
1951
- "attributes": [
1952
1984
  {
1953
1985
  "name": "label",
1954
1986
  "type": {
1955
- "text": "string"
1987
+ "text": "string | undefined"
1956
1988
  },
1957
- "default": "''",
1958
- "description": "Accessible name for the group, announced by assistive devices via aria-label.",
1989
+ "description": "The primary message or title text displayed.",
1959
1990
  "fieldName": "label",
1960
1991
  "attribute": "label"
1961
1992
  },
1962
1993
  {
1963
- "name": "orientation",
1964
- "type": {
1965
- "text": "'horizontal' | 'vertical'"
1966
- },
1967
- "default": "'horizontal'",
1968
- "description": "Layout direction of the buttons.",
1969
- "fieldName": "orientation",
1970
- "attribute": "orientation"
1971
- },
1972
- {
1973
- "name": "variant",
1974
- "type": {
1975
- "text": "'connected' | 'spaced'"
1976
- },
1977
- "default": "'connected'",
1978
- "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
1979
- "fieldName": "variant",
1980
- "attribute": "variant"
1981
- },
1982
- {
1983
- "name": "size",
1994
+ "name": "symbol",
1984
1995
  "type": {
1985
- "text": "'sm' | 'md' | 'lg'"
1996
+ "text": "string | undefined"
1986
1997
  },
1987
- "default": "'md'",
1988
- "description": "Propagates a uniform size to all child buttons.",
1989
- "fieldName": "size",
1990
- "attribute": "size"
1998
+ "description": "Name of the Lucide icon to display. Defaults to a sensible icon per variant.",
1999
+ "fieldName": "symbol",
2000
+ "attribute": "symbol"
1991
2001
  },
1992
2002
  {
1993
- "name": "disabled",
2003
+ "name": "dismissible",
1994
2004
  "type": {
1995
2005
  "text": "boolean"
1996
2006
  },
1997
2007
  "default": "false",
1998
- "description": "When true, disables all child buttons as a group.",
1999
- "fieldName": "disabled",
2000
- "attribute": "disabled"
2001
- },
2002
- {
2003
- "name": "selection",
2004
- "type": {
2005
- "text": "'none' | 'single' | 'multiple'"
2006
- },
2007
- "default": "'none'",
2008
- "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
2009
- "fieldName": "selection",
2010
- "attribute": "selection"
2011
- },
2012
- {
2013
- "name": "value",
2014
- "type": {
2015
- "text": "string"
2016
- },
2017
- "default": "''",
2018
- "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
2019
- "fieldName": "value",
2020
- "attribute": "value"
2021
- },
2022
- {
2023
- "name": "name",
2024
- "type": {
2025
- "text": "string"
2026
- },
2027
- "default": "''",
2028
- "description": "When set, creates hidden input(s) for native form participation.",
2029
- "fieldName": "name",
2030
- "attribute": "name"
2031
- }
2032
- ],
2033
- "cssStates": [
2034
- {
2035
- "description": "Applied when variant=\"connected\", targetable via :state(btu-connected)",
2036
- "name": "btu-connected"
2037
- },
2038
- {
2039
- "description": "Applied when variant=\"spaced\", targetable via :state(btu-spaced)",
2040
- "name": "btu-spaced"
2041
- },
2042
- {
2043
- "description": "Applied when orientation=\"horizontal\", targetable via :state(btu-horizontal)",
2044
- "name": "btu-horizontal"
2045
- },
2046
- {
2047
- "description": "Applied when orientation=\"vertical\", targetable via :state(btu-vertical)",
2048
- "name": "btu-vertical"
2049
- },
2050
- {
2051
- "description": "Applied when the group is disabled, targetable via :state(btu-disabled)",
2052
- "name": "btu-disabled"
2008
+ "description": "If true, a close icon is provided to allow the user to hide the message.",
2009
+ "fieldName": "dismissible",
2010
+ "attribute": "dismissible"
2053
2011
  }
2054
2012
  ],
2055
2013
  "mixins": [
2056
- {
2057
- "name": "RovingTabindexMixin",
2058
- "module": "/src/util/RovingTabindexMixin.js"
2059
- },
2060
- {
2061
- "name": "ComponentStatesMixin",
2062
- "module": "/src/util/ComponentStatesMixin.js"
2063
- },
2064
2014
  {
2065
2015
  "name": "EventEmitterMixin",
2066
2016
  "module": "/src/util/EventEmitterMixin.js"
2067
2017
  },
2068
- {
2069
- "name": "OnFindMixin",
2070
- "module": "/src/util/OnFindMixin.js"
2071
- },
2072
2018
  {
2073
2019
  "name": "ReadyMixin",
2074
2020
  "module": "/src/util/ReadyMixin.js"
@@ -2078,7 +2024,7 @@
2078
2024
  "name": "LitElement",
2079
2025
  "package": "lit"
2080
2026
  },
2081
- "tagName": "btu-button-group",
2027
+ "tagName": "btu-message",
2082
2028
  "customElement": true
2083
2029
  }
2084
2030
  ],
@@ -2087,213 +2033,167 @@
2087
2033
  "kind": "js",
2088
2034
  "name": "default",
2089
2035
  "declaration": {
2090
- "name": "ButtonGroup",
2091
- "module": "src/components/button-group/ButtonGroup.ts"
2036
+ "name": "Message",
2037
+ "module": "src/components/banner/Message.ts"
2092
2038
  }
2093
2039
  },
2094
2040
  {
2095
2041
  "kind": "custom-element-definition",
2096
- "name": "btu-button-group",
2042
+ "name": "btu-message",
2097
2043
  "declaration": {
2098
- "name": "ButtonGroup",
2099
- "module": "src/components/button-group/ButtonGroup.ts"
2044
+ "name": "Message",
2045
+ "module": "src/components/banner/Message.ts"
2100
2046
  }
2101
2047
  }
2102
2048
  ]
2103
2049
  },
2104
2050
  {
2105
2051
  "kind": "javascript-module",
2106
- "path": "src/components/banner/Banner.ts",
2052
+ "path": "src/components/button-group/ButtonGroup.ts",
2107
2053
  "declarations": [
2108
2054
  {
2109
2055
  "kind": "class",
2110
- "description": "A full-width container that pins a `<btu-message>` to the top of the CMS or a\ncontent edit page. The banner has no content API of its own — compose a\n`<btu-message>` inside it (or several, e.g. for a paginated banner) and the banner\nspans each to 100% of the host, rendering it full-bleed (edge-to-edge, bottom\nborder only, no corner rounding).\n\nSet the content (variant, label, symbol, dismissible, badge/description/actions\nslots) on the message itself. The full-width treatment lives on this wrapper, so\nthe message has no `full-width` attribute — the banner owns that.",
2111
- "name": "Banner",
2056
+ "description": "A semantic container for grouping related buttons together.\n\nSupports connected (joined) and spaced layouts, horizontal and vertical\norientation, group-level size and disabled propagation, and optional\ntoggle/selection modes (single-select or multi-select).",
2057
+ "name": "ButtonGroup",
2112
2058
  "cssProperties": [
2113
2059
  {
2114
- "description": "Stack order for the banner (default: 100). The banner is `position: relative`, so this always applies; set `position: sticky` to also pin it to the viewport.",
2115
- "name": "--banner-z-index"
2116
- }
2117
- ],
2118
- "slots": [
2119
- {
2120
- "description": "One or more `<btu-message>` elements, full-bleed to the host width. With more than one, the banner auto-creates a `<btu-pagination>` and shows one at a time.",
2121
- "name": ""
2122
- }
2123
- ],
2124
- "members": [
2125
- {
2126
- "kind": "method",
2127
- "name": "emit",
2128
- "parameters": [
2129
- {
2130
- "name": "type",
2131
- "type": {
2132
- "text": "K"
2133
- },
2134
- "description": "Event name from CustomEventMap"
2135
- },
2136
- {
2137
- "name": "detail",
2138
- "optional": true,
2139
- "type": {
2140
- "text": "UnpackCustomEvent<CustomEventMap[K]>"
2141
- },
2142
- "description": "Optional event detail payload"
2143
- }
2144
- ],
2145
- "description": "Dispatches a type-safe CustomEvent with standardized configuration.\n\nAll events are configured with:\n- bubbles: true (event propagates up the DOM tree)\n- cancelable: false (event cannot be cancelled)\n- composed: true (event crosses shadow DOM boundaries)",
2146
- "return": {
2147
- "type": {
2148
- "text": "boolean"
2149
- }
2150
- },
2151
- "inheritedFrom": {
2152
- "name": "EventEmitterMixin",
2153
- "module": "src/util/EventEmitterMixin.ts"
2154
- }
2155
- }
2156
- ],
2157
- "events": [
2060
+ "description": "Space between buttons when variant=\"spaced\" (default: spacing.sm)",
2061
+ "name": "--button-group-gap"
2062
+ },
2158
2063
  {
2159
- "type": {
2160
- "text": "CustomEvent"
2161
- },
2162
- "description": "Fired after the banner is first rendered and initialized",
2163
- "name": "btu-banner-ready"
2164
- }
2165
- ],
2166
- "mixins": [
2064
+ "description": "Corner radius of outer edges when variant=\"connected\" (default: 0.5rem)",
2065
+ "name": "--button-group-border-radius"
2066
+ },
2167
2067
  {
2168
- "name": "EventEmitterMixin",
2169
- "module": "/src/util/EventEmitterMixin.js"
2068
+ "description": "Internal divider color between connected buttons (default: gray-300)",
2069
+ "name": "--button-group-border-color"
2170
2070
  },
2171
2071
  {
2172
- "name": "ReadyMixin",
2173
- "module": "/src/util/ReadyMixin.js"
2174
- }
2175
- ],
2176
- "superclass": {
2177
- "name": "LitElement",
2178
- "package": "lit"
2179
- },
2180
- "tagName": "btu-banner",
2181
- "customElement": true
2182
- }
2183
- ],
2184
- "exports": [
2185
- {
2186
- "kind": "js",
2187
- "name": "default",
2188
- "declaration": {
2189
- "name": "Banner",
2190
- "module": "src/components/banner/Banner.ts"
2191
- }
2192
- },
2193
- {
2194
- "kind": "custom-element-definition",
2195
- "name": "btu-banner",
2196
- "declaration": {
2197
- "name": "Banner",
2198
- "module": "src/components/banner/Banner.ts"
2199
- }
2200
- }
2201
- ]
2202
- },
2203
- {
2204
- "kind": "javascript-module",
2205
- "path": "src/components/banner/Message.ts",
2206
- "declarations": [
2207
- {
2208
- "kind": "class",
2209
- "description": "A message for communicating high-visibility content that is not tied to the\nuser's current task — alerts, breaking news, and persistent status. Use it on\nits own as a contained, bordered card, or place it inside a `<btu-banner>` to\nspan the full width of the page (e.g., pinned above the CMS content area).\n\nMessages render a leading icon, an optional badge, a label, an optional\ndescription, and an optional dismiss control. The label and description\nstack vertically in a text column; everything else sits on the same row.",
2210
- "name": "Message",
2211
- "cssProperties": [
2072
+ "description": "Background of a toggled/selected child (default: child's --button-tint-subtle)",
2073
+ "name": "--button-group-selection-bg"
2074
+ },
2212
2075
  {
2213
- "description": "Overrides the background color for the message",
2214
- "name": "--message-color-background"
2076
+ "description": "Text/icon color of a toggled/selected child (default: child's --button-tint-strong)",
2077
+ "name": "--button-group-selection-color"
2215
2078
  },
2216
2079
  {
2217
- "description": "Overrides the text and icon color",
2218
- "name": "--message-color-foreground"
2080
+ "description": "Highlight color of the selection shimmer effect (default: child's --button-tint-highlight) Reads the following CSS custom properties from each child button (set by the button plugin per color variant — see tailwind-plugin-button.ts):",
2081
+ "name": "--button-group-shimmer-highlight"
2219
2082
  },
2220
2083
  {
2221
- "description": "Overrides the border color (defaults to the variant's 300 shade)",
2222
- "name": "--message-color-border"
2084
+ "description": "Subtle tint of the child button's color family (read-only here)",
2085
+ "name": "--button-tint-subtle"
2223
2086
  },
2224
2087
  {
2225
- "description": "Overrides the internal padding (default: 1rem)",
2226
- "name": "--message-padding"
2088
+ "description": "Strong tint of the child button's color family (read-only here)",
2089
+ "name": "--button-tint-strong"
2227
2090
  },
2228
2091
  {
2229
- "description": "Overrides the corner rounding (default: 8px)",
2230
- "name": "--message-border-radius"
2092
+ "description": "Highlight tint of the child button's color family (read-only here)",
2093
+ "name": "--button-tint-highlight"
2231
2094
  }
2232
2095
  ],
2233
2096
  "slots": [
2234
2097
  {
2235
- "description": "Pseudo-slot for a leading status/version tag, typically a `<btu-badge>`. The slotted child is moved into the header row, before the label.",
2236
- "name": "badge"
2098
+ "description": "One or more `<button class=\"btu-button …\">` or `<btu-icon-button>` elements to display in the group. The `connected` variant rounds the outer corners on the real `<button>`, so anchors styled as `.btu-button` slotted directly will not get rounded corners. Use `<button>` for grouped controls.",
2099
+ "name": ""
2237
2100
  },
2238
2101
  {
2239
- "description": "Pseudo-slot for supporting text rendered directly beneath the label. Slot a single inline element (e.g., `<span slot=\"description\">`) or a block element to enable rich content (links, emphasis).",
2240
- "name": "description"
2102
+ "description": "Pushes the child to the end of the group via auto-margin (vertical: bottom, horizontal: right)",
2103
+ "name": "end"
2104
+ }
2105
+ ],
2106
+ "members": [
2107
+ {
2108
+ "kind": "field",
2109
+ "name": "tagName",
2110
+ "static": true,
2111
+ "readonly": true
2112
+ },
2113
+ {
2114
+ "kind": "field",
2115
+ "name": "label",
2116
+ "type": {
2117
+ "text": "string"
2118
+ },
2119
+ "default": "''",
2120
+ "description": "Accessible name for the group, announced by assistive devices via aria-label.",
2121
+ "attribute": "label"
2241
2122
  },
2242
2123
  {
2243
- "description": "Pseudo-slot for CTA buttons, links, or a `<btu-pagination>`. Children with `slot=\"actions\"` are moved into an internal container on the trailing edge of the body. `.btu-button` children inherit the message's foreground color across all states. The message does not emit an action-click event — attach handlers to your own elements.",
2244
- "name": "actions"
2245
- }
2246
- ],
2247
- "members": [
2124
+ "kind": "field",
2125
+ "name": "orientation",
2126
+ "type": {
2127
+ "text": "'horizontal' | 'vertical'"
2128
+ },
2129
+ "default": "'horizontal'",
2130
+ "description": "Layout direction of the buttons.",
2131
+ "attribute": "orientation",
2132
+ "reflects": true
2133
+ },
2248
2134
  {
2249
2135
  "kind": "field",
2250
2136
  "name": "variant",
2251
2137
  "type": {
2252
- "text": "MessageVariant"
2138
+ "text": "'connected' | 'spaced'"
2253
2139
  },
2254
- "default": "'info'",
2255
- "description": "Visual style and semantic meaning of the message.",
2140
+ "default": "'connected'",
2141
+ "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
2256
2142
  "attribute": "variant",
2257
2143
  "reflects": true
2258
2144
  },
2259
2145
  {
2260
2146
  "kind": "field",
2261
- "name": "label",
2147
+ "name": "size",
2262
2148
  "type": {
2263
- "text": "string | undefined"
2149
+ "text": "'sm' | 'md' | 'lg'"
2264
2150
  },
2265
- "description": "The primary message or title text displayed.",
2266
- "attribute": "label"
2151
+ "default": "'md'",
2152
+ "description": "Propagates a uniform size to all child buttons.",
2153
+ "attribute": "size",
2154
+ "reflects": true
2267
2155
  },
2268
2156
  {
2269
2157
  "kind": "field",
2270
- "name": "symbol",
2158
+ "name": "disabled",
2271
2159
  "type": {
2272
- "text": "string | undefined"
2160
+ "text": "boolean"
2273
2161
  },
2274
- "description": "Name of the Lucide icon to display. Defaults to a sensible icon per variant.",
2275
- "attribute": "symbol"
2162
+ "default": "false",
2163
+ "description": "When true, disables all child buttons as a group.",
2164
+ "attribute": "disabled"
2276
2165
  },
2277
2166
  {
2278
2167
  "kind": "field",
2279
- "name": "dismissible",
2168
+ "name": "selection",
2280
2169
  "type": {
2281
- "text": "boolean"
2170
+ "text": "'none' | 'single' | 'multiple'"
2282
2171
  },
2283
- "default": "false",
2284
- "description": "If true, a close icon is provided to allow the user to hide the message.",
2285
- "attribute": "dismissible",
2172
+ "default": "'none'",
2173
+ "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
2174
+ "attribute": "selection",
2286
2175
  "reflects": true
2287
2176
  },
2288
2177
  {
2289
- "kind": "method",
2290
- "name": "_handleDismiss",
2291
- "privacy": "private",
2292
- "return": {
2293
- "type": {
2294
- "text": "void"
2295
- }
2296
- }
2178
+ "kind": "field",
2179
+ "name": "value",
2180
+ "type": {
2181
+ "text": "string"
2182
+ },
2183
+ "default": "''",
2184
+ "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
2185
+ "attribute": "value",
2186
+ "reflects": true
2187
+ },
2188
+ {
2189
+ "kind": "field",
2190
+ "name": "name",
2191
+ "type": {
2192
+ "text": "string"
2193
+ },
2194
+ "default": "''",
2195
+ "description": "When set, creates hidden input(s) for native form participation.",
2196
+ "attribute": "name"
2297
2197
  },
2298
2198
  {
2299
2199
  "kind": "method",
@@ -2325,6 +2225,41 @@
2325
2225
  "name": "EventEmitterMixin",
2326
2226
  "module": "src/util/EventEmitterMixin.ts"
2327
2227
  }
2228
+ },
2229
+ {
2230
+ "kind": "field",
2231
+ "name": "#stopFns",
2232
+ "privacy": "private",
2233
+ "type": {
2234
+ "text": "Array<() => void>"
2235
+ },
2236
+ "default": "[]",
2237
+ "inheritedFrom": {
2238
+ "name": "OnFindMixin",
2239
+ "module": "src/util/OnFindMixin.ts"
2240
+ }
2241
+ },
2242
+ {
2243
+ "kind": "method",
2244
+ "name": "onFindRegistration",
2245
+ "return": {
2246
+ "type": {
2247
+ "text": "OnFindRegistration | OnFindRegistration[] | null"
2248
+ }
2249
+ },
2250
+ "inheritedFrom": {
2251
+ "name": "OnFindMixin",
2252
+ "module": "src/util/OnFindMixin.ts"
2253
+ }
2254
+ },
2255
+ {
2256
+ "kind": "method",
2257
+ "name": "#armFind",
2258
+ "privacy": "private",
2259
+ "inheritedFrom": {
2260
+ "name": "OnFindMixin",
2261
+ "module": "src/util/OnFindMixin.ts"
2262
+ }
2328
2263
  }
2329
2264
  ],
2330
2265
  "events": [
@@ -2332,62 +2267,145 @@
2332
2267
  "type": {
2333
2268
  "text": "CustomEvent"
2334
2269
  },
2335
- "description": "Fired after the message is first rendered and initialized",
2336
- "name": "btu-message-ready"
2270
+ "description": "Fired after first render and initialization",
2271
+ "name": "btu-button-group-ready"
2337
2272
  },
2338
2273
  {
2339
2274
  "type": {
2340
- "text": "CustomEvent"
2275
+ "text": "CustomEvent<{value: string}>"
2341
2276
  },
2342
- "description": "Fired when the user clicks the close/dismiss button. Cancelable: the message hides itself (sets `hidden`) unless the listener calls `preventDefault()`.",
2343
- "name": "btu-message-dismiss"
2277
+ "description": "Fired when selection changes (single/multiple modes only)",
2278
+ "name": "btu-button-group-change"
2279
+ },
2280
+ {
2281
+ "type": {
2282
+ "text": "CustomEvent<{name: string | undefined}>"
2283
+ },
2284
+ "description": "Bubbles from child btu-icon-button elements when clicked",
2285
+ "name": "btu-icon-button-click"
2344
2286
  }
2345
2287
  ],
2346
2288
  "attributes": [
2289
+ {
2290
+ "name": "label",
2291
+ "type": {
2292
+ "text": "string"
2293
+ },
2294
+ "default": "''",
2295
+ "description": "Accessible name for the group, announced by assistive devices via aria-label.",
2296
+ "fieldName": "label",
2297
+ "attribute": "label"
2298
+ },
2299
+ {
2300
+ "name": "orientation",
2301
+ "type": {
2302
+ "text": "'horizontal' | 'vertical'"
2303
+ },
2304
+ "default": "'horizontal'",
2305
+ "description": "Layout direction of the buttons.",
2306
+ "fieldName": "orientation",
2307
+ "attribute": "orientation"
2308
+ },
2347
2309
  {
2348
2310
  "name": "variant",
2349
2311
  "type": {
2350
- "text": "MessageVariant"
2312
+ "text": "'connected' | 'spaced'"
2351
2313
  },
2352
- "default": "'info'",
2353
- "description": "Visual style and semantic meaning of the message.",
2314
+ "default": "'connected'",
2315
+ "description": "`connected` collapses shared borders for a joined appearance.\n`spaced` renders buttons with a gap.",
2354
2316
  "fieldName": "variant",
2355
2317
  "attribute": "variant"
2356
2318
  },
2357
2319
  {
2358
- "name": "label",
2320
+ "name": "size",
2359
2321
  "type": {
2360
- "text": "string | undefined"
2322
+ "text": "'sm' | 'md' | 'lg'"
2361
2323
  },
2362
- "description": "The primary message or title text displayed.",
2363
- "fieldName": "label",
2364
- "attribute": "label"
2324
+ "default": "'md'",
2325
+ "description": "Propagates a uniform size to all child buttons.",
2326
+ "fieldName": "size",
2327
+ "attribute": "size"
2365
2328
  },
2366
2329
  {
2367
- "name": "symbol",
2330
+ "name": "disabled",
2368
2331
  "type": {
2369
- "text": "string | undefined"
2332
+ "text": "boolean"
2370
2333
  },
2371
- "description": "Name of the Lucide icon to display. Defaults to a sensible icon per variant.",
2372
- "fieldName": "symbol",
2373
- "attribute": "symbol"
2334
+ "default": "false",
2335
+ "description": "When true, disables all child buttons as a group.",
2336
+ "fieldName": "disabled",
2337
+ "attribute": "disabled"
2374
2338
  },
2375
2339
  {
2376
- "name": "dismissible",
2340
+ "name": "selection",
2377
2341
  "type": {
2378
- "text": "boolean"
2342
+ "text": "'none' | 'single' | 'multiple'"
2379
2343
  },
2380
- "default": "false",
2381
- "description": "If true, a close icon is provided to allow the user to hide the message.",
2382
- "fieldName": "dismissible",
2383
- "attribute": "dismissible"
2344
+ "default": "'none'",
2345
+ "description": "Enables toggle/selection behavior.\n`single` allows one active button; `multiple` allows many.",
2346
+ "fieldName": "selection",
2347
+ "attribute": "selection"
2348
+ },
2349
+ {
2350
+ "name": "value",
2351
+ "type": {
2352
+ "text": "string"
2353
+ },
2354
+ "default": "''",
2355
+ "description": "Reflects the currently selected button value(s).\nFor `single`, the value of the active button.\nFor `multiple`, a comma-delimited list of active values.",
2356
+ "fieldName": "value",
2357
+ "attribute": "value"
2358
+ },
2359
+ {
2360
+ "name": "name",
2361
+ "type": {
2362
+ "text": "string"
2363
+ },
2364
+ "default": "''",
2365
+ "description": "When set, creates hidden input(s) for native form participation.",
2366
+ "fieldName": "name",
2367
+ "attribute": "name"
2368
+ }
2369
+ ],
2370
+ "cssStates": [
2371
+ {
2372
+ "description": "Applied when variant=\"connected\", targetable via :state(btu-connected)",
2373
+ "name": "btu-connected"
2374
+ },
2375
+ {
2376
+ "description": "Applied when variant=\"spaced\", targetable via :state(btu-spaced)",
2377
+ "name": "btu-spaced"
2378
+ },
2379
+ {
2380
+ "description": "Applied when orientation=\"horizontal\", targetable via :state(btu-horizontal)",
2381
+ "name": "btu-horizontal"
2382
+ },
2383
+ {
2384
+ "description": "Applied when orientation=\"vertical\", targetable via :state(btu-vertical)",
2385
+ "name": "btu-vertical"
2386
+ },
2387
+ {
2388
+ "description": "Applied when the group is disabled, targetable via :state(btu-disabled)",
2389
+ "name": "btu-disabled"
2384
2390
  }
2385
2391
  ],
2386
2392
  "mixins": [
2393
+ {
2394
+ "name": "RovingTabindexMixin",
2395
+ "module": "/src/util/RovingTabindexMixin.js"
2396
+ },
2397
+ {
2398
+ "name": "ComponentStatesMixin",
2399
+ "module": "/src/util/ComponentStatesMixin.js"
2400
+ },
2387
2401
  {
2388
2402
  "name": "EventEmitterMixin",
2389
2403
  "module": "/src/util/EventEmitterMixin.js"
2390
2404
  },
2405
+ {
2406
+ "name": "OnFindMixin",
2407
+ "module": "/src/util/OnFindMixin.js"
2408
+ },
2391
2409
  {
2392
2410
  "name": "ReadyMixin",
2393
2411
  "module": "/src/util/ReadyMixin.js"
@@ -2397,7 +2415,7 @@
2397
2415
  "name": "LitElement",
2398
2416
  "package": "lit"
2399
2417
  },
2400
- "tagName": "btu-message",
2418
+ "tagName": "btu-button-group",
2401
2419
  "customElement": true
2402
2420
  }
2403
2421
  ],
@@ -2406,16 +2424,16 @@
2406
2424
  "kind": "js",
2407
2425
  "name": "default",
2408
2426
  "declaration": {
2409
- "name": "Message",
2410
- "module": "src/components/banner/Message.ts"
2427
+ "name": "ButtonGroup",
2428
+ "module": "src/components/button-group/ButtonGroup.ts"
2411
2429
  }
2412
2430
  },
2413
2431
  {
2414
2432
  "kind": "custom-element-definition",
2415
- "name": "btu-message",
2433
+ "name": "btu-button-group",
2416
2434
  "declaration": {
2417
- "name": "Message",
2418
- "module": "src/components/banner/Message.ts"
2435
+ "name": "ButtonGroup",
2436
+ "module": "src/components/button-group/ButtonGroup.ts"
2419
2437
  }
2420
2438
  }
2421
2439
  ]