@brightspot/ui 1.6.0 → 1.7.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 (82) hide show
  1. package/dist/components/dropdown/Dropdown.d.ts +172 -0
  2. package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
  3. package/dist/components/dropdown/Dropdown.js +407 -0
  4. package/dist/components/dropdown/Dropdown.js.map +1 -0
  5. package/dist/components/dropdown/DropdownItem.d.ts +108 -0
  6. package/dist/components/dropdown/DropdownItem.d.ts.map +1 -0
  7. package/dist/components/dropdown/DropdownItem.js +210 -0
  8. package/dist/components/dropdown/DropdownItem.js.map +1 -0
  9. package/dist/components/dropdown/DropdownMenu.d.ts +117 -0
  10. package/dist/components/dropdown/DropdownMenu.d.ts.map +1 -0
  11. package/dist/components/dropdown/DropdownMenu.js +295 -0
  12. package/dist/components/dropdown/DropdownMenu.js.map +1 -0
  13. package/dist/custom-elements.json +1097 -101
  14. package/dist/storybook/assets/Avatar.stories-BAaSlDF7.js +213 -0
  15. package/dist/storybook/assets/{AvatarGroup.stories-BBkQuFKk.js → AvatarGroup.stories-CgoDB4N4.js} +1 -1
  16. package/dist/storybook/assets/{Badge.stories-mFZsls7i.js → Badge.stories-uexxdmo6.js} +3 -3
  17. package/dist/storybook/assets/{Button.stories-CAWX17L1.js → Button.stories-T9UJUPHI.js} +1 -1
  18. package/dist/storybook/assets/{CircularProgress.stories-DBVt4Cg2.js → CircularProgress.stories-DW-VJA5j.js} +6 -6
  19. package/dist/storybook/assets/{ClipboardMixin.stories-BH9E-OI6.js → ClipboardMixin.stories-DzU4vxu5.js} +1 -1
  20. package/dist/storybook/assets/{Color-6BZIO3FS-CVnTzq2p.js → Color-6BZIO3FS-DRk2xjoN.js} +1 -1
  21. package/dist/storybook/assets/{Colors.stories-BFYmP0LL.js → Colors.stories-_UPdvuhY.js} +1 -1
  22. package/dist/storybook/assets/{ComponentStatesMixin-Cu7YXkU8.js → ComponentStatesMixin-BIu5SKeV.js} +1 -1
  23. package/dist/storybook/assets/{ComponentStatesMixin.stories-CAvyYt0H.js → ComponentStatesMixin.stories-C0FLaqLu.js} +1 -1
  24. package/dist/storybook/assets/{CopyToClipboard.stories-DbJZsp_L.js → CopyToClipboard.stories-D31zoUVI.js} +1 -1
  25. package/dist/storybook/assets/{Debounce.stories-BiFiH1K9.js → Debounce.stories-CgPPl5Ee.js} +1 -1
  26. package/dist/storybook/assets/{DocsRenderer-LL677BLK-Bq6G4eeC.js → DocsRenderer-LL677BLK-iwiwOzX9.js} +6 -6
  27. package/dist/storybook/assets/Dropdown.stories-CDcl6rmG.js +697 -0
  28. package/dist/storybook/assets/{Events.stories-BsDBxh8_.js → Events.stories-DS6UC9dZ.js} +1 -1
  29. package/dist/storybook/assets/{Heading.stories-zGzWgHVO.js → Heading.stories-CAQfEGE2.js} +1 -1
  30. package/dist/storybook/assets/{Icon.stories-B4T6sSwf.js → Icon.stories-C7msWlHs.js} +11 -11
  31. package/dist/storybook/assets/{LinearProgress.stories-qzqmUUwY.js → LinearProgress.stories-DBGJ5a2-.js} +7 -7
  32. package/dist/storybook/assets/{Pagination.stories-B6Q-7taJ.js → Pagination.stories-C58bGOdf.js} +1 -1
  33. package/dist/storybook/assets/{Popover.stories-CGkU0SGv.js → Popover.stories-C9zU0sEX.js} +5 -5
  34. package/dist/storybook/assets/{ReadyMixin-3YCzoG6W.js → ReadyMixin-qf8SAjMu.js} +1 -1
  35. package/dist/storybook/assets/{Rtc.stories-Y1MYTWAt.js → Rtc.stories-k9tKHNhD.js} +1 -1
  36. package/dist/storybook/assets/{ScrollShadow.stories-B9kSpLT1.js → ScrollShadow.stories-Bp42zyLH.js} +1 -1
  37. package/dist/storybook/assets/{Throttle.stories-BgvLDrS3.js → Throttle.stories-B5YU-Nms.js} +1 -1
  38. package/dist/storybook/assets/Tooltip.stories-COQcvOnL.js +143 -0
  39. package/dist/storybook/assets/{Widget.stories--JpqVyJe.js → Widget.stories-D3Sq5-_A.js} +13 -13
  40. package/dist/storybook/assets/{WithTooltip-65CFNBJE-DNbD9hAX.js → WithTooltip-65CFNBJE-Cox81aM_.js} +1 -1
  41. package/dist/storybook/assets/{formatter-EIJCOSYU-Cy8KIxab.js → formatter-EIJCOSYU-3ErcoV9q.js} +1 -1
  42. package/dist/storybook/assets/if-defined-Bv2_qPJg.js +1 -0
  43. package/dist/storybook/assets/{iframe-Dz6CxatW.js → iframe-CM6gBkqA.js} +152 -152
  44. package/dist/storybook/assets/{iframe-DiT9Iz2T.css → iframe-D3r2Ciu8.css} +1 -1
  45. package/dist/storybook/assets/{index-CebChkmF.js → index-iwfnMgqg.js} +1 -1
  46. package/dist/storybook/assets/{onFind.stories-nHDImx0x.js → onFind.stories-CDtoTN6S.js} +1 -1
  47. package/dist/storybook/assets/{onRemove.stories-CBxYVPwd.js → onRemove.stories-CSTeFCLU.js} +1 -1
  48. package/dist/storybook/assets/{onVisible.stories-D4Qewc9Y.js → onVisible.stories-C-yiw9n4.js} +1 -1
  49. package/dist/storybook/assets/{style-map-BgW9piaW.js → style-map-BJGdSb_D.js} +1 -1
  50. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-CROW1475.js → syntaxhighlighter-ED5Y7EFY-BEudYlVi.js} +1 -1
  51. package/dist/storybook/iframe.html +2 -2
  52. package/dist/storybook/index.json +1 -1
  53. package/dist/storybook/project.json +1 -1
  54. package/dist/tailwind-plugin-button.js +10 -0
  55. package/dist/tailwind-plugin-button.js.map +1 -1
  56. package/dist/tailwind-plugin-button.ts +10 -0
  57. package/dist/tailwind-plugin-dropdown.d.ts +2 -0
  58. package/dist/tailwind-plugin-dropdown.d.ts.map +1 -0
  59. package/dist/tailwind-plugin-dropdown.js +223 -0
  60. package/dist/tailwind-plugin-dropdown.js.map +1 -0
  61. package/dist/tailwind-plugin-dropdown.ts +249 -0
  62. package/dist/util/EventEmitterMixin.d.ts +13 -0
  63. package/dist/util/EventEmitterMixin.d.ts.map +1 -1
  64. package/dist/util/EventEmitterMixin.js.map +1 -1
  65. package/docs/components/Avatar.md +62 -0
  66. package/docs/components/AvatarGroup.md +52 -0
  67. package/docs/components/Badge.md +58 -0
  68. package/docs/components/CircularProgress.md +55 -0
  69. package/docs/components/CopyToClipboard.md +54 -0
  70. package/docs/components/Dropdown.md +100 -0
  71. package/docs/components/DropdownItem.md +64 -0
  72. package/docs/components/DropdownMenu.md +81 -0
  73. package/docs/components/Icon.md +61 -0
  74. package/docs/components/LinearProgress.md +40 -0
  75. package/docs/components/Pagination.md +95 -0
  76. package/docs/components/Popover.md +71 -0
  77. package/docs/components/README.md +24 -0
  78. package/docs/components/Widget.md +79 -0
  79. package/package.json +3 -2
  80. package/dist/storybook/assets/Avatar.stories-CafEcy4T.js +0 -214
  81. package/dist/storybook/assets/Tooltip.stories-POo1M-ew.js +0 -143
  82. package/dist/storybook/assets/if-defined-CngSGyRu.js +0 -1
@@ -0,0 +1,249 @@
1
+ import plugin from 'tailwindcss/plugin'
2
+ import type { CSSRuleObject } from 'tailwindcss/types/config'
3
+ declare let module: any
4
+
5
+ /**
6
+ * Dropdown menu component styling.
7
+ *
8
+ * Class Names:
9
+ *
10
+ * btu-dropdown-panel - Panel container with popover positioning
11
+ * btu-dropdown-item - Menu item row
12
+ * btu-dropdown-item-selected - Selected/checked item highlight
13
+ * btu-dropdown-item-disabled - Disabled item styling (no pointer-events: none)
14
+ * btu-dropdown-divider - Horizontal separator between item groups
15
+ * btu-dropdown-subhead - Group heading label
16
+ * btu-dropdown-header - Menu header bar
17
+ * btu-dropdown-checkbox - Checkbox indicator
18
+ * btu-dropdown-favorite - Favorite star button
19
+ * btu-dropdown-shortcut - Keyboard shortcut text
20
+ * btu-dropdown-chevron - Trigger chevron icon
21
+ */
22
+
23
+ module.exports = plugin(function ({ addComponents, config, theme }) {
24
+ const itemFontSize = config('theme.fontSize.sm')?.[0] ?? '0.875rem'
25
+ const itemLineHeight = config('theme.fontSize.sm')?.[1] ?? '1.25rem'
26
+ const subheadFontSize = config('theme.fontSize.xs')?.[0] ?? '0.75rem'
27
+
28
+ const components: CSSRuleObject = {
29
+ /* ─── Panel ─── */
30
+ '.btu-dropdown-panel': {
31
+ backgroundColor: 'var(--dropdown-panel-background, var(--btu-theme-white))',
32
+ border: '1px solid var(--dropdown-panel-border-color, oklch(var(--btu-theme-gray-200)))',
33
+ borderRadius: `var(--dropdown-panel-border-radius, ${theme('borderRadius.lg')})`,
34
+ boxShadow: theme('boxShadow.lg'),
35
+ padding: '0.25rem 0',
36
+ overflow: 'auto',
37
+ maxHeight: 'min(20rem, 50vh)',
38
+
39
+ /* High-contrast border */
40
+ ':root.is-moreContrast &': {
41
+ borderColor: 'var(--dropdown-panel-border-color, oklch(var(--btu-theme-gray-400)))',
42
+ },
43
+ '@media screen and (prefers-contrast: more) and (forced-colors: none)': {
44
+ ':root:not(.is-normalContrast) &': {
45
+ borderColor: 'var(--dropdown-panel-border-color, oklch(var(--btu-theme-gray-400)))',
46
+ },
47
+ },
48
+
49
+ /* Exit state — hidden */
50
+ opacity: '0',
51
+
52
+ /* Transitions with allow-discrete for display/overlay */
53
+ transition: `opacity 150ms ease`,
54
+ '@supports (transition-behavior: allow-discrete)': {
55
+ transition: `opacity 150ms ease, display 150ms allow-discrete, overlay 150ms allow-discrete`,
56
+ },
57
+
58
+ /* Reduced motion */
59
+ '@media (prefers-reduced-motion: reduce)': {
60
+ transition: 'opacity 0.01ms ease',
61
+ '@supports (transition-behavior: allow-discrete)': {
62
+ transition: 'opacity 0.01ms ease, display 0.01ms allow-discrete, overlay 0.01ms allow-discrete',
63
+ },
64
+ },
65
+ },
66
+ /* Entry state — visible (popover open) */
67
+ '.btu-dropdown-panel:popover-open': {
68
+ opacity: '1',
69
+ },
70
+ /* Starting style for entry animation */
71
+ '@starting-style': {
72
+ '.btu-dropdown-panel:popover-open': {
73
+ opacity: '0',
74
+ },
75
+ } as any,
76
+
77
+ /* ─── Header ─── */
78
+ '.btu-dropdown-header': {
79
+ display: 'flex',
80
+ alignItems: 'center',
81
+ padding: '0.5rem 0.75rem',
82
+ fontSize: subheadFontSize,
83
+ fontWeight: theme('fontWeight.semibold'),
84
+ color: 'oklch(var(--btu-theme-gray-900))',
85
+ borderBottom: '1px solid var(--dropdown-divider-color, oklch(var(--btu-theme-gray-200)))',
86
+ marginBottom: '0.25rem',
87
+ },
88
+
89
+ /* ─── Empty state ─── */
90
+ '.btu-dropdown-empty': {
91
+ display: 'flex',
92
+ alignItems: 'center',
93
+ justifyContent: 'center',
94
+ padding: '1rem',
95
+ fontSize: itemFontSize,
96
+ color: 'var(--dropdown-empty-color, oklch(var(--btu-theme-gray-400)))',
97
+ },
98
+
99
+ /* ─── Item ─── */
100
+ '.btu-dropdown-item': {
101
+ display: 'flex',
102
+ alignItems: 'center',
103
+ gap: '0.5rem',
104
+ padding: '0.375rem 0.75rem',
105
+ fontSize: `var(--dropdown-item-font-size, ${itemFontSize})`,
106
+ lineHeight: itemLineHeight,
107
+ color: 'var(--dropdown-item-color, oklch(var(--btu-theme-gray-700)))',
108
+ backgroundColor: 'var(--dropdown-item-background, transparent)',
109
+ cursor: 'pointer',
110
+ userSelect: 'none',
111
+ outline: 'none',
112
+ whiteSpace: 'nowrap',
113
+
114
+ '&:hover': {
115
+ backgroundColor: 'var(--dropdown-item-hover-background, oklch(var(--btu-theme-gray-100)))',
116
+ color: 'var(--dropdown-item-hover-color, oklch(var(--btu-theme-gray-900)))',
117
+ },
118
+ '&:focus-visible': {
119
+ backgroundColor: 'var(--dropdown-item-hover-background, oklch(var(--btu-theme-gray-100)))',
120
+ color: 'var(--dropdown-item-hover-color, oklch(var(--btu-theme-gray-900)))',
121
+ },
122
+ },
123
+
124
+ '.btu-dropdown-item-selected': {
125
+ backgroundColor: 'var(--dropdown-item-selected-background, oklch(var(--btu-theme-primary-50)))',
126
+ color: 'var(--dropdown-item-selected-color, oklch(var(--btu-theme-primary-700)))',
127
+ '&:hover': {
128
+ backgroundColor: 'var(--dropdown-item-selected-background, oklch(var(--btu-theme-primary-50)))',
129
+ color: 'var(--dropdown-item-selected-color, oklch(var(--btu-theme-primary-700)))',
130
+ },
131
+ '&:focus-visible': {
132
+ backgroundColor: 'var(--dropdown-item-selected-background, oklch(var(--btu-theme-primary-50)))',
133
+ color: 'var(--dropdown-item-selected-color, oklch(var(--btu-theme-primary-700)))',
134
+ },
135
+ },
136
+
137
+ '.btu-dropdown-item-disabled': {
138
+ opacity: '0.5',
139
+ cursor: 'default',
140
+
141
+ ':root.is-moreContrast &': {
142
+ opacity: '0.4',
143
+ },
144
+ '@media screen and (prefers-contrast: more) and (forced-colors: none)': {
145
+ ':root:not(.is-normalContrast) &': {
146
+ opacity: '0.4',
147
+ },
148
+ },
149
+ },
150
+
151
+ /* ─── Checkbox indicator ─── */
152
+ '.btu-dropdown-checkbox': {
153
+ display: 'inline-flex',
154
+ alignItems: 'center',
155
+ justifyContent: 'center',
156
+ width: '1rem',
157
+ height: '1rem',
158
+ flexShrink: '0',
159
+ borderRadius: theme('borderRadius.sm'),
160
+ border: '1px solid oklch(var(--btu-theme-gray-300))',
161
+ backgroundColor: 'transparent',
162
+ color: 'transparent',
163
+ },
164
+ '.btu-dropdown-checkbox-checked': {
165
+ backgroundColor: 'oklch(var(--btu-theme-primary-600))',
166
+ borderColor: 'oklch(var(--btu-theme-primary-600))',
167
+ color: 'var(--btu-theme-white)',
168
+ },
169
+
170
+ /* ─── Divider ─── */
171
+ '.btu-dropdown-divider': {
172
+ borderTop: '1px solid var(--dropdown-divider-color, oklch(var(--btu-theme-gray-200)))',
173
+ margin: '0.25rem 0',
174
+ },
175
+
176
+ /* ─── Subhead ─── */
177
+ '.btu-dropdown-subhead': {
178
+ padding: '0.5rem 0.75rem 0.25rem',
179
+ fontSize: subheadFontSize,
180
+ fontWeight: theme('fontWeight.semibold'),
181
+ color: 'oklch(var(--btu-theme-gray-500))',
182
+ textTransform: 'uppercase',
183
+ letterSpacing: '0.05em',
184
+ lineHeight: '1rem',
185
+ },
186
+
187
+ /* ─── Favorite star ─── */
188
+ 'button.btu-dropdown-favorite': {
189
+ flexShrink: '0',
190
+ marginLeft: 'auto',
191
+ color: 'oklch(var(--btu-theme-gray-400))',
192
+ '&:hover': {
193
+ color: 'oklch(var(--btu-theme-warning-500))',
194
+ },
195
+ },
196
+ 'button.btu-dropdown-favorite-active': {
197
+ color: 'oklch(var(--btu-theme-warning-500))',
198
+ },
199
+
200
+ /* ─── Shortcut text ─── */
201
+ '.btu-dropdown-shortcut': {
202
+ marginLeft: 'auto',
203
+ fontSize: subheadFontSize,
204
+ color: 'oklch(var(--btu-theme-gray-400))',
205
+ },
206
+
207
+ /* ─── Disabled trigger ─── */
208
+ 'btu-dropdown[disabled]': {
209
+ opacity: '0.5',
210
+ pointerEvents: 'none',
211
+ },
212
+
213
+ /* ─── Chevron ─── */
214
+ '.btu-dropdown-chevron': {
215
+ transition: 'transform 200ms ease',
216
+ flexShrink: '0',
217
+ },
218
+ /* Icon-only trigger with chevron: override square sizing so both icons fit */
219
+ '.btu-button-text-hidden:has(.btu-dropdown-chevron)': {
220
+ width: 'auto',
221
+ gap: '0.5rem',
222
+ },
223
+ 'btu-dropdown[open] .btu-dropdown-chevron': {
224
+ transform: 'rotate(180deg)',
225
+ },
226
+
227
+ /* ─── Item icon container ─── */
228
+ '.btu-dropdown-item-icon': {
229
+ display: 'inline-flex',
230
+ flexShrink: '0',
231
+ },
232
+
233
+ /* ─── Item label ─── */
234
+ '.btu-dropdown-item-label': {
235
+ flex: '1',
236
+ overflow: 'hidden',
237
+ textOverflow: 'ellipsis',
238
+ },
239
+
240
+ /* ─── Selected check mark (non-checkbox mode) ─── */
241
+ '.btu-dropdown-check': {
242
+ display: 'inline-flex',
243
+ flexShrink: '0',
244
+ color: 'oklch(var(--btu-theme-primary-600))',
245
+ },
246
+ }
247
+
248
+ addComponents(components)
249
+ })
@@ -49,6 +49,19 @@ export interface CustomEventMap {
49
49
  page: number;
50
50
  pageSize: number;
51
51
  }>;
52
+ 'btu-dropdown-ready': CustomEvent<unknown>;
53
+ 'btu-dropdown-show': CustomEvent<unknown>;
54
+ 'btu-dropdown-hide': CustomEvent<unknown>;
55
+ 'btu-dropdown-menu-ready': CustomEvent<unknown>;
56
+ 'btu-dropdown-item-ready': CustomEvent<unknown>;
57
+ 'btu-dropdown-item-select': CustomEvent<{
58
+ label: string;
59
+ selected: boolean;
60
+ }>;
61
+ 'btu-dropdown-item-favorite': CustomEvent<{
62
+ label: string;
63
+ favorited: boolean;
64
+ }>;
52
65
  }
53
66
  interface CombinedEventMap extends HTMLElementEventMap, CustomEventMap {
54
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitterMixin.d.ts","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventEmitterMixin.d.ts","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAEhC,KAAK,WAAW,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AACxD,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAEtE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,0BAA0B,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAChD,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IAClD,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,yBAAyB,EAAE,WAAW,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACvD,wBAAwB,EAAE,WAAW,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;IACpE,wBAAwB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9C,2BAA2B,EAAE,WAAW,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5D,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACvC,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5C,qBAAqB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC3C,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACtC,oBAAoB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1C,uBAAuB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC7C,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,6BAA6B,EAAE,WAAW,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAClE,+BAA+B,EAAE,WAAW,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACrE,sBAAsB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC5C,uBAAuB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxE,iCAAiC,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAClF,oBAAoB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC1C,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACzC,mBAAmB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IACzC,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/C,yBAAyB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/C,0BAA0B,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC7E,4BAA4B,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACjF;AAED,UAAU,gBAAiB,SAAQ,mBAAmB,EAAE,cAAc;CAAG;AAEzE;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC7C,IAAI,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAA;IACtG,gBAAgB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAC/C,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EAC9D,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI;IACP,mBAAmB,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAClD,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EAC9D,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI;CACR;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,WAAW,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,KAqD/C,WAAW,CAAC,0BAA0B,CAAC,GAAG,CAC5E,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitterMixin.js","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAwDhC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAoC,UAAa,EAAE,EAAE;IACpF,MAAM,sBAAuB,SAAQ,UAAU;QAC7C;;;;WAIG;QACH,iBAAiB;YACf,KAAK,CAAC,iBAAiB,EAAE,CAAA;YACzB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CACpB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAC5C,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,CACnD,CAAA;QACH,CAAC;QAED;;;;WAIG;QACH,oBAAoB;YAClB,KAAK,CAAC,oBAAoB,EAAE,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACvC,CAAC;QAED;;;;;;;;;;;;;;;;WAgBG;QACH,IAAI,CAAiC,IAAO,EAAE,MAA6C;YACzF,OAAO,IAAI,CAAC,aAAa,CACvB,IAAI,WAAW,CAAC,IAAI,EAAE;gBACpB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,IAAI;gBACd,MAAM;aACP,CAAC,CACH,CAAA;QACH,CAAC;KACF;IACD,OAAO,sBAAqE,CAAA;AAC9E,CAAC,CAAA"}
1
+ {"version":3,"file":"EventEmitterMixin.js","sourceRoot":"","sources":["../../src/util/EventEmitterMixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AA+DhC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAoC,UAAa,EAAE,EAAE;IACpF,MAAM,sBAAuB,SAAQ,UAAU;QAC7C;;;;WAIG;QACH,iBAAiB;YACf,KAAK,CAAC,iBAAiB,EAAE,CAAA;YACzB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CACpB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC,EAC5C,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,CAAC,CACnD,CAAA;QACH,CAAC;QAED;;;;WAIG;QACH,oBAAoB;YAClB,KAAK,CAAC,oBAAoB,EAAE,CAAA;YAC5B,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACvC,CAAC;QAED;;;;;;;;;;;;;;;;WAgBG;QACH,IAAI,CAAiC,IAAO,EAAE,MAA6C;YACzF,OAAO,IAAI,CAAC,aAAa,CACvB,IAAI,WAAW,CAAC,IAAI,EAAE;gBACpB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,IAAI;gBACd,MAAM;aACP,CAAC,CACH,CAAA;QACH,CAAC;KACF;IACD,OAAO,sBAAqE,CAAA;AAC9E,CAAC,CAAA"}
@@ -0,0 +1,62 @@
1
+ # `src/components/avatar/Avatar.ts`:
2
+
3
+ ## class: `Avatar`, `btu-avatar`
4
+
5
+ ### Superclass
6
+
7
+ | Name | Module | Package |
8
+ | ------------ | ------ | ------- |
9
+ | `LitElement` | | lit |
10
+
11
+ ### Mixins
12
+
13
+ | Name | Module | Package |
14
+ | ------------------- | ------------------------------ | ------- |
15
+ | `TooltipMixin` | /src/util/TooltipMixin.js | |
16
+ | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
17
+ | `ReadyMixin` | /src/util/ReadyMixin.js | |
18
+
19
+ ### Fields
20
+
21
+ | Name | Privacy | Type | Default | Description | Inherited From |
22
+ | ---------- | ------- | ----------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
23
+ | `src` | | `string` | `''` | Image source URL | |
24
+ | `alt` | | `string` | `''` | Alt text for the image | |
25
+ | `fallback` | | `string` | `''` | Fallback text (typically user initials) | |
26
+ | `size` | | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| 'xxl'` | `'md'` | Size variant.&#xA;- 'xs': Extra small (1.5rem)&#xA;- 'sm': Small (2.25rem)&#xA;- 'md': Medium (2.5rem) - default&#xA;- 'lg': Large (3rem)&#xA;- 'xl': Extra large (3.5rem)&#xA;- 'xxl': Extra extra large (4rem) | |
27
+
28
+ ### Events
29
+
30
+ | Name | Type | Description | Inherited From |
31
+ | ------------------------- | ------------------------------------------ | ------------------------------------------- | -------------- |
32
+ | `btu-avatar-ready` | `CustomEvent` | Fired after first render and initialization | |
33
+ | `btu-avatar-image-loaded` | `CustomEvent<{src: string}>` | Fired when image successfully loads | |
34
+ | `btu-avatar-image-error` | `CustomEvent<{src: string, error: Event}>` | Fired when image fails to load | |
35
+
36
+ ### Attributes
37
+
38
+ | Name | Field | Inherited From |
39
+ | ---------- | -------- | -------------- |
40
+ | `src` | src | |
41
+ | `alt` | alt | |
42
+ | `fallback` | fallback | |
43
+ | `size` | size | |
44
+
45
+ ### CSS Properties
46
+
47
+ | Name | Default | Description |
48
+ | -------------------------- | ------- | ----------------------------------------------- |
49
+ | `--avatar-size` | | Custom size (overrides size prop) |
50
+ | `--avatar-bg-color` | | Fallback background color (default: purple-600) |
51
+ | `--avatar-corner-rounding` | | How rounded is the avatar (default: circle) |
52
+ | `--avatar-ring-color` | | Optional ring border color |
53
+ | `--avatar-ring-width` | | Ring border width (default: 2px) |
54
+
55
+ <hr/>
56
+
57
+ ## Exports
58
+
59
+ | Kind | Name | Declaration | Module | Package |
60
+ | --------------------------- | ------------ | ----------- | ------------------------------- | ------- |
61
+ | `js` | `default` | Avatar | src/components/avatar/Avatar.ts | |
62
+ | `custom-element-definition` | `btu-avatar` | Avatar | src/components/avatar/Avatar.ts | |
@@ -0,0 +1,52 @@
1
+ # `src/components/avatar/AvatarGroup.ts`:
2
+
3
+ ## class: `AvatarGroup`, `btu-avatar-group`
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
+ | `max` | | `number \| undefined` | | Maximum number of visible avatars. Remaining avatars shown as "+N" | |
23
+ | `size` | | `'xs' \| 'sm' \| 'md'` | `'md'` | Size variant for all child avatars (unless individually overridden) | |
24
+
25
+ ### Methods
26
+
27
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
28
+ | ---------------- | ------- | --------------------------------------------------------------------------------------------------------------------------- | ---------- | ------ | -------------- |
29
+ | `processAvatars` | | Process all avatar children: apply size, handle overflow&#xA;Call this method when avatars are dynamically added or removed | | `void` | |
30
+
31
+ ### Events
32
+
33
+ | Name | Type | Description | Inherited From |
34
+ | --------------------------- | ------------------------------- | ---------------------------------------------- | -------------- |
35
+ | `btu-avatar-group-ready` | `CustomEvent` | Fired after first render and initialization | |
36
+ | `btu-avatar-group-overflow` | `CustomEvent<{hidden: number}>` | Fired when avatars are hidden due to max limit | |
37
+
38
+ ### Attributes
39
+
40
+ | Name | Field | Inherited From |
41
+ | ------ | ----- | -------------- |
42
+ | `max` | max | |
43
+ | `size` | size | |
44
+
45
+ <hr/>
46
+
47
+ ## Exports
48
+
49
+ | Kind | Name | Declaration | Module | Package |
50
+ | --------------------------- | ------------------ | ----------- | ------------------------------------ | ------- |
51
+ | `js` | `default` | AvatarGroup | src/components/avatar/AvatarGroup.ts | |
52
+ | `custom-element-definition` | `btu-avatar-group` | AvatarGroup | src/components/avatar/AvatarGroup.ts | |
@@ -0,0 +1,58 @@
1
+ # `src/components/badge/Badge.ts`:
2
+
3
+ ## class: `Badge`, `btu-badge`
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
+ | `variant` | | `'info' \| 'primary' \| 'error' \| 'success' \| 'warning'` | `'info'` | Style of the badge.&#xA;- 'info': Informational (default)&#xA;- 'primary': Primary action or emphasis&#xA;- 'error': Error or danger state&#xA;- 'success': Success or completion state&#xA;- 'warning': Warning or caution state | |
23
+ | `dot` | | `boolean` | `false` | Should a dot be displayed before the label? | |
24
+ | `size` | | `string` | `'sm'` | Size variant.&#xA;- 'sm': Small (default)&#xA;- 'md': Medium&#xA;- 'lg': Large | |
25
+
26
+ ### Events
27
+
28
+ | Name | Type | Description | Inherited From |
29
+ | ----------------- | ------------- | ------------------------------------------- | -------------- |
30
+ | `btu-badge-ready` | `CustomEvent` | Fired after first render and initialization | |
31
+
32
+ ### Attributes
33
+
34
+ | Name | Field | Inherited From |
35
+ | --------- | ------- | -------------- |
36
+ | `variant` | variant | |
37
+ | `dot` | dot | |
38
+ | `size` | size | |
39
+
40
+ ### CSS Properties
41
+
42
+ | Name | Default | Description |
43
+ | -------------------------- | ------- | ------------------------------------------------------------ |
44
+ | `--badge-color-foreground` | | Text color (overrides theme color) |
45
+ | `--badge-color-background` | | Background color (overrides theme color) |
46
+ | `--badge-radius-size` | | Border radius size (overrides shape default, default: 999px) |
47
+ | `--badge-px` | | Horizontal padding (overrides size default) |
48
+ | `--badge-py` | | Vertical padding (overrides size default) |
49
+ | `--badge-dot-size` | | Size of the dot affordance (default: 6px) |
50
+
51
+ <hr/>
52
+
53
+ ## Exports
54
+
55
+ | Kind | Name | Declaration | Module | Package |
56
+ | --------------------------- | ----------- | ----------- | ----------------------------- | ------- |
57
+ | `js` | `default` | Badge | src/components/badge/Badge.ts | |
58
+ | `custom-element-definition` | `btu-badge` | Badge | src/components/badge/Badge.ts | |
@@ -0,0 +1,55 @@
1
+ # `src/components/circular-progress/CircularProgress.ts`:
2
+
3
+ ## class: `CircularProgress`, `btu-circular-progress`
4
+
5
+ ### Superclass
6
+
7
+ | Name | Module | Package |
8
+ | ------------ | ------ | ------- |
9
+ | `LitElement` | | lit |
10
+
11
+ ### Mixins
12
+
13
+ | Name | Module | Package |
14
+ | ------------------- | ------------------------------ | ------- |
15
+ | `ProgressMixin` | /src/util/ProgressMixin.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
+ | `indeterminate` | | `boolean` | `true` | Whether the progress indicator is indeterminate (animated spinner).&#xA;When false, shows determinate progress based on the progress value. | |
24
+ | `size` | | `'sm' \| 'md' \| 'lg'` | `'sm'` | Size variant.&#xA;- 'sm': Small (16px) - default&#xA;- 'md': Medium (32px)&#xA;- 'lg': Large (48px) | |
25
+
26
+ ### Events
27
+
28
+ | Name | Type | Description | Inherited From |
29
+ | ----------------------- | ------------- | ------------------------------------------- | -------------- |
30
+ | `btu-progress-ready` | `CustomEvent` | Fired after first render and initialization | |
31
+ | `btu-progress-complete` | `CustomEvent` | Fired when determinate progress reaches 100 | |
32
+
33
+ ### Attributes
34
+
35
+ | Name | Field | Inherited From |
36
+ | --------------- | ------------- | -------------- |
37
+ | `indeterminate` | indeterminate | |
38
+ | `size` | size | |
39
+
40
+ ### CSS Properties
41
+
42
+ | Name | Default | Description |
43
+ | ------------------ | ------- | ------------------------------------------------------- |
44
+ | `--progress-color` | | Custom progress indicator color (overrides theme color) |
45
+ | `--track-color` | | Track/background color (overrides default gray-100) |
46
+ | `--progress-size` | | Custom size in pixels (overrides size preset) |
47
+
48
+ <hr/>
49
+
50
+ ## Exports
51
+
52
+ | Kind | Name | Declaration | Module | Package |
53
+ | --------------------------- | ----------------------- | ---------------- | ---------------------------------------------------- | ------- |
54
+ | `js` | `default` | CircularProgress | src/components/circular-progress/CircularProgress.ts | |
55
+ | `custom-element-definition` | `btu-circular-progress` | CircularProgress | src/components/circular-progress/CircularProgress.ts | |
@@ -0,0 +1,54 @@
1
+ # `src/components/copy-to-clipboard/CopyToClipboard.ts`:
2
+
3
+ ## class: `CopyToClipboard`, `btu-copy-to-clipboard`
4
+
5
+ ### Superclass
6
+
7
+ | Name | Module | Package |
8
+ | ------------ | ------ | ------- |
9
+ | `LitElement` | | lit |
10
+
11
+ ### Mixins
12
+
13
+ | Name | Module | Package |
14
+ | ---------------------- | --------------------------------- | ------- |
15
+ | `ClipboardMixin` | /src/util/ClipboardMixin.js | |
16
+ | `ComponentStatesMixin` | /src/util/ComponentStatesMixin.js | |
17
+ | `EventEmitterMixin` | /src/util/EventEmitterMixin.js | |
18
+ | `ReadyMixin` | /src/util/ReadyMixin.js | |
19
+
20
+ ### Fields
21
+
22
+ | Name | Privacy | Type | Default | Description | Inherited From |
23
+ | --------------- | ------- | --------------------- | ------- | ----------------------------------------------------------------------------- | -------------- |
24
+ | `copydata` | | `string \| undefined` | | The text to be copied to the system clipboard. | |
25
+ | `buttonClasses` | | `string \| undefined` | | Custom CSS classes for the button. If provided, replaces the default classes. | |
26
+
27
+ ### Methods
28
+
29
+ | Name | Privacy | Description | Parameters | Return | Inherited From |
30
+ | ------ | ------- | ------------------------------------------------------------------------------------------------------ | ---------- | ------ | -------------- |
31
+ | `copy` | | Copies the copydata to the system clipboard.&#xA;Displays a success state for 3 seconds after copying. | | | |
32
+
33
+ ### Events
34
+
35
+ | Name | Type | Description | Inherited From |
36
+ | ---------------------- | ------------- | --------------------------------------------------- | -------------- |
37
+ | `btu-clipboard-ready` | `CustomEvent` | Fired after first render and initialization | |
38
+ | `btu-clipboard-copied` | `CustomEvent` | Fired when text is successfully copied to clipboard | |
39
+
40
+ ### Attributes
41
+
42
+ | Name | Field | Inherited From |
43
+ | --------------- | ------------- | -------------- |
44
+ | `copydata` | copydata | |
45
+ | `buttonClasses` | buttonClasses | |
46
+
47
+ <hr/>
48
+
49
+ ## Exports
50
+
51
+ | Kind | Name | Declaration | Module | Package |
52
+ | --------------------------- | ----------------------- | --------------- | --------------------------------------------------- | ------- |
53
+ | `js` | `default` | CopyToClipboard | src/components/copy-to-clipboard/CopyToClipboard.ts | |
54
+ | `custom-element-definition` | `btu-copy-to-clipboard` | CopyToClipboard | src/components/copy-to-clipboard/CopyToClipboard.ts | |