@brightspot/ui 6.8.0 → 6.8.2

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 (191) hide show
  1. package/CHANGELOG.md +661 -0
  2. package/README.md +18 -2
  3. package/dist/storybook/CHANGELOG.md +661 -0
  4. package/dist/storybook/README.md +195 -0
  5. package/dist/storybook/assets/{ActionBar.stories-CJBn-mku.js → ActionBar.stories-TlhuCumU.js} +31 -28
  6. package/dist/storybook/assets/ActionItem-CjtyGLd5.js +16 -0
  7. package/dist/storybook/assets/{ActionItem.stories-DXzC9C1u.js → ActionItem.stories-BVlNQvfP.js} +2 -2
  8. package/dist/storybook/assets/AiSparkle.stories-DMzc8JUe.js +73 -0
  9. package/dist/storybook/assets/Avatar-C6Li1sPI.js +4 -0
  10. package/dist/storybook/assets/Avatar.stories-COj6XrPn.js +213 -0
  11. package/dist/storybook/assets/AvatarGroup-DgxRTZBe.js +1 -0
  12. package/dist/storybook/assets/AvatarGroup.stories-Dh3e7iN2.js +225 -0
  13. package/dist/storybook/assets/Badge-bWrvpEgX.js +1 -0
  14. package/dist/storybook/assets/{Badge.stories-DEpoJpUZ.js → Badge.stories-KXpmEXpt.js} +4 -4
  15. package/dist/storybook/assets/Banner-FSFX1AIb.css +1 -0
  16. package/dist/storybook/assets/{Banner.stories--jeU6fKq.js → Banner.stories-Cnhm3dXK.js} +14 -14
  17. package/dist/storybook/assets/Button-DE0s-gat.js +10 -0
  18. package/dist/storybook/assets/Button.stories-Cwg1YZEb.js +54 -0
  19. package/dist/storybook/assets/ButtonGroup-CoLI5nGO.js +1 -0
  20. package/dist/storybook/assets/{ButtonGroup.stories-CerE_0AC.js → ButtonGroup.stories-VhnKPP1n.js} +7 -7
  21. package/dist/storybook/assets/Card-DyntwdY-.css +1 -0
  22. package/dist/storybook/assets/{Card.stories-5SxHtU3Y.js → Card.stories-BgpL90zB.js} +60 -29
  23. package/dist/storybook/assets/{Celebrate.stories-COS789GX.js → Celebrate.stories-D3NJgYcX.js} +5 -5
  24. package/dist/storybook/assets/Checkbox-BC1T_KxW.js +30 -0
  25. package/dist/storybook/assets/{Checkbox.stories-DuQu38Gv.js → Checkbox.stories-AFQNz7dQ.js} +10 -10
  26. package/dist/storybook/assets/CircularProgress-eqVb2jUD.js +42 -0
  27. package/dist/storybook/assets/{CircularProgress.stories-Lf2Ws46Y.js → CircularProgress.stories-B6t8VhmJ.js} +2 -2
  28. package/dist/storybook/assets/ClipboardMixin-DcxrOy5B.js +1 -0
  29. package/dist/storybook/assets/{ClipboardMixin.stories-BT5KfLZ_.js → ClipboardMixin.stories-BqtQMjmS.js} +6 -6
  30. package/dist/storybook/assets/{Color-6BZIO3FS-BNBxjqrS.js → Color-6BZIO3FS-CDluohEc.js} +1 -1
  31. package/dist/storybook/assets/{Colors.stories-Ck6bXbd0.js → Colors.stories-CqTniDIa.js} +1 -1
  32. package/dist/storybook/assets/{CombinedEffects.stories-DLELdAMr.js → CombinedEffects.stories-FwW0chy5.js} +2 -2
  33. package/dist/storybook/assets/{ComponentStatesMixin-B6uJL_2c.js → ComponentStatesMixin-hUqOL2aW.js} +1 -1
  34. package/dist/storybook/assets/{ComponentStatesMixin.stories-fiyrALkY.js → ComponentStatesMixin.stories-CwGoq685.js} +1 -1
  35. package/dist/storybook/assets/{CopyToClipboard.stories-2OfBH19_.js → CopyToClipboard.stories-DUGjgtQx.js} +18 -10
  36. package/dist/storybook/assets/{Debounce.stories-C9qo3lIN.js → Debounce.stories-CrWfXhKS.js} +1 -1
  37. package/dist/storybook/assets/{DocsRenderer-LL677BLK-CBVYZYjR.js → DocsRenderer-LL677BLK-9e51z9Xc.js} +3 -3
  38. package/dist/storybook/assets/{Dropdown.stories-15ZDMkRz.js → Dropdown.stories-BsBxV0wp.js} +2 -2
  39. package/dist/storybook/assets/DropdownMenu-B-LvOIGj.js +42 -0
  40. package/dist/storybook/assets/EmptyState-h0A4Qpiu.css +1 -0
  41. package/dist/storybook/assets/{EmptyState.stories-Bjb8hzYj.js → EmptyState.stories-CJ1w8Tp2.js} +33 -21
  42. package/dist/storybook/assets/EscaAvatar.stories-BoLLSj9q.js +140 -0
  43. package/dist/storybook/assets/{Events.stories-BV0vMF2I.js → Events.stories-C3sTBwPJ.js} +2 -2
  44. package/dist/storybook/assets/{Heading.stories-CEUJqUbQ.js → Heading.stories-jmXDRBmM.js} +1 -1
  45. package/dist/storybook/assets/{HueRipple.stories-CwvtcOM_.js → HueRipple.stories-BPx5aSYd.js} +2 -2
  46. package/dist/storybook/assets/Icon-CWyJRQf7.js +34409 -0
  47. package/dist/storybook/assets/{Icon.stories-AB_v-61c.js → Icon.stories-iYBxmv2x.js} +10 -10
  48. package/dist/storybook/assets/IconButton-Di5Rgs7F.js +12 -0
  49. package/dist/storybook/assets/{IconButton.stories-BHuHsM3k.js → IconButton.stories-DENLoxVk.js} +2 -2
  50. package/dist/storybook/assets/LinearProgress-D9ngIVlv.js +25 -0
  51. package/dist/storybook/assets/{LinearProgress.stories-BNN5SXe3.js → LinearProgress.stories-u90B_VJR.js} +2 -2
  52. package/dist/storybook/assets/Message-CM3eexdu.css +1 -0
  53. package/dist/storybook/assets/Message-nFAa55c_.js +28 -0
  54. package/dist/storybook/assets/{Message.stories-DdLhMXnb.js → Message.stories-B4rpz5rI.js} +2 -2
  55. package/dist/storybook/assets/OnFindMixin-oL1bvTFj.js +1 -0
  56. package/dist/storybook/assets/{OnFindMixin.stories-B-5TeBOF.js → OnFindMixin.stories-CdeS5sFA.js} +9 -9
  57. package/dist/storybook/assets/Pagination-CSWcjuDU.js +88 -0
  58. package/dist/storybook/assets/{Pagination.stories-C9zsOdb2.js → Pagination.stories-Da2WzJkv.js} +33 -33
  59. package/dist/storybook/assets/{Popover.stories-BiqIwebU.js → Popover.stories-CVljlVHc.js} +16 -16
  60. package/dist/storybook/assets/ProgressMixin-CeSrn0_P.js +1 -0
  61. package/dist/storybook/assets/Radio-rvfGhZwK.js +25 -0
  62. package/dist/storybook/assets/{Radio.stories-BmrEdPkm.js → Radio.stories-B0wHdJuc.js} +6 -6
  63. package/dist/storybook/assets/{RadioGroup.stories-ChARVXs3.js → RadioGroup.stories-D8krOSlP.js} +22 -22
  64. package/dist/storybook/assets/{ReadyMixin-BbuzH3uO.js → ReadyMixin-CvX_eidU.js} +1 -1
  65. package/dist/storybook/assets/RovingTabindexMixin-9z8lwaM9.js +1 -0
  66. package/dist/storybook/assets/{RovingTabindexMixin.stories-xm4b394_.js → RovingTabindexMixin.stories-Y8vBWjJp.js} +5 -5
  67. package/dist/storybook/assets/{Rtc.stories-DdcMaELA.js → Rtc.stories-D3Y-z8y_.js} +1 -1
  68. package/dist/storybook/assets/{ScrollShadow.stories-CI67Ougx.js → ScrollShadow.stories-1KD0lWHX.js} +1 -1
  69. package/dist/storybook/assets/{Switch.stories-DOqrRkxc.js → Switch.stories-Bsqvm_HE.js} +60 -27
  70. package/dist/storybook/assets/{Tab.stories-DN8o4cf_.js → Tab.stories-CzcTisNs.js} +7 -7
  71. package/dist/storybook/assets/Tabs-DdpYNZSW.js +17 -0
  72. package/dist/storybook/assets/{Tabs.stories-BEowfCcl.js → Tabs.stories-UOS3V0J4.js} +6 -6
  73. package/dist/storybook/assets/{Throttle.stories-BZ_nsuw1.js → Throttle.stories-C8jgzh6e.js} +1 -1
  74. package/dist/storybook/assets/Tooltip.stories-B5BoI0cH.js +143 -0
  75. package/dist/storybook/assets/TooltipMixin-CVKslCDt.js +1 -0
  76. package/dist/storybook/assets/{Upload.stories-sAEiabwq.js → Upload.stories-BsQDCDqo.js} +102 -52
  77. package/dist/storybook/assets/UploadItem-CYQqNwUF.js +54 -0
  78. package/dist/storybook/assets/{UploadItem.stories-C19JMfmB.js → UploadItem.stories-_le7XBTV.js} +4 -4
  79. package/dist/storybook/assets/{Welcome.stories-C30jg0r1.js → Welcome.stories-rramKkhd.js} +38 -8
  80. package/dist/storybook/assets/Widget-elBzGg8w.css +1 -0
  81. package/dist/storybook/assets/Widget.stories-DtbAaklk.js +279 -0
  82. package/dist/storybook/assets/{WithTooltip-65CFNBJE-PFRy5maL.js → WithTooltip-65CFNBJE-DK6GcBuR.js} +1 -1
  83. package/dist/storybook/assets/ai-sparkle-BZMJJAxY.js +1 -0
  84. package/dist/storybook/assets/aria-D5THOgos.js +1 -0
  85. package/dist/storybook/assets/{blocks-DLjjvsFT.js → blocks-DHnzPh43.js} +5 -5
  86. package/dist/storybook/assets/esca-glow-BwdhBvIX.js +2 -0
  87. package/dist/storybook/assets/esca-idle-B-fumiIb.js +1 -0
  88. package/dist/storybook/assets/esca-search-rwNfo19I.js +1 -0
  89. package/dist/storybook/assets/esca-task-complete-BAJP2dY2.js +1 -0
  90. package/dist/storybook/assets/esca-wave-Bjs4CUR7.js +1 -0
  91. package/dist/storybook/assets/{formatter-EIJCOSYU-D39uscG_.js → formatter-EIJCOSYU-qig-qWlG.js} +1 -1
  92. package/dist/storybook/assets/i18n-BQ-Uj-0B.js +1 -0
  93. package/dist/storybook/assets/if-defined-DerKRcyC.js +1 -0
  94. package/dist/storybook/assets/{iframe-B9buZjP7.js → iframe-DlBK9Drk.js} +24 -24
  95. package/dist/storybook/assets/{index-BdEHup-4.js → index-CItQyB37.js} +1 -1
  96. package/dist/storybook/assets/lottie_svg-C3v6xdng.js +2 -0
  97. package/dist/storybook/assets/{onFind-CGzSFqNN.js → onFind-Ci35eu2y.js} +1 -1
  98. package/dist/storybook/assets/{onFind.stories-Dq71qO14.js → onFind.stories-BmbwWWo1.js} +1 -1
  99. package/dist/storybook/assets/{onRemove.stories-B1GqLH_U.js → onRemove.stories-DFWCIgE4.js} +1 -1
  100. package/dist/storybook/assets/{onVisible.stories-BNKxOfLw.js → onVisible.stories-B-onpgE-.js} +1 -1
  101. package/dist/storybook/assets/property-Bmq4RTSP.js +1 -0
  102. package/dist/storybook/assets/ref-BhKk4SDh.js +1 -0
  103. package/dist/storybook/assets/state-DVIUS0Gf.js +1 -0
  104. package/dist/storybook/assets/{style-map-qCiIYcp5.js → style-map-DE4G47KD.js} +1 -1
  105. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-CUM-CaRF.js → syntaxhighlighter-ED5Y7EFY-Dfgnal1d.js} +1 -1
  106. package/dist/storybook/custom-elements.json +11835 -0
  107. package/dist/storybook/docs/components/ActionBar.md +55 -0
  108. package/dist/storybook/docs/components/ActionItem.md +50 -0
  109. package/dist/storybook/docs/components/AiSparkle.md +33 -0
  110. package/dist/storybook/docs/components/Avatar.md +45 -0
  111. package/dist/storybook/docs/components/AvatarGroup.md +34 -0
  112. package/dist/storybook/docs/components/Badge.md +47 -0
  113. package/dist/storybook/docs/components/Banner.md +35 -0
  114. package/dist/storybook/docs/components/ButtonGroup.md +65 -0
  115. package/dist/storybook/docs/components/Card.md +67 -0
  116. package/dist/storybook/docs/components/Checkbox.md +49 -0
  117. package/dist/storybook/docs/components/CircularProgress.md +40 -0
  118. package/dist/storybook/docs/components/CopyToClipboard.md +51 -0
  119. package/dist/storybook/docs/components/Dropdown.md +74 -0
  120. package/dist/storybook/docs/components/DropdownItem.md +45 -0
  121. package/dist/storybook/docs/components/DropdownMenu.md +41 -0
  122. package/dist/storybook/docs/components/EmptyState.md +62 -0
  123. package/dist/storybook/docs/components/EscaAvatar.md +40 -0
  124. package/dist/storybook/docs/components/Icon.md +40 -0
  125. package/dist/storybook/docs/components/IconButton.md +36 -0
  126. package/dist/storybook/docs/components/LinearProgress.md +37 -0
  127. package/dist/storybook/docs/components/Message.md +50 -0
  128. package/dist/storybook/docs/components/Pagination.md +70 -0
  129. package/dist/storybook/docs/components/Popover.md +59 -0
  130. package/dist/storybook/docs/components/README.md +48 -0
  131. package/dist/storybook/docs/components/Radio.md +55 -0
  132. package/dist/storybook/docs/components/RadioGroup.md +34 -0
  133. package/dist/storybook/docs/components/Switch.md +48 -0
  134. package/dist/storybook/docs/components/Tab.md +40 -0
  135. package/dist/storybook/docs/components/Tabs.md +49 -0
  136. package/dist/storybook/docs/components/Upload.md +63 -0
  137. package/dist/storybook/docs/components/UploadItem.md +30 -0
  138. package/dist/storybook/docs/components/Widget.md +88 -0
  139. package/dist/storybook/docs/dari-elements.md +55 -0
  140. package/dist/storybook/iframe.html +1 -1
  141. package/dist/storybook/index.html +29 -2
  142. package/dist/storybook/llms-full.txt +1721 -0
  143. package/dist/storybook/llms.txt +65 -0
  144. package/dist/storybook/project.json +1 -1
  145. package/dist/storybook/robots.txt +7 -0
  146. package/dist/storybook/sb-addons/storybook-3/manager-bundle.js +1 -1
  147. package/dist/storybook/sitemap.xml +90 -0
  148. package/docs/components/ActionBar.md +41 -64
  149. package/docs/components/ActionItem.md +50 -96
  150. package/docs/components/AiSparkle.md +23 -60
  151. package/docs/components/Avatar.md +45 -88
  152. package/docs/components/AvatarGroup.md +24 -44
  153. package/docs/components/Badge.md +34 -62
  154. package/docs/components/Banner.md +25 -39
  155. package/docs/components/ButtonGroup.md +65 -99
  156. package/docs/components/Card.md +67 -83
  157. package/docs/components/Checkbox.md +49 -91
  158. package/docs/components/CircularProgress.md +40 -84
  159. package/docs/components/CopyToClipboard.md +35 -40
  160. package/docs/components/Dropdown.md +74 -120
  161. package/docs/components/DropdownItem.md +45 -81
  162. package/docs/components/DropdownMenu.md +30 -70
  163. package/docs/components/EmptyState.md +45 -62
  164. package/docs/components/EscaAvatar.md +30 -61
  165. package/docs/components/Icon.md +29 -62
  166. package/docs/components/IconButton.md +36 -83
  167. package/docs/components/LinearProgress.md +28 -70
  168. package/docs/components/Message.md +38 -63
  169. package/docs/components/Pagination.md +70 -100
  170. package/docs/components/Popover.md +46 -79
  171. package/docs/components/README.md +34 -40
  172. package/docs/components/Radio.md +55 -105
  173. package/docs/components/RadioGroup.md +26 -55
  174. package/docs/components/Switch.md +48 -84
  175. package/docs/components/Tab.md +30 -70
  176. package/docs/components/Tabs.md +49 -86
  177. package/docs/components/Upload.md +63 -112
  178. package/docs/components/UploadItem.md +22 -53
  179. package/docs/components/Widget.md +66 -67
  180. package/llms.txt +63 -0
  181. package/package.json +9 -6
  182. package/dist/storybook/assets/AiSparkle.stories-BfjT5jrJ.js +0 -72
  183. package/dist/storybook/assets/Avatar.stories-D8lnIZaY.js +0 -213
  184. package/dist/storybook/assets/AvatarGroup.stories-Cz9oVah0.js +0 -225
  185. package/dist/storybook/assets/Button-2ucj5lUP.js +0 -10
  186. package/dist/storybook/assets/Button.stories-ndl1RJd7.js +0 -54
  187. package/dist/storybook/assets/EscaAvatar.stories-Rc2MSzCX.js +0 -139
  188. package/dist/storybook/assets/LucideDynamicLoader-BuoNL33C.js +0 -1
  189. package/dist/storybook/assets/Tooltip.stories-3bar43ZN.js +0 -143
  190. package/dist/storybook/assets/Widget.stories-9-1XpZNl.js +0 -233
  191. package/dist/storybook/assets/if-defined-BwWBCoAU.js +0 -1
@@ -1,99 +1,65 @@
1
- # `src/components/button-group/ButtonGroup.ts`:
2
-
3
- ## class: `ButtonGroup`, `btu-button-group`
4
-
5
- ### Superclass
6
-
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
-
11
- ### Mixins
12
-
13
- | Name | Module | Package |
14
- | ---------------------- | --------------------------------- | ------- |
15
- | `RovingTabindexMixin` | /src/util/RovingTabindexMixin.js | |
16
- | `ComponentStatesMixin` | /src/util/ComponentStatesMixin.js | |
17
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
18
- | `OnFindMixin` | /src/util/OnFindMixin.js | |
19
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
20
-
21
- ### Static Fields
22
-
23
- | Name | Privacy | Type | Default | Description | Inherited From |
24
- | --------- | ------- | ---- | ------- | ----------- | -------------- |
25
- | `tagName` | | | | | |
26
-
27
- ### Fields
28
-
29
- | Name | Privacy | Type | Default | Description | Inherited From |
30
- | ------------------------- | ------- | ---------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
31
- | `label` | | `string` | `''` | Accessible name for the group, announced by assistive devices via aria-label. | |
32
- | `orientation` | | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout direction of the buttons. | |
33
- | `variant` | | `'connected' \| 'spaced'` | `'connected'` | \`connected\` collapses shared borders for a joined appearance.
\`spaced\` renders buttons with a gap. | |
34
- | `size` | | `'sm' \| 'md' \| 'lg'` | `'md'` | Propagates a uniform size to all child buttons. | |
35
- | `disabled` | | `boolean` | `false` | When true, disables all child buttons as a group. | |
36
- | `selection` | | `'none' \| 'single' \| 'multiple'` | `'none'` | Enables toggle/selection behavior.
\`single\` allows one active button; \`multiple\` allows many. | |
37
- | `value` | | `string` | `''` | Reflects the currently selected button value(s).
For \`single\`, the value of the active button.
For \`multiple\`, a comma-delimited list of active values. | |
38
- | `name` | | `string` | `''` | When set, creates hidden input(s) for native form participation. | |
39
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
40
- | `#stopFns` | private | `Array<() => void>` | `[]` | | OnFindMixin |
41
-
42
- ### Methods
43
-
44
- | Name | Privacy | Description | Parameters | Return | Inherited From |
45
- | -------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------- | ----------------- |
46
- | `emit` | | Dispatches a type-safe CustomEvent with standardized configuration.&#xA;&#xA;All events are configured with:&#xA;- bubbles: true (event propagates up the DOM tree)&#xA;- cancelable: false (event cannot be cancelled)&#xA;- composed: true (event crosses shadow DOM boundaries) | `type: K, detail: UnpackCustomEvent<CustomEventMap[K]>` | `boolean` | EventEmitterMixin |
47
- | `onFindRegistration` | | | | `OnFindRegistration \| OnFindRegistration[] \| null` | OnFindMixin |
48
- | `#armFind` | private | | | | OnFindMixin |
49
-
50
- ### Events
51
-
52
- | Name | Type | Description | Inherited From |
53
- | ------------------------- | ------------------------------------------ | --------------------------------------------------------- | -------------- |
54
- | `btu-button-group-ready` | `CustomEvent` | Fired after first render and initialization | |
55
- | `btu-button-group-change` | `CustomEvent<{value: string}>` | Fired when selection changes (single/multiple modes only) | |
56
- | `btu-icon-button-click` | `CustomEvent<{name: string \| undefined}>` | Bubbles from child btu-icon-button elements when clicked | |
57
-
58
- ### Attributes
59
-
60
- | Name | Field | Inherited From |
61
- | ------------- | ----------- | -------------- |
62
- | `label` | label | |
63
- | `orientation` | orientation | |
64
- | `variant` | variant | |
65
- | `size` | size | |
66
- | `disabled` | disabled | |
67
- | `selection` | selection | |
68
- | `value` | value | |
69
- | `name` | name | |
70
-
71
- ### CSS Properties
72
-
73
- | Name | Default | Description |
74
- | ---------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
75
- | `--button-group-gap` | | Space between buttons when variant="spaced" (default: spacing.sm) |
76
- | `--button-group-border-radius` | | Corner radius of outer edges when variant="connected" (default: 0.5rem) |
77
- | `--button-group-border-color` | | Internal divider color between connected buttons (default: gray-300) |
78
- | `--button-group-selection-bg` | | Background of a toggled/selected child (default: child's --button-tint-subtle) |
79
- | `--button-group-selection-color` | | Text/icon color of a toggled/selected child (default: child's --button-tint-strong) |
80
- | `--button-group-shimmer-highlight` | | 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): |
81
- | `--button-tint-subtle` | | Subtle tint of the child button's color family (read-only here) |
82
- | `--button-tint-strong` | | Strong tint of the child button's color family (read-only here) |
83
- | `--button-tint-highlight` | | Highlight tint of the child button's color family (read-only here) |
84
-
85
- ### Slots
86
-
87
- | Name | Description |
88
- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
89
- | | 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. |
90
- | `end` | Pushes the child to the end of the group via auto-margin (vertical: bottom, horizontal: right) |
91
-
92
- <hr/>
93
-
94
- ## Exports
95
-
96
- | Kind | Name | Declaration | Module | Package |
97
- | --------------------------- | ------------------ | ----------- | ------------------------------------------ | ------- |
98
- | `js` | `default` | ButtonGroup | src/components/button-group/ButtonGroup.ts | |
99
- | `custom-element-definition` | `btu-button-group` | ButtonGroup | src/components/button-group/ButtonGroup.ts | |
1
+ # `<btu-button-group>`
2
+
3
+ A semantic container for grouping related buttons together.
4
+
5
+ Supports connected (joined) and spaced layouts, horizontal and vertical
6
+ orientation, group-level size and disabled propagation, and optional
7
+ toggle/selection modes (single-select or multi-select).
8
+
9
+ ```js
10
+ import '@brightspot/ui/components/button-group/ButtonGroup.js'
11
+ ```
12
+
13
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-button-group--docs
14
+
15
+ ## Attributes
16
+
17
+ | Attribute | Property | Type | Default | Description |
18
+ | --- | --- | --- | --- | --- |
19
+ | `label` | `label` | `string` | `''` | Accessible name for the group, announced by assistive devices via aria-label. |
20
+ | `orientation` | `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | Layout direction of the buttons. |
21
+ | `variant` | `variant` | `'connected' \| 'spaced'` | `'connected'` | `connected` collapses shared borders for a joined appearance. `spaced` renders buttons with a gap. |
22
+ | `size` | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Propagates a uniform size to all child buttons. |
23
+ | `disabled` | `disabled` | `boolean` | `false` | When true, disables all child buttons as a group. |
24
+ | `selection` | `selection` | `'none' \| 'single' \| 'multiple'` | `'none'` | Enables toggle/selection behavior. `single` allows one active button; `multiple` allows many. |
25
+ | `value` | `value` | `string` | `''` | Reflects the currently selected button value(s). For `single`, the value of the active button. For `multiple`, a comma-delimited list of active values. |
26
+ | `name` | `name` | `string` | `''` | When set, creates hidden input(s) for native form participation. |
27
+
28
+ ## Events
29
+
30
+ | Event | Detail | Description |
31
+ | --- | --- | --- |
32
+ | `btu-button-group-ready` | | Fired after first render and initialization |
33
+ | `btu-button-group-change` | `{value: string}` | Fired when selection changes (single/multiple modes only) |
34
+ | `btu-icon-button-click` | `{name: string \| undefined}` | Bubbles from child btu-icon-button elements when clicked |
35
+
36
+ ## Slots
37
+
38
+ | Slot | Description |
39
+ | --- | --- |
40
+ | (default) | 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. |
41
+ | `end` | Pushes the child to the end of the group via auto-margin (vertical: bottom, horizontal: right) |
42
+
43
+ ## CSS custom properties
44
+
45
+ | Property | Description |
46
+ | --- | --- |
47
+ | `--button-group-gap` | Space between buttons when variant="spaced" (default: spacing.sm) |
48
+ | `--button-group-border-radius` | Corner radius of outer edges when variant="connected" (default: 0.5rem) |
49
+ | `--button-group-border-color` | Internal divider color between connected buttons (default: gray-300) |
50
+ | `--button-group-selection-bg` | Background of a toggled/selected child (default: child's --button-tint-subtle) |
51
+ | `--button-group-selection-color` | Text/icon color of a toggled/selected child (default: child's --button-tint-strong) |
52
+ | `--button-group-shimmer-highlight` | 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): |
53
+ | `--button-tint-subtle` | Subtle tint of the child button's color family (read-only here) |
54
+ | `--button-tint-strong` | Strong tint of the child button's color family (read-only here) |
55
+ | `--button-tint-highlight` | Highlight tint of the child button's color family (read-only here) |
56
+
57
+ ## CSS states
58
+
59
+ | State | Description |
60
+ | --- | --- |
61
+ | `:state(btu-connected)` | Applied when variant="connected", targetable via :state(btu-connected) |
62
+ | `:state(btu-spaced)` | Applied when variant="spaced", targetable via :state(btu-spaced) |
63
+ | `:state(btu-horizontal)` | Applied when orientation="horizontal", targetable via :state(btu-horizontal) |
64
+ | `:state(btu-vertical)` | Applied when orientation="vertical", targetable via :state(btu-vertical) |
65
+ | `:state(btu-disabled)` | Applied when the group is disabled, targetable via :state(btu-disabled) |
@@ -1,83 +1,67 @@
1
- # `src/components/card/Card.ts`:
2
-
3
- ## class: `Card`, `btu-card`
4
-
5
- ### Superclass
6
-
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
-
11
- ### Mixins
12
-
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `OnFindMixin` | /src/util/OnFindMixin.js | |
17
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
18
-
19
- ### Fields
20
-
21
- | Name | Privacy | Type | Default | Description | Inherited From |
22
- | -------------- | ------- | --------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
23
- | `heading` | | `string` | `''` | Heading text displayed on the card. | |
24
- | `headingLevel` | | `number` | `2` | Heading level (1-6) for the card heading element. Drives the semantic h1–h6 tag.&#xA;Invalid values log a warning and fall back to the default (2). | |
25
- | `description` | | `string \| undefined` | | Supporting body text. Truncated to 3 lines via CSS. | |
26
- | `compact` | | `boolean` | `false` | Renders the card as a compact quick-start tile.&#xA;Badge, image, fields, and secondary-action children are ignored in this case. | |
27
- | `disabled` | | `boolean` | `false` | Whether the card is disabled. | |
28
- | `href` | | `string \| undefined` | | Navigation URL for the entire card surface.&#xA;When set, the card renders as a link. | |
29
- | `#stopFns` | private | `Array<() => void>` | `[]` | | OnFindMixin |
30
-
31
- ### Methods
32
-
33
- | Name | Privacy | Description | Parameters | Return | Inherited From |
34
- | -------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------- | ----------------- |
35
- | `emit` | | Dispatches a type-safe CustomEvent with standardized configuration.&#xA;&#xA;All events are configured with:&#xA;- bubbles: true (event propagates up the DOM tree)&#xA;- cancelable: false (event cannot be cancelled)&#xA;- composed: true (event crosses shadow DOM boundaries) | `type: K, detail: UnpackCustomEvent<CustomEventMap[K]>` | `boolean` | EventEmitterMixin |
36
- | `onFindRegistration` | | | | `OnFindRegistration \| OnFindRegistration[] \| null` | OnFindMixin |
37
- | `#armFind` | private | | | | OnFindMixin |
38
-
39
- ### Events
40
-
41
- | Name | Type | Description | Inherited From |
42
- | ---------------- | ------------- | ------------------------------------------- | -------------- |
43
- | `btu-card-ready` | `CustomEvent` | Fired after first render and initialization | |
44
-
45
- ### Attributes
46
-
47
- | Name | Field | Inherited From |
48
- | --------------- | ------------ | -------------- |
49
- | `heading` | heading | |
50
- | `heading-level` | headingLevel | |
51
- | `description` | description | |
52
- | `compact` | compact | |
53
- | `disabled` | disabled | |
54
- | `href` | href | |
55
-
56
- ### CSS Properties
57
-
58
- | Name | Default | Description |
59
- | ------------------------ | ------- | ----------------------------------------------------------------------------------------------------- |
60
- | `--card-min-width` | | Minimum width of the card (default: 160px) |
61
- | `--card-background` | | Background color (default: var(--btu-theme-white)) |
62
- | `--card-border` | | Border style (default: 1px solid gray-200) |
63
- | `--card-radius` | | Corner rounding (default: 8px) |
64
- | `--card-img-ratio` | | Fixed aspect ratio for the thumbnail when an \`\<img>\` child is present (default: 16 / 9) |
65
- | `--card-img-fit` | | Object-fit mode for the \`\<img>\` child thumbnail (default: contain) |
66
- | `--card-icon-background` | | Background color behind the composed icon (compact card and media-image fallback) (default: gray-100) |
67
-
68
- ### Slots
69
-
70
- | Name | Description |
71
- | ------------------ | ------------------------------------------------------------------------------- |
72
- | `action` | Intended for a single action in the top-right corner of the card. |
73
- | `secondary-action` | Intended for a single action next to the title. |
74
- | `fields` | Intended for additional metadata fields displayed below the title & description |
75
-
76
- <hr/>
77
-
78
- ## Exports
79
-
80
- | Kind | Name | Declaration | Module | Package |
81
- | --------------------------- | ---------- | ----------- | --------------------------- | ------- |
82
- | `js` | `default` | Card | src/components/card/Card.ts | |
83
- | `custom-element-definition` | `btu-card` | Card | src/components/card/Card.ts | |
1
+ # `<btu-card>`
2
+
3
+ A flexible content container for presenting and organizing information.
4
+
5
+ The layout is driven by composition:
6
+
7
+ - a direct `<img>` or `<btu-icon>` child renders the media layout (image area);
8
+ the icon shows in the image area as the fallback.
9
+ - neither child renders a text-only card.
10
+ - the `compact` attribute renders a quick-start tile; only a
11
+ featured `<btu-icon>` and the `action` slot are used.
12
+
13
+ Composable children, all relocated into the layout automatically:
14
+ - `<img>` — the thumbnail.
15
+ - `<btu-icon>` — the featured icon (compact) or the media image fallback (shown
16
+ when no `<img>` is provided or it fails to load; defaults to `file-text`). The card sizes it.
17
+ - `<btu-badge>` — a status badge.
18
+ - `slot="action"` / `slot="secondary-action"` — a control in the top-right corner
19
+ or next to the title. A `<btu-checkbox>` there stays visible and toggles the
20
+ selected styling (listen for the bubbling `btu-checkbox-change` event); buttons
21
+ reveal on hover/focus.
22
+
23
+ Cards are full-width by default and rely on the parent layout (grid or flex) to
24
+ control their size.
25
+
26
+ ```js
27
+ import '@brightspot/ui/components/card/Card.js'
28
+ ```
29
+
30
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-card--docs
31
+
32
+ ## Attributes
33
+
34
+ | Attribute | Property | Type | Default | Description |
35
+ | --- | --- | --- | --- | --- |
36
+ | `heading` | `heading` | `string` | `''` | Heading text displayed on the card. |
37
+ | `heading-level` | `headingLevel` | `number` | `2` | Heading level (1-6) for the card heading element. Drives the semantic h1–h6 tag. Invalid values log a warning and fall back to the default (2). |
38
+ | `description` | `description` | `string \| undefined` | | Supporting body text. Truncated to 3 lines via CSS. |
39
+ | `compact` | `compact` | `boolean` | `false` | Renders the card as a compact quick-start tile. Badge, image, fields, and secondary-action children are ignored in this case. |
40
+ | `disabled` | `disabled` | `boolean` | `false` | Whether the card is disabled. |
41
+ | `href` | `href` | `string \| undefined` | | Navigation URL for the entire card surface. When set, the card renders as a link. |
42
+
43
+ ## Events
44
+
45
+ | Event | Detail | Description |
46
+ | --- | --- | --- |
47
+ | `btu-card-ready` | | Fired after first render and initialization |
48
+
49
+ ## Slots
50
+
51
+ | Slot | Description |
52
+ | --- | --- |
53
+ | `action` | Intended for a single action in the top-right corner of the card. |
54
+ | `secondary-action` | Intended for a single action next to the title. |
55
+ | `fields` | Intended for additional metadata fields displayed below the title & description |
56
+
57
+ ## CSS custom properties
58
+
59
+ | Property | Description |
60
+ | --- | --- |
61
+ | `--card-min-width` | Minimum width of the card (default: 160px) |
62
+ | `--card-background` | Background color (default: var(--btu-theme-white)) |
63
+ | `--card-border` | Border style (default: 1px solid gray-200) |
64
+ | `--card-radius` | Corner rounding (default: 8px) |
65
+ | `--card-img-ratio` | Fixed aspect ratio for the thumbnail when an `<img>` child is present (default: 16 / 9) |
66
+ | `--card-img-fit` | Object-fit mode for the `<img>` child thumbnail (default: contain) |
67
+ | `--card-icon-background` | Background color behind the composed icon (compact card and media-image fallback) (default: gray-100) |
@@ -1,91 +1,49 @@
1
- # `src/components/checkbox/Checkbox.ts`:
2
-
3
- ## class: `Checkbox`, `btu-checkbox`
4
-
5
- ### Superclass
6
-
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
-
11
- ### Mixins
12
-
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
17
-
18
- ### Fields
19
-
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ------------------------- | ------- | --------------------- | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
22
- | `label` | | `string \| undefined` | | The text label displayed next to the checkbox. | |
23
- | `description` | | `string \| undefined` | | Optional helper text displayed below the label. | |
24
- | `size` | | `'sm' \| 'md'` | `'sm'` | Controls the scale of the checkbox and associated typography. | |
25
- | `checked` | | `boolean` | `false` | Whether the checkbox is currently selected. | |
26
- | `indeterminate` | | `boolean` | `false` | Whether the checkbox is in a partially selected state. Sets \`aria-checked='mixed'\`&#xA;and activates the native \`:indeterminate\` pseudo-class. Cleared automatically when&#xA;the user clicks the checkbox. | |
27
- | `disabled` | | `boolean` | `false` | If true, the checkbox is non-interactive and visually muted. | |
28
- | `invalid` | | `boolean` | `false` | If true, displays error styling on the checkbox. | |
29
- | `error` | | `string \| undefined` | | Error message text displayed below the checkbox when validation fails.&#xA;Setting this also activates error styling without needing to set invalid. | |
30
- | `required` | | `boolean` | `false` | Marks the field as mandatory for form submission. | |
31
- | `name` | | `string \| undefined` | | Name of the form control submitted with the form data. | |
32
- | `value` | | `string` | `'on'` | Value associated with the checkbox when submitted. | |
33
- | `_userInitiated` | private | `boolean` | `false` | | |
34
- | `_initialClasses` | private | `string[]` | `[]` | | |
35
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
36
- | `_descId` | private | | `` `checkbox-desc-${crypto.randomUUID()}` `` | | |
37
- | `_errorId` | private | | `` `checkbox-error-${crypto.randomUUID()}` `` | | |
38
- | `_handleClick` | private | | | | |
39
- | `_describedBy` | private | `string \| undefined` | | | |
40
- | `_iconSymbol` | private | `'minus' \| 'check'` | | | |
41
-
42
- ### Methods
43
-
44
- | Name | Privacy | Description | Parameters | Return | Inherited From |
45
- | ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
46
- | `_onInputChange` | private | | `e: Event` | `void` | |
47
- | `emit` | | Dispatches a type-safe CustomEvent with standardized configuration.&#xA;&#xA;All events are configured with:&#xA;- bubbles: true (event propagates up the DOM tree)&#xA;- cancelable: false (event cannot be cancelled)&#xA;- composed: true (event crosses shadow DOM boundaries) | `type: K, detail: UnpackCustomEvent<CustomEventMap[K]>` | `boolean` | EventEmitterMixin |
48
-
49
- ### Events
50
-
51
- | Name | Type | Description | Inherited From |
52
- | --------------------- | ----------------------------------- | ---------------------------------------------------------- | -------------- |
53
- | `btu-checkbox-ready` | `CustomEvent` | Fired after the checkbox is first rendered and initialized | |
54
- | `btu-checkbox-change` | `CustomEvent<{ checked: boolean }>` | Fired when the user toggles the checked state | |
55
-
56
- ### Attributes
57
-
58
- | Name | Field | Inherited From |
59
- | --------------- | ------------- | -------------- |
60
- | `label` | label | |
61
- | `description` | description | |
62
- | `size` | size | |
63
- | `checked` | checked | |
64
- | `indeterminate` | indeterminate | |
65
- | `disabled` | disabled | |
66
- | `invalid` | invalid | |
67
- | `error` | error | |
68
- | `required` | required | |
69
- | `name` | name | |
70
- | `value` | value | |
71
-
72
- ### CSS Properties
73
-
74
- | Name | Default | Description |
75
- | -------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
76
- | `--checkbox-color-primary` | | Background and border color when checked or indeterminate, and tinted background/border on unchecked hover (default: oklch(var(--btu-theme-primary-700))) |
77
- | `--checkbox-color-border` | | Border color in the unchecked state (default: oklch(var(--btu-theme-gray-300))) |
78
- | `--checkbox-color-error` | | Border and text color in the error state (default: oklch(var(--btu-theme-error-600))) |
79
- | `--checkbox-border-radius` | | Corner rounding of the checkbox square (default: 4px) |
80
- | `--checkbox-label-spacing` | | Distance between the checkbox and the label (default: 0.75rem) |
81
- | `--checkbox-box-size` | | \[Internal] Width and height of the checkbox square, set by the size variant (sm: 1rem, md: 1.25rem). Use the \`size\` attribute instead of overriding directly — the icon must scale in tandem. |
82
- | `--checkbox-icon-size` | | \[Internal] Width and height of the icon inside the box, set by the size variant (sm: 0.75rem, md: 0.875rem). Use the \`size\` attribute instead of overriding directly. |
83
-
84
- <hr/>
85
-
86
- ## Exports
87
-
88
- | Kind | Name | Declaration | Module | Package |
89
- | --------------------------- | -------------- | ----------- | ----------------------------------- | ------- |
90
- | `js` | `default` | Checkbox | src/components/checkbox/Checkbox.ts | |
91
- | `custom-element-definition` | `btu-checkbox` | Checkbox | src/components/checkbox/Checkbox.ts | |
1
+ # `<btu-checkbox>`
2
+
3
+ A checkbox component for selecting one or more options from a set.
4
+
5
+ Uses a hidden native checkbox internally for accessibility and form
6
+ participation. Styled via the `btu-checkbox` Tailwind plugin classes.
7
+ The component manages its own `className` — do not modify it externally
8
+ after initialization (classes present at connection time are preserved).
9
+
10
+ ```js
11
+ import '@brightspot/ui/components/checkbox/Checkbox.js'
12
+ ```
13
+
14
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-checkbox--docs
15
+
16
+ ## Attributes
17
+
18
+ | Attribute | Property | Type | Default | Description |
19
+ | --- | --- | --- | --- | --- |
20
+ | `label` | `label` | `string \| undefined` | | The text label displayed next to the checkbox. |
21
+ | `description` | `description` | `string \| undefined` | | Optional helper text displayed below the label. |
22
+ | `size` | `size` | `'sm' \| 'md'` | `'sm'` | Controls the scale of the checkbox and associated typography. |
23
+ | `checked` | `checked` | `boolean` | `false` | Whether the checkbox is currently selected. |
24
+ | `indeterminate` | `indeterminate` | `boolean` | `false` | Whether the checkbox is in a partially selected state. Sets `aria-checked='mixed'` and activates the native `:indeterminate` pseudo-class. Cleared automatically when the user clicks the checkbox. |
25
+ | `disabled` | `disabled` | `boolean` | `false` | If true, the checkbox is non-interactive and visually muted. |
26
+ | `invalid` | `invalid` | `boolean` | `false` | If true, displays error styling on the checkbox. |
27
+ | `error` | `error` | `string \| undefined` | | Error message text displayed below the checkbox when validation fails. Setting this also activates error styling without needing to set invalid. |
28
+ | `required` | `required` | `boolean` | `false` | Marks the field as mandatory for form submission. |
29
+ | `name` | `name` | `string \| undefined` | | Name of the form control submitted with the form data. |
30
+ | `value` | `value` | `string` | `'on'` | Value associated with the checkbox when submitted. |
31
+
32
+ ## Events
33
+
34
+ | Event | Detail | Description |
35
+ | --- | --- | --- |
36
+ | `btu-checkbox-ready` | | Fired after the checkbox is first rendered and initialized |
37
+ | `btu-checkbox-change` | `{ checked: boolean }` | Fired when the user toggles the checked state |
38
+
39
+ ## CSS custom properties
40
+
41
+ | Property | Description |
42
+ | --- | --- |
43
+ | `--checkbox-color-primary` | Background and border color when checked or indeterminate, and tinted background/border on unchecked hover (default: oklch(var(--btu-theme-primary-700))) |
44
+ | `--checkbox-color-border` | Border color in the unchecked state (default: oklch(var(--btu-theme-gray-300))) |
45
+ | `--checkbox-color-error` | Border and text color in the error state (default: oklch(var(--btu-theme-error-600))) |
46
+ | `--checkbox-border-radius` | Corner rounding of the checkbox square (default: 4px) |
47
+ | `--checkbox-label-spacing` | Distance between the checkbox and the label (default: 0.75rem) |
48
+ | `--checkbox-box-size` | [Internal] Width and height of the checkbox square, set by the size variant (sm: 1rem, md: 1.25rem). Use the `size` attribute instead of overriding directly — the icon must scale in tandem. |
49
+ | `--checkbox-icon-size` | [Internal] Width and height of the icon inside the box, set by the size variant (sm: 0.75rem, md: 0.875rem). Use the `size` attribute instead of overriding directly. |