@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,83 +1,36 @@
1
- # `src/components/icon-button/IconButton.ts`:
2
-
3
- ## class: `IconButton`, `btu-icon-button`
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
- | `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
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 |
42
-
43
- ### Methods
44
-
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 |
51
-
52
- ### Events
53
-
54
- | Name | Type | Description | Inherited From |
55
- | ----------------------- | ------------------------------------------ | ------------------------------------------- | -------------- |
56
- | `btu-icon-button-ready` | `CustomEvent` | Fired after first render and initialization | |
57
- | `btu-icon-button-click` | `CustomEvent<{name: string \| undefined}>` | Fired when the button is clicked | |
58
-
59
- ### Attributes
60
-
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
- | `tooltip-position` | tooltipPosition | TooltipMixin |
71
- | `tooltip-delay` | tooltipDelay | TooltipMixin |
72
- | `tooltip-offset` | tooltipOffset | TooltipMixin |
73
- | `tooltip-no-arrow` | tooltipNoArrow | TooltipMixin |
74
- | `tooltip-trigger` | tooltipTrigger | TooltipMixin |
75
-
76
- <hr/>
77
-
78
- ## Exports
79
-
80
- | Kind | Name | Declaration | Module | Package |
81
- | --------------------------- | ----------------- | ----------- | ---------------------------------------- | ------- |
82
- | `js` | `default` | IconButton | src/components/icon-button/IconButton.ts | |
83
- | `custom-element-definition` | `btu-icon-button` | IconButton | src/components/icon-button/IconButton.ts | |
1
+ # `<btu-icon-button>`
2
+
3
+ Surfaces the different actions someone can perform in an interface where space is limited.
4
+
5
+ Uses an icon to communicate the action and supports multiple visual types and sizes.
6
+ Tooltip support is built-in for accessibility in compact layouts.
7
+
8
+ ```js
9
+ import '@brightspot/ui/components/icon-button/IconButton.js'
10
+ ```
11
+
12
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-icon-button--docs
13
+
14
+ ## Attributes
15
+
16
+ | Attribute | Property | Type | Default | Description |
17
+ | --- | --- | --- | --- | --- |
18
+ | `name` | `name` | `string \| undefined` | | Optional name for the button which can be used to identify the button in a callback. |
19
+ | `type` | `type` | `'primary' \| 'primary-clear' \| 'primary-stroke' \| 'secondary' \| 'secondary-clear' \| 'secondary-stroke' \| 'tertiary' \| 'tertiary-clear' \| 'tertiary-stroke'` | `'primary'` | Specifies the type of icon-button, controlling the visual style. |
20
+ | `symbol` | `symbol` | `string \| undefined` | | Lucide icon symbol. |
21
+ | `size` | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Specifies the size of icon-button. |
22
+ | `destructive` | `destructive` | `boolean` | `false` | Specifies an icon-button will be used to take any destructive action overriding the default color used for the icon-button type with the error color. |
23
+ | `disabled` | `disabled` | `boolean` | `false` | Disables the button, preventing interaction and indicating an inactive state. |
24
+ | `tooltip` | `tooltip` | `string` | `''` | Tooltip text content. Set to empty string to remove the tooltip. |
25
+ | `tooltip-position` | `tooltipPosition` | `'top' \| 'bottom' \| 'left' \| 'right'` | `'top'` | Position relative to the host element. Auto-flips when constrained by the viewport. |
26
+ | `tooltip-delay` | `tooltipDelay` | `number` | `300` | Show delay in milliseconds (hover trigger only). |
27
+ | `tooltip-offset` | `tooltipOffset` | `'sm' \| 'md' \| 'lg' \| 'xl' \| null` | `null` | Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px). |
28
+ | `tooltip-no-arrow` | `tooltipNoArrow` | `boolean` | `false` | Hide the arrow pseudo-element. |
29
+ | `tooltip-trigger` | `tooltipTrigger` | `string` | `'hover focus'` | Space-separated trigger types: 'hover', 'focus', 'click'. |
30
+
31
+ ## Events
32
+
33
+ | Event | Detail | Description |
34
+ | --- | --- | --- |
35
+ | `btu-icon-button-ready` | | Fired after first render and initialization |
36
+ | `btu-icon-button-click` | `{name: string \| undefined}` | Fired when the button is clicked |
@@ -1,79 +1,37 @@
1
- # `src/components/linear-progress/LinearProgress.ts`:
1
+ # `<btu-linear-progress>`
2
2
 
3
- ## class: `LinearProgress`, `btu-linear-progress`
3
+ A horizontal linear progress bar for showing task completion.
4
4
 
5
- ### Superclass
5
+ ```js
6
+ import '@brightspot/ui/components/linear-progress/LinearProgress.js'
7
+ ```
6
8
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
9
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-linear-progress--docs
10
10
 
11
- ### Mixins
11
+ ## Attributes
12
12
 
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `ProgressMixin` | /src/util/ProgressMixin.js | |
16
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
17
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
13
+ | Attribute | Property | Type | Default | Description |
14
+ | --- | --- | --- | --- | --- |
15
+ | `color` | `color` | `ProgressColors` | `'primary'` | Color theme of the progress indicator. Supports: black, white, primary, teal, gray, purple, rose, error, warning, success |
16
+ | `thickness` | `thickness` | `number \| undefined` | | Stroke width of the progress indicator. |
17
+ | `progress` | `progress` | `number` | | Progress value for determinate variant. Clamped to 0–100. |
18
+ | `label` | `label` | `string \| undefined` | | Optional label text to display with the progress indicator. |
19
+ | `initial-animation` | `initialAnimation` | `boolean` | `true` | Whether to animate progress from 0 to target value when component first becomes visible. |
20
+ | `aria-label` | `ariaLabel` | `string \| null` | `null` | Optional aria-label attribute for screen readers. Describes what the progress indicator represents. |
21
+ | `aria-labelledby` | `ariaLabelledBy` | `string \| null` | `null` | Optional aria-labelledby attribute for screen readers. References the ID of an element that labels the progress indicator. |
22
+ | `aria-valuetext` | `ariaValueText` | `string \| null` | `null` | Optional aria-valuetext attribute for screen readers. Provides human-readable text alternative for progress value. |
23
+ | `completion-announcement` | `completionAnnouncement` | `string \| undefined` | | Optional message to announce to screen readers when progress reaches 100%. If not provided, no announcement will be made on completion. |
18
24
 
19
- ### Fields
25
+ ## Events
20
26
 
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` | | `number` | | 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 |
27
+ | Event | Detail | Description |
28
+ | --- | --- | --- |
29
+ | `btu-linear-progress-ready` | | Fired after first render and initialization |
30
+ | `btu-linear-progress-complete` | | Fired when progress reaches 100 |
37
31
 
38
- ### Methods
32
+ ## CSS custom properties
39
33
 
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-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 |
64
-
65
- ### CSS Properties
66
-
67
- | Name | Default | Description |
68
- | ------------------ | ------- | --------------------------------------------------- |
69
- | `--progress-color` | | Custom progress bar color (overrides theme color) |
70
- | `--track-color` | | Track/background color (overrides default gray-100) |
71
-
72
- <hr/>
73
-
74
- ## Exports
75
-
76
- | Kind | Name | Declaration | Module | Package |
77
- | --------------------------- | --------------------- | -------------- | ------------------------------------------------ | ------- |
78
- | `js` | `default` | LinearProgress | src/components/linear-progress/LinearProgress.ts | |
79
- | `custom-element-definition` | `btu-linear-progress` | LinearProgress | src/components/linear-progress/LinearProgress.ts | |
34
+ | Property | Description |
35
+ | --- | --- |
36
+ | `--progress-color` | Custom progress bar color (overrides theme color) |
37
+ | `--track-color` | Track/background color (overrides default gray-100) |
@@ -1,75 +1,50 @@
1
- # `src/components/banner/Message.ts`:
1
+ # `<btu-message>`
2
2
 
3
- ## class: `Message`, `btu-message`
3
+ A message for communicating high-visibility content that is not tied to the
4
+ user's current task — alerts, breaking news, and persistent status. Use it on
5
+ its own as a contained, bordered card, or place it inside a `<btu-banner>` to
6
+ span the full width of the page (e.g., pinned above the CMS content area).
4
7
 
5
- ### Superclass
8
+ Messages render a leading icon, an optional badge, a label, an optional
9
+ description, and an optional dismiss control. The label and description
10
+ stack vertically in a text column; everything else sits on the same row.
6
11
 
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
12
+ ```js
13
+ import '@brightspot/ui/components/banner/Message.js'
14
+ ```
10
15
 
11
- ### Mixins
16
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-message--docs
12
17
 
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
18
+ ## Attributes
17
19
 
18
- ### Fields
20
+ | Attribute | Property | Type | Default | Description |
21
+ | --- | --- | --- | --- | --- |
22
+ | `variant` | `variant` | `'primary' \| 'info' \| 'warning' \| 'error' \| 'success'` | `'info'` | Visual style and semantic meaning of the message. |
23
+ | `label` | `label` | `string \| undefined` | | The primary message or title text displayed. |
24
+ | `symbol` | `symbol` | `string \| undefined` | | Name of the Lucide icon to display. Defaults to a sensible icon per variant. |
25
+ | `dismissible` | `dismissible` | `boolean` | `false` | If true, a close icon is provided to allow the user to hide the message. |
19
26
 
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ------------- | ------- | --------------------- | -------- | ---------------------------------------------------------------------------- | -------------- |
22
- | `variant` | | `MessageVariant` | `'info'` | Visual style and semantic meaning of the message. | |
23
- | `label` | | `string \| undefined` | | The primary message or title text displayed. | |
24
- | `symbol` | | `string \| undefined` | | Name of the Lucide icon to display. Defaults to a sensible icon per variant. | |
25
- | `dismissible` | | `boolean` | `false` | If true, a close icon is provided to allow the user to hide the message. | |
27
+ ## Events
26
28
 
27
- ### Methods
29
+ | Event | Detail | Description |
30
+ | --- | --- | --- |
31
+ | `btu-message-ready` | | Fired after the message is first rendered and initialized |
32
+ | `btu-message-dismiss` | | Fired when the user clicks the close/dismiss button. Cancelable: the message hides itself (sets `hidden`) unless the listener calls `preventDefault()`. |
28
33
 
29
- | Name | Privacy | Description | Parameters | Return | Inherited From |
30
- | ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
31
- | `_handleDismiss` | private | | | `void` | |
32
- | `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 |
34
+ ## Slots
33
35
 
34
- ### Events
36
+ | Slot | Description |
37
+ | --- | --- |
38
+ | `badge` | Pseudo-slot for a leading status/version tag, typically a `<btu-badge>`. The slotted child is moved into the header row, before the label. |
39
+ | `description` | Pseudo-slot for supporting text rendered directly beneath the label. Slot a single inline element (e.g., `<span slot="description">`) or a block element to enable rich content (links, emphasis). |
40
+ | `actions` | Pseudo-slot for CTA buttons, links, or a `<btu-pagination>`. Children with `slot="actions"` are moved into an internal container on the trailing edge of the body. `.btu-button` children inherit the message's foreground color across all states. The message does not emit an action-click event — attach handlers to your own elements. |
35
41
 
36
- | Name | Type | Description | Inherited From |
37
- | --------------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
38
- | `btu-message-ready` | `CustomEvent` | Fired after the message is first rendered and initialized | |
39
- | `btu-message-dismiss` | `CustomEvent` | Fired when the user clicks the close/dismiss button. Cancelable: the message hides itself (sets \`hidden\`) unless the listener calls \`preventDefault()\`. | |
42
+ ## CSS custom properties
40
43
 
41
- ### Attributes
42
-
43
- | Name | Field | Inherited From |
44
- | ------------- | ----------- | -------------- |
45
- | `variant` | variant | |
46
- | `label` | label | |
47
- | `symbol` | symbol | |
48
- | `dismissible` | dismissible | |
49
-
50
- ### CSS Properties
51
-
52
- | Name | Default | Description |
53
- | ---------------------------- | ------- | ---------------------------------------------------------------- |
54
- | `--message-color-background` | | Overrides the background color for the message |
55
- | `--message-color-foreground` | | Overrides the text and icon color |
56
- | `--message-color-border` | | Overrides the border color (defaults to the variant's 300 shade) |
57
- | `--message-padding` | | Overrides the internal padding (default: 1rem) |
58
- | `--message-border-radius` | | Overrides the corner rounding (default: 8px) |
59
-
60
- ### Slots
61
-
62
- | Name | Description |
63
- | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
64
- | `badge` | Pseudo-slot for a leading status/version tag, typically a \`\<btu-badge>\`. The slotted child is moved into the header row, before the label. |
65
- | `description` | Pseudo-slot for supporting text rendered directly beneath the label. Slot a single inline element (e.g., \`\<span slot="description">\`) or a block element to enable rich content (links, emphasis). |
66
- | `actions` | Pseudo-slot for CTA buttons, links, or a \`\<btu-pagination>\`. Children with \`slot="actions"\` are moved into an internal container on the trailing edge of the body. \`.btu-button\` children inherit the message's foreground color across all states. The message does not emit an action-click event — attach handlers to your own elements. |
67
-
68
- <hr/>
69
-
70
- ## Exports
71
-
72
- | Kind | Name | Declaration | Module | Package |
73
- | --------------------------- | ------------- | ----------- | -------------------------------- | ------- |
74
- | `js` | `default` | Message | src/components/banner/Message.ts | |
75
- | `custom-element-definition` | `btu-message` | Message | src/components/banner/Message.ts | |
44
+ | Property | Description |
45
+ | --- | --- |
46
+ | `--message-color-background` | Overrides the background color for the message |
47
+ | `--message-color-foreground` | Overrides the text and icon color |
48
+ | `--message-color-border` | Overrides the border color (defaults to the variant's 300 shade) |
49
+ | `--message-padding` | Overrides the internal padding (default: 1rem) |
50
+ | `--message-border-radius` | Overrides the corner rounding (default: 8px) |
@@ -1,100 +1,70 @@
1
- # `src/components/pagination/Pagination.ts`:
2
-
3
- ## class: `Pagination`, `btu-pagination`
4
-
5
- ### Superclass
6
-
7
- | Name | Module | Package |
8
- | ------------ | ------ | ------- |
9
- | `LitElement` | | lit |
10
-
11
- ### Mixins
12
-
13
- | Name | Module | Package |
14
- | ------------------- | ------------------------------ | ------- |
15
- | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
16
- | `ReadyMixin` | /src/util/ReadyMixin.js | |
17
-
18
- ### Fields
19
-
20
- | Name | Privacy | Type | Default | Description | Inherited From |
21
- | ------------------------- | ------- | --------------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
22
- | `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
- | `_initialClassesCaptured` | private | `boolean` | `false` | | |
35
- | `_parsedPageSizeOptions` | private | `number[]` | | | |
36
- | `_totalPages` | private | `number` | | | |
37
- | `_startItem` | private | `number` | | | |
38
- | `_endItem` | private | `number` | | | |
39
-
40
- ### Methods
41
-
42
- | Name | Privacy | Description | Parameters | Return | Inherited From |
43
- | -------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | --------- | ----------------- |
44
- | `_setupSlots` | private | | | `void` | |
45
- | `_goToFirstPage` | private | | `e: Event` | `void` | |
46
- | `_goToPreviousPage` | private | | `e: Event` | `void` | |
47
- | `_goToNextPage` | private | | `e: Event` | `void` | |
48
- | `_goToLastPage` | private | | `e: Event` | `void` | |
49
- | `_manageBoundaryFocus` | private | | `clickedButton: IconButton` | `void` | |
50
- | `_onBuiltinPageSizeSelect` | private | | `e: Event` | `void` | |
51
- | `_onBuiltinJumperSelect` | private | | `e: Event` | `void` | |
52
- | `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 |
53
-
54
- ### Events
55
-
56
- | Name | Type | Description | Inherited From |
57
- | --------------------------------- | ----------------------------------------------- | ------------------------- | -------------- |
58
- | `btu-pagination-ready` | `CustomEvent` | Fired after first render | |
59
- | `btu-pagination-change` | `CustomEvent<{page: number, pageSize: number}>` | Fired on page navigation | |
60
- | `btu-pagination-page-size-change` | `CustomEvent<{page: number, pageSize: number}>` | Fired on page size change | |
61
-
62
- ### Attributes
63
-
64
- | Name | Field | Inherited From |
65
- | --------------------- | ---------------- | -------------- |
66
- | `page` | page | |
67
- | `page-size` | pageSize | |
68
- | `disabled` | disabled | |
69
- | `loading` | loading | |
70
- | `hide-on-single-page` | hideOnSinglePage | |
71
- | `page-size-changer` | pageSizeChanger | |
72
- | `page-size-options` | pageSizeOptions | |
73
- | `total-items` | totalItems | |
74
- | `boundary-buttons` | boundaryButtons | |
75
- | `hide-total-count` | hideTotalCount | |
76
- | `page-jumper` | pageJumper | |
77
- | `label` | label | |
78
-
79
- ### CSS Properties
80
-
81
- | Name | Default | Description |
82
- | ------------------------------- | ------- | --------------------------------------------------- |
83
- | `--pagination-color-background` | | Background color for dropdowns, buttons, and jumper |
84
- | `--pagination-color-foreground` | | Text/icon color |
85
-
86
- ### Slots
87
-
88
- | Name | Description |
89
- | ----------- | ---------------------------------------------------------------------------------------------- |
90
- | `page-size` | Custom page-size selector (replaces built-in dropdown). Consumer manages all behavior. |
91
- | `jumper` | Custom jumper content (replaces built-in page jumper dropdown). Consumer manages all behavior. |
92
-
93
- <hr/>
94
-
95
- ## Exports
96
-
97
- | Kind | Name | Declaration | Module | Package |
98
- | --------------------------- | ---------------- | ----------- | --------------------------------------- | ------- |
99
- | `js` | `default` | Pagination | src/components/pagination/Pagination.ts | |
100
- | `custom-element-definition` | `btu-pagination` | Pagination | src/components/pagination/Pagination.ts | |
1
+ # `<btu-pagination>`
2
+
3
+ A pagination component for navigating through paged content.
4
+
5
+ Supports multiple layout variants (Search, Widget, Widget Small, Calendar)
6
+ through configurable props and pseudo-slots.
7
+
8
+ **Page size modes:**
9
+
10
+ - **Built-in** (default): When no `slot="page-size"` is provided and `page-size-changer`
11
+ is true, Pagination renders its own `btu-dropdown` from the `page-size-options` attribute.
12
+ Events, label sync, and page size changes are managed automatically.
13
+
14
+ - **Custom slot**: When a child has `slot="page-size"`, the built-in dropdown is suppressed.
15
+ The consumer owns all behavior — event handling, label sync, etc. Use this for non-standard
16
+ selectors like a calendar week/month toggle.
17
+
18
+ **Page jumper modes:**
19
+
20
+ - **Built-in**: When `page-jumper` is true and no `slot="jumper"` is provided, Pagination
21
+ renders a dropdown with "Page 1" through "Page N" items. Fully reactive — updates
22
+ automatically when page, page size, or total items change.
23
+
24
+ - **Custom slot**: When a child has `slot="jumper"`, the built-in dropdown is suppressed.
25
+ The consumer owns all behavior. Use this for custom jumper content like a "Today" button.
26
+
27
+ ```js
28
+ import '@brightspot/ui/components/pagination/Pagination.js'
29
+ ```
30
+
31
+ Interactive examples: https://ui.brightspot.com/?path=/docs/components-pagination--docs
32
+
33
+ ## Attributes
34
+
35
+ | Attribute | Property | Type | Default | Description |
36
+ | --- | --- | --- | --- | --- |
37
+ | `page` | `page` | `number` | `1` | Current page number (1-based) |
38
+ | `page-size` | `pageSize` | `number` | `0` | Number of items per page |
39
+ | `disabled` | `disabled` | `boolean` | `false` | Disables all pagination controls |
40
+ | `loading` | `loading` | `boolean` | `false` | Shows loading spinner and dims controls |
41
+ | `hide-on-single-page` | `hideOnSinglePage` | `boolean` | `true` | Hide controls when there is only one page |
42
+ | `page-size-changer` | `pageSizeChanger` | `boolean` | `true` | Show the page size dropdown |
43
+ | `page-size-options` | `pageSizeOptions` | `string` | `'10, 20, 50'` | Comma-separated page size options |
44
+ | `total-items` | `totalItems` | `number` | `0` | Total number of items across all pages |
45
+ | `boundary-buttons` | `boundaryButtons` | `boolean` | `true` | Show first and last page buttons |
46
+ | `hide-total-count` | `hideTotalCount` | `boolean` | `false` | Hide the item count display (e.g., "1-10 of 200") |
47
+ | `page-jumper` | `pageJumper` | `boolean` | `false` | Show the page jumper dropdown. Intended for moderate page counts (under ~100 pages). For large datasets, use a custom `slot="jumper"` with a virtualized or input-based control. |
48
+ | `label` | `label` | `string \| undefined` | | Accessible label for the pagination nav landmark |
49
+
50
+ ## Events
51
+
52
+ | Event | Detail | Description |
53
+ | --- | --- | --- |
54
+ | `btu-pagination-ready` | | Fired after first render |
55
+ | `btu-pagination-change` | `{page: number, pageSize: number}` | Fired on page navigation |
56
+ | `btu-pagination-page-size-change` | `{page: number, pageSize: number}` | Fired on page size change |
57
+
58
+ ## Slots
59
+
60
+ | Slot | Description |
61
+ | --- | --- |
62
+ | `page-size` | Custom page-size selector (replaces built-in dropdown). Consumer manages all behavior. |
63
+ | `jumper` | Custom jumper content (replaces built-in page jumper dropdown). Consumer manages all behavior. |
64
+
65
+ ## CSS custom properties
66
+
67
+ | Property | Description |
68
+ | --- | --- |
69
+ | `--pagination-color-background` | Background color for dropdowns, buttons, and jumper |
70
+ | `--pagination-color-foreground` | Text/icon color |