@brightspot/ui 1.10.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/dist/components/action-bar/ActionBar.d.ts +163 -0
  2. package/dist/components/action-bar/ActionBar.d.ts.map +1 -0
  3. package/dist/components/action-bar/ActionBar.js +479 -0
  4. package/dist/components/action-bar/ActionBar.js.map +1 -0
  5. package/dist/components/action-bar/ActionItem.d.ts +103 -0
  6. package/dist/components/action-bar/ActionItem.d.ts.map +1 -0
  7. package/dist/components/action-bar/ActionItem.js +237 -0
  8. package/dist/components/action-bar/ActionItem.js.map +1 -0
  9. package/dist/components/avatar/AvatarGroup.d.ts +3 -0
  10. package/dist/components/avatar/AvatarGroup.d.ts.map +1 -1
  11. package/dist/components/avatar/AvatarGroup.js +3 -0
  12. package/dist/components/avatar/AvatarGroup.js.map +1 -1
  13. package/dist/components/badge/Badge.d.ts +3 -1
  14. package/dist/components/badge/Badge.d.ts.map +1 -1
  15. package/dist/components/badge/Badge.js +2 -0
  16. package/dist/components/badge/Badge.js.map +1 -1
  17. package/dist/components/button-group/ButtonGroup.d.ts +138 -0
  18. package/dist/components/button-group/ButtonGroup.d.ts.map +1 -0
  19. package/dist/components/button-group/ButtonGroup.js +436 -0
  20. package/dist/components/button-group/ButtonGroup.js.map +1 -0
  21. package/dist/components/checkbox/Checkbox.d.ts +107 -0
  22. package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
  23. package/dist/components/checkbox/Checkbox.js +224 -0
  24. package/dist/components/checkbox/Checkbox.js.map +1 -0
  25. package/dist/components/circular-progress/CircularProgress.d.ts +2 -2
  26. package/dist/components/circular-progress/CircularProgress.js +2 -2
  27. package/dist/components/copy-to-clipboard/CopyToClipboard.d.ts +7 -2
  28. package/dist/components/copy-to-clipboard/CopyToClipboard.d.ts.map +1 -1
  29. package/dist/components/copy-to-clipboard/CopyToClipboard.js +10 -5
  30. package/dist/components/copy-to-clipboard/CopyToClipboard.js.map +1 -1
  31. package/dist/components/dropdown/Dropdown.d.ts +8 -6
  32. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  33. package/dist/components/dropdown/Dropdown.js +33 -22
  34. package/dist/components/dropdown/Dropdown.js.map +1 -1
  35. package/dist/components/dropdown/DropdownItem.d.ts +28 -7
  36. package/dist/components/dropdown/DropdownItem.d.ts.map +1 -1
  37. package/dist/components/dropdown/DropdownItem.js +41 -16
  38. package/dist/components/dropdown/DropdownItem.js.map +1 -1
  39. package/dist/components/dropdown/DropdownMenu.d.ts +6 -8
  40. package/dist/components/dropdown/DropdownMenu.d.ts.map +1 -1
  41. package/dist/components/dropdown/DropdownMenu.js +22 -37
  42. package/dist/components/dropdown/DropdownMenu.js.map +1 -1
  43. package/dist/components/empty-state/EmptyState.css +4 -0
  44. package/dist/components/empty-state/EmptyState.d.ts +103 -0
  45. package/dist/components/empty-state/EmptyState.d.ts.map +1 -0
  46. package/dist/components/empty-state/EmptyState.js +209 -0
  47. package/dist/components/empty-state/EmptyState.js.map +1 -0
  48. package/dist/components/icon/Icon.d.ts +23 -10
  49. package/dist/components/icon/Icon.d.ts.map +1 -1
  50. package/dist/components/icon/Icon.js +40 -9
  51. package/dist/components/icon/Icon.js.map +1 -1
  52. package/dist/components/icon-button/IconButton.d.ts +7 -21
  53. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  54. package/dist/components/icon-button/IconButton.js +12 -18
  55. package/dist/components/icon-button/IconButton.js.map +1 -1
  56. package/dist/components/linear-progress/LinearProgress.d.ts +2 -2
  57. package/dist/components/linear-progress/LinearProgress.js +2 -2
  58. package/dist/components/pagination/Pagination.d.ts +33 -4
  59. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  60. package/dist/components/pagination/Pagination.js +88 -24
  61. package/dist/components/pagination/Pagination.js.map +1 -1
  62. package/dist/components/popover/Popover.d.ts +6 -0
  63. package/dist/components/popover/Popover.d.ts.map +1 -1
  64. package/dist/components/popover/Popover.js +6 -0
  65. package/dist/components/popover/Popover.js.map +1 -1
  66. package/dist/components/switch/Switch.d.ts +5 -1
  67. package/dist/components/switch/Switch.d.ts.map +1 -1
  68. package/dist/components/switch/Switch.js +10 -6
  69. package/dist/components/switch/Switch.js.map +1 -1
  70. package/dist/components/tabs/Tab.d.ts +108 -0
  71. package/dist/components/tabs/Tab.d.ts.map +1 -0
  72. package/dist/components/tabs/Tab.js +152 -0
  73. package/dist/components/tabs/Tab.js.map +1 -0
  74. package/dist/components/tabs/Tabs.d.ts +126 -0
  75. package/dist/components/tabs/Tabs.d.ts.map +1 -0
  76. package/dist/components/tabs/Tabs.js +390 -0
  77. package/dist/components/tabs/Tabs.js.map +1 -0
  78. package/dist/components/upload/Upload.d.ts +157 -0
  79. package/dist/components/upload/Upload.d.ts.map +1 -0
  80. package/dist/components/upload/Upload.js +538 -0
  81. package/dist/components/upload/Upload.js.map +1 -0
  82. package/dist/components/upload/UploadItem.d.ts +73 -0
  83. package/dist/components/upload/UploadItem.d.ts.map +1 -0
  84. package/dist/components/upload/UploadItem.js +180 -0
  85. package/dist/components/upload/UploadItem.js.map +1 -0
  86. package/dist/components/widget/Widget.d.ts +1 -6
  87. package/dist/components/widget/Widget.d.ts.map +1 -1
  88. package/dist/components/widget/Widget.js +1 -6
  89. package/dist/components/widget/Widget.js.map +1 -1
  90. package/dist/custom-elements.json +8445 -1989
  91. package/dist/storybook/assets/ActionBar.stories-DRIVI-W2.js +408 -0
  92. package/dist/storybook/assets/ActionItem.stories-5qlgxYNB.js +203 -0
  93. package/dist/storybook/assets/{Avatar.stories-B26mRkkZ.js → Avatar.stories-B3VkhRhP.js} +2 -2
  94. package/dist/storybook/assets/{AvatarGroup.stories-J7lVGsMY.js → AvatarGroup.stories-DOfim2NY.js} +5 -5
  95. package/dist/storybook/assets/{Badge.stories-BpTIV61M.js → Badge.stories-B04VNAcc.js} +2 -2
  96. package/dist/storybook/assets/{Button-Dg-fIrzT.js → Button-CILTcGRT.js} +1 -1
  97. package/dist/storybook/assets/{Button.stories-gPKRVbxk.js → Button.stories-CzWAltrX.js} +1 -1
  98. package/dist/storybook/assets/ButtonGroup.stories-1uAJf79o.js +588 -0
  99. package/dist/storybook/assets/{Celebrate.stories-DbY-sKEe.js → Celebrate.stories-BEqj0VnW.js} +7 -7
  100. package/dist/storybook/assets/Checkbox.stories-DXAGFS0M.js +141 -0
  101. package/dist/storybook/assets/{CircularProgress.stories-DeH5JYX_.js → CircularProgress.stories-D4rftw22.js} +7 -7
  102. package/dist/storybook/assets/{ClipboardMixin.stories-C-lZ4uuw.js → ClipboardMixin.stories-z2n2HWt1.js} +31 -28
  103. package/dist/storybook/assets/{Color-6BZIO3FS-Cu6zVIuG.js → Color-6BZIO3FS-C6KyMgZz.js} +1 -1
  104. package/dist/storybook/assets/{Colors.stories-D6XYMrTD.js → Colors.stories-CX-Ny3B_.js} +1 -1
  105. package/dist/storybook/assets/{CombinedEffects.stories-jFekKTYg.js → CombinedEffects.stories-BkqtiVHp.js} +33 -33
  106. package/dist/storybook/assets/{ComponentStatesMixin-g50hRCPT.js → ComponentStatesMixin-DLd0feFg.js} +1 -1
  107. package/dist/storybook/assets/{ComponentStatesMixin.stories-D3Q5pR38.js → ComponentStatesMixin.stories-D6Yc5Jgl.js} +3 -3
  108. package/dist/storybook/assets/{CopyToClipboard.stories-COZZ1VC2.js → CopyToClipboard.stories-B-omwDDJ.js} +16 -16
  109. package/dist/storybook/assets/{Debounce.stories-Dl10LAnx.js → Debounce.stories-B2vE5QIx.js} +9 -9
  110. package/dist/storybook/assets/{DocsRenderer-LL677BLK-CFLtMbUx.js → DocsRenderer-LL677BLK-DNUlRvMg.js} +3 -3
  111. package/dist/storybook/assets/{Dropdown.stories-Drwq-0Z2.js → Dropdown.stories-_bx4WDLr.js} +95 -68
  112. package/dist/storybook/assets/EmptyState.stories-CGMbmo77.js +318 -0
  113. package/dist/storybook/assets/{Events.stories-dODeR-g-.js → Events.stories-CkQYKcoZ.js} +1 -1
  114. package/dist/storybook/assets/{Heading.stories-CH7_-_q3.js → Heading.stories-BU5Do_od.js} +1 -1
  115. package/dist/storybook/assets/{HueRipple.stories-CH1Y739k.js → HueRipple.stories-Di2zmxo3.js} +11 -11
  116. package/dist/storybook/assets/Icon.stories-Dk4ZXhhJ.js +441 -0
  117. package/dist/storybook/assets/{IconButton.stories-DuzqvcnN.js → IconButton.stories-BSCiXPXa.js} +126 -146
  118. package/dist/storybook/assets/{LinearProgress.stories-C7IdnJd3.js → LinearProgress.stories-BGxPZuni.js} +7 -7
  119. package/dist/storybook/assets/Pagination.stories-z3Zq8b4f.js +252 -0
  120. package/dist/storybook/assets/{Popover.stories-Ca1F-wrI.js → Popover.stories-C9GxWcax.js} +33 -62
  121. package/dist/storybook/assets/ReadyMixin-CQw8N6P9.js +1 -0
  122. package/dist/storybook/assets/RovingTabindexMixin.stories-ByxLBi6m.js +192 -0
  123. package/dist/storybook/assets/{Rtc.stories-BVJc1vCA.js → Rtc.stories-DQJlCXWR.js} +3 -3
  124. package/dist/storybook/assets/ScrollShadow.stories-gjTIAbUA.js +17 -0
  125. package/dist/storybook/assets/{Switch.stories-BEEHP8mD.js → Switch.stories-BEeqPZiP.js} +21 -21
  126. package/dist/storybook/assets/Tab.stories-DpB3I-WZ.js +218 -0
  127. package/dist/storybook/assets/Tabs.stories-C6mG6Xi7.js +211 -0
  128. package/dist/storybook/assets/{Throttle.stories-C4xsYeAb.js → Throttle.stories-x9tpGeQh.js} +10 -10
  129. package/dist/storybook/assets/{Tooltip.stories-Ccm4AnSv.js → Tooltip.stories-CqcLqdmc.js} +2 -2
  130. package/dist/storybook/assets/Upload.stories-CMaAbCSH.js +447 -0
  131. package/dist/storybook/assets/UploadItem.stories-GB98L3JQ.js +167 -0
  132. package/dist/storybook/assets/{Welcome.stories-Degjk-M0.js → Welcome.stories-6h9cUZ7v.js} +1 -1
  133. package/dist/storybook/assets/{Widget.stories-OKnZ9sDs.js → Widget.stories-DiA1PR6Y.js} +13 -13
  134. package/dist/storybook/assets/{WithTooltip-65CFNBJE-CXL3TyJ2.js → WithTooltip-65CFNBJE-DTsHhBb_.js} +2 -2
  135. package/dist/storybook/assets/{blocks-DLdUKG_W.js → blocks-IXdn9TGW.js} +5 -5
  136. package/dist/storybook/assets/{formatter-EIJCOSYU-29NCxjfM.js → formatter-EIJCOSYU-Cum4J6N4.js} +1 -1
  137. package/dist/storybook/assets/if-defined-CgfCxQoV.js +1 -0
  138. package/dist/storybook/assets/iframe-BgFj0b5u.css +1 -0
  139. package/dist/storybook/assets/{iframe-BqvwP3or.js → iframe-Sf9RHZFu.js} +200 -200
  140. package/dist/storybook/assets/{index-BIyTv1BF.js → index-D605PvQH.js} +1 -1
  141. package/dist/storybook/assets/onFind-C41m8c_a.js +1 -0
  142. package/dist/storybook/assets/{onFind.stories-D64-QZqf.js → onFind.stories-MOTfGlJd.js} +53 -77
  143. package/dist/storybook/assets/{onRemove.stories-BICsnIJL.js → onRemove.stories-DX58Bf6f.js} +6 -10
  144. package/dist/storybook/assets/{onVisible.stories-DpDZP9_5.js → onVisible.stories-NNFeFeD8.js} +3 -3
  145. package/dist/storybook/assets/style-map-B99QiqCo.js +1 -0
  146. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-Bz_DuQj8.js → syntaxhighlighter-ED5Y7EFY-BqQ-o9mS.js} +1 -1
  147. package/dist/storybook/box-illustration.svg +51 -0
  148. package/dist/storybook/cloud-illustration.svg +49 -0
  149. package/dist/storybook/docs-illustration.svg +92 -0
  150. package/dist/storybook/iframe.html +2 -2
  151. package/dist/storybook/index.json +1 -1
  152. package/dist/storybook/project.json +1 -1
  153. package/dist/tailwind-plugin-action-bar.d.ts +2 -0
  154. package/dist/tailwind-plugin-action-bar.d.ts.map +1 -0
  155. package/dist/tailwind-plugin-action-bar.js +120 -0
  156. package/dist/tailwind-plugin-action-bar.js.map +1 -0
  157. package/dist/tailwind-plugin-action-bar.ts +134 -0
  158. package/dist/tailwind-plugin-badge.js +5 -6
  159. package/dist/tailwind-plugin-badge.js.map +1 -1
  160. package/dist/tailwind-plugin-badge.ts +5 -6
  161. package/dist/tailwind-plugin-button-group.d.ts +2 -0
  162. package/dist/tailwind-plugin-button-group.d.ts.map +1 -0
  163. package/dist/tailwind-plugin-button-group.js +215 -0
  164. package/dist/tailwind-plugin-button-group.js.map +1 -0
  165. package/dist/tailwind-plugin-button-group.ts +238 -0
  166. package/dist/tailwind-plugin-button.js +2 -1
  167. package/dist/tailwind-plugin-button.js.map +1 -1
  168. package/dist/tailwind-plugin-button.ts +2 -1
  169. package/dist/tailwind-plugin-checkbox.d.ts +2 -0
  170. package/dist/tailwind-plugin-checkbox.d.ts.map +1 -0
  171. package/dist/tailwind-plugin-checkbox.js +246 -0
  172. package/dist/tailwind-plugin-checkbox.js.map +1 -0
  173. package/dist/tailwind-plugin-checkbox.ts +281 -0
  174. package/dist/tailwind-plugin-empty-state.d.ts +2 -0
  175. package/dist/tailwind-plugin-empty-state.d.ts.map +1 -0
  176. package/dist/tailwind-plugin-empty-state.js +113 -0
  177. package/dist/tailwind-plugin-empty-state.js.map +1 -0
  178. package/dist/tailwind-plugin-empty-state.ts +124 -0
  179. package/dist/tailwind-plugin-icon.js +122 -18
  180. package/dist/tailwind-plugin-icon.js.map +1 -1
  181. package/dist/tailwind-plugin-icon.ts +131 -18
  182. package/dist/tailwind-plugin-loader.js +3 -3
  183. package/dist/tailwind-plugin-loader.ts +3 -3
  184. package/dist/tailwind-plugin-pagination.js +13 -23
  185. package/dist/tailwind-plugin-pagination.js.map +1 -1
  186. package/dist/tailwind-plugin-pagination.ts +15 -25
  187. package/dist/tailwind-plugin-tabs.d.ts +2 -0
  188. package/dist/tailwind-plugin-tabs.d.ts.map +1 -0
  189. package/dist/tailwind-plugin-tabs.js +158 -0
  190. package/dist/tailwind-plugin-tabs.js.map +1 -0
  191. package/dist/tailwind-plugin-tabs.ts +169 -0
  192. package/dist/tailwind-plugin-upload.d.ts +2 -0
  193. package/dist/tailwind-plugin-upload.d.ts.map +1 -0
  194. package/dist/tailwind-plugin-upload.js +322 -0
  195. package/dist/tailwind-plugin-upload.js.map +1 -0
  196. package/dist/tailwind-plugin-upload.ts +362 -0
  197. package/dist/tailwind.config.d.ts.map +1 -1
  198. package/dist/tailwind.config.js +1 -0
  199. package/dist/tailwind.config.js.map +1 -1
  200. package/dist/tailwind.config.ts +1 -0
  201. package/dist/util/ClipboardMixin.d.ts +7 -2
  202. package/dist/util/ClipboardMixin.d.ts.map +1 -1
  203. package/dist/util/ClipboardMixin.js +15 -13
  204. package/dist/util/ClipboardMixin.js.map +1 -1
  205. package/dist/util/ComponentStatesMixin.d.ts +2 -1
  206. package/dist/util/ComponentStatesMixin.d.ts.map +1 -1
  207. package/dist/util/ComponentStatesMixin.js +4 -0
  208. package/dist/util/ComponentStatesMixin.js.map +1 -1
  209. package/dist/util/EventEmitterMixin.d.ts +58 -4
  210. package/dist/util/EventEmitterMixin.d.ts.map +1 -1
  211. package/dist/util/EventEmitterMixin.js +5 -2
  212. package/dist/util/EventEmitterMixin.js.map +1 -1
  213. package/dist/util/ProgressMixin.d.ts +9 -2
  214. package/dist/util/ProgressMixin.d.ts.map +1 -1
  215. package/dist/util/ProgressMixin.js +22 -18
  216. package/dist/util/ProgressMixin.js.map +1 -1
  217. package/dist/util/RovingTabindexMixin.d.ts +46 -0
  218. package/dist/util/RovingTabindexMixin.d.ts.map +1 -0
  219. package/dist/util/RovingTabindexMixin.js +83 -0
  220. package/dist/util/RovingTabindexMixin.js.map +1 -0
  221. package/dist/util/TetherLayout.d.ts.map +1 -1
  222. package/dist/util/TetherLayout.js +3 -0
  223. package/dist/util/TetherLayout.js.map +1 -1
  224. package/dist/util/TooltipMixin.d.ts.map +1 -1
  225. package/dist/util/TooltipMixin.js +5 -4
  226. package/dist/util/TooltipMixin.js.map +1 -1
  227. package/dist/util/upload.d.ts +53 -0
  228. package/dist/util/upload.d.ts.map +1 -0
  229. package/dist/util/upload.js +113 -0
  230. package/dist/util/upload.js.map +1 -0
  231. package/docs/components/ActionBar.md +77 -0
  232. package/docs/components/ActionItem.md +101 -0
  233. package/docs/components/Avatar.md +42 -12
  234. package/docs/components/AvatarGroup.md +4 -3
  235. package/docs/components/Badge.md +13 -1
  236. package/docs/components/ButtonGroup.md +91 -0
  237. package/docs/components/Checkbox.md +91 -0
  238. package/docs/components/CircularProgress.md +41 -12
  239. package/docs/components/CopyToClipboard.md +13 -11
  240. package/docs/components/Dropdown.md +51 -26
  241. package/docs/components/DropdownItem.md +44 -27
  242. package/docs/components/DropdownMenu.md +14 -14
  243. package/docs/components/EmptyState.md +75 -0
  244. package/docs/components/Icon.md +22 -14
  245. package/docs/components/IconButton.md +46 -21
  246. package/docs/components/LinearProgress.md +43 -4
  247. package/docs/components/Pagination.md +38 -34
  248. package/docs/components/Popover.md +16 -0
  249. package/docs/components/README.md +9 -0
  250. package/docs/components/Switch.md +21 -16
  251. package/docs/components/Tab.md +79 -0
  252. package/docs/components/Tabs.md +85 -0
  253. package/docs/components/Upload.md +112 -0
  254. package/docs/components/UploadItem.md +61 -0
  255. package/docs/components/Widget.md +12 -6
  256. package/package.json +4 -2
  257. package/dist/storybook/assets/Icon.stories-CPjM-jTU.js +0 -264
  258. package/dist/storybook/assets/Pagination.stories-C4cLjS_9.js +0 -272
  259. package/dist/storybook/assets/ReadyMixin-DNZ5dCsZ.js +0 -1
  260. package/dist/storybook/assets/ScrollShadow.stories-C3W5o9ZW.js +0 -17
  261. package/dist/storybook/assets/if-defined-BZFPaJjl.js +0 -1
  262. package/dist/storybook/assets/iframe-C5bIZMJ5.css +0 -1
  263. package/dist/storybook/assets/onFind-1l3EPW-I.js +0 -1
  264. package/dist/storybook/assets/style-map-CBrSnxRe.js +0 -1
@@ -23,11 +23,18 @@
23
23
 
24
24
  ### Fields
25
25
 
26
- | Name | Privacy | Type | Default | Description | Inherited From |
27
- | ---------- | ------- | --------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
28
- | `size` | | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Size of the icon.
- 'xs': Extra small (0.75rem)
- 'sm': Small (1rem)
- 'md': Medium (1.25rem, default)
- 'lg': Large (1.5rem)
- 'xl': Extra large (1.75rem) | |
29
- | `symbol` | | `string` | `'circle-dashed'` | Lucide icon name to display.
See https\://lucide.dev/icons/ for available icons. | |
30
- | `gradient` | | `'ai' \| 'error' \| 'gray' \| 'primary' \| 'purple' \| 'rose' \| 'success' \| 'teal' \| 'warning' \| undefined` | | Theme color to use for gradient fill.
When set, icon displays with gradient. When undefined, icon inherits parent text color. | |
26
+ | Name | Privacy | Type | Default | Description | Inherited From |
27
+ | ----------- | ------- | -------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
28
+ | `size` | | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` | Size of the icon.
- 'xs': Extra small (0.75rem)
- 'sm': Small (1rem)
- 'md': Medium (1.25rem, default)
- 'lg': Large (1.5rem)
- 'xl': Extra large (1.75rem) | |
29
+ | `symbol` | | `string` | `'circle-dashed'` | Lucide icon name to display.
See https\://lucide.dev/icons/ for available icons. | |
30
+ | `gradient` | | `IconGradientColor \| undefined` | | Theme color to use for gradient fill.
When set, icon displays with gradient. When undefined, icon inherits parent text color. | |
31
+ | `emphasize` | | `boolean \| 'pulse' \| undefined` | | Emphasize mode — renders a tonal circle with ring behind the icon.
Colors are derived from \`currentColor\` via oklch relative color syntax.
Defaults to primary; override with Tailwind \`text-\*\` classes or \`style="color: ..."\`.
Set as a boolean for the static circle, or \`"pulse"\` for a one-shot ring animation.
Not intended for use with \`gradient\` — the two features target
conflicting rendering modes. | |
32
+
33
+ ### Methods
34
+
35
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
36
+ | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
37
+ | `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 |
31
38
 
32
39
  ### Events
33
40
 
@@ -37,20 +44,21 @@
37
44
 
38
45
  ### Attributes
39
46
 
40
- | Name | Field | Inherited From |
41
- | ---------- | -------- | -------------- |
42
- | `size` | size | |
43
- | `symbol` | symbol | |
44
- | `gradient` | gradient | |
47
+ | Name | Field | Inherited From |
48
+ | ----------- | --------- | -------------- |
49
+ | `size` | size | |
50
+ | `symbol` | symbol | |
51
+ | `gradient` | gradient | |
52
+ | `emphasize` | emphasize | |
45
53
 
46
54
  ### CSS Properties
47
55
 
48
56
  | Name | Default | Description |
49
57
  | --------------------- | ------- | --------------------------------------------------------------------------------------------------- |
50
- | `--Icon-size` | | Icon size (overrides size default) |
51
- | `--Icon-stroke-width` | | SVG stroke width as a unitless number in viewBox units; scales visually with icon size (default: 2) |
52
- | `--Icon-fill` | | Icon fill color for filled icons (e.g., "currentColor") |
53
- | `--Icon-svg` | | SVG data URI for mask-based rendering |
58
+ | `--icon-size` | | Icon size (overrides size default) |
59
+ | `--icon-stroke-width` | | SVG stroke width as a unitless number in viewBox units; scales visually with icon size (default: 2) |
60
+ | `--icon-fill` | | Icon fill color for filled icons (e.g., "currentColor") |
61
+ | `--icon-svg` | | SVG data URI for mask-based rendering |
54
62
 
55
63
  <hr/>
56
64
 
@@ -18,22 +18,36 @@
18
18
 
19
19
  ### Fields
20
20
 
21
- | Name | Privacy | Type | Default | Description | Inherited From |
22
- | ------------- | ------- | --------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
23
- | `name` | | `string \| undefined` | | Optional name for the button which can be used to identify the button in a callback. | |
24
- | `type` | | `IconButtonType` | `'primary'` | Specifies the type of icon-button, controlling the visual style. | |
25
- | `iconSymbol` | | `string \| undefined` | | Lucide icon name. | |
26
- | `size` | | `IconButtonSize` | `'medium'` | Specifies the size of icon-button. | |
27
- | `destructive` | | `boolean` | `false` | Specifies an icon-button will be used to take any destructive action overriding the&#xA;default color used for the icon-button type with the error color. | |
28
- | `disabled` | | `boolean` | `false` | Disables the button, preventing interaction and indicating an inactive state. | |
21
+ | Name | Privacy | Type | Default | Description | Inherited From |
22
+ | ------------------ | ------- | ---------------------------------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
23
+ | `name` | | `string \| undefined` | | Optional name for the button which can be used to identify the button in a callback. | |
24
+ | `type` | | `IconButtonType` | `'primary'` | Specifies the type of icon-button, controlling the visual style. | |
25
+ | `symbol` | | `string \| undefined` | | Lucide icon symbol. | |
26
+ | `size` | | `IconButtonSize` | `'md'` | Specifies the size of icon-button. | |
27
+ | `destructive` | | `boolean` | `false` | Specifies an icon-button will be used to take any destructive action overriding the&#xA;default color used for the icon-button type with the error color. | |
28
+ | `disabled` | | `boolean` | `false` | Disables the button, preventing interaction and indicating an inactive state. | |
29
+ | `tooltip` | | `string` | `''` | Tooltip text content. Set to empty string to remove the tooltip. | TooltipMixin |
30
+ | `tooltipPosition` | | `'top' \| 'bottom' \| 'left' \| 'right'` | `'top'` | Position relative to the host element. Auto-flips when constrained by the viewport. | TooltipMixin |
31
+ | `tooltipDelay` | | `number` | `300` | Show delay in milliseconds (hover trigger only). | TooltipMixin |
32
+ | `tooltipOffset` | | `TooltipOffset \| null` | `null` | Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px). | TooltipMixin |
33
+ | `tooltipNoArrow` | | `boolean` | `false` | Hide the arrow pseudo-element. | TooltipMixin |
34
+ | `tooltipTrigger` | | `string` | `'hover focus'` | Space-separated trigger types: 'hover', 'focus', 'click'. | TooltipMixin |
35
+ | `_onMouseLeave` | private | | | | TooltipMixin |
36
+ | `_onFocusIn` | private | | | | TooltipMixin |
37
+ | `_onFocusOut` | private | | | | TooltipMixin |
38
+ | `_onClick` | private | | | | TooltipMixin |
39
+ | `_onNativeToggle` | private | | | | TooltipMixin |
40
+ | `_onKeyDown` | private | | | | TooltipMixin |
41
+ | `_onDocumentClick` | private | `((e: MouseEvent) => void) \| null` | `null` | | TooltipMixin |
29
42
 
30
43
  ### Methods
31
44
 
32
- | Name | Privacy | Description | Parameters | Return | Inherited From |
33
- | --------------------- | ------- | ----------- | ---------- | -------- | -------------- |
34
- | `_relayTooltipAttrs` | private | | | `void` | |
35
- | `_handleClick` | private | | | `void` | |
36
- | `_buildButtonClasses` | private | | | `string` | |
45
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
46
+ | --------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
47
+ | `_relayTooltipAttrs` | private | | | `void` | |
48
+ | `_handleClick` | private | | | `void` | |
49
+ | `_buildButtonClasses` | private | | | `string` | |
50
+ | `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
51
 
38
52
  ### Events
39
53
 
@@ -44,14 +58,25 @@
44
58
 
45
59
  ### Attributes
46
60
 
47
- | Name | Field | Inherited From |
48
- | ------------- | ----------- | -------------- |
49
- | `name` | name | |
50
- | `type` | type | |
51
- | `icon-symbol` | iconSymbol | |
52
- | `size` | size | |
53
- | `destructive` | destructive | |
54
- | `disabled` | disabled | |
61
+ | Name | Field | Inherited From |
62
+ | ------------------ | --------------- | -------------- |
63
+ | `name` | name | |
64
+ | `type` | type | |
65
+ | `symbol` | symbol | |
66
+ | `size` | size | |
67
+ | `destructive` | destructive | |
68
+ | `disabled` | disabled | |
69
+ | `tooltip` | tooltip | TooltipMixin |
70
+ | `tooltipPosition` | tooltipPosition | TooltipMixin |
71
+ | `tooltipDelay` | tooltipDelay | TooltipMixin |
72
+ | `tooltipOffset` | tooltipOffset | TooltipMixin |
73
+ | `tooltipNoArrow` | tooltipNoArrow | TooltipMixin |
74
+ | `tooltipTrigger` | tooltipTrigger | TooltipMixin |
75
+ | `tooltip-position` | tooltipPosition | TooltipMixin |
76
+ | `tooltip-delay` | tooltipDelay | TooltipMixin |
77
+ | `tooltip-offset` | tooltipOffset | TooltipMixin |
78
+ | `tooltip-no-arrow` | tooltipNoArrow | TooltipMixin |
79
+ | `tooltip-trigger` | tooltipTrigger | TooltipMixin |
55
80
 
56
81
  <hr/>
57
82
 
@@ -16,12 +16,51 @@
16
16
  | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
17
17
  | `ReadyMixin` | /src/util/ReadyMixin.js | |
18
18
 
19
+ ### Fields
20
+
21
+ | Name | Privacy | Type | Default | Description | Inherited From |
22
+ | ------------------------- | ------- | -------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
23
+ | `color` | | `ProgressColors` | `'primary'` | Color theme of the progress indicator.&#xA;Supports: black, white, primary, teal, gray, purple, rose, error, warning, success | ProgressMixin |
24
+ | `thickness` | | `number \| undefined` | | Stroke width of the progress indicator. | ProgressMixin |
25
+ | `_progress` | private | `number` | `0` | | ProgressMixin |
26
+ | `progress` | | | | Progress value for determinate variant. Clamped to 0–100. | ProgressMixin |
27
+ | `label` | | `string \| undefined` | | Optional label text to display with the progress indicator. | ProgressMixin |
28
+ | `initialAnimation` | | `boolean` | `true` | Whether to animate progress from 0 to target value when component first becomes visible. | ProgressMixin |
29
+ | `ariaLabel` | | `string \| null` | `null` | Optional aria-label attribute for screen readers.&#xA;Describes what the progress indicator represents. | ProgressMixin |
30
+ | `ariaLabelledBy` | | `string \| null` | `null` | Optional aria-labelledby attribute for screen readers.&#xA;References the ID of an element that labels the progress indicator. | ProgressMixin |
31
+ | `ariaValueText` | | `string \| null` | `null` | Optional aria-valuetext attribute for screen readers.&#xA;Provides human-readable text alternative for progress value. | ProgressMixin |
32
+ | `completionAnnouncement` | | `string \| undefined` | | Optional message to announce to screen readers when progress reaches 100%.&#xA;If not provided, no announcement will be made on completion. | ProgressMixin |
33
+ | `_isAnimationInitialized` | private | `boolean` | `false` | | ProgressMixin |
34
+ | `_intersectionObserver` | private | `IntersectionObserver \| undefined` | | | ProgressMixin |
35
+ | `_hasCompletedAt100` | private | `boolean` | `false` | | ProgressMixin |
36
+ | `_hostTag` | private | `'btu-linear-progress' \| 'btu-circular-progress'` | | | ProgressMixin |
37
+
38
+ ### Methods
39
+
40
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
41
+ | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
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 |
43
+
19
44
  ### Events
20
45
 
21
- | Name | Type | Description | Inherited From |
22
- | ----------------------- | ------------- | ------------------------------------------- | -------------- |
23
- | `btu-progress-ready` | `CustomEvent` | Fired after first render and initialization | |
24
- | `btu-progress-complete` | `CustomEvent` | Fired when progress reaches 100 | |
46
+ | Name | Type | Description | Inherited From |
47
+ | ------------------------------ | ------------- | ------------------------------------------- | -------------- |
48
+ | `btu-linear-progress-ready` | `CustomEvent` | Fired after first render and initialization | |
49
+ | `btu-linear-progress-complete` | `CustomEvent` | Fired when progress reaches 100 | |
50
+
51
+ ### Attributes
52
+
53
+ | Name | Field | Inherited From |
54
+ | ------------------------- | ---------------------- | -------------- |
55
+ | `color` | color | ProgressMixin |
56
+ | `thickness` | thickness | ProgressMixin |
57
+ | `progress` | progress | ProgressMixin |
58
+ | `label` | label | ProgressMixin |
59
+ | `initial-animation` | initialAnimation | ProgressMixin |
60
+ | `aria-label` | ariaLabel | ProgressMixin |
61
+ | `aria-labelledby` | ariaLabelledBy | ProgressMixin |
62
+ | `aria-valuetext` | ariaValueText | ProgressMixin |
63
+ | `completion-announcement` | completionAnnouncement | ProgressMixin |
25
64
 
26
65
  ### CSS Properties
27
66
 
@@ -17,35 +17,38 @@
17
17
 
18
18
  ### Fields
19
19
 
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ------------------------ | ------- | --------------------- | -------------- | ------------------------------------------------- | -------------- |
22
- | `page` | | `number` | `1` | Current page number (1-based) | |
23
- | `pageSize` | | `number` | `0` | Number of items per page | |
24
- | `disabled` | | `boolean` | `false` | Disables all pagination controls | |
25
- | `loading` | | `boolean` | `false` | Shows loading spinner and dims controls | |
26
- | `hideOnSinglePage` | | `boolean` | `true` | Hide controls when there is only one page | |
27
- | `pageSizeChanger` | | `boolean` | `true` | Show the page size dropdown | |
28
- | `pageSizeOptions` | | `string` | `'10, 20, 50'` | Comma-separated page size options | |
29
- | `totalItems` | | `number` | `0` | Total number of items across all pages | |
30
- | `boundaryButtons` | | `boolean` | `true` | Show first and last page buttons | |
31
- | `hideTotalCount` | | `boolean` | `false` | Hide the item count display (e.g., "1-10 of 200") | |
32
- | `label` | | `string \| undefined` | | Accessible label for the pagination nav landmark | |
33
- | `_parsedPageSizeOptions` | private | `number[]` | | | |
34
- | `_totalPages` | private | `number` | | | |
35
- | `_startItem` | private | `number` | | | |
36
- | `_endItem` | private | `number` | | | |
20
+ | Name | Privacy | Type | Default | Description | Inherited From |
21
+ | ------------------------ | ------- | --------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
22
+ | `page` | | `number` | `1` | Current page number (1-based) | |
23
+ | `pageSize` | | `number` | `0` | Number of items per page | |
24
+ | `disabled` | | `boolean` | `false` | Disables all pagination controls | |
25
+ | `loading` | | `boolean` | `false` | Shows loading spinner and dims controls | |
26
+ | `hideOnSinglePage` | | `boolean` | `true` | Hide controls when there is only one page | |
27
+ | `pageSizeChanger` | | `boolean` | `true` | Show the page size dropdown | |
28
+ | `pageSizeOptions` | | `string` | `'10, 20, 50'` | Comma-separated page size options | |
29
+ | `totalItems` | | `number` | `0` | Total number of items across all pages | |
30
+ | `boundaryButtons` | | `boolean` | `true` | Show first and last page buttons | |
31
+ | `hideTotalCount` | | `boolean` | `false` | Hide the item count display (e.g., "1-10 of 200") | |
32
+ | `pageJumper` | | `boolean` | `false` | Show the page jumper dropdown. Intended for moderate page counts (under \~100 pages).&#xA;For large datasets, use a custom \`slot="jumper"\` with a virtualized or input-based control. | |
33
+ | `label` | | `string \| undefined` | | Accessible label for the pagination nav landmark | |
34
+ | `_parsedPageSizeOptions` | private | `number[]` | | | |
35
+ | `_totalPages` | private | `number` | | | |
36
+ | `_startItem` | private | `number` | | | |
37
+ | `_endItem` | private | `number` | | | |
37
38
 
38
39
  ### Methods
39
40
 
40
- | Name | Privacy | Description | Parameters | Return | Inherited From |
41
- | ---------------------- | ------- | ----------- | --------------------------- | ------ | -------------- |
42
- | `_setupSlots` | private | | | `void` | |
43
- | `_goToFirstPage` | private | | `e: Event` | `void` | |
44
- | `_goToPreviousPage` | private | | `e: Event` | `void` | |
45
- | `_goToNextPage` | private | | `e: Event` | `void` | |
46
- | `_goToLastPage` | private | | `e: Event` | `void` | |
47
- | `_manageBoundaryFocus` | private | | `clickedButton: IconButton` | `void` | |
48
- | `_onPageSizeChange` | private | | `e: Event` | `void` | |
41
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
42
+ | -------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
43
+ | `_setupSlots` | private | | | `void` | |
44
+ | `_goToFirstPage` | private | | `e: Event` | `void` | |
45
+ | `_goToPreviousPage` | private | | `e: Event` | `void` | |
46
+ | `_goToNextPage` | private | | `e: Event` | `void` | |
47
+ | `_goToLastPage` | private | | `e: Event` | `void` | |
48
+ | `_manageBoundaryFocus` | private | | `clickedButton: IconButton` | `void` | |
49
+ | `_onBuiltinPageSizeSelect` | private | | `e: Event` | `void` | |
50
+ | `_onBuiltinJumperSelect` | private | | `e: Event` | `void` | |
51
+ | `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 |
49
52
 
50
53
  ### Events
51
54
 
@@ -69,21 +72,22 @@
69
72
  | `total-items` | totalItems | |
70
73
  | `boundary-buttons` | boundaryButtons | |
71
74
  | `hide-total-count` | hideTotalCount | |
75
+ | `page-jumper` | pageJumper | |
72
76
  | `label` | label | |
73
77
 
74
78
  ### CSS Properties
75
79
 
76
- | Name | Default | Description |
77
- | ------------------------------- | ------- | ------------------------------------------------ |
78
- | `--pagination-color-background` | | Background color for select, buttons, and jumper |
79
- | `--pagination-color-foreground` | | Text/icon color |
80
+ | Name | Default | Description |
81
+ | ------------------------------- | ------- | --------------------------------------------------- |
82
+ | `--pagination-color-background` | | Background color for dropdowns, buttons, and jumper |
83
+ | `--pagination-color-foreground` | | Text/icon color |
80
84
 
81
85
  ### Slots
82
86
 
83
- | Name | Description |
84
- | ----------- | ----------------------------------------------------------- |
85
- | `page-size` | Custom page-size selector (replaces built-in select) |
86
- | `jumper` | Custom jumper content (e.g., page dropdown, "Today" button) |
87
+ | Name | Description |
88
+ | ----------- | ---------------------------------------------------------------------------------------------- |
89
+ | `page-size` | Custom page-size selector (replaces built-in dropdown). Consumer manages all behavior. |
90
+ | `jumper` | Custom jumper content (replaces built-in page jumper dropdown). Consumer manages all behavior. |
87
91
 
88
92
  <hr/>
89
93
 
@@ -34,6 +34,12 @@
34
34
  | `_onNativeToggle` | private | | | | |
35
35
  | `_onKeyDown` | private | | | | |
36
36
 
37
+ ### Methods
38
+
39
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
40
+ | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
41
+ | `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 |
42
+
37
43
  ### Events
38
44
 
39
45
  | Name | Type | Description | Inherited From |
@@ -54,6 +60,16 @@
54
60
  | `panel-label` | panelLabel | |
55
61
  | `no-arrow` | noArrow | |
56
62
 
63
+ ### CSS Properties
64
+
65
+ | Name | Default | Description |
66
+ | ---------------------------- | ------- | ------------------------------------------------------------------------------------- |
67
+ | `--popover-color-background` | | Panel background color (default: var(--btu-theme-white)) |
68
+ | `--popover-color-content` | | Panel text color (default: oklch(var(--btu-theme-gray-900))) |
69
+ | `--popover-border-radius` | | Panel corner radius (default: theme borderRadius.lg) |
70
+ | `--popover-offset` | | Gap between trigger and panel (default: 8px; see btu-popover-offset-{sm\|md\|lg\|xl}) |
71
+ | `--popover-arrow-size` | | Width/height of the pointer arrow (default: 8px) |
72
+
57
73
  ### Slots
58
74
 
59
75
  | Name | Description |
@@ -4,20 +4,29 @@ This directory contains auto-generated API documentation for all Brightspot UI w
4
4
 
5
5
  ## Components
6
6
 
7
+ - [`<btu-action-bar>` - ActionBar](ActionBar.md)
8
+ - [`<btu-action-item>` - ActionItem](ActionItem.md)
7
9
  - [`<btu-avatar>` - Avatar](Avatar.md)
8
10
  - [`<btu-avatar-group>` - AvatarGroup](AvatarGroup.md)
9
11
  - [`<btu-badge>` - Badge](Badge.md)
12
+ - [`<btu-button-group>` - ButtonGroup](ButtonGroup.md)
13
+ - [`<btu-checkbox>` - Checkbox](Checkbox.md)
10
14
  - [`<btu-circular-progress>` - CircularProgress](CircularProgress.md)
11
15
  - [`<btu-copy-to-clipboard>` - CopyToClipboard](CopyToClipboard.md)
12
16
  - [`<btu-dropdown>` - Dropdown](Dropdown.md)
13
17
  - [`<btu-dropdown-item>` - DropdownItem](DropdownItem.md)
14
18
  - [`<btu-dropdown-menu>` - DropdownMenu](DropdownMenu.md)
19
+ - [`<btu-empty-state>` - EmptyState](EmptyState.md)
15
20
  - [`<btu-icon>` - Icon](Icon.md)
16
21
  - [`<btu-icon-button>` - IconButton](IconButton.md)
17
22
  - [`<btu-linear-progress>` - LinearProgress](LinearProgress.md)
18
23
  - [`<btu-pagination>` - Pagination](Pagination.md)
19
24
  - [`<btu-popover>` - Popover](Popover.md)
20
25
  - [`<btu-switch>` - Switch](Switch.md)
26
+ - [`<btu-tab>` - Tab](Tab.md)
27
+ - [`<btu-tabs>` - Tabs](Tabs.md)
28
+ - [`<btu-upload>` - Upload](Upload.md)
29
+ - [`<btu-upload-item>` - UploadItem](UploadItem.md)
21
30
  - [`<btu-widget>` - Widget](Widget.md)
22
31
 
23
32
  ---
@@ -17,25 +17,26 @@
17
17
 
18
18
  ### Fields
19
19
 
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | --------------- | ------- | -------------------------------- | --------- | ----------------------------------------------------------------------------------- | -------------- |
22
- | `size` | | `'small' \| 'medium' \| 'large'` | `'small'` | Controls the physical dimensions of the switch and the associated label typography. | |
23
- | `label` | | `string \| undefined` | | The primary text displayed next to the toggle. | |
24
- | `description` | | `string \| undefined` | | Optional helper text or secondary information displayed below the label. | |
25
- | `checked` | | `boolean` | `false` | The current state of the switch (on/off). | |
26
- | `disabled` | | `boolean` | `false` | If true, the toggle is non-interactive and visually muted. | |
27
- | `name` | | `string \| undefined` | | Name of the control for form participation. | |
28
- | `labelPosition` | | `'start' \| 'end'` | `'end'` | Determines if the label appears to the left or right of the switch. | |
29
- | `onIcon` | | `string \| undefined` | | Lucide icon name shown on the track when the switch is checked (on). | |
30
- | `offIcon` | | `string \| undefined` | | Lucide icon name shown on the track when the switch is unchecked (off). | |
20
+ | Name | Privacy | Type | Default | Description | Inherited From |
21
+ | --------------- | ------- | ---------------------- | ------- | ----------------------------------------------------------------------------------- | -------------- |
22
+ | `size` | | `'sm' \| 'md' \| 'lg'` | `'sm'` | Controls the physical dimensions of the switch and the associated label typography. | |
23
+ | `label` | | `string \| undefined` | | The primary text displayed next to the toggle. | |
24
+ | `description` | | `string \| undefined` | | Optional helper text or secondary information displayed below the label. | |
25
+ | `checked` | | `boolean` | `false` | The current state of the switch (on/off). | |
26
+ | `disabled` | | `boolean` | `false` | If true, the toggle is non-interactive and visually muted. | |
27
+ | `name` | | `string \| undefined` | | Name of the control for form participation. | |
28
+ | `labelPosition` | | `'start' \| 'end'` | `'end'` | Determines if the label appears to the left or right of the switch. | |
29
+ | `onIcon` | | `string \| undefined` | | Lucide icon name shown on the track when the switch is checked (on). | |
30
+ | `offIcon` | | `string \| undefined` | | Lucide icon name shown on the track when the switch is unchecked (off). | |
31
31
 
32
32
  ### Methods
33
33
 
34
- | Name | Privacy | Description | Parameters | Return | Inherited From |
35
- | ---------------- | ------- | ----------- | ---------- | ------ | -------------- |
36
- | `_onInputChange` | private | | `e: Event` | `void` | |
37
- | `_onFocus` | private | | | `void` | |
38
- | `_toggleInput` | private | | | `void` | |
34
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
35
+ | ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
36
+ | `_onInputChange` | private | | `e: Event` | `void` | |
37
+ | `_onFocus` | private | | | `void` | |
38
+ | `_toggleInput` | private | | | `void` | |
39
+ | `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 |
39
40
 
40
41
  ### Events
41
42
 
@@ -67,6 +68,10 @@
67
68
  | `--switch-color-track-off` | | Background color when the toggle is unchecked (default: var(--btu-theme-gray-300)) |
68
69
  | `--switch-color-knob` | | Color of the sliding circular handle (default: var(--btu-theme-white)) |
69
70
  | `--switch-label-spacing` | | Distance between the switch and the text label (default: 0.75rem) |
71
+ | `--switch-track-width` | | Track width (default: sm 1.75rem, md 2.25rem, lg 2.75rem) |
72
+ | `--switch-track-height` | | Track height (default: sm 1rem, md 1.25rem, lg 1.5rem) |
73
+ | `--switch-knob-size` | | Knob diameter (default: sm 0.75rem, md 1rem, lg 1.25rem) |
74
+ | `--switch-knob-padding` | | Space between knob and track edges (default: 0.125rem) |
70
75
  | `--switch-track-icon-size` | | Size of the track icons (default: sm 0.5rem, md 0.625rem, lg 0.75rem) |
71
76
 
72
77
  <hr/>
@@ -0,0 +1,79 @@
1
+ # `src/components/tabs/Tab.ts`:
2
+
3
+ ## class: `Tab`, `btu-tab`
4
+
5
+ ### Superclass
6
+
7
+ | Name | Module | Package |
8
+ | ------------ | ------ | ------- |
9
+ | `LitElement` | | lit |
10
+
11
+ ### Mixins
12
+
13
+ | Name | Module | Package |
14
+ | ------------------- | ------------------------------ | ------- |
15
+ | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
+ | `ReadyMixin` | /src/util/ReadyMixin.js | |
17
+
18
+ ### Static Fields
19
+
20
+ | Name | Privacy | Type | Default | Description | Inherited From |
21
+ | --------- | ------- | ---- | ------- | ----------- | -------------- |
22
+ | `tagName` | | | | | |
23
+
24
+ ### Fields
25
+
26
+ | Name | Privacy | Type | Default | Description | Inherited From |
27
+ | -------------- | ------- | ------------------------- | ----------- | ----------------------------------------------------------------------------------------------------- | -------------- |
28
+ | `name` | | `string \| undefined` | | Value that identifies this tab and links it to panel elements that share the same \`name\` attribute. | |
29
+ | `label` | | `string \| undefined` | | Text displayed in the tab. | |
30
+ | `description` | | `string \| undefined` | | Accessibility description for screen readers. | |
31
+ | `disabled` | | `boolean` | `false` | Whether the tab is disabled and non-interactive. | |
32
+ | `symbol` | | `string \| undefined` | | Lucide icon symbol to display. | |
33
+ | `iconPosition` | | `'leading' \| 'trailing'` | `'leading'` | Placement of the icon relative to the label. | |
34
+ | `iconOnly` | | `boolean` | `false` | When true, hides the label visually while maintaining accessibility. | |
35
+ | `error` | | `boolean` | `false` | When true, displays an error badge on the tab. | |
36
+ | `badge` | | `string \| undefined` | | Displays a badge with the given value alongside the label. | |
37
+
38
+ ### Methods
39
+
40
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
41
+ | ------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
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 |
43
+
44
+ ### Events
45
+
46
+ | Name | Type | Description | Inherited From |
47
+ | ---------------- | ----------------------------- | ---------------------------------------------------- | -------------- |
48
+ | `btu-tab-ready` | `CustomEvent` | Fired after first render | |
49
+ | `btu-tab-change` | `CustomEvent<{name: string}>` | Fired when a non-disabled tab with a name is clicked | |
50
+
51
+ ### Attributes
52
+
53
+ | Name | Field | Inherited From |
54
+ | --------------- | ------------ | -------------- |
55
+ | `name` | name | |
56
+ | `label` | label | |
57
+ | `description` | description | |
58
+ | `disabled` | disabled | |
59
+ | `symbol` | symbol | |
60
+ | `icon-position` | iconPosition | |
61
+ | `icon-only` | iconOnly | |
62
+ | `error` | error | |
63
+ | `badge` | badge | |
64
+
65
+ ### CSS Properties
66
+
67
+ | Name | Default | Description |
68
+ | -------------------------- | ------- | ---------------------------------------------------------------- |
69
+ | `--badge-color-background` | | Background color of the count indicator badge (default: gray-50) |
70
+ | `--badge-color-foreground` | | Text color of the count indicator badge (default: gray-700) |
71
+
72
+ <hr/>
73
+
74
+ ## Exports
75
+
76
+ | Kind | Name | Declaration | Module | Package |
77
+ | --------------------------- | --------- | ----------- | -------------------------- | ------- |
78
+ | `js` | `default` | Tab | src/components/tabs/Tab.ts | |
79
+ | `custom-element-definition` | `btu-tab` | Tab | src/components/tabs/Tab.ts | |