@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.
- package/CHANGELOG.md +661 -0
- package/README.md +18 -2
- package/dist/storybook/CHANGELOG.md +661 -0
- package/dist/storybook/README.md +195 -0
- package/dist/storybook/assets/{ActionBar.stories-CJBn-mku.js → ActionBar.stories-TlhuCumU.js} +31 -28
- package/dist/storybook/assets/ActionItem-CjtyGLd5.js +16 -0
- package/dist/storybook/assets/{ActionItem.stories-DXzC9C1u.js → ActionItem.stories-BVlNQvfP.js} +2 -2
- package/dist/storybook/assets/AiSparkle.stories-DMzc8JUe.js +73 -0
- package/dist/storybook/assets/Avatar-C6Li1sPI.js +4 -0
- package/dist/storybook/assets/Avatar.stories-COj6XrPn.js +213 -0
- package/dist/storybook/assets/AvatarGroup-DgxRTZBe.js +1 -0
- package/dist/storybook/assets/AvatarGroup.stories-Dh3e7iN2.js +225 -0
- package/dist/storybook/assets/Badge-bWrvpEgX.js +1 -0
- package/dist/storybook/assets/{Badge.stories-DEpoJpUZ.js → Badge.stories-KXpmEXpt.js} +4 -4
- package/dist/storybook/assets/Banner-FSFX1AIb.css +1 -0
- package/dist/storybook/assets/{Banner.stories--jeU6fKq.js → Banner.stories-Cnhm3dXK.js} +14 -14
- package/dist/storybook/assets/Button-DE0s-gat.js +10 -0
- package/dist/storybook/assets/Button.stories-Cwg1YZEb.js +54 -0
- package/dist/storybook/assets/ButtonGroup-CoLI5nGO.js +1 -0
- package/dist/storybook/assets/{ButtonGroup.stories-CerE_0AC.js → ButtonGroup.stories-VhnKPP1n.js} +7 -7
- package/dist/storybook/assets/Card-DyntwdY-.css +1 -0
- package/dist/storybook/assets/{Card.stories-5SxHtU3Y.js → Card.stories-BgpL90zB.js} +60 -29
- package/dist/storybook/assets/{Celebrate.stories-COS789GX.js → Celebrate.stories-D3NJgYcX.js} +5 -5
- package/dist/storybook/assets/Checkbox-BC1T_KxW.js +30 -0
- package/dist/storybook/assets/{Checkbox.stories-DuQu38Gv.js → Checkbox.stories-AFQNz7dQ.js} +10 -10
- package/dist/storybook/assets/CircularProgress-eqVb2jUD.js +42 -0
- package/dist/storybook/assets/{CircularProgress.stories-Lf2Ws46Y.js → CircularProgress.stories-B6t8VhmJ.js} +2 -2
- package/dist/storybook/assets/ClipboardMixin-DcxrOy5B.js +1 -0
- package/dist/storybook/assets/{ClipboardMixin.stories-BT5KfLZ_.js → ClipboardMixin.stories-BqtQMjmS.js} +6 -6
- package/dist/storybook/assets/{Color-6BZIO3FS-BNBxjqrS.js → Color-6BZIO3FS-CDluohEc.js} +1 -1
- package/dist/storybook/assets/{Colors.stories-Ck6bXbd0.js → Colors.stories-CqTniDIa.js} +1 -1
- package/dist/storybook/assets/{CombinedEffects.stories-DLELdAMr.js → CombinedEffects.stories-FwW0chy5.js} +2 -2
- package/dist/storybook/assets/{ComponentStatesMixin-B6uJL_2c.js → ComponentStatesMixin-hUqOL2aW.js} +1 -1
- package/dist/storybook/assets/{ComponentStatesMixin.stories-fiyrALkY.js → ComponentStatesMixin.stories-CwGoq685.js} +1 -1
- package/dist/storybook/assets/{CopyToClipboard.stories-2OfBH19_.js → CopyToClipboard.stories-DUGjgtQx.js} +18 -10
- package/dist/storybook/assets/{Debounce.stories-C9qo3lIN.js → Debounce.stories-CrWfXhKS.js} +1 -1
- package/dist/storybook/assets/{DocsRenderer-LL677BLK-CBVYZYjR.js → DocsRenderer-LL677BLK-9e51z9Xc.js} +3 -3
- package/dist/storybook/assets/{Dropdown.stories-15ZDMkRz.js → Dropdown.stories-BsBxV0wp.js} +2 -2
- package/dist/storybook/assets/DropdownMenu-B-LvOIGj.js +42 -0
- package/dist/storybook/assets/EmptyState-h0A4Qpiu.css +1 -0
- package/dist/storybook/assets/{EmptyState.stories-Bjb8hzYj.js → EmptyState.stories-CJ1w8Tp2.js} +33 -21
- package/dist/storybook/assets/EscaAvatar.stories-BoLLSj9q.js +140 -0
- package/dist/storybook/assets/{Events.stories-BV0vMF2I.js → Events.stories-C3sTBwPJ.js} +2 -2
- package/dist/storybook/assets/{Heading.stories-CEUJqUbQ.js → Heading.stories-jmXDRBmM.js} +1 -1
- package/dist/storybook/assets/{HueRipple.stories-CwvtcOM_.js → HueRipple.stories-BPx5aSYd.js} +2 -2
- package/dist/storybook/assets/Icon-CWyJRQf7.js +34409 -0
- package/dist/storybook/assets/{Icon.stories-AB_v-61c.js → Icon.stories-iYBxmv2x.js} +10 -10
- package/dist/storybook/assets/IconButton-Di5Rgs7F.js +12 -0
- package/dist/storybook/assets/{IconButton.stories-BHuHsM3k.js → IconButton.stories-DENLoxVk.js} +2 -2
- package/dist/storybook/assets/LinearProgress-D9ngIVlv.js +25 -0
- package/dist/storybook/assets/{LinearProgress.stories-BNN5SXe3.js → LinearProgress.stories-u90B_VJR.js} +2 -2
- package/dist/storybook/assets/Message-CM3eexdu.css +1 -0
- package/dist/storybook/assets/Message-nFAa55c_.js +28 -0
- package/dist/storybook/assets/{Message.stories-DdLhMXnb.js → Message.stories-B4rpz5rI.js} +2 -2
- package/dist/storybook/assets/OnFindMixin-oL1bvTFj.js +1 -0
- package/dist/storybook/assets/{OnFindMixin.stories-B-5TeBOF.js → OnFindMixin.stories-CdeS5sFA.js} +9 -9
- package/dist/storybook/assets/Pagination-CSWcjuDU.js +88 -0
- package/dist/storybook/assets/{Pagination.stories-C9zsOdb2.js → Pagination.stories-Da2WzJkv.js} +33 -33
- package/dist/storybook/assets/{Popover.stories-BiqIwebU.js → Popover.stories-CVljlVHc.js} +16 -16
- package/dist/storybook/assets/ProgressMixin-CeSrn0_P.js +1 -0
- package/dist/storybook/assets/Radio-rvfGhZwK.js +25 -0
- package/dist/storybook/assets/{Radio.stories-BmrEdPkm.js → Radio.stories-B0wHdJuc.js} +6 -6
- package/dist/storybook/assets/{RadioGroup.stories-ChARVXs3.js → RadioGroup.stories-D8krOSlP.js} +22 -22
- package/dist/storybook/assets/{ReadyMixin-BbuzH3uO.js → ReadyMixin-CvX_eidU.js} +1 -1
- package/dist/storybook/assets/RovingTabindexMixin-9z8lwaM9.js +1 -0
- package/dist/storybook/assets/{RovingTabindexMixin.stories-xm4b394_.js → RovingTabindexMixin.stories-Y8vBWjJp.js} +5 -5
- package/dist/storybook/assets/{Rtc.stories-DdcMaELA.js → Rtc.stories-D3Y-z8y_.js} +1 -1
- package/dist/storybook/assets/{ScrollShadow.stories-CI67Ougx.js → ScrollShadow.stories-1KD0lWHX.js} +1 -1
- package/dist/storybook/assets/{Switch.stories-DOqrRkxc.js → Switch.stories-Bsqvm_HE.js} +60 -27
- package/dist/storybook/assets/{Tab.stories-DN8o4cf_.js → Tab.stories-CzcTisNs.js} +7 -7
- package/dist/storybook/assets/Tabs-DdpYNZSW.js +17 -0
- package/dist/storybook/assets/{Tabs.stories-BEowfCcl.js → Tabs.stories-UOS3V0J4.js} +6 -6
- package/dist/storybook/assets/{Throttle.stories-BZ_nsuw1.js → Throttle.stories-C8jgzh6e.js} +1 -1
- package/dist/storybook/assets/Tooltip.stories-B5BoI0cH.js +143 -0
- package/dist/storybook/assets/TooltipMixin-CVKslCDt.js +1 -0
- package/dist/storybook/assets/{Upload.stories-sAEiabwq.js → Upload.stories-BsQDCDqo.js} +102 -52
- package/dist/storybook/assets/UploadItem-CYQqNwUF.js +54 -0
- package/dist/storybook/assets/{UploadItem.stories-C19JMfmB.js → UploadItem.stories-_le7XBTV.js} +4 -4
- package/dist/storybook/assets/{Welcome.stories-C30jg0r1.js → Welcome.stories-rramKkhd.js} +38 -8
- package/dist/storybook/assets/Widget-elBzGg8w.css +1 -0
- package/dist/storybook/assets/Widget.stories-DtbAaklk.js +279 -0
- package/dist/storybook/assets/{WithTooltip-65CFNBJE-PFRy5maL.js → WithTooltip-65CFNBJE-DK6GcBuR.js} +1 -1
- package/dist/storybook/assets/ai-sparkle-BZMJJAxY.js +1 -0
- package/dist/storybook/assets/aria-D5THOgos.js +1 -0
- package/dist/storybook/assets/{blocks-DLjjvsFT.js → blocks-DHnzPh43.js} +5 -5
- package/dist/storybook/assets/esca-glow-BwdhBvIX.js +2 -0
- package/dist/storybook/assets/esca-idle-B-fumiIb.js +1 -0
- package/dist/storybook/assets/esca-search-rwNfo19I.js +1 -0
- package/dist/storybook/assets/esca-task-complete-BAJP2dY2.js +1 -0
- package/dist/storybook/assets/esca-wave-Bjs4CUR7.js +1 -0
- package/dist/storybook/assets/{formatter-EIJCOSYU-D39uscG_.js → formatter-EIJCOSYU-qig-qWlG.js} +1 -1
- package/dist/storybook/assets/i18n-BQ-Uj-0B.js +1 -0
- package/dist/storybook/assets/if-defined-DerKRcyC.js +1 -0
- package/dist/storybook/assets/{iframe-B9buZjP7.js → iframe-DlBK9Drk.js} +24 -24
- package/dist/storybook/assets/{index-BdEHup-4.js → index-CItQyB37.js} +1 -1
- package/dist/storybook/assets/lottie_svg-C3v6xdng.js +2 -0
- package/dist/storybook/assets/{onFind-CGzSFqNN.js → onFind-Ci35eu2y.js} +1 -1
- package/dist/storybook/assets/{onFind.stories-Dq71qO14.js → onFind.stories-BmbwWWo1.js} +1 -1
- package/dist/storybook/assets/{onRemove.stories-B1GqLH_U.js → onRemove.stories-DFWCIgE4.js} +1 -1
- package/dist/storybook/assets/{onVisible.stories-BNKxOfLw.js → onVisible.stories-B-onpgE-.js} +1 -1
- package/dist/storybook/assets/property-Bmq4RTSP.js +1 -0
- package/dist/storybook/assets/ref-BhKk4SDh.js +1 -0
- package/dist/storybook/assets/state-DVIUS0Gf.js +1 -0
- package/dist/storybook/assets/{style-map-qCiIYcp5.js → style-map-DE4G47KD.js} +1 -1
- package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-CUM-CaRF.js → syntaxhighlighter-ED5Y7EFY-Dfgnal1d.js} +1 -1
- package/dist/storybook/custom-elements.json +11835 -0
- package/dist/storybook/docs/components/ActionBar.md +55 -0
- package/dist/storybook/docs/components/ActionItem.md +50 -0
- package/dist/storybook/docs/components/AiSparkle.md +33 -0
- package/dist/storybook/docs/components/Avatar.md +45 -0
- package/dist/storybook/docs/components/AvatarGroup.md +34 -0
- package/dist/storybook/docs/components/Badge.md +47 -0
- package/dist/storybook/docs/components/Banner.md +35 -0
- package/dist/storybook/docs/components/ButtonGroup.md +65 -0
- package/dist/storybook/docs/components/Card.md +67 -0
- package/dist/storybook/docs/components/Checkbox.md +49 -0
- package/dist/storybook/docs/components/CircularProgress.md +40 -0
- package/dist/storybook/docs/components/CopyToClipboard.md +51 -0
- package/dist/storybook/docs/components/Dropdown.md +74 -0
- package/dist/storybook/docs/components/DropdownItem.md +45 -0
- package/dist/storybook/docs/components/DropdownMenu.md +41 -0
- package/dist/storybook/docs/components/EmptyState.md +62 -0
- package/dist/storybook/docs/components/EscaAvatar.md +40 -0
- package/dist/storybook/docs/components/Icon.md +40 -0
- package/dist/storybook/docs/components/IconButton.md +36 -0
- package/dist/storybook/docs/components/LinearProgress.md +37 -0
- package/dist/storybook/docs/components/Message.md +50 -0
- package/dist/storybook/docs/components/Pagination.md +70 -0
- package/dist/storybook/docs/components/Popover.md +59 -0
- package/dist/storybook/docs/components/README.md +48 -0
- package/dist/storybook/docs/components/Radio.md +55 -0
- package/dist/storybook/docs/components/RadioGroup.md +34 -0
- package/dist/storybook/docs/components/Switch.md +48 -0
- package/dist/storybook/docs/components/Tab.md +40 -0
- package/dist/storybook/docs/components/Tabs.md +49 -0
- package/dist/storybook/docs/components/Upload.md +63 -0
- package/dist/storybook/docs/components/UploadItem.md +30 -0
- package/dist/storybook/docs/components/Widget.md +88 -0
- package/dist/storybook/docs/dari-elements.md +55 -0
- package/dist/storybook/iframe.html +1 -1
- package/dist/storybook/index.html +29 -2
- package/dist/storybook/llms-full.txt +1721 -0
- package/dist/storybook/llms.txt +65 -0
- package/dist/storybook/project.json +1 -1
- package/dist/storybook/robots.txt +7 -0
- package/dist/storybook/sb-addons/storybook-3/manager-bundle.js +1 -1
- package/dist/storybook/sitemap.xml +90 -0
- package/docs/components/ActionBar.md +41 -64
- package/docs/components/ActionItem.md +50 -96
- package/docs/components/AiSparkle.md +23 -60
- package/docs/components/Avatar.md +45 -88
- package/docs/components/AvatarGroup.md +24 -44
- package/docs/components/Badge.md +34 -62
- package/docs/components/Banner.md +25 -39
- package/docs/components/ButtonGroup.md +65 -99
- package/docs/components/Card.md +67 -83
- package/docs/components/Checkbox.md +49 -91
- package/docs/components/CircularProgress.md +40 -84
- package/docs/components/CopyToClipboard.md +35 -40
- package/docs/components/Dropdown.md +74 -120
- package/docs/components/DropdownItem.md +45 -81
- package/docs/components/DropdownMenu.md +30 -70
- package/docs/components/EmptyState.md +45 -62
- package/docs/components/EscaAvatar.md +30 -61
- package/docs/components/Icon.md +29 -62
- package/docs/components/IconButton.md +36 -83
- package/docs/components/LinearProgress.md +28 -70
- package/docs/components/Message.md +38 -63
- package/docs/components/Pagination.md +70 -100
- package/docs/components/Popover.md +46 -79
- package/docs/components/README.md +34 -40
- package/docs/components/Radio.md +55 -105
- package/docs/components/RadioGroup.md +26 -55
- package/docs/components/Switch.md +48 -84
- package/docs/components/Tab.md +30 -70
- package/docs/components/Tabs.md +49 -86
- package/docs/components/Upload.md +63 -112
- package/docs/components/UploadItem.md +22 -53
- package/docs/components/Widget.md +66 -67
- package/llms.txt +63 -0
- package/package.json +9 -6
- package/dist/storybook/assets/AiSparkle.stories-BfjT5jrJ.js +0 -72
- package/dist/storybook/assets/Avatar.stories-D8lnIZaY.js +0 -213
- package/dist/storybook/assets/AvatarGroup.stories-Cz9oVah0.js +0 -225
- package/dist/storybook/assets/Button-2ucj5lUP.js +0 -10
- package/dist/storybook/assets/Button.stories-ndl1RJd7.js +0 -54
- package/dist/storybook/assets/EscaAvatar.stories-Rc2MSzCX.js +0 -139
- package/dist/storybook/assets/LucideDynamicLoader-BuoNL33C.js +0 -1
- package/dist/storybook/assets/Tooltip.stories-3bar43ZN.js +0 -143
- package/dist/storybook/assets/Widget.stories-9-1XpZNl.js +0 -233
- package/dist/storybook/assets/if-defined-BwWBCoAU.js +0 -1
|
@@ -1,92 +1,59 @@
|
|
|
1
|
-
#
|
|
1
|
+
# `<btu-popover>`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A popover component for displaying rich interactive content anchored to a trigger element.
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
16
|
+
```js
|
|
17
|
+
import '@brightspot/ui/components/popover/Popover.js'
|
|
18
|
+
```
|
|
12
19
|
|
|
13
|
-
|
|
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
|
-
|
|
22
|
+
## Attributes
|
|
19
23
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
| `position`
|
|
23
|
-
| `trigger`
|
|
24
|
-
| `delay`
|
|
25
|
-
| `offset`
|
|
26
|
-
| `noArrow`
|
|
27
|
-
| `inverted`
|
|
28
|
-
| `open`
|
|
29
|
-
| `panelLabel`
|
|
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
|
-
|
|
35
|
+
## Events
|
|
41
36
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
| `
|
|
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
|
-
|
|
42
|
+
## Slots
|
|
47
43
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
| `
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
| `
|
|
92
|
-
|
|
|
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
|
|
1
|
+
# Brightspot UI component API reference
|
|
2
2
|
|
|
3
|
-
|
|
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>`
|
|
20
|
-
- [`<btu-action-item>`
|
|
21
|
-
- [`<btu-ai-sparkle>`
|
|
22
|
-
- [`<btu-avatar>`
|
|
23
|
-
- [`<btu-avatar-group>`
|
|
24
|
-
- [`<btu-badge>`
|
|
25
|
-
- [`<btu-banner>`
|
|
26
|
-
- [`<btu-button-group>`
|
|
27
|
-
- [`<btu-card>`
|
|
28
|
-
- [`<btu-checkbox>`
|
|
29
|
-
- [`<btu-circular-progress>`
|
|
30
|
-
- [`<btu-copy-to-clipboard>`
|
|
31
|
-
- [`<btu-dropdown>`
|
|
32
|
-
- [`<btu-dropdown-item>`
|
|
33
|
-
- [`<btu-dropdown-menu>`
|
|
34
|
-
- [`<btu-empty-state>`
|
|
35
|
-
- [`<btu-esca-avatar>`
|
|
36
|
-
- [`<btu-icon>`
|
|
37
|
-
- [`<btu-icon-button>`
|
|
38
|
-
- [`<btu-linear-progress>`
|
|
39
|
-
- [`<btu-message>`
|
|
40
|
-
- [`<btu-pagination>`
|
|
41
|
-
- [`<btu-popover>`
|
|
42
|
-
- [`<btu-radio>`
|
|
43
|
-
- [`<btu-radio-group>`
|
|
44
|
-
- [`<btu-switch>`
|
|
45
|
-
- [`<btu-tab>`
|
|
46
|
-
- [`<btu-tabs>`
|
|
47
|
-
- [`<btu-upload>`
|
|
48
|
-
- [`<btu-upload-item>`
|
|
49
|
-
- [`<btu-widget>`
|
|
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
|
package/docs/components/Radio.md
CHANGED
|
@@ -1,105 +1,55 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
| `label`
|
|
24
|
-
| `description`
|
|
25
|
-
| `size`
|
|
26
|
-
| `checked`
|
|
27
|
-
| `disabled`
|
|
28
|
-
| `invalid`
|
|
29
|
-
| `error`
|
|
30
|
-
| `value`
|
|
31
|
-
| `name`
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
|
56
|
-
| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
|
|
57
|
-
| `_onInputChange` | private | | `e: Event` | `void` | |
|
|
58
|
-
| `emit` | | Dispatches a type-safe CustomEvent with standardized configuration.

All events are configured with:
- bubbles: true (event propagates up the DOM tree)
- cancelable: false (event cannot be cancelled)
- 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
|
-
#
|
|
1
|
+
# `<btu-radio-group>`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A container that groups `btu-radio` options into a single-select control.
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
```js
|
|
11
|
+
import '@brightspot/ui/components/radio/RadioGroup.js'
|
|
12
|
+
```
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
Interactive examples: https://ui.brightspot.com/?path=/docs/components-radio-group--docs
|
|
12
15
|
|
|
13
|
-
|
|
14
|
-
| --------------------- | -------------------------------- | ------- |
|
|
15
|
-
| `RovingTabindexMixin` | /src/util/RovingTabindexMixin.js | |
|
|
16
|
-
| `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
|
|
17
|
-
| `ReadyMixin` | /src/util/ReadyMixin.js | |
|
|
16
|
+
## Attributes
|
|
18
17
|
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
| `
|
|
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) |
|