@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,92 +1,59 @@
1
- # `src/components/popover/Popover.ts`:
1
+ # `<btu-popover>`
2
2
 
3
- ## class: `Popover`, `btu-popover`
3
+ A popover component for displaying rich interactive content anchored to a trigger element.
4
4
 
5
- ### Superclass
5
+ Uses the native HTML Popover API for top-layer rendering, light dismiss (click-outside
6
+ and Escape for click triggers), and focus management. CSS anchor positioning handles
7
+ viewport-aware placement.
6
8
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
9
+ For click triggers (`popover="auto"`), the browser provides:
10
+ - Light dismiss (Escape key and click-outside)
11
+ - Top-layer rendering (no z-index needed)
12
+ - Focus restoration on close
13
+ - `autofocus` support — add `autofocus` to an element inside `slot="content"`
14
+ to have it receive focus when the popover opens
10
15
 
11
- ### Mixins
16
+ ```js
17
+ import '@brightspot/ui/components/popover/Popover.js'
18
+ ```
12
19
 
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
20
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-popover--docs
17
21
 
18
- ### Fields
22
+ ## Attributes
19
23
 
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ------------------------- | ------- | ---------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
22
- | `position` | | `'top' \| 'bottom' \| 'left' \| 'right'` | `'bottom'` | Position relative to the trigger element.&#xA;Auto-flips when constrained by the viewport. | |
23
- | `trigger` | | `'click' \| 'hover' \| 'focus'` | `'click'` | How the popover is activated.&#xA;- 'click': Toggle on click with light dismiss&#xA;- 'hover': Show on mouseenter with delay&#xA;- 'focus': Show on focusin | |
24
- | `delay` | | `number` | `300` | Show delay in milliseconds (hover trigger only). | |
25
- | `offset` | | `PopoverOffset \| null` | `null` | Gap between trigger and popover (sm=4px, md=8px, lg=12px, xl=16px). | |
26
- | `noArrow` | | `boolean` | `false` | Hide the arrow pseudo-element. | |
27
- | `inverted` | | `boolean` | `false` | Invert the panel surface (dark on light pages, light on dark pages).&#xA;Opt-in, since the panel holds arbitrary rich content. | |
28
- | `open` | | `boolean` | `false` | Programmatic open/close state (reflected). | |
29
- | `panelLabel` | | `string` | `''` | Accessible label for the popover panel (applied as aria-label on the dialog). | |
30
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
31
- | `_onTriggerMouseLeave` | private | | | | |
32
- | `_onTriggerFocusIn` | private | | | | |
33
- | `_onTriggerFocusOut` | private | | | | |
34
- | `_onPanelMouseEnter` | private | | | | |
35
- | `_onPanelMouseLeave` | private | | | | |
36
- | `_onNativeToggle` | private | | | | |
37
- | `_onKeyDown` | private | | | | |
38
- | `_onViewportChange` | private | | | | |
24
+ | Attribute | Property | Type | Default | Description |
25
+ | --- | --- | --- | --- | --- |
26
+ | `position` | `position` | `'top' \| 'bottom' \| 'left' \| 'right'` | `'bottom'` | Position relative to the trigger element. Auto-flips when constrained by the viewport. |
27
+ | `trigger` | `trigger` | `'click' \| 'hover' \| 'focus'` | `'click'` | How the popover is activated. - 'click': Toggle on click with light dismiss - 'hover': Show on mouseenter with delay - 'focus': Show on focusin |
28
+ | `delay` | `delay` | `number` | `300` | Show delay in milliseconds (hover trigger only). |
29
+ | `offset` | `offset` | `'sm' \| 'md' \| 'lg' \| 'xl' \| null` | `null` | Gap between trigger and popover (sm=4px, md=8px, lg=12px, xl=16px). |
30
+ | `no-arrow` | `noArrow` | `boolean` | `false` | Hide the arrow pseudo-element. |
31
+ | `inverted` | `inverted` | `boolean` | `false` | Invert the panel surface (dark on light pages, light on dark pages). Opt-in, since the panel holds arbitrary rich content. |
32
+ | `open` | `open` | `boolean` | `false` | Programmatic open/close state (reflected). |
33
+ | `panel-label` | `panelLabel` | `string` | `''` | Accessible label for the popover panel (applied as aria-label on the dialog). |
39
34
 
40
- ### Methods
35
+ ## Events
41
36
 
42
- | Name | Privacy | Description | Parameters | Return | Inherited From |
43
- | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
44
- | `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 |
37
+ | Event | Detail | Description |
38
+ | --- | --- | --- |
39
+ | `btu-popover-show` | | Fired when the popover opens |
40
+ | `btu-popover-hide` | | Fired when the popover closes |
45
41
 
46
- ### Events
42
+ ## Slots
47
43
 
48
- | Name | Type | Description | Inherited From |
49
- | ------------------ | ------------- | ----------------------------- | -------------- |
50
- | `btu-popover-show` | `CustomEvent` | Fired when the popover opens | |
51
- | `btu-popover-hide` | `CustomEvent` | Fired when the popover closes | |
52
-
53
- ### Attributes
54
-
55
- | Name | Field | Inherited From |
56
- | ------------- | ---------- | -------------- |
57
- | `position` | position | |
58
- | `trigger` | trigger | |
59
- | `delay` | delay | |
60
- | `offset` | offset | |
61
- | `no-arrow` | noArrow | |
62
- | `inverted` | inverted | |
63
- | `open` | open | |
64
- | `panel-label` | panelLabel | |
65
-
66
- ### CSS Properties
67
-
68
- | Name | Default | Description |
69
- | ---------------------------- | ------- | ---------------------------------------------------------------------------------------------- |
70
- | `--popover-color-background` | | Panel background color (default: var(--btu-theme-white); inverted: var(--btu-theme-black)) |
71
- | `--popover-color-content` | | Panel text color (default: oklch(var(--btu-theme-gray-900)); inverted: var(--btu-theme-white)) |
72
- | `--popover-border-radius` | | Panel corner radius (default: theme borderRadius.lg) |
73
- | `--popover-border-width` | | Edge width, panel and arrow (default: 1px; 0 removes it) |
74
- | `--popover-border-color` | | Edge color, panel and arrow (default: oklch(var(--btu-theme-gray-200))) |
75
- | `--popover-offset` | | Gap between trigger and panel (default: 8px; see btu-popover-offset-{sm\|md\|lg\|xl}) |
76
- | `--popover-arrow-size` | | Width/height of the pointer arrow (default: 8px) |
77
-
78
- ### Slots
79
-
80
- | Name | Description |
81
- | --------- | ---------------------------------------------------- |
82
- | `trigger` | The element that activates the popover |
44
+ | Slot | Description |
45
+ | --- | --- |
46
+ | `trigger` | The element that activates the popover |
83
47
  | `content` | Rich HTML content displayed inside the popover panel |
84
48
 
85
- <hr/>
86
-
87
- ## Exports
88
-
89
- | Kind | Name | Declaration | Module | Package |
90
- | --------------------------- | ------------- | ----------- | --------------------------------- | ------- |
91
- | `js` | `default` | Popover | src/components/popover/Popover.ts | |
92
- | `custom-element-definition` | `btu-popover` | Popover | src/components/popover/Popover.ts | |
49
+ ## CSS custom properties
50
+
51
+ | Property | Description |
52
+ | --- | --- |
53
+ | `--popover-color-background` | Panel background color (default: var(--btu-theme-white); inverted: var(--btu-theme-black)) |
54
+ | `--popover-color-content` | Panel text color (default: oklch(var(--btu-theme-gray-900)); inverted: var(--btu-theme-white)) |
55
+ | `--popover-border-radius` | Panel corner radius (default: theme borderRadius.lg) |
56
+ | `--popover-border-width` | Edge width, panel and arrow (default: 1px; 0 removes it) |
57
+ | `--popover-border-color` | Edge color, panel and arrow (default: oklch(var(--btu-theme-gray-200))) |
58
+ | `--popover-offset` | Gap between trigger and panel (default: 8px; see btu-popover-offset-{sm\|md\|lg\|xl}) |
59
+ | `--popover-arrow-size` | Width/height of the pointer arrow (default: 8px) |
@@ -1,11 +1,10 @@
1
- # Brightspot UI Component API Reference
1
+ # Brightspot UI component API reference
2
2
 
3
- This directory contains auto-generated API documentation for all Brightspot UI web components.
3
+ Generated from the Custom Elements Manifest by `yarn cem:docs`. Don't edit these files by hand.
4
4
 
5
5
  ## Using these in a plugin
6
6
 
7
- The CMS page already styles every component here, but it defines only four of the elements: `btu-badge`,
8
- `btu-copy-to-clipboard`, `btu-icon` and `btu-widget`.
7
+ The CMS page already styles every component here, but it defines only four of the elements: `btu-badge`, `btu-copy-to-clipboard`, `btu-icon` and `btu-widget`.
9
8
 
10
9
  Import any other element in your plugin's frontend entry, for example
11
10
  `import '@brightspot/ui/components/card/Card.js'`, or the tag stays an undefined, inert element. That includes elements
@@ -16,39 +15,34 @@ See [Dari HTML elements](../dari-elements.md) for how to render these components
16
15
 
17
16
  ## Components
18
17
 
19
- - [`<btu-action-bar>` - ActionBar](ActionBar.md)
20
- - [`<btu-action-item>` - ActionItem](ActionItem.md)
21
- - [`<btu-ai-sparkle>` - AiSparkle](AiSparkle.md)
22
- - [`<btu-avatar>` - Avatar](Avatar.md)
23
- - [`<btu-avatar-group>` - AvatarGroup](AvatarGroup.md)
24
- - [`<btu-badge>` - Badge](Badge.md)
25
- - [`<btu-banner>` - Banner](Banner.md)
26
- - [`<btu-button-group>` - ButtonGroup](ButtonGroup.md)
27
- - [`<btu-card>` - Card](Card.md)
28
- - [`<btu-checkbox>` - Checkbox](Checkbox.md)
29
- - [`<btu-circular-progress>` - CircularProgress](CircularProgress.md)
30
- - [`<btu-copy-to-clipboard>` - CopyToClipboard](CopyToClipboard.md)
31
- - [`<btu-dropdown>` - Dropdown](Dropdown.md)
32
- - [`<btu-dropdown-item>` - DropdownItem](DropdownItem.md)
33
- - [`<btu-dropdown-menu>` - DropdownMenu](DropdownMenu.md)
34
- - [`<btu-empty-state>` - EmptyState](EmptyState.md)
35
- - [`<btu-esca-avatar>` - EscaAvatar](EscaAvatar.md)
36
- - [`<btu-icon>` - Icon](Icon.md)
37
- - [`<btu-icon-button>` - IconButton](IconButton.md)
38
- - [`<btu-linear-progress>` - LinearProgress](LinearProgress.md)
39
- - [`<btu-message>` - Message](Message.md)
40
- - [`<btu-pagination>` - Pagination](Pagination.md)
41
- - [`<btu-popover>` - Popover](Popover.md)
42
- - [`<btu-radio>` - Radio](Radio.md)
43
- - [`<btu-radio-group>` - RadioGroup](RadioGroup.md)
44
- - [`<btu-switch>` - Switch](Switch.md)
45
- - [`<btu-tab>` - Tab](Tab.md)
46
- - [`<btu-tabs>` - Tabs](Tabs.md)
47
- - [`<btu-upload>` - Upload](Upload.md)
48
- - [`<btu-upload-item>` - UploadItem](UploadItem.md)
49
- - [`<btu-widget>` - Widget](Widget.md)
50
-
51
- ---
52
-
53
- *Documentation generated from Custom Elements Manifest*
54
- *Run `yarn cem:docs` to regenerate*
18
+ - [`<btu-action-bar>`](ActionBar.md): A persistent container for primary, secondary, tertiary, and destructive actions within an interface, typically anchored to the bottom of a view
19
+ - [`<btu-action-item>`](ActionItem.md): An action item button for use within `btu-action-bar`
20
+ - [`<btu-ai-sparkle>`](AiSparkle.md): The animated AI-branding sparkle
21
+ - [`<btu-avatar>`](Avatar.md): An avatar component for displaying user profile images with fallback support
22
+ - [`<btu-avatar-group>`](AvatarGroup.md): A container component for grouping multiple avatars with consistent styling
23
+ - [`<btu-badge>`](Badge.md): A badge component for highlighting important information
24
+ - [`<btu-banner>`](Banner.md): A full-width container that pins a `<btu-message>` to the top of the CMS or a content edit page
25
+ - [`<btu-button-group>`](ButtonGroup.md): A semantic container for grouping related buttons together
26
+ - [`<btu-card>`](Card.md): A flexible content container for presenting and organizing information
27
+ - [`<btu-checkbox>`](Checkbox.md): A checkbox component for selecting one or more options from a set
28
+ - [`<btu-circular-progress>`](CircularProgress.md): A circular progress indicator for showing loading states or progress
29
+ - [`<btu-copy-to-clipboard>`](CopyToClipboard.md): A button component that copies text to the system clipboard
30
+ - [`<btu-dropdown>`](Dropdown.md): A dropdown component that renders a trigger button and manages a floating panel containing a `btu-dropdown-menu`
31
+ - [`<btu-dropdown-item>`](DropdownItem.md): A menu item component for use inside `btu-dropdown-menu`
32
+ - [`<btu-dropdown-menu>`](DropdownMenu.md): A menu container component that provides keyboard navigation and ARIA menu semantics
33
+ - [`<btu-empty-state>`](EmptyState.md): An empty state component for displaying placeholder content when no data is available
34
+ - [`<btu-esca-avatar>`](EscaAvatar.md): The animated avatar for the Esca AI assistant, driven entirely by its `state` attribute so the same element works wherever the assistant appears
35
+ - [`<btu-icon>`](Icon.md): An icon component for displaying Lucide icons
36
+ - [`<btu-icon-button>`](IconButton.md): Surfaces the different actions someone can perform in an interface where space is limited
37
+ - [`<btu-linear-progress>`](LinearProgress.md): A horizontal linear progress bar for showing task completion
38
+ - [`<btu-message>`](Message.md): A message for communicating high-visibility content that is not tied to the user's current task — alerts, breaking news, and persistent status
39
+ - [`<btu-pagination>`](Pagination.md): A pagination component for navigating through paged content
40
+ - [`<btu-popover>`](Popover.md): A popover component for displaying rich interactive content anchored to a trigger element
41
+ - [`<btu-radio>`](Radio.md): A single radio option, selectable from a set of mutually exclusive choices
42
+ - [`<btu-radio-group>`](RadioGroup.md): A container that groups `btu-radio` options into a single-select control
43
+ - [`<btu-switch>`](Switch.md): A toggle switch component for binary on/off states
44
+ - [`<btu-tab>`](Tab.md): An individual tab within a tab group
45
+ - [`<btu-tabs>`](Tabs.md): A container component for managing a group of tabs
46
+ - [`<btu-upload>`](Upload.md): A file upload component with drop zone and file list
47
+ - [`<btu-upload-item>`](UploadItem.md): Internal upload item sub-component for displaying individual file upload state
48
+ - [`<btu-widget>`](Widget.md): A widget component for displaying content with header, body, and footer sections
@@ -1,105 +1,55 @@
1
- # `src/components/radio/Radio.ts`:
2
-
3
- ## class: `Radio`, `btu-radio`
4
-
5
- ### Superclass
6
-
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
-
11
- ### Mixins
12
-
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `TooltipMixin` | /src/util/TooltipMixin.js | |
16
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
17
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
18
-
19
- ### Fields
20
-
21
- | Name | Privacy | Type | Default | Description | Inherited From |
22
- | ------------------------- | ------- | ---------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
23
- | `label` | | `string \| undefined` | | The text label displayed next to the radio. | |
24
- | `description` | | `string \| undefined` | | Optional helper text displayed below the label. | |
25
- | `size` | | `'sm' \| 'md'` | `'sm'` | Controls the scale of the radio and associated typography. | |
26
- | `checked` | | `boolean` | `false` | Whether this option is currently selected. | |
27
- | `disabled` | | `boolean` | `false` | If true, the radio is non-interactive and visually muted. | |
28
- | `invalid` | | `boolean` | `false` | If true, displays error styling on the radio. | |
29
- | `error` | | `string \| undefined` | | Error message text displayed below the radio when validation fails.&#xA;Setting this also activates error styling without needing to set invalid. | |
30
- | `value` | | `string \| undefined` | | Value submitted with the form when this option is selected. | |
31
- | `name` | | `string \| undefined` | | Name of the form control. Usually set by the parent \`btu-radio-group\` so&#xA;every option in the group shares one name. | |
32
- | `_userInitiated` | private | `boolean` | `false` | | |
33
- | `_initialClasses` | private | `string[]` | `[]` | | |
34
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
35
- | `_descId` | private | | `` `radio-desc-${crypto.randomUUID()}` `` | | |
36
- | `_errorId` | private | | `` `radio-error-${crypto.randomUUID()}` `` | | |
37
- | `_handleClick` | private | | | | |
38
- | `_describedBy` | private | `string \| undefined` | | | |
39
- | `tooltip` | | `string` | `''` | Tooltip text content. Set to empty string to remove the tooltip. | TooltipMixin |
40
- | `tooltipPosition` | | `'top' \| 'bottom' \| 'left' \| 'right'` | `'top'` | Position relative to the host element. Auto-flips when constrained by the viewport. | TooltipMixin |
41
- | `tooltipDelay` | | `number` | `300` | Show delay in milliseconds (hover trigger only). | TooltipMixin |
42
- | `tooltipOffset` | | `TooltipOffset \| null` | `null` | Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px). | TooltipMixin |
43
- | `tooltipNoArrow` | | `boolean` | `false` | Hide the arrow pseudo-element. | TooltipMixin |
44
- | `tooltipTrigger` | | `string` | `'hover focus'` | Space-separated trigger types: 'hover', 'focus', 'click'. | TooltipMixin |
45
- | `_onMouseLeave` | private | | | | TooltipMixin |
46
- | `_onFocusIn` | private | | | | TooltipMixin |
47
- | `_onFocusOut` | private | | | | TooltipMixin |
48
- | `_onClick` | private | | | | TooltipMixin |
49
- | `_onNativeToggle` | private | | | | TooltipMixin |
50
- | `_onKeyDown` | private | | | | TooltipMixin |
51
- | `_onDocumentClick` | private | `((e: MouseEvent) => void) \| null` | `null` | | TooltipMixin |
52
-
53
- ### Methods
54
-
55
- | Name | Privacy | Description | Parameters | Return | Inherited From |
56
- | ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
57
- | `_onInputChange` | private | | `e: Event` | `void` | |
58
- | `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 |
59
-
60
- ### Events
61
-
62
- | Name | Type | Description | Inherited From |
63
- | ------------------ | -------------------------------------------------- | ------------------------------------------------------- | -------------- |
64
- | `btu-radio-ready` | `CustomEvent` | Fired after the radio is first rendered and initialized | |
65
- | `btu-radio-change` | `CustomEvent<{ checked: boolean; value: string }>` | Fired when the user selects this option | |
66
-
67
- ### Attributes
68
-
69
- | Name | Field | Inherited From |
70
- | ------------------ | --------------- | -------------- |
71
- | `label` | label | |
72
- | `description` | description | |
73
- | `size` | size | |
74
- | `checked` | checked | |
75
- | `disabled` | disabled | |
76
- | `invalid` | invalid | |
77
- | `error` | error | |
78
- | `value` | value | |
79
- | `name` | name | |
80
- | `tooltip` | tooltip | TooltipMixin |
81
- | `tooltip-position` | tooltipPosition | TooltipMixin |
82
- | `tooltip-delay` | tooltipDelay | TooltipMixin |
83
- | `tooltip-offset` | tooltipOffset | TooltipMixin |
84
- | `tooltip-no-arrow` | tooltipNoArrow | TooltipMixin |
85
- | `tooltip-trigger` | tooltipTrigger | TooltipMixin |
86
-
87
- ### CSS Properties
88
-
89
- | Name | Default | Description |
90
- | ----------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
91
- | `--radio-color-primary` | | Fill and border color when selected (default: oklch(var(--btu-theme-primary-700))) |
92
- | `--radio-color-border` | | Border color in the unselected state (default: oklch(var(--btu-theme-gray-300))) |
93
- | `--radio-color-error` | | Border and text color in the error state (default: oklch(var(--btu-theme-error-600))) |
94
- | `--radio-label-spacing` | | Distance between the radio and the label (default: 0.75rem) |
95
- | `--radio-box-size` | | \[Internal] Diameter of the radio control, set by the size variant (sm: 1rem, md: 1.25rem). Use the \`size\` attribute instead of overriding directly — the dot must scale in tandem. |
96
- | `--radio-dot-size` | | \[Internal] Diameter of the selected dot, set by the size variant (sm: 0.375rem, md: 0.5rem). Use the \`size\` attribute instead of overriding directly. |
97
-
98
- <hr/>
99
-
100
- ## Exports
101
-
102
- | Kind | Name | Declaration | Module | Package |
103
- | --------------------------- | ----------- | ----------- | ----------------------------- | ------- |
104
- | `js` | `default` | Radio | src/components/radio/Radio.ts | |
105
- | `custom-element-definition` | `btu-radio` | Radio | src/components/radio/Radio.ts | |
1
+ # `<btu-radio>`
2
+
3
+ A single radio option, selectable from a set of mutually exclusive choices.
4
+
5
+ Uses a hidden native radio input internally for accessibility and form
6
+ participation. Styled via the `btu-radio` Tailwind plugin classes. Typically
7
+ placed inside a `btu-radio-group`, which owns the shared `name`, selection
8
+ state, and arrow-key navigation; a standalone radio also works but manages
9
+ only its own checked state. The component manages its own `className` — do not
10
+ modify it externally after initialization (classes present at connection time
11
+ are preserved).
12
+
13
+ ```js
14
+ import '@brightspot/ui/components/radio/Radio.js'
15
+ ```
16
+
17
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-radio--docs
18
+
19
+ ## Attributes
20
+
21
+ | Attribute | Property | Type | Default | Description |
22
+ | --- | --- | --- | --- | --- |
23
+ | `label` | `label` | `string \| undefined` | | The text label displayed next to the radio. |
24
+ | `description` | `description` | `string \| undefined` | | Optional helper text displayed below the label. |
25
+ | `size` | `size` | `'sm' \| 'md'` | `'sm'` | Controls the scale of the radio and associated typography. |
26
+ | `checked` | `checked` | `boolean` | `false` | Whether this option is currently selected. |
27
+ | `disabled` | `disabled` | `boolean` | `false` | If true, the radio is non-interactive and visually muted. |
28
+ | `invalid` | `invalid` | `boolean` | `false` | If true, displays error styling on the radio. |
29
+ | `error` | `error` | `string \| undefined` | | Error message text displayed below the radio when validation fails. Setting this also activates error styling without needing to set invalid. |
30
+ | `value` | `value` | `string \| undefined` | | Value submitted with the form when this option is selected. |
31
+ | `name` | `name` | `string \| undefined` | | Name of the form control. Usually set by the parent `btu-radio-group` so every option in the group shares one name. |
32
+ | `tooltip` | `tooltip` | `string` | `''` | Tooltip text content. Set to empty string to remove the tooltip. |
33
+ | `tooltip-position` | `tooltipPosition` | `'top' \| 'bottom' \| 'left' \| 'right'` | `'top'` | Position relative to the host element. Auto-flips when constrained by the viewport. |
34
+ | `tooltip-delay` | `tooltipDelay` | `number` | `300` | Show delay in milliseconds (hover trigger only). |
35
+ | `tooltip-offset` | `tooltipOffset` | `'sm' \| 'md' \| 'lg' \| 'xl' \| null` | `null` | Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px). |
36
+ | `tooltip-no-arrow` | `tooltipNoArrow` | `boolean` | `false` | Hide the arrow pseudo-element. |
37
+ | `tooltip-trigger` | `tooltipTrigger` | `string` | `'hover focus'` | Space-separated trigger types: 'hover', 'focus', 'click'. |
38
+
39
+ ## Events
40
+
41
+ | Event | Detail | Description |
42
+ | --- | --- | --- |
43
+ | `btu-radio-ready` | | Fired after the radio is first rendered and initialized |
44
+ | `btu-radio-change` | `{ checked: boolean; value: string }` | Fired when the user selects this option |
45
+
46
+ ## CSS custom properties
47
+
48
+ | Property | Description |
49
+ | --- | --- |
50
+ | `--radio-color-primary` | Fill and border color when selected (default: oklch(var(--btu-theme-primary-700))) |
51
+ | `--radio-color-border` | Border color in the unselected state (default: oklch(var(--btu-theme-gray-300))) |
52
+ | `--radio-color-error` | Border and text color in the error state (default: oklch(var(--btu-theme-error-600))) |
53
+ | `--radio-label-spacing` | Distance between the radio and the label (default: 0.75rem) |
54
+ | `--radio-box-size` | [Internal] Diameter of the radio control, set by the size variant (sm: 1rem, md: 1.25rem). Use the `size` attribute instead of overriding directly — the dot must scale in tandem. |
55
+ | `--radio-dot-size` | [Internal] Diameter of the selected dot, set by the size variant (sm: 0.375rem, md: 0.5rem). Use the `size` attribute instead of overriding directly. |
@@ -1,63 +1,34 @@
1
- # `src/components/radio/RadioGroup.ts`:
1
+ # `<btu-radio-group>`
2
2
 
3
- ## class: `RadioGroup`, `btu-radio-group`
3
+ A container that groups `btu-radio` options into a single-select control.
4
4
 
5
- ### Superclass
5
+ Owns the shared form `name`, the selected `value`, and keyboard navigation
6
+ following the WAI-ARIA radio group pattern: a single roving tabstop, and
7
+ arrow keys that move focus and select in one step. Selection state and the
8
+ `disabled` / `size` properties are propagated down to child radios.
6
9
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
+ ```js
11
+ import '@brightspot/ui/components/radio/RadioGroup.js'
12
+ ```
10
13
 
11
- ### Mixins
14
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-radio-group--docs
12
15
 
13
- | Name | Module | Package |
14
- | --------------------- | -------------------------------- | ------- |
15
- | `RovingTabindexMixin` | /src/util/RovingTabindexMixin.js | |
16
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
17
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
16
+ ## Attributes
18
17
 
19
- ### Fields
18
+ | Attribute | Property | Type | Default | Description |
19
+ | --- | --- | --- | --- | --- |
20
+ | `name` | `name` | `string \| undefined` | | Form field name shared by every radio in the group. |
21
+ | `value` | `value` | `string \| undefined` | | Value of the currently selected option. |
22
+ | `orientation` | `orientation` | `'vertical' \| 'horizontal'` | `'vertical'` | Layout direction of the options. |
23
+ | `size` | `size` | `'sm' \| 'md'` | `'sm'` | Controls the scale of every radio in the group. |
24
+ | `required` | `required` | `boolean` | `false` | Marks a selection as mandatory for form submission. |
25
+ | `disabled` | `disabled` | `boolean` | `false` | Disables every option in the group. |
20
26
 
21
- | Name | Privacy | Type | Default | Description | Inherited From |
22
- | ------------- | ------- | ---------------------------- | ------------ | --------------------------------------------------- | -------------- |
23
- | `name` | | `string \| undefined` | | Form field name shared by every radio in the group. | |
24
- | `value` | | `string \| undefined` | | Value of the currently selected option. | |
25
- | `orientation` | | `'vertical' \| 'horizontal'` | `'vertical'` | Layout direction of the options. | |
26
- | `size` | | `'sm' \| 'md'` | `'sm'` | Controls the scale of every radio in the group. | |
27
- | `required` | | `boolean` | `false` | Marks a selection as mandatory for form submission. | |
28
- | `disabled` | | `boolean` | `false` | Disables every option in the group. | |
27
+ ## Events
29
28
 
30
- ### Methods
31
-
32
- | Name | Privacy | Description | Parameters | Return | Inherited From |
33
- | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
34
- | `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 |
35
-
36
- ### Events
37
-
38
- | Name | Type | Description | Inherited From |
39
- | ------------------------ | -------------------------------------------------- | ------------------------------------------------------------------------- | -------------- |
40
- | `btu-radio-group-ready` | `CustomEvent` | Fired after first render and initialization | |
41
- | `btu-radio-group-change` | `CustomEvent<{ value: string }>` | Fired when the selected value changes | |
42
- | `btu-radio-ready` | `CustomEvent` | Fired when a child radio finishes initialization (bubbles from btu-radio) | |
43
- | `btu-radio-change` | `CustomEvent<{ checked: boolean; value: string }>` | Fired when a child radio is selected (bubbles from btu-radio) | |
44
-
45
- ### Attributes
46
-
47
- | Name | Field | Inherited From |
48
- | ------------- | ----------- | -------------- |
49
- | `name` | name | |
50
- | `value` | value | |
51
- | `orientation` | orientation | |
52
- | `size` | size | |
53
- | `required` | required | |
54
- | `disabled` | disabled | |
55
-
56
- <hr/>
57
-
58
- ## Exports
59
-
60
- | Kind | Name | Declaration | Module | Package |
61
- | --------------------------- | ----------------- | ----------- | ---------------------------------- | ------- |
62
- | `js` | `default` | RadioGroup | src/components/radio/RadioGroup.ts | |
63
- | `custom-element-definition` | `btu-radio-group` | RadioGroup | src/components/radio/RadioGroup.ts | |
29
+ | Event | Detail | Description |
30
+ | --- | --- | --- |
31
+ | `btu-radio-group-ready` | | Fired after first render and initialization |
32
+ | `btu-radio-group-change` | `{ value: string }` | Fired when the selected value changes |
33
+ | `btu-radio-ready` | | Fired when a child radio finishes initialization (bubbles from btu-radio) |
34
+ | `btu-radio-change` | `{ checked: boolean; value: string }` | Fired when a child radio is selected (bubbles from btu-radio) |