@brightspot/ui 6.8.1 → 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 (170) 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-BOXYJYXy.js → ActionBar.stories-TlhuCumU.js} +1 -1
  6. package/dist/storybook/assets/{ActionItem-WoDvowFu.js → ActionItem-CjtyGLd5.js} +1 -1
  7. package/dist/storybook/assets/{ActionItem.stories-CVFoWP54.js → ActionItem.stories-BVlNQvfP.js} +1 -1
  8. package/dist/storybook/assets/{AiSparkle.stories-Psv9jNpy.js → AiSparkle.stories-DMzc8JUe.js} +2 -2
  9. package/dist/storybook/assets/{Avatar-CIQcHS8b.js → Avatar-C6Li1sPI.js} +1 -1
  10. package/dist/storybook/assets/{Avatar.stories-BE2Xn8fx.js → Avatar.stories-COj6XrPn.js} +1 -1
  11. package/dist/storybook/assets/{AvatarGroup-Chs0VKPg.js → AvatarGroup-DgxRTZBe.js} +1 -1
  12. package/dist/storybook/assets/{AvatarGroup.stories-2ar6gCeX.js → AvatarGroup.stories-Dh3e7iN2.js} +1 -1
  13. package/dist/storybook/assets/{Badge-AV20mCMJ.js → Badge-bWrvpEgX.js} +1 -1
  14. package/dist/storybook/assets/{Badge.stories-w9LqNw0A.js → Badge.stories-KXpmEXpt.js} +1 -1
  15. package/dist/storybook/assets/{Banner.stories-Clhh1bBs.js → Banner.stories-Cnhm3dXK.js} +1 -1
  16. package/dist/storybook/assets/{Button-B7fn_wd5.js → Button-DE0s-gat.js} +1 -1
  17. package/dist/storybook/assets/{Button.stories-5h4M8nd2.js → Button.stories-Cwg1YZEb.js} +1 -1
  18. package/dist/storybook/assets/{ButtonGroup-BmndBsBy.js → ButtonGroup-CoLI5nGO.js} +1 -1
  19. package/dist/storybook/assets/{ButtonGroup.stories-CR1H4H7u.js → ButtonGroup.stories-VhnKPP1n.js} +1 -1
  20. package/dist/storybook/assets/{Card.stories-Bz5vXq5y.js → Card.stories-BgpL90zB.js} +1 -1
  21. package/dist/storybook/assets/{Celebrate.stories-Bu3CNw0k.js → Celebrate.stories-D3NJgYcX.js} +1 -1
  22. package/dist/storybook/assets/{Checkbox-BALsanB1.js → Checkbox-BC1T_KxW.js} +1 -1
  23. package/dist/storybook/assets/{Checkbox.stories-BdvCht5c.js → Checkbox.stories-AFQNz7dQ.js} +1 -1
  24. package/dist/storybook/assets/{CircularProgress-BeE2fWON.js → CircularProgress-eqVb2jUD.js} +1 -1
  25. package/dist/storybook/assets/{CircularProgress.stories-CL8Lc6eU.js → CircularProgress.stories-B6t8VhmJ.js} +1 -1
  26. package/dist/storybook/assets/{ClipboardMixin-C6wcbXIO.js → ClipboardMixin-DcxrOy5B.js} +1 -1
  27. package/dist/storybook/assets/{ClipboardMixin.stories-BsjzC7wd.js → ClipboardMixin.stories-BqtQMjmS.js} +1 -1
  28. package/dist/storybook/assets/{Color-6BZIO3FS-Dsd6EVV9.js → Color-6BZIO3FS-CDluohEc.js} +1 -1
  29. package/dist/storybook/assets/{Colors.stories-CkCdNN9Y.js → Colors.stories-CqTniDIa.js} +1 -1
  30. package/dist/storybook/assets/{CombinedEffects.stories-QG78pIiG.js → CombinedEffects.stories-FwW0chy5.js} +1 -1
  31. package/dist/storybook/assets/{ComponentStatesMixin-CG-Dx_Vk.js → ComponentStatesMixin-hUqOL2aW.js} +1 -1
  32. package/dist/storybook/assets/{ComponentStatesMixin.stories-B1yuAqua.js → ComponentStatesMixin.stories-CwGoq685.js} +1 -1
  33. package/dist/storybook/assets/{CopyToClipboard.stories-CyKcumJ9.js → CopyToClipboard.stories-DUGjgtQx.js} +1 -1
  34. package/dist/storybook/assets/{Debounce.stories-BuNskQ33.js → Debounce.stories-CrWfXhKS.js} +1 -1
  35. package/dist/storybook/assets/{DocsRenderer-LL677BLK-BrPyc8XX.js → DocsRenderer-LL677BLK-9e51z9Xc.js} +3 -3
  36. package/dist/storybook/assets/{Dropdown.stories-DHXeP07z.js → Dropdown.stories-BsBxV0wp.js} +1 -1
  37. package/dist/storybook/assets/{DropdownMenu-WoWnJiQk.js → DropdownMenu-B-LvOIGj.js} +1 -1
  38. package/dist/storybook/assets/{EmptyState.stories-BRoVusey.js → EmptyState.stories-CJ1w8Tp2.js} +1 -1
  39. package/dist/storybook/assets/{EscaAvatar.stories-CWAE-4Uz.js → EscaAvatar.stories-BoLLSj9q.js} +2 -2
  40. package/dist/storybook/assets/{Events.stories-D-npDwlx.js → Events.stories-C3sTBwPJ.js} +1 -1
  41. package/dist/storybook/assets/{Heading.stories-D7hmvFEN.js → Heading.stories-jmXDRBmM.js} +1 -1
  42. package/dist/storybook/assets/{HueRipple.stories-Dx3ozdHi.js → HueRipple.stories-BPx5aSYd.js} +1 -1
  43. package/dist/storybook/assets/{Icon-DPQKiWDz.js → Icon-CWyJRQf7.js} +1 -1
  44. package/dist/storybook/assets/{Icon.stories-CVsQvcwd.js → Icon.stories-iYBxmv2x.js} +1 -1
  45. package/dist/storybook/assets/{IconButton-Dp4Z06bL.js → IconButton-Di5Rgs7F.js} +1 -1
  46. package/dist/storybook/assets/{IconButton.stories-DTbfHfcQ.js → IconButton.stories-DENLoxVk.js} +1 -1
  47. package/dist/storybook/assets/{LinearProgress-DG3tPlGH.js → LinearProgress-D9ngIVlv.js} +1 -1
  48. package/dist/storybook/assets/{LinearProgress.stories-VIU6OqYd.js → LinearProgress.stories-u90B_VJR.js} +1 -1
  49. package/dist/storybook/assets/{Message-BzkpGg8z.js → Message-nFAa55c_.js} +1 -1
  50. package/dist/storybook/assets/{Message.stories-C9bzoQes.js → Message.stories-B4rpz5rI.js} +1 -1
  51. package/dist/storybook/assets/{OnFindMixin-CeeYfx9k.js → OnFindMixin-oL1bvTFj.js} +1 -1
  52. package/dist/storybook/assets/{OnFindMixin.stories-Dq06nuVf.js → OnFindMixin.stories-CdeS5sFA.js} +1 -1
  53. package/dist/storybook/assets/{Pagination-CnWa6AX5.js → Pagination-CSWcjuDU.js} +1 -1
  54. package/dist/storybook/assets/{Pagination.stories-BsH2eN2W.js → Pagination.stories-Da2WzJkv.js} +1 -1
  55. package/dist/storybook/assets/{Popover.stories-CLnzpgEE.js → Popover.stories-CVljlVHc.js} +1 -1
  56. package/dist/storybook/assets/{ProgressMixin-D1atDw3n.js → ProgressMixin-CeSrn0_P.js} +1 -1
  57. package/dist/storybook/assets/{Radio-B6Aq6K0V.js → Radio-rvfGhZwK.js} +1 -1
  58. package/dist/storybook/assets/{Radio.stories-BCVbISmb.js → Radio.stories-B0wHdJuc.js} +1 -1
  59. package/dist/storybook/assets/{RadioGroup.stories-B-TGP_-v.js → RadioGroup.stories-D8krOSlP.js} +1 -1
  60. package/dist/storybook/assets/{ReadyMixin-C8HW2nGE.js → ReadyMixin-CvX_eidU.js} +1 -1
  61. package/dist/storybook/assets/{RovingTabindexMixin-DI5rmyR7.js → RovingTabindexMixin-9z8lwaM9.js} +1 -1
  62. package/dist/storybook/assets/{RovingTabindexMixin.stories-DVKCC_R7.js → RovingTabindexMixin.stories-Y8vBWjJp.js} +1 -1
  63. package/dist/storybook/assets/{Rtc.stories-bBYHOszW.js → Rtc.stories-D3Y-z8y_.js} +1 -1
  64. package/dist/storybook/assets/{ScrollShadow.stories-BIK8YINt.js → ScrollShadow.stories-1KD0lWHX.js} +1 -1
  65. package/dist/storybook/assets/{Switch.stories-COEk74kM.js → Switch.stories-Bsqvm_HE.js} +1 -1
  66. package/dist/storybook/assets/{Tab.stories-Dbt9JvSx.js → Tab.stories-CzcTisNs.js} +1 -1
  67. package/dist/storybook/assets/{Tabs-BIScOPS0.js → Tabs-DdpYNZSW.js} +1 -1
  68. package/dist/storybook/assets/{Tabs.stories-CodKgVf2.js → Tabs.stories-UOS3V0J4.js} +1 -1
  69. package/dist/storybook/assets/{Throttle.stories-BhIqWWrQ.js → Throttle.stories-C8jgzh6e.js} +1 -1
  70. package/dist/storybook/assets/{Tooltip.stories-DKD8nBM1.js → Tooltip.stories-B5BoI0cH.js} +1 -1
  71. package/dist/storybook/assets/{TooltipMixin-CRNNusJ7.js → TooltipMixin-CVKslCDt.js} +1 -1
  72. package/dist/storybook/assets/{Upload.stories-WTO15ST1.js → Upload.stories-BsQDCDqo.js} +1 -1
  73. package/dist/storybook/assets/{UploadItem-DejgZ5A0.js → UploadItem-CYQqNwUF.js} +1 -1
  74. package/dist/storybook/assets/{UploadItem.stories-Pk3ghOcI.js → UploadItem.stories-_le7XBTV.js} +1 -1
  75. package/dist/storybook/assets/{Welcome.stories-DrNnxvt9.js → Welcome.stories-rramKkhd.js} +33 -3
  76. package/dist/storybook/assets/{Widget.stories-CYC5Qdac.js → Widget.stories-DtbAaklk.js} +1 -1
  77. package/dist/storybook/assets/{WithTooltip-65CFNBJE-DK6PZNaa.js → WithTooltip-65CFNBJE-DK6GcBuR.js} +1 -1
  78. package/dist/storybook/assets/{blocks-Dzcxb014.js → blocks-DHnzPh43.js} +5 -5
  79. package/dist/storybook/assets/{formatter-EIJCOSYU-PioIuXjk.js → formatter-EIJCOSYU-qig-qWlG.js} +1 -1
  80. package/dist/storybook/assets/if-defined-DerKRcyC.js +1 -0
  81. package/dist/storybook/assets/{iframe-Byo_x5o2.js → iframe-DlBK9Drk.js} +3 -3
  82. package/dist/storybook/assets/{index-gox-Wle0.js → index-CItQyB37.js} +1 -1
  83. package/dist/storybook/assets/{lottie_svg-3t2UJxjZ.js → lottie_svg-C3v6xdng.js} +1 -1
  84. package/dist/storybook/assets/{onFind-BWiaccUj.js → onFind-Ci35eu2y.js} +1 -1
  85. package/dist/storybook/assets/{onFind.stories-CC_XTN2G.js → onFind.stories-BmbwWWo1.js} +1 -1
  86. package/dist/storybook/assets/{onRemove.stories-CXxpL4ud.js → onRemove.stories-DFWCIgE4.js} +1 -1
  87. package/dist/storybook/assets/{onVisible.stories-DKA9cexx.js → onVisible.stories-B-onpgE-.js} +1 -1
  88. package/dist/storybook/assets/{property-_few0Xe5.js → property-Bmq4RTSP.js} +1 -1
  89. package/dist/storybook/assets/{ref-BaIdO8Sk.js → ref-BhKk4SDh.js} +1 -1
  90. package/dist/storybook/assets/state-DVIUS0Gf.js +1 -0
  91. package/dist/storybook/assets/{style-map-DxZm5Cj7.js → style-map-DE4G47KD.js} +1 -1
  92. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-B0_bSGZz.js → syntaxhighlighter-ED5Y7EFY-Dfgnal1d.js} +1 -1
  93. package/dist/storybook/custom-elements.json +11835 -0
  94. package/dist/storybook/docs/components/ActionBar.md +55 -0
  95. package/dist/storybook/docs/components/ActionItem.md +50 -0
  96. package/dist/storybook/docs/components/AiSparkle.md +33 -0
  97. package/dist/storybook/docs/components/Avatar.md +45 -0
  98. package/dist/storybook/docs/components/AvatarGroup.md +34 -0
  99. package/dist/storybook/docs/components/Badge.md +47 -0
  100. package/dist/storybook/docs/components/Banner.md +35 -0
  101. package/dist/storybook/docs/components/ButtonGroup.md +65 -0
  102. package/dist/storybook/docs/components/Card.md +67 -0
  103. package/dist/storybook/docs/components/Checkbox.md +49 -0
  104. package/dist/storybook/docs/components/CircularProgress.md +40 -0
  105. package/dist/storybook/docs/components/CopyToClipboard.md +51 -0
  106. package/dist/storybook/docs/components/Dropdown.md +74 -0
  107. package/dist/storybook/docs/components/DropdownItem.md +45 -0
  108. package/dist/storybook/docs/components/DropdownMenu.md +41 -0
  109. package/dist/storybook/docs/components/EmptyState.md +62 -0
  110. package/dist/storybook/docs/components/EscaAvatar.md +40 -0
  111. package/dist/storybook/docs/components/Icon.md +40 -0
  112. package/dist/storybook/docs/components/IconButton.md +36 -0
  113. package/dist/storybook/docs/components/LinearProgress.md +37 -0
  114. package/dist/storybook/docs/components/Message.md +50 -0
  115. package/dist/storybook/docs/components/Pagination.md +70 -0
  116. package/dist/storybook/docs/components/Popover.md +59 -0
  117. package/dist/storybook/docs/components/README.md +48 -0
  118. package/dist/storybook/docs/components/Radio.md +55 -0
  119. package/dist/storybook/docs/components/RadioGroup.md +34 -0
  120. package/dist/storybook/docs/components/Switch.md +48 -0
  121. package/dist/storybook/docs/components/Tab.md +40 -0
  122. package/dist/storybook/docs/components/Tabs.md +49 -0
  123. package/dist/storybook/docs/components/Upload.md +63 -0
  124. package/dist/storybook/docs/components/UploadItem.md +30 -0
  125. package/dist/storybook/docs/components/Widget.md +88 -0
  126. package/dist/storybook/docs/dari-elements.md +55 -0
  127. package/dist/storybook/iframe.html +1 -1
  128. package/dist/storybook/index.html +29 -2
  129. package/dist/storybook/llms-full.txt +1721 -0
  130. package/dist/storybook/llms.txt +65 -0
  131. package/dist/storybook/project.json +1 -1
  132. package/dist/storybook/robots.txt +7 -0
  133. package/dist/storybook/sb-addons/storybook-3/manager-bundle.js +1 -1
  134. package/dist/storybook/sitemap.xml +90 -0
  135. package/docs/components/ActionBar.md +41 -64
  136. package/docs/components/ActionItem.md +50 -96
  137. package/docs/components/AiSparkle.md +23 -60
  138. package/docs/components/Avatar.md +45 -88
  139. package/docs/components/AvatarGroup.md +24 -44
  140. package/docs/components/Badge.md +34 -62
  141. package/docs/components/Banner.md +25 -39
  142. package/docs/components/ButtonGroup.md +65 -99
  143. package/docs/components/Card.md +67 -83
  144. package/docs/components/Checkbox.md +49 -91
  145. package/docs/components/CircularProgress.md +40 -84
  146. package/docs/components/CopyToClipboard.md +35 -40
  147. package/docs/components/Dropdown.md +74 -120
  148. package/docs/components/DropdownItem.md +45 -81
  149. package/docs/components/DropdownMenu.md +30 -70
  150. package/docs/components/EmptyState.md +45 -62
  151. package/docs/components/EscaAvatar.md +30 -61
  152. package/docs/components/Icon.md +29 -62
  153. package/docs/components/IconButton.md +36 -83
  154. package/docs/components/LinearProgress.md +28 -70
  155. package/docs/components/Message.md +38 -63
  156. package/docs/components/Pagination.md +70 -100
  157. package/docs/components/Popover.md +46 -79
  158. package/docs/components/README.md +34 -40
  159. package/docs/components/Radio.md +55 -105
  160. package/docs/components/RadioGroup.md +26 -55
  161. package/docs/components/Switch.md +48 -84
  162. package/docs/components/Tab.md +30 -70
  163. package/docs/components/Tabs.md +49 -86
  164. package/docs/components/Upload.md +63 -112
  165. package/docs/components/UploadItem.md +22 -53
  166. package/docs/components/Widget.md +66 -67
  167. package/llms.txt +63 -0
  168. package/package.json +8 -6
  169. package/dist/storybook/assets/if-defined-DL7cQU7O.js +0 -1
  170. package/dist/storybook/assets/state-BBcPmYaV.js +0 -1
@@ -1,70 +1,33 @@
1
- # `src/components/ai-sparkle/AiSparkle.ts`:
1
+ # `<btu-ai-sparkle>`
2
2
 
3
- ## class: `AiSparkle`, `btu-ai-sparkle`
3
+ The animated AI-branding sparkle. Drive it with the `playing` boolean: `true` loops the clip to
4
+ draw the eye to an AI entry point, `false` freezes the full sparkle so it reads as a static brand
5
+ mark once the surface it advertises is engaged. Reduced-motion users always get the frozen frame.
4
6
 
5
- ### Superclass
7
+ Decorative by default (`aria-hidden="true"`, set only when absent) — the control it sits in owns
8
+ the accessible name.
6
9
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
+ ```js
11
+ import '@brightspot/ui/components/ai-sparkle/AiSparkle.js'
12
+ ```
10
13
 
11
- ### Mixins
14
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-ai-sparkle--docs
12
15
 
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
16
+ ## Attributes
17
17
 
18
- ### Fields
18
+ | Attribute | Property | Type | Default | Description |
19
+ | --- | --- | --- | --- | --- |
20
+ | `playing` | `playing` | `boolean` | `false` | Whether the sparkle animates; otherwise it holds the last (fully-formed) frame. Opt-in (default `false`) like `autoplay`: a boolean defaulting to `true` can't be cleared by attribute absence. The converter also treats `playing="false"` as paused (a plain `type: Boolean` would read any present value, even "false", as `true`). |
21
+ | `size` | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Size of the sparkle, mirroring `<btu-avatar>`'s scale. `--ai-sparkle-size` overrides it. |
19
22
 
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ----------------------- | ------- | ----------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
22
- | `playing` | | `boolean` | `false` | Whether the sparkle animates; otherwise it holds the last (fully-formed) frame. Opt-in&#xA;(default \`false\`) like \`autoplay\`: a boolean defaulting to \`true\` can't be cleared by attribute&#xA;absence. The converter also treats \`playing="false"\` as paused (a plain \`type: Boolean\` would&#xA;read any present value, even "false", as \`true\`). | |
23
- | `size` | | `AiSparkleSize` | `'md'` | Size of the sparkle, mirroring \`\<btu-avatar>\`'s scale. \`--ai-sparkle-size\` overrides it. | |
24
- | `_containerRef` | private | `Ref<HTMLDivElement>` | | | |
25
- | `_animation` | private | `AnimationItem \| null` | `null` | | |
26
- | `_loaded` | private | `boolean` | `false` | | |
27
- | `_loadToken` | private | `number` | `0` | | |
28
- | `_reduceMotion` | private | `boolean` | `false` | | |
29
- | `_visible` | private | `boolean` | `true` | | |
30
- | `_resizeObserver` | private | `ResizeObserver \| undefined` | | | |
31
- | `_intersectionObserver` | private | `IntersectionObserver \| undefined` | | | |
32
- | `_motionQuery` | private | `MediaQueryList \| undefined` | | | |
33
- | `_onMotionChange` | private | | | | |
23
+ ## Events
34
24
 
35
- ### Methods
25
+ | Event | Detail | Description |
26
+ | --- | --- | --- |
27
+ | `btu-ai-sparkle-ready` | | Fired after the first render |
36
28
 
37
- | Name | Privacy | Description | Parameters | Return | Inherited From |
38
- | ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
39
- | `_applySize` | private | | | | |
40
- | `_build` | private | | | | |
41
- | `_sync` | private | | | | |
42
- | `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 |
29
+ ## CSS custom properties
43
30
 
44
- ### Events
45
-
46
- | Name | Type | Description | Inherited From |
47
- | ---------------------- | ------------- | ---------------------------- | -------------- |
48
- | `btu-ai-sparkle-ready` | `CustomEvent` | Fired after the first render | |
49
-
50
- ### Attributes
51
-
52
- | Name | Field | Inherited From |
53
- | --------- | ------- | -------------- |
54
- | `playing` | playing | |
55
- | `size` | size | |
56
-
57
- ### CSS Properties
58
-
59
- | Name | Default | Description |
60
- | ------------------- | ------- | ----------------------------------------------------------------------------------- |
61
- | `--ai-sparkle-size` | | Width and height of the sparkle; overrides the \`size\` attribute (default: 2.5rem) |
62
-
63
- <hr/>
64
-
65
- ## Exports
66
-
67
- | Kind | Name | Declaration | Module | Package |
68
- | --------------------------- | ---------------- | ----------- | -------------------------------------- | ------- |
69
- | `js` | `default` | AiSparkle | src/components/ai-sparkle/AiSparkle.ts | |
70
- | `custom-element-definition` | `btu-ai-sparkle` | AiSparkle | src/components/ai-sparkle/AiSparkle.ts | |
31
+ | Property | Description |
32
+ | --- | --- |
33
+ | `--ai-sparkle-size` | Width and height of the sparkle; overrides the `size` attribute (default: 2.5rem) |
@@ -1,88 +1,45 @@
1
- # `src/components/avatar/Avatar.ts`:
2
-
3
- ## class: `Avatar`, `btu-avatar`
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
- | `src` | | `string` | `''` | Image source URL | |
24
- | `alt` | | `string` | `''` | Alt text for the image | |
25
- | `fallback` | | `string` | `''` | Fallback text (typically user initials) | |
26
- | `size` | | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'xxl'` | `'md'` | Size variant.&#xA;- 'xs': Extra small (1.5rem)&#xA;- 'sm': Small (2.25rem)&#xA;- 'md': Medium (2.5rem) - default&#xA;- 'lg': Large (3rem)&#xA;- 'xl': Extra large (3.5rem)&#xA;- 'xxl': Extra extra large (4rem) | |
27
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
28
- | `tooltip` | | `string` | `''` | Tooltip text content. Set to empty string to remove the tooltip. | TooltipMixin |
29
- | `tooltipPosition` | | `'top' \| 'bottom' \| 'left' \| 'right'` | `'top'` | Position relative to the host element. Auto-flips when constrained by the viewport. | TooltipMixin |
30
- | `tooltipDelay` | | `number` | `300` | Show delay in milliseconds (hover trigger only). | TooltipMixin |
31
- | `tooltipOffset` | | `TooltipOffset \| null` | `null` | Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px). | TooltipMixin |
32
- | `tooltipNoArrow` | | `boolean` | `false` | Hide the arrow pseudo-element. | TooltipMixin |
33
- | `tooltipTrigger` | | `string` | `'hover focus'` | Space-separated trigger types: 'hover', 'focus', 'click'. | TooltipMixin |
34
- | `_onMouseLeave` | private | | | | TooltipMixin |
35
- | `_onFocusIn` | private | | | | TooltipMixin |
36
- | `_onFocusOut` | private | | | | TooltipMixin |
37
- | `_onClick` | private | | | | TooltipMixin |
38
- | `_onNativeToggle` | private | | | | TooltipMixin |
39
- | `_onKeyDown` | private | | | | TooltipMixin |
40
- | `_onDocumentClick` | private | `((e: MouseEvent) => void) \| null` | `null` | | TooltipMixin |
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
-
48
- ### Events
49
-
50
- | Name | Type | Description | Inherited From |
51
- | ------------------------- | ------------------------------------------ | ------------------------------------------- | -------------- |
52
- | `btu-avatar-ready` | `CustomEvent` | Fired after first render and initialization | |
53
- | `btu-avatar-image-loaded` | `CustomEvent<{src: string}>` | Fired when image successfully loads | |
54
- | `btu-avatar-image-error` | `CustomEvent<{src: string, error: Event}>` | Fired when image fails to load | |
55
-
56
- ### Attributes
57
-
58
- | Name | Field | Inherited From |
59
- | ------------------ | --------------- | -------------- |
60
- | `src` | src | |
61
- | `alt` | alt | |
62
- | `fallback` | fallback | |
63
- | `size` | size | |
64
- | `tooltip` | tooltip | TooltipMixin |
65
- | `tooltip-position` | tooltipPosition | TooltipMixin |
66
- | `tooltip-delay` | tooltipDelay | TooltipMixin |
67
- | `tooltip-offset` | tooltipOffset | TooltipMixin |
68
- | `tooltip-no-arrow` | tooltipNoArrow | TooltipMixin |
69
- | `tooltip-trigger` | tooltipTrigger | TooltipMixin |
70
-
71
- ### CSS Properties
72
-
73
- | Name | Default | Description |
74
- | -------------------------- | ------- | ----------------------------------------------- |
75
- | `--avatar-size` | | Custom size (overrides size prop) |
76
- | `--avatar-bg-color` | | Fallback background color (default: purple-600) |
77
- | `--avatar-corner-rounding` | | How rounded is the avatar (default: circle) |
78
- | `--avatar-ring-color` | | Optional ring border color |
79
- | `--avatar-ring-width` | | Ring border width (default: 2px) |
80
-
81
- <hr/>
82
-
83
- ## Exports
84
-
85
- | Kind | Name | Declaration | Module | Package |
86
- | --------------------------- | ------------ | ----------- | ------------------------------- | ------- |
87
- | `js` | `default` | Avatar | src/components/avatar/Avatar.ts | |
88
- | `custom-element-definition` | `btu-avatar` | Avatar | src/components/avatar/Avatar.ts | |
1
+ # `<btu-avatar>`
2
+
3
+ An avatar component for displaying user profile images with fallback support.
4
+
5
+ Avatars display user profile images with automatic fallback to initials when
6
+ the image fails to load or is not provided.
7
+
8
+ ```js
9
+ import '@brightspot/ui/components/avatar/Avatar.js'
10
+ ```
11
+
12
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-avatar--docs
13
+
14
+ ## Attributes
15
+
16
+ | Attribute | Property | Type | Default | Description |
17
+ | --- | --- | --- | --- | --- |
18
+ | `src` | `src` | `string` | `''` | Image source URL |
19
+ | `alt` | `alt` | `string` | `''` | Alt text for the image |
20
+ | `fallback` | `fallback` | `string` | `''` | Fallback text (typically user initials) |
21
+ | `size` | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'xxl'` | `'md'` | Size variant. - 'xs': Extra small (1.5rem) - 'sm': Small (2.25rem) - 'md': Medium (2.5rem) - default - 'lg': Large (3rem) - 'xl': Extra large (3.5rem) - 'xxl': Extra extra large (4rem) |
22
+ | `tooltip` | `tooltip` | `string` | `''` | Tooltip text content. Set to empty string to remove the tooltip. |
23
+ | `tooltip-position` | `tooltipPosition` | `'top' \| 'bottom' \| 'left' \| 'right'` | `'top'` | Position relative to the host element. Auto-flips when constrained by the viewport. |
24
+ | `tooltip-delay` | `tooltipDelay` | `number` | `300` | Show delay in milliseconds (hover trigger only). |
25
+ | `tooltip-offset` | `tooltipOffset` | `'sm' \| 'md' \| 'lg' \| 'xl' \| null` | `null` | Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px). |
26
+ | `tooltip-no-arrow` | `tooltipNoArrow` | `boolean` | `false` | Hide the arrow pseudo-element. |
27
+ | `tooltip-trigger` | `tooltipTrigger` | `string` | `'hover focus'` | Space-separated trigger types: 'hover', 'focus', 'click'. |
28
+
29
+ ## Events
30
+
31
+ | Event | Detail | Description |
32
+ | --- | --- | --- |
33
+ | `btu-avatar-ready` | | Fired after first render and initialization |
34
+ | `btu-avatar-image-loaded` | `{src: string}` | Fired when image successfully loads |
35
+ | `btu-avatar-image-error` | `{src: string, error: Event}` | Fired when image fails to load |
36
+
37
+ ## CSS custom properties
38
+
39
+ | Property | Description |
40
+ | --- | --- |
41
+ | `--avatar-size` | Custom size (overrides size prop) |
42
+ | `--avatar-bg-color` | Fallback background color (default: purple-600) |
43
+ | `--avatar-corner-rounding` | How rounded is the avatar (default: circle) |
44
+ | `--avatar-ring-color` | Optional ring border color |
45
+ | `--avatar-ring-width` | Ring border width (default: 2px) |
@@ -1,54 +1,34 @@
1
- # `src/components/avatar/AvatarGroup.ts`:
1
+ # `<btu-avatar-group>`
2
2
 
3
- ## class: `AvatarGroup`, `btu-avatar-group`
3
+ A container component for grouping multiple avatars with consistent styling.
4
4
 
5
- ### Superclass
5
+ AvatarGroup wraps multiple avatar elements and provides:
6
+ - Overflow handling (shows "+N" for excess avatars)
7
+ - Consistent spacing and ring borders
8
+ - Size inheritance for all child avatars
6
9
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
+ ```js
11
+ import '@brightspot/ui/components/avatar/AvatarGroup.js'
12
+ ```
10
13
 
11
- ### Mixins
14
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-avatar-group--docs
12
15
 
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
16
+ ## Attributes
17
17
 
18
- ### Fields
18
+ | Attribute | Property | Type | Default | Description |
19
+ | --- | --- | --- | --- | --- |
20
+ | `max` | `max` | `number \| undefined` | | Maximum number of visible avatars. Remaining avatars shown as "+N" |
21
+ | `size` | `size` | `'xs' \| 'sm' \| 'md'` | `'md'` | Size variant for all child avatars (unless individually overridden) |
19
22
 
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ------------------------- | ------- | ---------------------- | ------- | ------------------------------------------------------------------- | -------------- |
22
- | `max` | | `number \| undefined` | | Maximum number of visible avatars. Remaining avatars shown as "+N" | |
23
- | `size` | | `'xs' \| 'sm' \| 'md'` | `'md'` | Size variant for all child avatars (unless individually overridden) | |
24
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
23
+ ## Methods
25
24
 
26
- ### Methods
25
+ | Method | Description |
26
+ | --- | --- |
27
+ | `processAvatars(): void` | Process all avatar children: apply size, handle overflow Call this method when avatars are dynamically added or removed |
27
28
 
28
- | Name | Privacy | Description | Parameters | Return | Inherited From |
29
- | ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
30
- | `processAvatars` | | Process all avatar children: apply size, handle overflow&#xA;Call this method when avatars are dynamically added or removed | | `void` | |
31
- | `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 |
29
+ ## Events
32
30
 
33
- ### Events
34
-
35
- | Name | Type | Description | Inherited From |
36
- | --------------------------- | ------------------------------- | ---------------------------------------------- | -------------- |
37
- | `btu-avatar-group-ready` | `CustomEvent` | Fired after first render and initialization | |
38
- | `btu-avatar-group-overflow` | `CustomEvent<{hidden: number}>` | Fired when avatars are hidden due to max limit | |
39
-
40
- ### Attributes
41
-
42
- | Name | Field | Inherited From |
43
- | ------ | ----- | -------------- |
44
- | `max` | max | |
45
- | `size` | size | |
46
-
47
- <hr/>
48
-
49
- ## Exports
50
-
51
- | Kind | Name | Declaration | Module | Package |
52
- | --------------------------- | ------------------ | ----------- | ------------------------------------ | ------- |
53
- | `js` | `default` | AvatarGroup | src/components/avatar/AvatarGroup.ts | |
54
- | `custom-element-definition` | `btu-avatar-group` | AvatarGroup | src/components/avatar/AvatarGroup.ts | |
31
+ | Event | Detail | Description |
32
+ | --- | --- | --- |
33
+ | `btu-avatar-group-ready` | | Fired after first render and initialization |
34
+ | `btu-avatar-group-overflow` | `{hidden: number}` | Fired when avatars are hidden due to max limit |
@@ -1,75 +1,47 @@
1
- # `src/components/badge/Badge.ts`:
1
+ # `<btu-badge>`
2
2
 
3
- ## class: `Badge`, `btu-badge`
3
+ A badge component for highlighting important information.
4
4
 
5
- ### Superclass
5
+ Badges help highlight notifications, status, or new messages.
6
+ Primarily used for communicating secondary or additional information.
6
7
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
8
+ ```js
9
+ import '@brightspot/ui/components/badge/Badge.js'
10
+ ```
10
11
 
11
- ### Mixins
12
+ The CMS page defines this element itself, so a plugin can use it there without the import.
12
13
 
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
14
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-badge--docs
17
15
 
18
- ### Fields
16
+ ## Attributes
19
17
 
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ------------------------- | ------- | ---------------------------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
22
- | `variant` | | `'info' \| 'primary' \| 'error' \| 'success' \| 'warning'` | `'info'` | Style of the badge.&#xA;- 'info': Informational (default)&#xA;- 'primary': Primary action or emphasis&#xA;- 'error': Error or danger state&#xA;- 'success': Success or completion state&#xA;- 'warning': Warning or caution state | |
23
- | `dot` | | `boolean` | `false` | Should a dot be displayed before the label? | |
24
- | `size` | | `'sm' \| 'md' \| 'lg'` | `'sm'` | Size variant.&#xA;- 'sm': Small (default)&#xA;- 'md': Medium&#xA;- 'lg': Large | |
25
- | `activity` | | `'busy' \| 'live' \| undefined` | | Attention state that draws the eye to the badge. Names the \*intent\*; the&#xA;component owns the visual treatment (so it can change without callers).&#xA;- 'busy': an in-progress state — a glint shimmers across the label text&#xA;- 'live': a live/active state — a ring ripples out from the leading dot&#xA; (implies \`dot\`) | |
26
- | `fill` | | `'soft' \| 'solid'` | `'soft'` | Fill style.&#xA;- 'soft': pale background with strong text (default)&#xA;- 'solid': swaps the shades for a filled pill | |
27
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
18
+ | Attribute | Property | Type | Default | Description |
19
+ | --- | --- | --- | --- | --- |
20
+ | `variant` | `variant` | `'info' \| 'primary' \| 'error' \| 'success' \| 'warning'` | `'info'` | Style of the badge. - 'info': Informational (default) - 'primary': Primary action or emphasis - 'error': Error or danger state - 'success': Success or completion state - 'warning': Warning or caution state |
21
+ | `dot` | `dot` | `boolean` | `false` | Should a dot be displayed before the label? |
22
+ | `size` | `size` | `'sm' \| 'md' \| 'lg'` | `'sm'` | Size variant. - 'sm': Small (default) - 'md': Medium - 'lg': Large |
23
+ | `activity` | `activity` | `'busy' \| 'live' \| undefined` | | Attention state that draws the eye to the badge. Names the *intent*; the component owns the visual treatment (so it can change without callers). - 'busy': an in-progress state — a glint shimmers across the label text - 'live': a live/active state — a ring ripples out from the leading dot (implies `dot`) |
24
+ | `fill` | `fill` | `'soft' \| 'solid'` | `'soft'` | Fill style. - 'soft': pale background with strong text (default) - 'solid': swaps the shades for a filled pill |
28
25
 
29
- ### Methods
26
+ ## Events
30
27
 
31
- | Name | Privacy | Description | Parameters | Return | Inherited From |
32
- | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
33
- | `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 |
28
+ | Event | Detail | Description |
29
+ | --- | --- | --- |
30
+ | `btu-badge-ready` | | Fired after first render and initialization |
34
31
 
35
- ### Events
32
+ ## Slots
36
33
 
37
- | Name | Type | Description | Inherited From |
38
- | ----------------- | ------------- | ------------------------------------------- | -------------- |
39
- | `btu-badge-ready` | `CustomEvent` | Fired after first render and initialization | |
34
+ | Slot | Description |
35
+ | --- | --- |
36
+ | (default) | Label text or child elements (e.g., btu-icon + text) |
40
37
 
41
- ### Attributes
38
+ ## CSS custom properties
42
39
 
43
- | Name | Field | Inherited From |
44
- | ---------- | -------- | -------------- |
45
- | `variant` | variant | |
46
- | `dot` | dot | |
47
- | `size` | size | |
48
- | `activity` | activity | |
49
- | `fill` | fill | |
50
-
51
- ### CSS Properties
52
-
53
- | Name | Default | Description |
54
- | -------------------------- | ------- | ------------------------------------------------------------ |
55
- | `--badge-color-foreground` | | Text color (overrides theme color) |
56
- | `--badge-color-background` | | Background color (overrides theme color) |
57
- | `--badge-radius-size` | | Border radius size (overrides shape default, default: 999px) |
58
- | `--badge-px` | | Horizontal padding (overrides size default) |
59
- | `--badge-py` | | Vertical padding (overrides size default) |
60
- | `--badge-dot-size` | | Size of the dot affordance (default: 6px) |
61
-
62
- ### Slots
63
-
64
- | Name | Description |
65
- | ---- | ---------------------------------------------------- |
66
- | | Label text or child elements (e.g., btu-icon + text) |
67
-
68
- <hr/>
69
-
70
- ## Exports
71
-
72
- | Kind | Name | Declaration | Module | Package |
73
- | --------------------------- | ----------- | ----------- | ----------------------------- | ------- |
74
- | `js` | `default` | Badge | src/components/badge/Badge.ts | |
75
- | `custom-element-definition` | `btu-badge` | Badge | src/components/badge/Badge.ts | |
40
+ | Property | Description |
41
+ | --- | --- |
42
+ | `--badge-color-foreground` | Text color (overrides theme color) |
43
+ | `--badge-color-background` | Background color (overrides theme color) |
44
+ | `--badge-radius-size` | Border radius size (overrides shape default, default: 999px) |
45
+ | `--badge-px` | Horizontal padding (overrides size default) |
46
+ | `--badge-py` | Vertical padding (overrides size default) |
47
+ | `--badge-dot-size` | Size of the dot affordance (default: 6px) |
@@ -1,49 +1,35 @@
1
- # `src/components/banner/Banner.ts`:
1
+ # `<btu-banner>`
2
2
 
3
- ## class: `Banner`, `btu-banner`
3
+ A full-width container that pins a `<btu-message>` to the top of the CMS or a
4
+ content edit page. The banner has no content API of its own — compose a
5
+ `<btu-message>` inside it (or several, e.g. for a paginated banner) and the banner
6
+ spans each to 100% of the host, rendering it full-bleed (edge-to-edge, bottom
7
+ border only, no corner rounding).
4
8
 
5
- ### Superclass
9
+ Set the content (variant, label, symbol, dismissible, badge/description/actions
10
+ slots) on the message itself. The full-width treatment lives on this wrapper, so
11
+ the message has no `full-width` attribute — the banner owns that.
6
12
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
13
+ ```js
14
+ import '@brightspot/ui/components/banner/Banner.js'
15
+ ```
10
16
 
11
- ### Mixins
17
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-banner--docs
12
18
 
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
19
+ ## Events
17
20
 
18
- ### Methods
21
+ | Event | Detail | Description |
22
+ | --- | --- | --- |
23
+ | `btu-banner-ready` | | Fired after the banner is first rendered and initialized |
19
24
 
20
- | Name | Privacy | Description | Parameters | Return | Inherited From |
21
- | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
22
- | `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 |
25
+ ## Slots
23
26
 
24
- ### Events
27
+ | Slot | Description |
28
+ | --- | --- |
29
+ | (default) | One or more `<btu-message>` elements, full-bleed to the host width. With more than one, the banner auto-creates a `<btu-pagination>` and shows one at a time. |
25
30
 
26
- | Name | Type | Description | Inherited From |
27
- | ------------------ | ------------- | -------------------------------------------------------- | -------------- |
28
- | `btu-banner-ready` | `CustomEvent` | Fired after the banner is first rendered and initialized | |
31
+ ## CSS custom properties
29
32
 
30
- ### CSS Properties
31
-
32
- | Name | Default | Description |
33
- | ------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
34
- | `--banner-z-index` | | Stack order for the banner (default: 100). The banner is \`position: relative\`, so this always applies; set \`position: sticky\` to also pin it to the viewport. |
35
-
36
- ### Slots
37
-
38
- | Name | Description |
39
- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
40
- | | One or more \`\<btu-message>\` elements, full-bleed to the host width. With more than one, the banner auto-creates a \`\<btu-pagination>\` and shows one at a time. |
41
-
42
- <hr/>
43
-
44
- ## Exports
45
-
46
- | Kind | Name | Declaration | Module | Package |
47
- | --------------------------- | ------------ | ----------- | ------------------------------- | ------- |
48
- | `js` | `default` | Banner | src/components/banner/Banner.ts | |
49
- | `custom-element-definition` | `btu-banner` | Banner | src/components/banner/Banner.ts | |
33
+ | Property | Description |
34
+ | --- | --- |
35
+ | `--banner-z-index` | Stack order for the banner (default: 100). The banner is `position: relative`, so this always applies; set `position: sticky` to also pin it to the viewport. |