@brightspot/ui 3.0.1-cms-ui-migration.1 → 3.0.1-cms-ui-migration.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 (66) hide show
  1. package/dist/custom-elements.json +718 -718
  2. package/dist/storybook/assets/{ActionBar.stories-BhdqLyzJ.js → ActionBar.stories-hJ_5cm-P.js} +1 -1
  3. package/dist/storybook/assets/{ActionItem.stories-17zjMCkO.js → ActionItem.stories-Bjx2803w.js} +1 -1
  4. package/dist/storybook/assets/{Avatar.stories-C5m3-zOH.js → Avatar.stories-Cj0YgZ6f.js} +1 -1
  5. package/dist/storybook/assets/{AvatarGroup.stories-DE88PJ6w.js → AvatarGroup.stories-Lh_sQFCU.js} +1 -1
  6. package/dist/storybook/assets/{Badge.stories-D905HmvO.js → Badge.stories-BL7RUibx.js} +1 -1
  7. package/dist/storybook/assets/{Button-ANyLESGb.js → Button-BPHNcxqK.js} +1 -1
  8. package/dist/storybook/assets/{Button.stories-DbH6q5L3.js → Button.stories-CAYO4gdU.js} +1 -1
  9. package/dist/storybook/assets/{ButtonGroup.stories-loqgAB7p.js → ButtonGroup.stories-Cd13Us5K.js} +1 -1
  10. package/dist/storybook/assets/{Celebrate.stories-CRO3rSgp.js → Celebrate.stories-D_KE3Qze.js} +1 -1
  11. package/dist/storybook/assets/{Checkbox.stories-SZtgfbFe.js → Checkbox.stories-Aj1xgZVn.js} +1 -1
  12. package/dist/storybook/assets/{CircularProgress.stories-VayPxO4M.js → CircularProgress.stories-BecV_v6d.js} +1 -1
  13. package/dist/storybook/assets/{ClipboardMixin.stories-0EB2O2zT.js → ClipboardMixin.stories-DU-WiZ2f.js} +1 -1
  14. package/dist/storybook/assets/{Color-6BZIO3FS-CFpcD80i.js → Color-6BZIO3FS-BYl4KZZn.js} +1 -1
  15. package/dist/storybook/assets/{Colors.stories-BJGM6xnp.js → Colors.stories-BMUVUy2q.js} +1 -1
  16. package/dist/storybook/assets/{CombinedEffects.stories-DUwocYcn.js → CombinedEffects.stories-FHcPKFm6.js} +1 -1
  17. package/dist/storybook/assets/{ComponentStatesMixin-MUqdPCf7.js → ComponentStatesMixin-EMUnfT5y.js} +1 -1
  18. package/dist/storybook/assets/{ComponentStatesMixin.stories-DjrxNwE7.js → ComponentStatesMixin.stories-SXq0kzS9.js} +1 -1
  19. package/dist/storybook/assets/{CopyToClipboard.stories-DptOcPq6.js → CopyToClipboard.stories-u43lhvcI.js} +1 -1
  20. package/dist/storybook/assets/{Debounce.stories-BbcIWmhD.js → Debounce.stories-BdCn5qgO.js} +1 -1
  21. package/dist/storybook/assets/{DocsRenderer-LL677BLK-Yy8fjeNG.js → DocsRenderer-LL677BLK-DxiEJ_jx.js} +3 -3
  22. package/dist/storybook/assets/{Dropdown.stories-Du3LrBR6.js → Dropdown.stories-BWSRwjIF.js} +1 -1
  23. package/dist/storybook/assets/{EmptyState.stories-Dy9P8aOY.js → EmptyState.stories-BpobeZL5.js} +1 -1
  24. package/dist/storybook/assets/{Events.stories-DvdVQxDf.js → Events.stories-CP5kMzpr.js} +1 -1
  25. package/dist/storybook/assets/{Heading.stories-BQ1jFOKn.js → Heading.stories-CbJD-oTB.js} +1 -1
  26. package/dist/storybook/assets/{HueRipple.stories-CrZFjnRl.js → HueRipple.stories-BOABJ7zw.js} +1 -1
  27. package/dist/storybook/assets/{Icon.stories-C2Tj8Lx1.js → Icon.stories-CWlUHL4j.js} +1 -1
  28. package/dist/storybook/assets/{IconButton.stories-DFqouOJb.js → IconButton.stories-BWBs-OLT.js} +1 -1
  29. package/dist/storybook/assets/{LinearProgress.stories-DtNw3QX3.js → LinearProgress.stories-LZ0GZoxF.js} +1 -1
  30. package/dist/storybook/assets/{Pagination.stories-CFiZ9APs.js → Pagination.stories-CbLaR3P9.js} +1 -1
  31. package/dist/storybook/assets/{Popover.stories-DkkTuYag.js → Popover.stories-JHrWqYZw.js} +1 -1
  32. package/dist/storybook/assets/{ReadyMixin-BA01Vm_B.js → ReadyMixin-B1H2a9x8.js} +1 -1
  33. package/dist/storybook/assets/{RovingTabindexMixin.stories-BesAqt48.js → RovingTabindexMixin.stories-UMHpYG73.js} +1 -1
  34. package/dist/storybook/assets/{Rtc.stories-iTw43rjp.js → Rtc.stories-VQtNSlls.js} +1 -1
  35. package/dist/storybook/assets/{ScrollShadow.stories-QYqQCcAo.js → ScrollShadow.stories-CYdi8Tgp.js} +1 -1
  36. package/dist/storybook/assets/{Switch.stories-BKArq9Mk.js → Switch.stories-D8F2hZCf.js} +1 -1
  37. package/dist/storybook/assets/{Tab.stories-8UdDPvE5.js → Tab.stories-wgBP0lTj.js} +1 -1
  38. package/dist/storybook/assets/{Tabs.stories-BPGMZ552.js → Tabs.stories-C00rr5sf.js} +1 -1
  39. package/dist/storybook/assets/{Throttle.stories-CYl5d0r6.js → Throttle.stories-BhQEfJbS.js} +1 -1
  40. package/dist/storybook/assets/{Tooltip.stories-cZ0zSlwX.js → Tooltip.stories-CGoZ5qTn.js} +1 -1
  41. package/dist/storybook/assets/{Upload.stories-CPC7N0Ed.js → Upload.stories-B3K-HAXw.js} +1 -1
  42. package/dist/storybook/assets/{UploadItem.stories-D0LClT0a.js → UploadItem.stories-71ArSoUh.js} +1 -1
  43. package/dist/storybook/assets/{Welcome.stories-C8JUaRas.js → Welcome.stories-CihlfFXS.js} +1 -1
  44. package/dist/storybook/assets/{Widget.stories-C1FxF24-.js → Widget.stories-1u4KbiJM.js} +1 -1
  45. package/dist/storybook/assets/{WithTooltip-65CFNBJE-BMBo-fie.js → WithTooltip-65CFNBJE-B3Jitxw9.js} +1 -1
  46. package/dist/storybook/assets/{blocks-BTsuXRXZ.js → blocks-C1HaXuQB.js} +5 -5
  47. package/dist/storybook/assets/{formatter-EIJCOSYU-BJ1Cwrpx.js → formatter-EIJCOSYU-Dy9Lt9fs.js} +1 -1
  48. package/dist/storybook/assets/if-defined-CA2KmTqA.js +1 -0
  49. package/dist/storybook/assets/{iframe-BgFj0b5u.css → iframe-D0roG0J-.css} +1 -1
  50. package/dist/storybook/assets/{iframe-B3YWTqkR.js → iframe-Dx6IxWXF.js} +4 -4
  51. package/dist/storybook/assets/{index-BBUTVEdP.js → index-OrjedSVh.js} +1 -1
  52. package/dist/storybook/assets/{onFind-NC0lGo-r.js → onFind-YTqjw6W0.js} +1 -1
  53. package/dist/storybook/assets/{onFind.stories-CqbwQgQF.js → onFind.stories-DEvwTrmx.js} +1 -1
  54. package/dist/storybook/assets/{onRemove.stories-Y8Ycs77o.js → onRemove.stories-D5mO-Lin.js} +1 -1
  55. package/dist/storybook/assets/{onVisible.stories-CcLUE35q.js → onVisible.stories-C3Rcz0Eb.js} +1 -1
  56. package/dist/storybook/assets/{style-map-MSB_ngx3.js → style-map-CiMHry7H.js} +1 -1
  57. package/dist/storybook/assets/{syntaxhighlighter-ED5Y7EFY-BjkjEDMG.js → syntaxhighlighter-ED5Y7EFY-DIZnuhb2.js} +1 -1
  58. package/dist/storybook/iframe.html +2 -2
  59. package/dist/storybook/project.json +1 -1
  60. package/dist/tailwind.config.d.ts +4 -1
  61. package/dist/tailwind.config.d.ts.map +1 -1
  62. package/dist/tailwind.config.js +0 -2
  63. package/dist/tailwind.config.js.map +1 -1
  64. package/dist/tailwind.config.ts +0 -2
  65. package/package.json +1 -1
  66. package/dist/storybook/assets/if-defined-BPCd2NXs.js +0 -1
@@ -4,105 +4,225 @@
4
4
  "modules": [
5
5
  {
6
6
  "kind": "javascript-module",
7
- "path": "src/components/action-bar/ActionBar.ts",
7
+ "path": "src/components/avatar/Avatar.ts",
8
8
  "declarations": [
9
9
  {
10
10
  "kind": "class",
11
- "description": "A persistent container for primary, secondary, tertiary, and destructive actions\nwithin an interface, typically anchored to the bottom of a view.\n\nUses a two-zone layout: destructive actions on the left (start zone),\nmain actions on the right (end zone). Both zones maintain their position\neven when the other zone is empty (BSP-18087).\n\n**Positioning:** Uses `margin-top: auto` to push to bottom of flex/grid parents.\nIn block layout parents, the bar sits after content (a console warning is emitted).\n\n**Overflow:** When items don't fit, the least important overflow into a \"More\" dropdown.\nItems are auto-sorted by variant priority (tertiary → secondary → primary).\nWith `compact`, compactable items progressively hide labels one-by-one before overflowing.",
12
- "name": "ActionBar",
11
+ "description": "An avatar component for displaying user profile images with fallback support.\n\nAvatars display user profile images with automatic fallback to initials when\nthe image fails to load or is not provided.",
12
+ "name": "Avatar",
13
13
  "cssProperties": [
14
14
  {
15
- "description": "Gap between items (default: 0.75rem)",
16
- "name": "--action-bar-gap"
15
+ "description": "Custom size (overrides size prop)",
16
+ "name": "--avatar-size"
17
17
  },
18
18
  {
19
- "description": "Bar padding (default: 1.5rem)",
20
- "name": "--action-bar-padding"
19
+ "description": "Fallback background color (default: purple-600)",
20
+ "name": "--avatar-bg-color"
21
21
  },
22
22
  {
23
- "description": "Background color (default: white)",
24
- "name": "--action-bar-background"
23
+ "description": "How rounded is the avatar (default: circle)",
24
+ "name": "--avatar-corner-rounding"
25
25
  },
26
26
  {
27
- "description": "Border color (default: gray-200)",
28
- "name": "--action-bar-border-color"
27
+ "description": "Optional ring border color",
28
+ "name": "--avatar-ring-color"
29
29
  },
30
30
  {
31
- "description": "Z-index (default: 100)",
32
- "name": "--action-bar-z-index"
33
- }
34
- ],
35
- "slots": [
36
- {
37
- "description": "One or more `btu-action-item` elements",
38
- "name": ""
31
+ "description": "Ring border width (default: 2px)",
32
+ "name": "--avatar-ring-width"
39
33
  }
40
34
  ],
41
35
  "members": [
42
36
  {
43
37
  "kind": "field",
44
- "name": "position",
38
+ "name": "src",
45
39
  "type": {
46
- "text": "Position"
40
+ "text": "string"
47
41
  },
48
- "default": "'bottom'",
49
- "description": "Bar position: 'top' or 'bottom' (default).",
50
- "attribute": "position",
51
- "reflects": true
42
+ "default": "''",
43
+ "description": "Image source URL",
44
+ "attribute": "src"
52
45
  },
53
46
  {
54
47
  "kind": "field",
55
- "name": "sticky",
48
+ "name": "alt",
56
49
  "type": {
57
- "text": "boolean"
50
+ "text": "string"
58
51
  },
59
- "default": "false",
60
- "description": "Enables CSS sticky positioning. When combined with position='top',\nthe bar sticks to the top of the scroll container. With position='bottom'\n(default), it sticks to the bottom.",
61
- "attribute": "sticky",
62
- "reflects": true
52
+ "default": "''",
53
+ "description": "Alt text for the image",
54
+ "attribute": "alt"
63
55
  },
64
56
  {
65
57
  "kind": "field",
66
- "name": "alignment",
58
+ "name": "fallback",
67
59
  "type": {
68
- "text": "Alignment"
60
+ "text": "string"
69
61
  },
70
- "default": "'default'",
71
- "description": "Content alignment: 'default' (two-zone), 'start', 'center', 'end'.\nNon-default alignments disable two-zone layout.",
72
- "attribute": "item-alignment",
73
- "reflects": true
62
+ "default": "''",
63
+ "description": "Fallback text (typically user initials)",
64
+ "attribute": "fallback"
74
65
  },
75
66
  {
76
67
  "kind": "field",
77
- "name": "shadow",
68
+ "name": "size",
78
69
  "type": {
79
- "text": "boolean"
70
+ "text": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'"
80
71
  },
81
- "default": "false",
82
- "description": "Adds a box-shadow to the bar.",
83
- "attribute": "shadow",
84
- "reflects": true
72
+ "default": "'md'",
73
+ "description": "Size variant.\n- 'xs': Extra small (1.5rem)\n- 'sm': Small (2.25rem)\n- 'md': Medium (2.5rem) - default\n- 'lg': Large (3rem)\n- 'xl': Extra large (3.5rem)\n- 'xxl': Extra extra large (4rem)",
74
+ "attribute": "size"
85
75
  },
86
76
  {
87
77
  "kind": "field",
88
- "name": "label",
78
+ "name": "tooltip",
89
79
  "type": {
90
80
  "text": "string"
91
81
  },
92
82
  "default": "''",
93
- "description": "Accessible label for the toolbar region.",
94
- "attribute": "label"
83
+ "description": "Tooltip text content. Set to empty string to remove the tooltip.",
84
+ "attribute": "tooltip",
85
+ "inheritedFrom": {
86
+ "name": "TooltipMixin",
87
+ "module": "src/util/TooltipMixin.ts"
88
+ }
95
89
  },
96
90
  {
97
91
  "kind": "field",
98
- "name": "compact",
92
+ "name": "tooltipPosition",
93
+ "type": {
94
+ "text": "'top' | 'bottom' | 'left' | 'right'"
95
+ },
96
+ "default": "'top'",
97
+ "description": "Position relative to the host element. Auto-flips when constrained by the viewport.",
98
+ "attribute": "tooltip-position",
99
+ "inheritedFrom": {
100
+ "name": "TooltipMixin",
101
+ "module": "src/util/TooltipMixin.ts"
102
+ }
103
+ },
104
+ {
105
+ "kind": "field",
106
+ "name": "tooltipDelay",
107
+ "type": {
108
+ "text": "number"
109
+ },
110
+ "default": "300",
111
+ "description": "Show delay in milliseconds (hover trigger only).",
112
+ "attribute": "tooltip-delay",
113
+ "inheritedFrom": {
114
+ "name": "TooltipMixin",
115
+ "module": "src/util/TooltipMixin.ts"
116
+ }
117
+ },
118
+ {
119
+ "kind": "field",
120
+ "name": "tooltipOffset",
121
+ "type": {
122
+ "text": "TooltipOffset | null"
123
+ },
124
+ "default": "null",
125
+ "description": "Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px).",
126
+ "attribute": "tooltip-offset",
127
+ "inheritedFrom": {
128
+ "name": "TooltipMixin",
129
+ "module": "src/util/TooltipMixin.ts"
130
+ }
131
+ },
132
+ {
133
+ "kind": "field",
134
+ "name": "tooltipNoArrow",
99
135
  "type": {
100
136
  "text": "boolean"
101
137
  },
102
138
  "default": "false",
103
- "description": "Enables progressive label compacting. When space shrinks, items marked\n`compactable` (with icons) have their labels hidden one-by-one\nfrom least to most important before items overflow into \"More\".",
104
- "attribute": "compact",
105
- "reflects": true
139
+ "description": "Hide the arrow pseudo-element.",
140
+ "attribute": "tooltip-no-arrow",
141
+ "inheritedFrom": {
142
+ "name": "TooltipMixin",
143
+ "module": "src/util/TooltipMixin.ts"
144
+ }
145
+ },
146
+ {
147
+ "kind": "field",
148
+ "name": "tooltipTrigger",
149
+ "type": {
150
+ "text": "string"
151
+ },
152
+ "default": "'hover focus'",
153
+ "description": "Space-separated trigger types: 'hover', 'focus', 'click'.",
154
+ "attribute": "tooltip-trigger",
155
+ "inheritedFrom": {
156
+ "name": "TooltipMixin",
157
+ "module": "src/util/TooltipMixin.ts"
158
+ }
159
+ },
160
+ {
161
+ "kind": "field",
162
+ "name": "_onMouseLeave",
163
+ "privacy": "private",
164
+ "inheritedFrom": {
165
+ "name": "TooltipMixin",
166
+ "module": "src/util/TooltipMixin.ts"
167
+ }
168
+ },
169
+ {
170
+ "kind": "field",
171
+ "name": "_onFocusIn",
172
+ "privacy": "private",
173
+ "inheritedFrom": {
174
+ "name": "TooltipMixin",
175
+ "module": "src/util/TooltipMixin.ts"
176
+ }
177
+ },
178
+ {
179
+ "kind": "field",
180
+ "name": "_onFocusOut",
181
+ "privacy": "private",
182
+ "inheritedFrom": {
183
+ "name": "TooltipMixin",
184
+ "module": "src/util/TooltipMixin.ts"
185
+ }
186
+ },
187
+ {
188
+ "kind": "field",
189
+ "name": "_onClick",
190
+ "privacy": "private",
191
+ "inheritedFrom": {
192
+ "name": "TooltipMixin",
193
+ "module": "src/util/TooltipMixin.ts"
194
+ }
195
+ },
196
+ {
197
+ "kind": "field",
198
+ "name": "_onNativeToggle",
199
+ "privacy": "private",
200
+ "inheritedFrom": {
201
+ "name": "TooltipMixin",
202
+ "module": "src/util/TooltipMixin.ts"
203
+ }
204
+ },
205
+ {
206
+ "kind": "field",
207
+ "name": "_onKeyDown",
208
+ "privacy": "private",
209
+ "inheritedFrom": {
210
+ "name": "TooltipMixin",
211
+ "module": "src/util/TooltipMixin.ts"
212
+ }
213
+ },
214
+ {
215
+ "kind": "field",
216
+ "name": "_onDocumentClick",
217
+ "type": {
218
+ "text": "((e: MouseEvent) => void) | null"
219
+ },
220
+ "privacy": "private",
221
+ "default": "null",
222
+ "inheritedFrom": {
223
+ "name": "TooltipMixin",
224
+ "module": "src/util/TooltipMixin.ts"
225
+ }
106
226
  },
107
227
  {
108
228
  "kind": "method",
@@ -142,284 +262,72 @@
142
262
  "text": "CustomEvent"
143
263
  },
144
264
  "description": "Fired after first render and initialization",
145
- "name": "btu-action-bar-ready"
265
+ "name": "btu-avatar-ready"
146
266
  },
147
267
  {
148
268
  "type": {
149
- "text": "CustomEvent<{label: string}>"
269
+ "text": "CustomEvent<{src: string}>"
150
270
  },
151
- "description": "Fired when an action item is clicked (bubbles from btu-action-item)",
152
- "name": "btu-action-item-click"
271
+ "description": "Fired when image successfully loads",
272
+ "name": "btu-avatar-image-loaded"
273
+ },
274
+ {
275
+ "type": {
276
+ "text": "CustomEvent<{src: string, error: Event}>"
277
+ },
278
+ "description": "Fired when image fails to load",
279
+ "name": "btu-avatar-image-error"
153
280
  }
154
281
  ],
155
282
  "attributes": [
156
283
  {
157
- "name": "position",
284
+ "name": "src",
158
285
  "type": {
159
- "text": "Position"
286
+ "text": "string"
160
287
  },
161
- "default": "'bottom'",
162
- "description": "Bar position: 'top' or 'bottom' (default).",
163
- "fieldName": "position",
164
- "attribute": "position"
288
+ "default": "''",
289
+ "description": "Image source URL",
290
+ "fieldName": "src",
291
+ "attribute": "src"
165
292
  },
166
293
  {
167
- "name": "sticky",
294
+ "name": "alt",
168
295
  "type": {
169
- "text": "boolean"
170
- },
171
- "default": "false",
172
- "description": "Enables CSS sticky positioning. When combined with position='top',\nthe bar sticks to the top of the scroll container. With position='bottom'\n(default), it sticks to the bottom.",
173
- "fieldName": "sticky",
174
- "attribute": "sticky"
175
- },
176
- {
177
- "name": "item-alignment",
178
- "type": {
179
- "text": "Alignment"
180
- },
181
- "default": "'default'",
182
- "description": "Content alignment: 'default' (two-zone), 'start', 'center', 'end'.\nNon-default alignments disable two-zone layout.",
183
- "fieldName": "alignment",
184
- "attribute": "item-alignment"
185
- },
186
- {
187
- "name": "shadow",
188
- "type": {
189
- "text": "boolean"
190
- },
191
- "default": "false",
192
- "description": "Adds a box-shadow to the bar.",
193
- "fieldName": "shadow",
194
- "attribute": "shadow"
195
- },
196
- {
197
- "name": "label",
198
- "type": {
199
- "text": "string"
200
- },
201
- "default": "''",
202
- "description": "Accessible label for the toolbar region.",
203
- "fieldName": "label",
204
- "attribute": "label"
205
- },
206
- {
207
- "name": "compact",
208
- "type": {
209
- "text": "boolean"
210
- },
211
- "default": "false",
212
- "description": "Enables progressive label compacting. When space shrinks, items marked\n`compactable` (with icons) have their labels hidden one-by-one\nfrom least to most important before items overflow into \"More\".",
213
- "fieldName": "compact",
214
- "attribute": "compact"
215
- }
216
- ],
217
- "mixins": [
218
- {
219
- "name": "RovingTabindexMixin",
220
- "module": "/src/util/RovingTabindexMixin.js"
221
- },
222
- {
223
- "name": "EventEmitterMixin",
224
- "module": "/src/util/EventEmitterMixin.js"
225
- },
226
- {
227
- "name": "ReadyMixin",
228
- "module": "/src/util/ReadyMixin.js"
229
- }
230
- ],
231
- "superclass": {
232
- "name": "LitElement",
233
- "package": "lit"
234
- },
235
- "tagName": "btu-action-bar",
236
- "customElement": true
237
- }
238
- ],
239
- "exports": [
240
- {
241
- "kind": "js",
242
- "name": "default",
243
- "declaration": {
244
- "name": "ActionBar",
245
- "module": "src/components/action-bar/ActionBar.ts"
246
- }
247
- },
248
- {
249
- "kind": "custom-element-definition",
250
- "name": "btu-action-bar",
251
- "declaration": {
252
- "name": "ActionBar",
253
- "module": "src/components/action-bar/ActionBar.ts"
254
- }
255
- }
256
- ]
257
- },
258
- {
259
- "kind": "javascript-module",
260
- "path": "src/components/action-bar/ActionItem.ts",
261
- "declarations": [
262
- {
263
- "kind": "class",
264
- "description": "An action item button for use within `btu-action-bar`.\n\nRenders a styled button using existing `btu-button-*` classes. Supports\nprimary, secondary, tertiary, and destructive variants. When `iconOnly`\nis set, the label is hidden and a tooltip is shown instead.\n\n**Button styling:** Set `--button-*` CSS custom properties on `<btu-action-item>`\nor a parent element to customize via CSS inheritance. See\n`tailwind-plugin-button.ts` for available props.",
265
- "name": "ActionItem",
266
- "cssProperties": [
267
- {
268
- "description": "Override button background color",
269
- "name": "--button-color"
270
- },
271
- {
272
- "description": "Override button text color",
273
- "name": "--button-text-color"
274
- },
275
- {
276
- "description": "Override button border radius",
277
- "name": "--button-border-radius"
278
- }
279
- ],
280
- "members": [
281
- {
282
- "kind": "field",
283
- "name": "label",
284
- "type": {
285
- "text": "string"
296
+ "text": "string"
286
297
  },
287
298
  "default": "''",
288
- "description": "Button label text.",
289
- "attribute": "label"
290
- },
291
- {
292
- "kind": "field",
293
- "name": "variant",
294
- "type": {
295
- "text": "ActionItemVariant"
296
- },
297
- "default": "'secondary'",
298
- "description": "Visual variant: 'primary', 'secondary', 'tertiary', 'destructive'.",
299
- "attribute": "variant"
299
+ "description": "Alt text for the image",
300
+ "fieldName": "alt",
301
+ "attribute": "alt"
300
302
  },
301
303
  {
302
- "kind": "field",
303
- "name": "symbol",
304
+ "name": "fallback",
304
305
  "type": {
305
306
  "text": "string"
306
307
  },
307
308
  "default": "''",
308
- "description": "Lucide icon symbol for the leading icon.",
309
- "attribute": "symbol"
310
- },
311
- {
312
- "kind": "field",
313
- "name": "iconOnly",
314
- "type": {
315
- "text": "boolean"
316
- },
317
- "default": "false",
318
- "description": "Show icon only, hiding the label. Tooltip activates automatically with the label text.",
319
- "attribute": "icon-only"
320
- },
321
- {
322
- "kind": "field",
323
- "name": "disabled",
324
- "type": {
325
- "text": "boolean"
326
- },
327
- "default": "false",
328
- "description": "Disables the action item. The button remains focusable for accessibility\nbut click events are suppressed.",
329
- "attribute": "disabled",
330
- "reflects": true
331
- },
332
- {
333
- "kind": "field",
334
- "name": "loading",
335
- "type": {
336
- "text": "boolean"
337
- },
338
- "default": "false",
339
- "description": "Shows a loading spinner and prevents interaction.",
340
- "attribute": "loading",
341
- "reflects": true
342
- },
343
- {
344
- "kind": "field",
345
- "name": "zone",
346
- "type": {
347
- "text": "'start' | 'end' | ''"
348
- },
349
- "default": "''",
350
- "description": "Zone placement: 'start' or 'end'. Used by ActionBar for two-zone layout.\nIf unset, auto-detected from variant (destructive → start, others → end).",
351
- "attribute": "zone",
352
- "reflects": true
309
+ "description": "Fallback text (typically user initials)",
310
+ "fieldName": "fallback",
311
+ "attribute": "fallback"
353
312
  },
354
313
  {
355
- "kind": "field",
356
- "name": "compactable",
314
+ "name": "size",
357
315
  "type": {
358
- "text": "boolean"
316
+ "text": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'"
359
317
  },
360
- "default": "false",
361
- "description": "Opt-in for progressive label compacting. When the parent bar has `compact`\nenabled and space shrinks, compactable items with icons have their labels\nhidden one-by-one (least important first) before overflowing.\nItems without an icon ignore this attribute and go directly to overflow.",
362
- "attribute": "compactable",
363
- "reflects": true
364
- },
365
- {
366
- "kind": "method",
367
- "name": "_relayTooltipAttrs",
368
- "privacy": "private",
369
- "return": {
370
- "type": {
371
- "text": "void"
372
- }
373
- }
374
- },
375
- {
376
- "kind": "method",
377
- "name": "_handleClick",
378
- "privacy": "private",
379
- "return": {
380
- "type": {
381
- "text": "void"
382
- }
383
- }
384
- },
385
- {
386
- "kind": "method",
387
- "name": "_getSpinnerColor",
388
- "privacy": "private",
389
- "return": {
390
- "type": {
391
- "text": "string"
392
- }
393
- }
394
- },
395
- {
396
- "kind": "method",
397
- "name": "_buildButtonClasses",
398
- "privacy": "private",
399
- "return": {
400
- "type": {
401
- "text": "string"
402
- }
403
- }
404
- },
405
- {
406
- "kind": "method",
407
- "name": "_getButtonStyles",
408
- "privacy": "private",
409
- "return": {
410
- "type": {
411
- "text": "Record<string, string>"
412
- }
413
- }
318
+ "default": "'md'",
319
+ "description": "Size variant.\n- 'xs': Extra small (1.5rem)\n- 'sm': Small (2.25rem)\n- 'md': Medium (2.5rem) - default\n- 'lg': Large (3rem)\n- 'xl': Extra large (3.5rem)\n- 'xxl': Extra extra large (4rem)",
320
+ "fieldName": "size",
321
+ "attribute": "size"
414
322
  },
415
323
  {
416
- "kind": "field",
417
324
  "name": "tooltip",
418
325
  "type": {
419
326
  "text": "string"
420
327
  },
421
328
  "default": "''",
422
329
  "description": "Tooltip text content. Set to empty string to remove the tooltip.",
330
+ "fieldName": "tooltip",
423
331
  "attribute": "tooltip",
424
332
  "inheritedFrom": {
425
333
  "name": "TooltipMixin",
@@ -427,141 +335,219 @@
427
335
  }
428
336
  },
429
337
  {
430
- "kind": "field",
431
338
  "name": "tooltipPosition",
432
339
  "type": {
433
340
  "text": "'top' | 'bottom' | 'left' | 'right'"
434
341
  },
435
342
  "default": "'top'",
436
343
  "description": "Position relative to the host element. Auto-flips when constrained by the viewport.",
437
- "attribute": "tooltip-position",
344
+ "fieldName": "tooltipPosition",
438
345
  "inheritedFrom": {
439
346
  "name": "TooltipMixin",
440
347
  "module": "src/util/TooltipMixin.ts"
441
348
  }
442
349
  },
443
350
  {
444
- "kind": "field",
445
351
  "name": "tooltipDelay",
446
352
  "type": {
447
353
  "text": "number"
448
354
  },
449
355
  "default": "300",
450
356
  "description": "Show delay in milliseconds (hover trigger only).",
451
- "attribute": "tooltip-delay",
357
+ "fieldName": "tooltipDelay",
452
358
  "inheritedFrom": {
453
359
  "name": "TooltipMixin",
454
360
  "module": "src/util/TooltipMixin.ts"
455
361
  }
456
362
  },
457
363
  {
458
- "kind": "field",
459
364
  "name": "tooltipOffset",
460
365
  "type": {
461
366
  "text": "TooltipOffset | null"
462
367
  },
463
368
  "default": "null",
464
369
  "description": "Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px).",
465
- "attribute": "tooltip-offset",
370
+ "fieldName": "tooltipOffset",
466
371
  "inheritedFrom": {
467
372
  "name": "TooltipMixin",
468
373
  "module": "src/util/TooltipMixin.ts"
469
374
  }
470
375
  },
471
376
  {
472
- "kind": "field",
473
377
  "name": "tooltipNoArrow",
474
378
  "type": {
475
379
  "text": "boolean"
476
380
  },
477
381
  "default": "false",
478
382
  "description": "Hide the arrow pseudo-element.",
479
- "attribute": "tooltip-no-arrow",
383
+ "fieldName": "tooltipNoArrow",
480
384
  "inheritedFrom": {
481
385
  "name": "TooltipMixin",
482
386
  "module": "src/util/TooltipMixin.ts"
483
387
  }
484
388
  },
485
389
  {
486
- "kind": "field",
487
390
  "name": "tooltipTrigger",
488
391
  "type": {
489
392
  "text": "string"
490
393
  },
491
394
  "default": "'hover focus'",
492
395
  "description": "Space-separated trigger types: 'hover', 'focus', 'click'.",
493
- "attribute": "tooltip-trigger",
396
+ "fieldName": "tooltipTrigger",
494
397
  "inheritedFrom": {
495
398
  "name": "TooltipMixin",
496
399
  "module": "src/util/TooltipMixin.ts"
497
400
  }
498
401
  },
499
402
  {
500
- "kind": "field",
501
- "name": "_onMouseLeave",
502
- "privacy": "private",
403
+ "name": "tooltip-position",
404
+ "type": {
405
+ "text": "'top' | 'bottom' | 'left' | 'right'"
406
+ },
407
+ "default": "'top'",
408
+ "description": "Position relative to the host element. Auto-flips when constrained by the viewport.",
409
+ "attribute": "tooltipPosition",
410
+ "fieldName": "tooltipPosition",
503
411
  "inheritedFrom": {
504
412
  "name": "TooltipMixin",
505
413
  "module": "src/util/TooltipMixin.ts"
506
414
  }
507
415
  },
508
416
  {
509
- "kind": "field",
510
- "name": "_onFocusIn",
511
- "privacy": "private",
417
+ "name": "tooltip-delay",
418
+ "type": {
419
+ "text": "number"
420
+ },
421
+ "default": "300",
422
+ "description": "Show delay in milliseconds (hover trigger only).",
423
+ "attribute": "tooltipDelay",
424
+ "fieldName": "tooltipDelay",
512
425
  "inheritedFrom": {
513
426
  "name": "TooltipMixin",
514
427
  "module": "src/util/TooltipMixin.ts"
515
428
  }
516
429
  },
517
430
  {
518
- "kind": "field",
519
- "name": "_onFocusOut",
520
- "privacy": "private",
431
+ "name": "tooltip-offset",
432
+ "type": {
433
+ "text": "TooltipOffset | null"
434
+ },
435
+ "default": "null",
436
+ "description": "Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px).",
437
+ "attribute": "tooltipOffset",
438
+ "fieldName": "tooltipOffset",
521
439
  "inheritedFrom": {
522
440
  "name": "TooltipMixin",
523
441
  "module": "src/util/TooltipMixin.ts"
524
442
  }
525
443
  },
526
444
  {
527
- "kind": "field",
528
- "name": "_onClick",
529
- "privacy": "private",
445
+ "name": "tooltip-no-arrow",
446
+ "type": {
447
+ "text": "boolean"
448
+ },
449
+ "default": "false",
450
+ "description": "Hide the arrow pseudo-element.",
451
+ "attribute": "tooltipNoArrow",
452
+ "fieldName": "tooltipNoArrow",
530
453
  "inheritedFrom": {
531
454
  "name": "TooltipMixin",
532
455
  "module": "src/util/TooltipMixin.ts"
533
456
  }
534
457
  },
535
458
  {
536
- "kind": "field",
537
- "name": "_onNativeToggle",
538
- "privacy": "private",
459
+ "name": "tooltip-trigger",
460
+ "type": {
461
+ "text": "string"
462
+ },
463
+ "default": "'hover focus'",
464
+ "description": "Space-separated trigger types: 'hover', 'focus', 'click'.",
465
+ "attribute": "tooltipTrigger",
466
+ "fieldName": "tooltipTrigger",
539
467
  "inheritedFrom": {
540
468
  "name": "TooltipMixin",
541
469
  "module": "src/util/TooltipMixin.ts"
542
470
  }
471
+ }
472
+ ],
473
+ "mixins": [
474
+ {
475
+ "name": "TooltipMixin",
476
+ "module": "/src/util/TooltipMixin.js"
477
+ },
478
+ {
479
+ "name": "EventEmitterMixin",
480
+ "module": "/src/util/EventEmitterMixin.js"
543
481
  },
482
+ {
483
+ "name": "ReadyMixin",
484
+ "module": "/src/util/ReadyMixin.js"
485
+ }
486
+ ],
487
+ "superclass": {
488
+ "name": "LitElement",
489
+ "package": "lit"
490
+ },
491
+ "tagName": "btu-avatar",
492
+ "customElement": true
493
+ }
494
+ ],
495
+ "exports": [
496
+ {
497
+ "kind": "js",
498
+ "name": "default",
499
+ "declaration": {
500
+ "name": "Avatar",
501
+ "module": "src/components/avatar/Avatar.ts"
502
+ }
503
+ },
504
+ {
505
+ "kind": "custom-element-definition",
506
+ "name": "btu-avatar",
507
+ "declaration": {
508
+ "name": "Avatar",
509
+ "module": "src/components/avatar/Avatar.ts"
510
+ }
511
+ }
512
+ ]
513
+ },
514
+ {
515
+ "kind": "javascript-module",
516
+ "path": "src/components/avatar/AvatarGroup.ts",
517
+ "declarations": [
518
+ {
519
+ "kind": "class",
520
+ "description": "A container component for grouping multiple avatars with consistent styling.\n\nAvatarGroup wraps multiple avatar elements and provides:\n- Overflow handling (shows \"+N\" for excess avatars)\n- Consistent spacing and ring borders\n- Size inheritance for all child avatars",
521
+ "name": "AvatarGroup",
522
+ "members": [
544
523
  {
545
524
  "kind": "field",
546
- "name": "_onKeyDown",
547
- "privacy": "private",
548
- "inheritedFrom": {
549
- "name": "TooltipMixin",
550
- "module": "src/util/TooltipMixin.ts"
551
- }
525
+ "name": "max",
526
+ "type": {
527
+ "text": "number | undefined"
528
+ },
529
+ "description": "Maximum number of visible avatars. Remaining avatars shown as \"+N\"",
530
+ "attribute": "max"
552
531
  },
553
532
  {
554
533
  "kind": "field",
555
- "name": "_onDocumentClick",
534
+ "name": "size",
556
535
  "type": {
557
- "text": "((e: MouseEvent) => void) | null"
536
+ "text": "'xs' | 'sm' | 'md'"
558
537
  },
559
- "privacy": "private",
560
- "default": "null",
561
- "inheritedFrom": {
562
- "name": "TooltipMixin",
563
- "module": "src/util/TooltipMixin.ts"
564
- }
538
+ "default": "'md'",
539
+ "description": "Size variant for all child avatars (unless individually overridden)",
540
+ "attribute": "size"
541
+ },
542
+ {
543
+ "kind": "method",
544
+ "name": "processAvatars",
545
+ "return": {
546
+ "type": {
547
+ "text": "void"
548
+ }
549
+ },
550
+ "description": "Process all avatar children: apply size, handle overflow\nCall this method when avatars are dynamically added or removed"
565
551
  },
566
552
  {
567
553
  "kind": "method",
@@ -598,247 +584,293 @@
598
584
  "events": [
599
585
  {
600
586
  "type": {
601
- "text": "CustomEvent<{label: string}>"
587
+ "text": "CustomEvent"
602
588
  },
603
- "description": "Fired when the action item is clicked (not fired when disabled or loading)",
604
- "name": "btu-action-item-click"
589
+ "description": "Fired after first render and initialization",
590
+ "name": "btu-avatar-group-ready"
591
+ },
592
+ {
593
+ "type": {
594
+ "text": "CustomEvent<{hidden: number}>"
595
+ },
596
+ "description": "Fired when avatars are hidden due to max limit",
597
+ "name": "btu-avatar-group-overflow"
605
598
  }
606
599
  ],
607
600
  "attributes": [
608
601
  {
609
- "name": "label",
602
+ "name": "max",
610
603
  "type": {
611
- "text": "string"
604
+ "text": "number | undefined"
612
605
  },
613
- "default": "''",
614
- "description": "Button label text.",
615
- "fieldName": "label",
616
- "attribute": "label"
606
+ "description": "Maximum number of visible avatars. Remaining avatars shown as \"+N\"",
607
+ "fieldName": "max",
608
+ "attribute": "max"
617
609
  },
618
610
  {
619
- "name": "variant",
611
+ "name": "size",
620
612
  "type": {
621
- "text": "ActionItemVariant"
613
+ "text": "'xs' | 'sm' | 'md'"
622
614
  },
623
- "default": "'secondary'",
624
- "description": "Visual variant: 'primary', 'secondary', 'tertiary', 'destructive'.",
625
- "fieldName": "variant",
626
- "attribute": "variant"
615
+ "default": "'md'",
616
+ "description": "Size variant for all child avatars (unless individually overridden)",
617
+ "fieldName": "size",
618
+ "attribute": "size"
619
+ }
620
+ ],
621
+ "mixins": [
622
+ {
623
+ "name": "EventEmitterMixin",
624
+ "module": "/src/util/EventEmitterMixin.js"
627
625
  },
628
626
  {
629
- "name": "symbol",
630
- "type": {
631
- "text": "string"
632
- },
633
- "default": "''",
634
- "description": "Lucide icon symbol for the leading icon.",
635
- "fieldName": "symbol",
636
- "attribute": "symbol"
627
+ "name": "ReadyMixin",
628
+ "module": "/src/util/ReadyMixin.js"
629
+ }
630
+ ],
631
+ "superclass": {
632
+ "name": "LitElement",
633
+ "package": "lit"
634
+ },
635
+ "tagName": "btu-avatar-group",
636
+ "customElement": true
637
+ }
638
+ ],
639
+ "exports": [
640
+ {
641
+ "kind": "js",
642
+ "name": "default",
643
+ "declaration": {
644
+ "name": "AvatarGroup",
645
+ "module": "src/components/avatar/AvatarGroup.ts"
646
+ }
647
+ },
648
+ {
649
+ "kind": "custom-element-definition",
650
+ "name": "btu-avatar-group",
651
+ "declaration": {
652
+ "name": "AvatarGroup",
653
+ "module": "src/components/avatar/AvatarGroup.ts"
654
+ }
655
+ }
656
+ ]
657
+ },
658
+ {
659
+ "kind": "javascript-module",
660
+ "path": "src/components/action-bar/ActionBar.ts",
661
+ "declarations": [
662
+ {
663
+ "kind": "class",
664
+ "description": "A persistent container for primary, secondary, tertiary, and destructive actions\nwithin an interface, typically anchored to the bottom of a view.\n\nUses a two-zone layout: destructive actions on the left (start zone),\nmain actions on the right (end zone). Both zones maintain their position\neven when the other zone is empty (BSP-18087).\n\n**Positioning:** Uses `margin-top: auto` to push to bottom of flex/grid parents.\nIn block layout parents, the bar sits after content (a console warning is emitted).\n\n**Overflow:** When items don't fit, the least important overflow into a \"More\" dropdown.\nItems are auto-sorted by variant priority (tertiary → secondary → primary).\nWith `compact`, compactable items progressively hide labels one-by-one before overflowing.",
665
+ "name": "ActionBar",
666
+ "cssProperties": [
667
+ {
668
+ "description": "Gap between items (default: 0.75rem)",
669
+ "name": "--action-bar-gap"
637
670
  },
638
671
  {
639
- "name": "icon-only",
640
- "type": {
641
- "text": "boolean"
642
- },
643
- "default": "false",
644
- "description": "Show icon only, hiding the label. Tooltip activates automatically with the label text.",
645
- "fieldName": "iconOnly",
646
- "attribute": "icon-only"
672
+ "description": "Bar padding (default: 1.5rem)",
673
+ "name": "--action-bar-padding"
647
674
  },
648
675
  {
649
- "name": "disabled",
650
- "type": {
651
- "text": "boolean"
652
- },
653
- "default": "false",
654
- "description": "Disables the action item. The button remains focusable for accessibility\nbut click events are suppressed.",
655
- "fieldName": "disabled",
656
- "attribute": "disabled"
676
+ "description": "Background color (default: white)",
677
+ "name": "--action-bar-background"
657
678
  },
658
679
  {
659
- "name": "loading",
660
- "type": {
661
- "text": "boolean"
662
- },
663
- "default": "false",
664
- "description": "Shows a loading spinner and prevents interaction.",
665
- "fieldName": "loading",
666
- "attribute": "loading"
680
+ "description": "Border color (default: gray-200)",
681
+ "name": "--action-bar-border-color"
667
682
  },
668
683
  {
669
- "name": "zone",
684
+ "description": "Z-index (default: 100)",
685
+ "name": "--action-bar-z-index"
686
+ }
687
+ ],
688
+ "slots": [
689
+ {
690
+ "description": "One or more `btu-action-item` elements",
691
+ "name": ""
692
+ }
693
+ ],
694
+ "members": [
695
+ {
696
+ "kind": "field",
697
+ "name": "position",
670
698
  "type": {
671
- "text": "'start' | 'end' | ''"
699
+ "text": "Position"
672
700
  },
673
- "default": "''",
674
- "description": "Zone placement: 'start' or 'end'. Used by ActionBar for two-zone layout.\nIf unset, auto-detected from variant (destructive → start, others → end).",
675
- "fieldName": "zone",
676
- "attribute": "zone"
701
+ "default": "'bottom'",
702
+ "description": "Bar position: 'top' or 'bottom' (default).",
703
+ "attribute": "position",
704
+ "reflects": true
677
705
  },
678
706
  {
679
- "name": "compactable",
707
+ "kind": "field",
708
+ "name": "sticky",
680
709
  "type": {
681
710
  "text": "boolean"
682
711
  },
683
712
  "default": "false",
684
- "description": "Opt-in for progressive label compacting. When the parent bar has `compact`\nenabled and space shrinks, compactable items with icons have their labels\nhidden one-by-one (least important first) before overflowing.\nItems without an icon ignore this attribute and go directly to overflow.",
685
- "fieldName": "compactable",
686
- "attribute": "compactable"
687
- },
688
- {
689
- "name": "tooltip",
690
- "type": {
691
- "text": "string"
692
- },
693
- "default": "''",
694
- "description": "Tooltip text content. Set to empty string to remove the tooltip.",
695
- "fieldName": "tooltip",
696
- "attribute": "tooltip",
697
- "inheritedFrom": {
698
- "name": "TooltipMixin",
699
- "module": "src/util/TooltipMixin.ts"
700
- }
713
+ "description": "Enables CSS sticky positioning. When combined with position='top',\nthe bar sticks to the top of the scroll container. With position='bottom'\n(default), it sticks to the bottom.",
714
+ "attribute": "sticky",
715
+ "reflects": true
701
716
  },
702
717
  {
703
- "name": "tooltipPosition",
718
+ "kind": "field",
719
+ "name": "alignment",
704
720
  "type": {
705
- "text": "'top' | 'bottom' | 'left' | 'right'"
721
+ "text": "Alignment"
706
722
  },
707
- "default": "'top'",
708
- "description": "Position relative to the host element. Auto-flips when constrained by the viewport.",
709
- "fieldName": "tooltipPosition",
710
- "inheritedFrom": {
711
- "name": "TooltipMixin",
712
- "module": "src/util/TooltipMixin.ts"
713
- }
723
+ "default": "'default'",
724
+ "description": "Content alignment: 'default' (two-zone), 'start', 'center', 'end'.\nNon-default alignments disable two-zone layout.",
725
+ "attribute": "item-alignment",
726
+ "reflects": true
714
727
  },
715
728
  {
716
- "name": "tooltipDelay",
729
+ "kind": "field",
730
+ "name": "shadow",
717
731
  "type": {
718
- "text": "number"
732
+ "text": "boolean"
719
733
  },
720
- "default": "300",
721
- "description": "Show delay in milliseconds (hover trigger only).",
722
- "fieldName": "tooltipDelay",
723
- "inheritedFrom": {
724
- "name": "TooltipMixin",
725
- "module": "src/util/TooltipMixin.ts"
726
- }
734
+ "default": "false",
735
+ "description": "Adds a box-shadow to the bar.",
736
+ "attribute": "shadow",
737
+ "reflects": true
727
738
  },
728
739
  {
729
- "name": "tooltipOffset",
740
+ "kind": "field",
741
+ "name": "label",
730
742
  "type": {
731
- "text": "TooltipOffset | null"
743
+ "text": "string"
732
744
  },
733
- "default": "null",
734
- "description": "Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px).",
735
- "fieldName": "tooltipOffset",
736
- "inheritedFrom": {
737
- "name": "TooltipMixin",
738
- "module": "src/util/TooltipMixin.ts"
739
- }
745
+ "default": "''",
746
+ "description": "Accessible label for the toolbar region.",
747
+ "attribute": "label"
740
748
  },
741
749
  {
742
- "name": "tooltipNoArrow",
750
+ "kind": "field",
751
+ "name": "compact",
743
752
  "type": {
744
753
  "text": "boolean"
745
754
  },
746
755
  "default": "false",
747
- "description": "Hide the arrow pseudo-element.",
748
- "fieldName": "tooltipNoArrow",
749
- "inheritedFrom": {
750
- "name": "TooltipMixin",
751
- "module": "src/util/TooltipMixin.ts"
752
- }
756
+ "description": "Enables progressive label compacting. When space shrinks, items marked\n`compactable` (with icons) have their labels hidden one-by-one\nfrom least to most important before items overflow into \"More\".",
757
+ "attribute": "compact",
758
+ "reflects": true
753
759
  },
754
760
  {
755
- "name": "tooltipTrigger",
756
- "type": {
757
- "text": "string"
761
+ "kind": "method",
762
+ "name": "emit",
763
+ "parameters": [
764
+ {
765
+ "name": "type",
766
+ "type": {
767
+ "text": "K"
768
+ },
769
+ "description": "Event name from CustomEventMap"
770
+ },
771
+ {
772
+ "name": "detail",
773
+ "optional": true,
774
+ "type": {
775
+ "text": "UnpackCustomEvent<CustomEventMap[K]>"
776
+ },
777
+ "description": "Optional event detail payload"
778
+ }
779
+ ],
780
+ "description": "Dispatches a type-safe CustomEvent with standardized configuration.\n\nAll events are configured with:\n- bubbles: true (event propagates up the DOM tree)\n- cancelable: false (event cannot be cancelled)\n- composed: true (event crosses shadow DOM boundaries)",
781
+ "return": {
782
+ "type": {
783
+ "text": "boolean"
784
+ }
758
785
  },
759
- "default": "'hover focus'",
760
- "description": "Space-separated trigger types: 'hover', 'focus', 'click'.",
761
- "fieldName": "tooltipTrigger",
762
786
  "inheritedFrom": {
763
- "name": "TooltipMixin",
764
- "module": "src/util/TooltipMixin.ts"
787
+ "name": "EventEmitterMixin",
788
+ "module": "src/util/EventEmitterMixin.ts"
765
789
  }
790
+ }
791
+ ],
792
+ "events": [
793
+ {
794
+ "type": {
795
+ "text": "CustomEvent"
796
+ },
797
+ "description": "Fired after first render and initialization",
798
+ "name": "btu-action-bar-ready"
766
799
  },
767
800
  {
768
- "name": "tooltip-position",
769
801
  "type": {
770
- "text": "'top' | 'bottom' | 'left' | 'right'"
802
+ "text": "CustomEvent<{label: string}>"
771
803
  },
772
- "default": "'top'",
773
- "description": "Position relative to the host element. Auto-flips when constrained by the viewport.",
774
- "attribute": "tooltipPosition",
775
- "fieldName": "tooltipPosition",
776
- "inheritedFrom": {
777
- "name": "TooltipMixin",
778
- "module": "src/util/TooltipMixin.ts"
779
- }
804
+ "description": "Fired when an action item is clicked (bubbles from btu-action-item)",
805
+ "name": "btu-action-item-click"
806
+ }
807
+ ],
808
+ "attributes": [
809
+ {
810
+ "name": "position",
811
+ "type": {
812
+ "text": "Position"
813
+ },
814
+ "default": "'bottom'",
815
+ "description": "Bar position: 'top' or 'bottom' (default).",
816
+ "fieldName": "position",
817
+ "attribute": "position"
780
818
  },
781
819
  {
782
- "name": "tooltip-delay",
820
+ "name": "sticky",
783
821
  "type": {
784
- "text": "number"
822
+ "text": "boolean"
785
823
  },
786
- "default": "300",
787
- "description": "Show delay in milliseconds (hover trigger only).",
788
- "attribute": "tooltipDelay",
789
- "fieldName": "tooltipDelay",
790
- "inheritedFrom": {
791
- "name": "TooltipMixin",
792
- "module": "src/util/TooltipMixin.ts"
793
- }
824
+ "default": "false",
825
+ "description": "Enables CSS sticky positioning. When combined with position='top',\nthe bar sticks to the top of the scroll container. With position='bottom'\n(default), it sticks to the bottom.",
826
+ "fieldName": "sticky",
827
+ "attribute": "sticky"
794
828
  },
795
829
  {
796
- "name": "tooltip-offset",
830
+ "name": "item-alignment",
797
831
  "type": {
798
- "text": "TooltipOffset | null"
832
+ "text": "Alignment"
799
833
  },
800
- "default": "null",
801
- "description": "Gap between host and tooltip (sm=4px, md=8px, lg=12px, xl=16px).",
802
- "attribute": "tooltipOffset",
803
- "fieldName": "tooltipOffset",
804
- "inheritedFrom": {
805
- "name": "TooltipMixin",
806
- "module": "src/util/TooltipMixin.ts"
807
- }
834
+ "default": "'default'",
835
+ "description": "Content alignment: 'default' (two-zone), 'start', 'center', 'end'.\nNon-default alignments disable two-zone layout.",
836
+ "fieldName": "alignment",
837
+ "attribute": "item-alignment"
808
838
  },
809
839
  {
810
- "name": "tooltip-no-arrow",
840
+ "name": "shadow",
811
841
  "type": {
812
842
  "text": "boolean"
813
843
  },
814
844
  "default": "false",
815
- "description": "Hide the arrow pseudo-element.",
816
- "attribute": "tooltipNoArrow",
817
- "fieldName": "tooltipNoArrow",
818
- "inheritedFrom": {
819
- "name": "TooltipMixin",
820
- "module": "src/util/TooltipMixin.ts"
821
- }
845
+ "description": "Adds a box-shadow to the bar.",
846
+ "fieldName": "shadow",
847
+ "attribute": "shadow"
822
848
  },
823
849
  {
824
- "name": "tooltip-trigger",
850
+ "name": "label",
825
851
  "type": {
826
852
  "text": "string"
827
853
  },
828
- "default": "'hover focus'",
829
- "description": "Space-separated trigger types: 'hover', 'focus', 'click'.",
830
- "attribute": "tooltipTrigger",
831
- "fieldName": "tooltipTrigger",
832
- "inheritedFrom": {
833
- "name": "TooltipMixin",
834
- "module": "src/util/TooltipMixin.ts"
835
- }
854
+ "default": "''",
855
+ "description": "Accessible label for the toolbar region.",
856
+ "fieldName": "label",
857
+ "attribute": "label"
858
+ },
859
+ {
860
+ "name": "compact",
861
+ "type": {
862
+ "text": "boolean"
863
+ },
864
+ "default": "false",
865
+ "description": "Enables progressive label compacting. When space shrinks, items marked\n`compactable` (with icons) have their labels hidden one-by-one\nfrom least to most important before items overflow into \"More\".",
866
+ "fieldName": "compact",
867
+ "attribute": "compact"
836
868
  }
837
869
  ],
838
870
  "mixins": [
839
871
  {
840
- "name": "TooltipMixin",
841
- "module": "/src/util/TooltipMixin.js"
872
+ "name": "RovingTabindexMixin",
873
+ "module": "/src/util/RovingTabindexMixin.js"
842
874
  },
843
875
  {
844
876
  "name": "EventEmitterMixin",
@@ -853,7 +885,7 @@
853
885
  "name": "LitElement",
854
886
  "package": "lit"
855
887
  },
856
- "tagName": "btu-action-item",
888
+ "tagName": "btu-action-bar",
857
889
  "customElement": true
858
890
  }
859
891
  ],
@@ -862,90 +894,176 @@
862
894
  "kind": "js",
863
895
  "name": "default",
864
896
  "declaration": {
865
- "name": "ActionItem",
866
- "module": "src/components/action-bar/ActionItem.ts"
897
+ "name": "ActionBar",
898
+ "module": "src/components/action-bar/ActionBar.ts"
867
899
  }
868
900
  },
869
901
  {
870
902
  "kind": "custom-element-definition",
871
- "name": "btu-action-item",
903
+ "name": "btu-action-bar",
872
904
  "declaration": {
873
- "name": "ActionItem",
874
- "module": "src/components/action-bar/ActionItem.ts"
905
+ "name": "ActionBar",
906
+ "module": "src/components/action-bar/ActionBar.ts"
875
907
  }
876
908
  }
877
909
  ]
878
910
  },
879
911
  {
880
912
  "kind": "javascript-module",
881
- "path": "src/components/avatar/Avatar.ts",
913
+ "path": "src/components/action-bar/ActionItem.ts",
882
914
  "declarations": [
883
915
  {
884
916
  "kind": "class",
885
- "description": "An avatar component for displaying user profile images with fallback support.\n\nAvatars display user profile images with automatic fallback to initials when\nthe image fails to load or is not provided.",
886
- "name": "Avatar",
917
+ "description": "An action item button for use within `btu-action-bar`.\n\nRenders a styled button using existing `btu-button-*` classes. Supports\nprimary, secondary, tertiary, and destructive variants. When `iconOnly`\nis set, the label is hidden and a tooltip is shown instead.\n\n**Button styling:** Set `--button-*` CSS custom properties on `<btu-action-item>`\nor a parent element to customize via CSS inheritance. See\n`tailwind-plugin-button.ts` for available props.",
918
+ "name": "ActionItem",
887
919
  "cssProperties": [
888
920
  {
889
- "description": "Custom size (overrides size prop)",
890
- "name": "--avatar-size"
891
- },
892
- {
893
- "description": "Fallback background color (default: purple-600)",
894
- "name": "--avatar-bg-color"
895
- },
896
- {
897
- "description": "How rounded is the avatar (default: circle)",
898
- "name": "--avatar-corner-rounding"
921
+ "description": "Override button background color",
922
+ "name": "--button-color"
899
923
  },
900
924
  {
901
- "description": "Optional ring border color",
902
- "name": "--avatar-ring-color"
925
+ "description": "Override button text color",
926
+ "name": "--button-text-color"
903
927
  },
904
928
  {
905
- "description": "Ring border width (default: 2px)",
906
- "name": "--avatar-ring-width"
929
+ "description": "Override button border radius",
930
+ "name": "--button-border-radius"
907
931
  }
908
932
  ],
909
933
  "members": [
910
934
  {
911
935
  "kind": "field",
912
- "name": "src",
936
+ "name": "label",
913
937
  "type": {
914
938
  "text": "string"
915
939
  },
916
940
  "default": "''",
917
- "description": "Image source URL",
918
- "attribute": "src"
941
+ "description": "Button label text.",
942
+ "attribute": "label"
919
943
  },
920
944
  {
921
945
  "kind": "field",
922
- "name": "alt",
946
+ "name": "variant",
947
+ "type": {
948
+ "text": "ActionItemVariant"
949
+ },
950
+ "default": "'secondary'",
951
+ "description": "Visual variant: 'primary', 'secondary', 'tertiary', 'destructive'.",
952
+ "attribute": "variant"
953
+ },
954
+ {
955
+ "kind": "field",
956
+ "name": "symbol",
923
957
  "type": {
924
958
  "text": "string"
925
959
  },
926
960
  "default": "''",
927
- "description": "Alt text for the image",
928
- "attribute": "alt"
961
+ "description": "Lucide icon symbol for the leading icon.",
962
+ "attribute": "symbol"
929
963
  },
930
964
  {
931
965
  "kind": "field",
932
- "name": "fallback",
966
+ "name": "iconOnly",
933
967
  "type": {
934
- "text": "string"
968
+ "text": "boolean"
969
+ },
970
+ "default": "false",
971
+ "description": "Show icon only, hiding the label. Tooltip activates automatically with the label text.",
972
+ "attribute": "icon-only"
973
+ },
974
+ {
975
+ "kind": "field",
976
+ "name": "disabled",
977
+ "type": {
978
+ "text": "boolean"
979
+ },
980
+ "default": "false",
981
+ "description": "Disables the action item. The button remains focusable for accessibility\nbut click events are suppressed.",
982
+ "attribute": "disabled",
983
+ "reflects": true
984
+ },
985
+ {
986
+ "kind": "field",
987
+ "name": "loading",
988
+ "type": {
989
+ "text": "boolean"
990
+ },
991
+ "default": "false",
992
+ "description": "Shows a loading spinner and prevents interaction.",
993
+ "attribute": "loading",
994
+ "reflects": true
995
+ },
996
+ {
997
+ "kind": "field",
998
+ "name": "zone",
999
+ "type": {
1000
+ "text": "'start' | 'end' | ''"
935
1001
  },
936
1002
  "default": "''",
937
- "description": "Fallback text (typically user initials)",
938
- "attribute": "fallback"
1003
+ "description": "Zone placement: 'start' or 'end'. Used by ActionBar for two-zone layout.\nIf unset, auto-detected from variant (destructive start, others → end).",
1004
+ "attribute": "zone",
1005
+ "reflects": true
939
1006
  },
940
1007
  {
941
1008
  "kind": "field",
942
- "name": "size",
1009
+ "name": "compactable",
943
1010
  "type": {
944
- "text": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'"
1011
+ "text": "boolean"
945
1012
  },
946
- "default": "'md'",
947
- "description": "Size variant.\n- 'xs': Extra small (1.5rem)\n- 'sm': Small (2.25rem)\n- 'md': Medium (2.5rem) - default\n- 'lg': Large (3rem)\n- 'xl': Extra large (3.5rem)\n- 'xxl': Extra extra large (4rem)",
948
- "attribute": "size"
1013
+ "default": "false",
1014
+ "description": "Opt-in for progressive label compacting. When the parent bar has `compact`\nenabled and space shrinks, compactable items with icons have their labels\nhidden one-by-one (least important first) before overflowing.\nItems without an icon ignore this attribute and go directly to overflow.",
1015
+ "attribute": "compactable",
1016
+ "reflects": true
1017
+ },
1018
+ {
1019
+ "kind": "method",
1020
+ "name": "_relayTooltipAttrs",
1021
+ "privacy": "private",
1022
+ "return": {
1023
+ "type": {
1024
+ "text": "void"
1025
+ }
1026
+ }
1027
+ },
1028
+ {
1029
+ "kind": "method",
1030
+ "name": "_handleClick",
1031
+ "privacy": "private",
1032
+ "return": {
1033
+ "type": {
1034
+ "text": "void"
1035
+ }
1036
+ }
1037
+ },
1038
+ {
1039
+ "kind": "method",
1040
+ "name": "_getSpinnerColor",
1041
+ "privacy": "private",
1042
+ "return": {
1043
+ "type": {
1044
+ "text": "string"
1045
+ }
1046
+ }
1047
+ },
1048
+ {
1049
+ "kind": "method",
1050
+ "name": "_buildButtonClasses",
1051
+ "privacy": "private",
1052
+ "return": {
1053
+ "type": {
1054
+ "text": "string"
1055
+ }
1056
+ }
1057
+ },
1058
+ {
1059
+ "kind": "method",
1060
+ "name": "_getButtonStyles",
1061
+ "privacy": "private",
1062
+ "return": {
1063
+ "type": {
1064
+ "text": "Record<string, string>"
1065
+ }
1066
+ }
949
1067
  },
950
1068
  {
951
1069
  "kind": "field",
@@ -1133,66 +1251,92 @@
1133
1251
  "events": [
1134
1252
  {
1135
1253
  "type": {
1136
- "text": "CustomEvent"
1254
+ "text": "CustomEvent<{label: string}>"
1137
1255
  },
1138
- "description": "Fired after first render and initialization",
1139
- "name": "btu-avatar-ready"
1140
- },
1256
+ "description": "Fired when the action item is clicked (not fired when disabled or loading)",
1257
+ "name": "btu-action-item-click"
1258
+ }
1259
+ ],
1260
+ "attributes": [
1141
1261
  {
1262
+ "name": "label",
1142
1263
  "type": {
1143
- "text": "CustomEvent<{src: string}>"
1264
+ "text": "string"
1144
1265
  },
1145
- "description": "Fired when image successfully loads",
1146
- "name": "btu-avatar-image-loaded"
1266
+ "default": "''",
1267
+ "description": "Button label text.",
1268
+ "fieldName": "label",
1269
+ "attribute": "label"
1147
1270
  },
1148
1271
  {
1272
+ "name": "variant",
1149
1273
  "type": {
1150
- "text": "CustomEvent<{src: string, error: Event}>"
1274
+ "text": "ActionItemVariant"
1151
1275
  },
1152
- "description": "Fired when image fails to load",
1153
- "name": "btu-avatar-image-error"
1154
- }
1155
- ],
1156
- "attributes": [
1276
+ "default": "'secondary'",
1277
+ "description": "Visual variant: 'primary', 'secondary', 'tertiary', 'destructive'.",
1278
+ "fieldName": "variant",
1279
+ "attribute": "variant"
1280
+ },
1157
1281
  {
1158
- "name": "src",
1282
+ "name": "symbol",
1159
1283
  "type": {
1160
1284
  "text": "string"
1161
1285
  },
1162
1286
  "default": "''",
1163
- "description": "Image source URL",
1164
- "fieldName": "src",
1165
- "attribute": "src"
1287
+ "description": "Lucide icon symbol for the leading icon.",
1288
+ "fieldName": "symbol",
1289
+ "attribute": "symbol"
1166
1290
  },
1167
1291
  {
1168
- "name": "alt",
1292
+ "name": "icon-only",
1169
1293
  "type": {
1170
- "text": "string"
1294
+ "text": "boolean"
1171
1295
  },
1172
- "default": "''",
1173
- "description": "Alt text for the image",
1174
- "fieldName": "alt",
1175
- "attribute": "alt"
1296
+ "default": "false",
1297
+ "description": "Show icon only, hiding the label. Tooltip activates automatically with the label text.",
1298
+ "fieldName": "iconOnly",
1299
+ "attribute": "icon-only"
1176
1300
  },
1177
1301
  {
1178
- "name": "fallback",
1302
+ "name": "disabled",
1179
1303
  "type": {
1180
- "text": "string"
1304
+ "text": "boolean"
1305
+ },
1306
+ "default": "false",
1307
+ "description": "Disables the action item. The button remains focusable for accessibility\nbut click events are suppressed.",
1308
+ "fieldName": "disabled",
1309
+ "attribute": "disabled"
1310
+ },
1311
+ {
1312
+ "name": "loading",
1313
+ "type": {
1314
+ "text": "boolean"
1315
+ },
1316
+ "default": "false",
1317
+ "description": "Shows a loading spinner and prevents interaction.",
1318
+ "fieldName": "loading",
1319
+ "attribute": "loading"
1320
+ },
1321
+ {
1322
+ "name": "zone",
1323
+ "type": {
1324
+ "text": "'start' | 'end' | ''"
1181
1325
  },
1182
1326
  "default": "''",
1183
- "description": "Fallback text (typically user initials)",
1184
- "fieldName": "fallback",
1185
- "attribute": "fallback"
1327
+ "description": "Zone placement: 'start' or 'end'. Used by ActionBar for two-zone layout.\nIf unset, auto-detected from variant (destructive start, others → end).",
1328
+ "fieldName": "zone",
1329
+ "attribute": "zone"
1186
1330
  },
1187
1331
  {
1188
- "name": "size",
1332
+ "name": "compactable",
1189
1333
  "type": {
1190
- "text": "'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'"
1334
+ "text": "boolean"
1191
1335
  },
1192
- "default": "'md'",
1193
- "description": "Size variant.\n- 'xs': Extra small (1.5rem)\n- 'sm': Small (2.25rem)\n- 'md': Medium (2.5rem) - default\n- 'lg': Large (3rem)\n- 'xl': Extra large (3.5rem)\n- 'xxl': Extra extra large (4rem)",
1194
- "fieldName": "size",
1195
- "attribute": "size"
1336
+ "default": "false",
1337
+ "description": "Opt-in for progressive label compacting. When the parent bar has `compact`\nenabled and space shrinks, compactable items with icons have their labels\nhidden one-by-one (least important first) before overflowing.\nItems without an icon ignore this attribute and go directly to overflow.",
1338
+ "fieldName": "compactable",
1339
+ "attribute": "compactable"
1196
1340
  },
1197
1341
  {
1198
1342
  "name": "tooltip",
@@ -1362,151 +1506,7 @@
1362
1506
  "name": "LitElement",
1363
1507
  "package": "lit"
1364
1508
  },
1365
- "tagName": "btu-avatar",
1366
- "customElement": true
1367
- }
1368
- ],
1369
- "exports": [
1370
- {
1371
- "kind": "js",
1372
- "name": "default",
1373
- "declaration": {
1374
- "name": "Avatar",
1375
- "module": "src/components/avatar/Avatar.ts"
1376
- }
1377
- },
1378
- {
1379
- "kind": "custom-element-definition",
1380
- "name": "btu-avatar",
1381
- "declaration": {
1382
- "name": "Avatar",
1383
- "module": "src/components/avatar/Avatar.ts"
1384
- }
1385
- }
1386
- ]
1387
- },
1388
- {
1389
- "kind": "javascript-module",
1390
- "path": "src/components/avatar/AvatarGroup.ts",
1391
- "declarations": [
1392
- {
1393
- "kind": "class",
1394
- "description": "A container component for grouping multiple avatars with consistent styling.\n\nAvatarGroup wraps multiple avatar elements and provides:\n- Overflow handling (shows \"+N\" for excess avatars)\n- Consistent spacing and ring borders\n- Size inheritance for all child avatars",
1395
- "name": "AvatarGroup",
1396
- "members": [
1397
- {
1398
- "kind": "field",
1399
- "name": "max",
1400
- "type": {
1401
- "text": "number | undefined"
1402
- },
1403
- "description": "Maximum number of visible avatars. Remaining avatars shown as \"+N\"",
1404
- "attribute": "max"
1405
- },
1406
- {
1407
- "kind": "field",
1408
- "name": "size",
1409
- "type": {
1410
- "text": "'xs' | 'sm' | 'md'"
1411
- },
1412
- "default": "'md'",
1413
- "description": "Size variant for all child avatars (unless individually overridden)",
1414
- "attribute": "size"
1415
- },
1416
- {
1417
- "kind": "method",
1418
- "name": "processAvatars",
1419
- "return": {
1420
- "type": {
1421
- "text": "void"
1422
- }
1423
- },
1424
- "description": "Process all avatar children: apply size, handle overflow\nCall this method when avatars are dynamically added or removed"
1425
- },
1426
- {
1427
- "kind": "method",
1428
- "name": "emit",
1429
- "parameters": [
1430
- {
1431
- "name": "type",
1432
- "type": {
1433
- "text": "K"
1434
- },
1435
- "description": "Event name from CustomEventMap"
1436
- },
1437
- {
1438
- "name": "detail",
1439
- "optional": true,
1440
- "type": {
1441
- "text": "UnpackCustomEvent<CustomEventMap[K]>"
1442
- },
1443
- "description": "Optional event detail payload"
1444
- }
1445
- ],
1446
- "description": "Dispatches a type-safe CustomEvent with standardized configuration.\n\nAll events are configured with:\n- bubbles: true (event propagates up the DOM tree)\n- cancelable: false (event cannot be cancelled)\n- composed: true (event crosses shadow DOM boundaries)",
1447
- "return": {
1448
- "type": {
1449
- "text": "boolean"
1450
- }
1451
- },
1452
- "inheritedFrom": {
1453
- "name": "EventEmitterMixin",
1454
- "module": "src/util/EventEmitterMixin.ts"
1455
- }
1456
- }
1457
- ],
1458
- "events": [
1459
- {
1460
- "type": {
1461
- "text": "CustomEvent"
1462
- },
1463
- "description": "Fired after first render and initialization",
1464
- "name": "btu-avatar-group-ready"
1465
- },
1466
- {
1467
- "type": {
1468
- "text": "CustomEvent<{hidden: number}>"
1469
- },
1470
- "description": "Fired when avatars are hidden due to max limit",
1471
- "name": "btu-avatar-group-overflow"
1472
- }
1473
- ],
1474
- "attributes": [
1475
- {
1476
- "name": "max",
1477
- "type": {
1478
- "text": "number | undefined"
1479
- },
1480
- "description": "Maximum number of visible avatars. Remaining avatars shown as \"+N\"",
1481
- "fieldName": "max",
1482
- "attribute": "max"
1483
- },
1484
- {
1485
- "name": "size",
1486
- "type": {
1487
- "text": "'xs' | 'sm' | 'md'"
1488
- },
1489
- "default": "'md'",
1490
- "description": "Size variant for all child avatars (unless individually overridden)",
1491
- "fieldName": "size",
1492
- "attribute": "size"
1493
- }
1494
- ],
1495
- "mixins": [
1496
- {
1497
- "name": "EventEmitterMixin",
1498
- "module": "/src/util/EventEmitterMixin.js"
1499
- },
1500
- {
1501
- "name": "ReadyMixin",
1502
- "module": "/src/util/ReadyMixin.js"
1503
- }
1504
- ],
1505
- "superclass": {
1506
- "name": "LitElement",
1507
- "package": "lit"
1508
- },
1509
- "tagName": "btu-avatar-group",
1509
+ "tagName": "btu-action-item",
1510
1510
  "customElement": true
1511
1511
  }
1512
1512
  ],
@@ -1515,16 +1515,16 @@
1515
1515
  "kind": "js",
1516
1516
  "name": "default",
1517
1517
  "declaration": {
1518
- "name": "AvatarGroup",
1519
- "module": "src/components/avatar/AvatarGroup.ts"
1518
+ "name": "ActionItem",
1519
+ "module": "src/components/action-bar/ActionItem.ts"
1520
1520
  }
1521
1521
  },
1522
1522
  {
1523
1523
  "kind": "custom-element-definition",
1524
- "name": "btu-avatar-group",
1524
+ "name": "btu-action-item",
1525
1525
  "declaration": {
1526
- "name": "AvatarGroup",
1527
- "module": "src/components/avatar/AvatarGroup.ts"
1526
+ "name": "ActionItem",
1527
+ "module": "src/components/action-bar/ActionItem.ts"
1528
1528
  }
1529
1529
  }
1530
1530
  ]