bromcom-ui-next 0.1.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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/dist/bromcom-ui/bromcom-ui.css +1 -0
  3. package/dist/bromcom-ui/bromcom-ui.esm.js +2 -0
  4. package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -0
  5. package/dist/bromcom-ui/global/global.js +40 -0
  6. package/dist/bromcom-ui/index.esm.js +2 -0
  7. package/dist/bromcom-ui/index.esm.js.map +1 -0
  8. package/dist/bromcom-ui/p-27c997d8.js +3 -0
  9. package/dist/bromcom-ui/p-27c997d8.js.map +1 -0
  10. package/dist/bromcom-ui/p-341d46a8.entry.js +2 -0
  11. package/dist/bromcom-ui/p-341d46a8.entry.js.map +1 -0
  12. package/dist/bromcom-ui/p-40643b53.js +2 -0
  13. package/dist/bromcom-ui/p-40643b53.js.map +1 -0
  14. package/dist/bromcom-ui/p-5fcf77f9.js +2 -0
  15. package/dist/bromcom-ui/p-5fcf77f9.js.map +1 -0
  16. package/dist/bromcom-ui/p-997f314c.entry.js +2 -0
  17. package/dist/bromcom-ui/p-997f314c.entry.js.map +1 -0
  18. package/dist/bromcom-ui/p-b36f4f44.js +7 -0
  19. package/dist/bromcom-ui/p-b36f4f44.js.map +1 -0
  20. package/dist/bromcom-ui/p-dcb9df00.entry.js +2 -0
  21. package/dist/bromcom-ui/p-dcb9df00.entry.js.map +1 -0
  22. package/dist/bromcom-ui/p-f0c61f8c.entry.js +2 -0
  23. package/dist/bromcom-ui/p-f0c61f8c.entry.js.map +1 -0
  24. package/dist/cjs/app-globals-e8faea0d.js +43 -0
  25. package/dist/cjs/app-globals-e8faea0d.js.map +1 -0
  26. package/dist/cjs/bcm-accordion_4.cjs.entry.js +623 -0
  27. package/dist/cjs/bcm-accordion_4.cjs.entry.js.map +1 -0
  28. package/dist/cjs/bcm-alert.cjs.entry.js +99 -0
  29. package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -0
  30. package/dist/cjs/bcm-avatar.cjs.entry.js +89 -0
  31. package/dist/cjs/bcm-avatar.cjs.entry.js.map +1 -0
  32. package/dist/cjs/bcm-text.cjs.entry.js +119 -0
  33. package/dist/cjs/bcm-text.cjs.entry.js.map +1 -0
  34. package/dist/cjs/bromcom-ui.cjs.js +27 -0
  35. package/dist/cjs/bromcom-ui.cjs.js.map +1 -0
  36. package/dist/cjs/index-310db2a6.js +2584 -0
  37. package/dist/cjs/index-310db2a6.js.map +1 -0
  38. package/dist/cjs/index-638f2d15.js +1441 -0
  39. package/dist/cjs/index-638f2d15.js.map +1 -0
  40. package/dist/cjs/index-a4eea4bb.js +84 -0
  41. package/dist/cjs/index-a4eea4bb.js.map +1 -0
  42. package/dist/cjs/index.cjs.js +4 -0
  43. package/dist/cjs/index.cjs.js.map +1 -0
  44. package/dist/cjs/loader.cjs.js +17 -0
  45. package/dist/cjs/loader.cjs.js.map +1 -0
  46. package/dist/collection/collection-manifest.json +18 -0
  47. package/dist/collection/components/accordion/accordion.component.js +399 -0
  48. package/dist/collection/components/accordion/accordion.component.js.map +1 -0
  49. package/dist/collection/components/accordion/accordion.css +1 -0
  50. package/dist/collection/components/accordion/types.js +2 -0
  51. package/dist/collection/components/accordion/types.js.map +1 -0
  52. package/dist/collection/components/accordion-group/accordion-group.component.js +269 -0
  53. package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -0
  54. package/dist/collection/components/accordion-group/accordion-group.css +1 -0
  55. package/dist/collection/components/accordion-group/types.js +2 -0
  56. package/dist/collection/components/accordion-group/types.js.map +1 -0
  57. package/dist/collection/components/alert/alert.component.js +241 -0
  58. package/dist/collection/components/alert/alert.component.js.map +1 -0
  59. package/dist/collection/components/alert/alert.css +1 -0
  60. package/dist/collection/components/alert/types.js +2 -0
  61. package/dist/collection/components/alert/types.js.map +1 -0
  62. package/dist/collection/components/avatar/avatar.component.js +290 -0
  63. package/dist/collection/components/avatar/avatar.component.js.map +1 -0
  64. package/dist/collection/components/avatar/avatar.css +1 -0
  65. package/dist/collection/components/avatar/types.js +2 -0
  66. package/dist/collection/components/avatar/types.js.map +1 -0
  67. package/dist/collection/components/button/button.component.js +628 -0
  68. package/dist/collection/components/button/button.component.js.map +1 -0
  69. package/dist/collection/components/button/button.css +1 -0
  70. package/dist/collection/components/button/types.js +142 -0
  71. package/dist/collection/components/button/types.js.map +1 -0
  72. package/dist/collection/components/chip/chip.component.js +308 -0
  73. package/dist/collection/components/chip/chip.component.js.map +1 -0
  74. package/dist/collection/components/chip/chip.css +1 -0
  75. package/dist/collection/components/chip/types.js +7 -0
  76. package/dist/collection/components/chip/types.js.map +1 -0
  77. package/dist/collection/components/text/text.component.js +176 -0
  78. package/dist/collection/components/text/text.component.js.map +1 -0
  79. package/dist/collection/components/text/text.css +1 -0
  80. package/dist/collection/components/text/text.types.js +2 -0
  81. package/dist/collection/components/text/text.types.js.map +1 -0
  82. package/dist/collection/components/text/text.utils.js +18 -0
  83. package/dist/collection/components/text/text.utils.js.map +1 -0
  84. package/dist/collection/global/global.js +40 -0
  85. package/dist/collection/index.js +2 -0
  86. package/dist/collection/index.js.map +1 -0
  87. package/dist/collection/styles/theme-variables.js +355 -0
  88. package/dist/collection/styles/theme-variables.js.map +1 -0
  89. package/dist/components/bcm-accordion-group.d.ts +11 -0
  90. package/dist/components/bcm-accordion-group.js +113 -0
  91. package/dist/components/bcm-accordion-group.js.map +1 -0
  92. package/dist/components/bcm-accordion.d.ts +11 -0
  93. package/dist/components/bcm-accordion.js +152 -0
  94. package/dist/components/bcm-accordion.js.map +1 -0
  95. package/dist/components/bcm-alert.d.ts +11 -0
  96. package/dist/components/bcm-alert.js +120 -0
  97. package/dist/components/bcm-alert.js.map +1 -0
  98. package/dist/components/bcm-avatar.d.ts +11 -0
  99. package/dist/components/bcm-avatar.js +115 -0
  100. package/dist/components/bcm-avatar.js.map +1 -0
  101. package/dist/components/bcm-button.d.ts +11 -0
  102. package/dist/components/bcm-button.js +334 -0
  103. package/dist/components/bcm-button.js.map +1 -0
  104. package/dist/components/bcm-chip.d.ts +11 -0
  105. package/dist/components/bcm-chip.js +152 -0
  106. package/dist/components/bcm-chip.js.map +1 -0
  107. package/dist/components/bcm-text.d.ts +11 -0
  108. package/dist/components/bcm-text.js +138 -0
  109. package/dist/components/bcm-text.js.map +1 -0
  110. package/dist/components/index.d.ts +33 -0
  111. package/dist/components/index.js +38 -0
  112. package/dist/components/index.js.map +1 -0
  113. package/dist/components/p-0adcc84f.js +1222 -0
  114. package/dist/components/p-0adcc84f.js.map +1 -0
  115. package/dist/components/p-5fcf77f9.js +2582 -0
  116. package/dist/components/p-5fcf77f9.js.map +1 -0
  117. package/dist/components/p-b36f4f44.js +82 -0
  118. package/dist/components/p-b36f4f44.js.map +1 -0
  119. package/dist/esm/app-globals-f781c325.js +41 -0
  120. package/dist/esm/app-globals-f781c325.js.map +1 -0
  121. package/dist/esm/bcm-accordion_4.entry.js +616 -0
  122. package/dist/esm/bcm-accordion_4.entry.js.map +1 -0
  123. package/dist/esm/bcm-alert.entry.js +95 -0
  124. package/dist/esm/bcm-alert.entry.js.map +1 -0
  125. package/dist/esm/bcm-avatar.entry.js +85 -0
  126. package/dist/esm/bcm-avatar.entry.js.map +1 -0
  127. package/dist/esm/bcm-text.entry.js +115 -0
  128. package/dist/esm/bcm-text.entry.js.map +1 -0
  129. package/dist/esm/bromcom-ui.js +22 -0
  130. package/dist/esm/bromcom-ui.js.map +1 -0
  131. package/dist/esm/index-ce2fac11.js +1412 -0
  132. package/dist/esm/index-ce2fac11.js.map +1 -0
  133. package/dist/esm/index-f0e9d579.js +82 -0
  134. package/dist/esm/index-f0e9d579.js.map +1 -0
  135. package/dist/esm/index-f3b17e60.js +2582 -0
  136. package/dist/esm/index-f3b17e60.js.map +1 -0
  137. package/dist/esm/index.js +3 -0
  138. package/dist/esm/index.js.map +1 -0
  139. package/dist/esm/loader.js +13 -0
  140. package/dist/esm/loader.js.map +1 -0
  141. package/dist/index.cjs.js +1 -0
  142. package/dist/index.js +1 -0
  143. package/dist/types/components/accordion/accordion.component.d.ts +137 -0
  144. package/dist/types/components/accordion/types.d.ts +16 -0
  145. package/dist/types/components/accordion-group/accordion-group.component.d.ts +95 -0
  146. package/dist/types/components/accordion-group/types.d.ts +13 -0
  147. package/dist/types/components/alert/alert.component.d.ts +28 -0
  148. package/dist/types/components/alert/types.d.ts +3 -0
  149. package/dist/types/components/avatar/avatar.component.d.ts +24 -0
  150. package/dist/types/components/avatar/types.d.ts +3 -0
  151. package/dist/types/components/button/button.component.d.ts +52 -0
  152. package/dist/types/components/button/types.d.ts +15 -0
  153. package/dist/types/components/chip/chip.component.d.ts +48 -0
  154. package/dist/types/components/chip/types.d.ts +9 -0
  155. package/dist/types/components/text/text.component.d.ts +12 -0
  156. package/dist/types/components/text/text.types.d.ts +3 -0
  157. package/dist/types/components/text/text.utils.d.ts +2 -0
  158. package/dist/types/components.d.ts +1116 -0
  159. package/dist/types/index.d.ts +10 -0
  160. package/dist/types/stencil-public-runtime.d.ts +1680 -0
  161. package/dist/types/styles/theme-variables.d.ts +384 -0
  162. package/loader/cdn.js +1 -0
  163. package/loader/index.cjs.js +1 -0
  164. package/loader/index.d.ts +24 -0
  165. package/loader/index.es2017.js +1 -0
  166. package/loader/index.js +2 -0
  167. package/loader/package.json +11 -0
  168. package/package.json +49 -0
  169. package/readme.md +170 -0
@@ -0,0 +1,1116 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /**
4
+ * This is an autogenerated file created by the Stencil compiler.
5
+ * It contains typing information for all components that exist in this project.
6
+ */
7
+ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { AccordionChangeEventType } from "./components/accordion/types";
9
+ import { AccordionGroupChangeEventType } from "./components/accordion-group/types";
10
+ import { AlertKind, AlertSize, AlertStatus } from "./components/alert/types";
11
+ import { AvatarShape, AvatarSize, AvatarStatus } from "./components/avatar/types";
12
+ import { ButtonKind, ButtonSize, ButtonStatus, ButtonType, ButtonVariant, IconPosition } from "./components/button/types";
13
+ import { ChipKind, ChipSize, ChipStatus } from "./components/chip/types";
14
+ import { TextSize, TextVariant } from "./components/text/text.types";
15
+ export { AccordionChangeEventType } from "./components/accordion/types";
16
+ export { AccordionGroupChangeEventType } from "./components/accordion-group/types";
17
+ export { AlertKind, AlertSize, AlertStatus } from "./components/alert/types";
18
+ export { AvatarShape, AvatarSize, AvatarStatus } from "./components/avatar/types";
19
+ export { ButtonKind, ButtonSize, ButtonStatus, ButtonType, ButtonVariant, IconPosition } from "./components/button/types";
20
+ export { ChipKind, ChipSize, ChipStatus } from "./components/chip/types";
21
+ export { TextSize, TextVariant } from "./components/text/text.types";
22
+ export namespace Components {
23
+ /**
24
+ * @component BcmAccordion
25
+ * @description A collapsible accordion component that provides expandable/collapsible content sections with keyboard navigation
26
+ * and accessibility features. Offers customizable header, content, and footer areas through slots.
27
+ * @example Basic usage
28
+ * <bcm-accordion>
29
+ * <div slot="title">Accordion Title</div>
30
+ * <div>Content goes here</div>
31
+ * </bcm-accordion>
32
+ * @example With all slots and hint text
33
+ * <bcm-accordion hint-text="Additional information">
34
+ * <div slot="title">Title</div>
35
+ * <div slot="actions">
36
+ * <button>Action</button>
37
+ * </div>
38
+ * <div>Main content</div>
39
+ * <div slot="footer">Footer content</div>
40
+ * </bcm-accordion>
41
+ * @example Event handling
42
+ * // Listen to accordion state changes
43
+ * const accordion = document.querySelector('bcm-accordion');
44
+ * accordion.addEventListener('bcmAccordionChange', (event) => {
45
+ * const { expanded, source } = event.detail;
46
+ * console.log('Accordion expanded:', expanded);
47
+ * console.log('Changed accordion:', source);
48
+ * });
49
+ * // Programmatically control accordion
50
+ * await accordion.toggle(); // Toggle state
51
+ * await accordion.expand(); // Expand accordion
52
+ * await accordion.collapse(); // Collapse accordion
53
+ * @prop {boolean} expanded - Controls the expanded state of the accordion (default: false)
54
+ * @prop {boolean} group - Indicates if the accordion is part of an accordion group (default: false)
55
+ * @prop {string} hintText - Optional hint text to display in the footer when no footer content is provided
56
+ * @event {EventEmitter<AccordionChangeEventType>} bcmAccordionChange - Emitted when the accordion's expanded state changes
57
+ * @eventProperty {boolean} expanded - Current expanded state
58
+ * @eventProperty {HTMLBcmAccordionElement} source - Reference to the accordion element that changed
59
+ * @csspart container - The root container element
60
+ * @csspart header - The header section with title and actions
61
+ * @csspart content - The collapsible content section
62
+ * @csspart footer - The footer section with hint text or footer slot
63
+ * @csspart section - Container for header content sections
64
+ * @csspart icon - The expand/collapse chevron icon
65
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion header (default: 4px)
66
+ * @css {string} --bcm-accordion-bg - Background color of the accordion header
67
+ * @css {string} --bcm-accordion-text - Text color of the accordion
68
+ * @css {string} --bcm-accordion-footer-bg - Background color of the footer section
69
+ * @methods toggle() - Toggles the accordion's expanded state
70
+ * expand() - Expands the accordion if collapsed
71
+ * collapse() - Collapses the accordion if expanded
72
+ */
73
+ interface BcmAccordion {
74
+ /**
75
+ * Collapses the accordion if it's currently expanded.
76
+ * @method
77
+ * @returns Promise<void>
78
+ */
79
+ "collapse": () => Promise<void>;
80
+ /**
81
+ * Expands the accordion if it's not already expanded.
82
+ * @method
83
+ * @returns Promise<void>
84
+ */
85
+ "expand": () => Promise<void>;
86
+ /**
87
+ * Controls whether the accordion is expanded or collapsed.
88
+ * @prop
89
+ * @defaultValue false
90
+ */
91
+ "expanded": boolean;
92
+ /**
93
+ * Indicates if the accordion is part of a group. Used for group behavior coordination.
94
+ * @prop
95
+ * @defaultValue false
96
+ */
97
+ "group": boolean;
98
+ /**
99
+ * Optional title text to display in the header.
100
+ * @prop
101
+ * @defaultValue undefined
102
+ */
103
+ "headerTitle"?: string;
104
+ /**
105
+ * Optional text to display in the footer when no footer slot content is provided.
106
+ * @prop
107
+ */
108
+ "hintText"?: string;
109
+ /**
110
+ * Toggles the accordion's expanded state.
111
+ * @method
112
+ * @returns Promise<void>
113
+ */
114
+ "toggle": () => Promise<void>;
115
+ }
116
+ /**
117
+ * @component BcmAccordionGroup
118
+ * @description A container component that manages a group of accordions. Provides single/multiple expansion
119
+ * modes and methods for controlling all accordions simultaneously. Uses shadow DOM for style encapsulation.
120
+ * @example Basic usage - Single expansion mode
121
+ * <bcm-accordion-group>
122
+ * <bcm-accordion>
123
+ * <div slot="title">Section 1</div>
124
+ * <div>Content 1</div>
125
+ * </bcm-accordion>
126
+ * <bcm-accordion>
127
+ * <div slot="title">Section 2</div>
128
+ * <div>Content 2</div>
129
+ * </bcm-accordion>
130
+ * </bcm-accordion-group>
131
+ * @example Multiple expansion mode
132
+ * <bcm-accordion-group multi={true}>
133
+ * <bcm-accordion>...</bcm-accordion>
134
+ * <bcm-accordion>...</bcm-accordion>
135
+ * </bcm-accordion-group>
136
+ * @example Event handling
137
+ * // Listen to accordion group changes
138
+ * const accordionGroup = document.querySelector('bcm-accordion-group');
139
+ * accordionGroup.addEventListener('bcmAccordionGroupChange', (event) => {
140
+ * const { expanded, changed, expandedItems, expandedCount } = event.detail;
141
+ * console.log('Accordion expanded state:', expanded);
142
+ * console.log('Changed accordion:', changed);
143
+ * console.log('Currently expanded accordions:', expandedItems);
144
+ * console.log('Number of expanded accordions:', expandedCount);
145
+ * });
146
+ * // Using methods
147
+ * await accordionGroup.expandAll(); // Expands all accordions (only in multi mode)
148
+ * await accordionGroup.collapseAll(); // Collapses all accordions
149
+ * const expanded = await accordionGroup.getExpandedItems(); // Gets expanded accordions
150
+ * @prop {boolean} multi - Controls whether multiple accordions can be expanded simultaneously (default: false)
151
+ * @event {EventEmitter<AccordionGroupChangeEventType>} bcmAccordionGroupChange - Emitted when any accordion's state changes
152
+ * @eventProperty {boolean} expanded - Current expanded state of the changed accordion
153
+ * @eventProperty {HTMLElement} changed - The accordion element that triggered the change
154
+ * @eventProperty {HTMLElement[]} expandedItems - Array of currently expanded accordion elements
155
+ * @eventProperty {number} expandedCount - Number of currently expanded accordions
156
+ * @method expandAll() - Expands all accordions (only available in multi mode)
157
+ * @method collapseAll() - Collapses all accordions
158
+ * @method getExpandedItems() - Returns array of currently expanded accordions
159
+ * @csspart container - The accordion group container element
160
+ * @css {string} --bcm-accordion-border - Border color of the accordion group
161
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion group
162
+ */
163
+ interface BcmAccordionGroup {
164
+ /**
165
+ * Collapses all accordions in the group
166
+ */
167
+ "collapseAll": () => Promise<void>;
168
+ /**
169
+ * Expands all accordions in the group Only available when multi=true
170
+ */
171
+ "expandAll": () => Promise<void>;
172
+ /**
173
+ * Returns an array of currently expanded accordion elements
174
+ */
175
+ "getExpandedItems": () => Promise<HTMLBcmAccordionElement[]>;
176
+ /**
177
+ * Controls whether multiple accordions can be expanded simultaneously
178
+ */
179
+ "multi": boolean;
180
+ }
181
+ /**
182
+ * Alert component that displays messages with different statuses and styles
183
+ * @class BcmAlert
184
+ */
185
+ interface BcmAlert {
186
+ /**
187
+ * Whether alert can be dismissed
188
+ */
189
+ "dismissible"?: boolean;
190
+ /**
191
+ * Alert style variant
192
+ */
193
+ "kind"?: AlertKind;
194
+ /**
195
+ * Whether to show status icon
196
+ */
197
+ "showStatusIcon"?: boolean;
198
+ /**
199
+ * Alert size variant
200
+ */
201
+ "size"?: AlertSize;
202
+ /**
203
+ * Alert status type
204
+ */
205
+ "status"?: AlertStatus;
206
+ }
207
+ interface BcmAvatar {
208
+ /**
209
+ * Alternative text for image
210
+ */
211
+ "alt": string;
212
+ /**
213
+ * Status indicator animation
214
+ */
215
+ "blink": boolean;
216
+ /**
217
+ * Custom background color
218
+ */
219
+ "color": string;
220
+ /**
221
+ * Fallback icon class
222
+ */
223
+ "icon": string;
224
+ /**
225
+ * Source URL for avatar image
226
+ */
227
+ "image": string;
228
+ /**
229
+ * Display name (used for initials)
230
+ */
231
+ "name": string;
232
+ /**
233
+ * Shape of the avatar (ellipse/square)
234
+ */
235
+ "shape": AvatarShape;
236
+ /**
237
+ * Size of the avatar
238
+ */
239
+ "size": AvatarSize;
240
+ /**
241
+ * Status indicator type
242
+ */
243
+ "status": AvatarStatus;
244
+ }
245
+ interface BcmButton {
246
+ /**
247
+ * Active state
248
+ */
249
+ "active": boolean;
250
+ /**
251
+ * ID of controlled element
252
+ */
253
+ "controls": string;
254
+ /**
255
+ * Disabled state
256
+ */
257
+ "disabled": boolean;
258
+ /**
259
+ * Expanded state for expandable content
260
+ */
261
+ "expanded"?: string;
262
+ /**
263
+ * Form association
264
+ */
265
+ "form": string;
266
+ /**
267
+ * Full width button
268
+ */
269
+ "fullWidth": boolean;
270
+ /**
271
+ * Icon class name
272
+ */
273
+ "icon"?: string;
274
+ /**
275
+ * Icon-only button mode
276
+ */
277
+ "iconOnly": boolean;
278
+ /**
279
+ * Icon placement (prefix/suffix)
280
+ */
281
+ "iconPosition": IconPosition;
282
+ /**
283
+ * Defines the main visual style of the button
284
+ */
285
+ "kind": ButtonKind;
286
+ /**
287
+ * Screen reader label
288
+ */
289
+ "label": string;
290
+ /**
291
+ * Loading state
292
+ */
293
+ "loading": boolean;
294
+ "name": string;
295
+ /**
296
+ * Controls the button size
297
+ */
298
+ "size": ButtonSize;
299
+ /**
300
+ * Defines the button's status/state color
301
+ */
302
+ "status": ButtonStatus;
303
+ /**
304
+ * Button text content
305
+ */
306
+ "text"?: string;
307
+ /**
308
+ * HTML button type
309
+ */
310
+ "type": ButtonType;
311
+ "value": string;
312
+ /**
313
+ * Predefined button variants
314
+ */
315
+ "variant"?: ButtonVariant;
316
+ }
317
+ /**
318
+ * @component BcmChip
319
+ * @description A versatile chip component that can be used to display compact pieces of information, filters, or actions.
320
+ * Supports different sizes, styles (filled, outlined, text), statuses, and can be dismissible.
321
+ * @example <bcm-chip size="medium" kind="filled" status="success">
322
+ * Success Chip
323
+ * </bcm-chip>
324
+ * @example Dismissible chip
325
+ * <bcm-chip dismissible={true} onDismiss={() => handleDismiss()}>
326
+ * Dismissible Chip
327
+ * </bcm-chip>
328
+ * @prop {ChipSize} size - Defines the size of the chip: 'small' | 'medium' | 'large'
329
+ * @prop {ChipKind} kind - Defines the visual style: 'filled' | 'outlined' | 'text'
330
+ * @prop {ChipStatus} status - Defines the status color: 'info' | 'error' | 'warning' | 'success' | 'default'
331
+ * @prop {boolean} dismissible - Whether the chip can be dismissed
332
+ * @prop {boolean} disabled - Whether the chip is disabled
333
+ * @prop {string} color - Custom color override for the chip
334
+ * @event {EventEmitter<void>} dismiss - Emitted when the dismiss button is clicked
335
+ * @csspart chip - The root chip element
336
+ * @csspart dismiss-icon - The dismiss button icon
337
+ */
338
+ interface BcmChip {
339
+ /**
340
+ * Chip color variant
341
+ */
342
+ "color"?: string;
343
+ /**
344
+ * Whether chip is disabled
345
+ */
346
+ "disabled"?: boolean;
347
+ /**
348
+ * Whether chip can be dismissed
349
+ */
350
+ "dismissible"?: boolean;
351
+ /**
352
+ * Chip style variant
353
+ */
354
+ "kind"?: ChipKind;
355
+ /**
356
+ * Chip size variant
357
+ */
358
+ "size"?: ChipSize;
359
+ /**
360
+ * Chip status
361
+ */
362
+ "status"?: ChipStatus;
363
+ }
364
+ interface BcmText {
365
+ /**
366
+ * Text size
367
+ */
368
+ "size": TextSize;
369
+ /**
370
+ * Text content
371
+ */
372
+ "text": string;
373
+ /**
374
+ * Text variant
375
+ */
376
+ "variant": TextVariant;
377
+ }
378
+ }
379
+ export interface BcmAccordionCustomEvent<T> extends CustomEvent<T> {
380
+ detail: T;
381
+ target: HTMLBcmAccordionElement;
382
+ }
383
+ export interface BcmAccordionGroupCustomEvent<T> extends CustomEvent<T> {
384
+ detail: T;
385
+ target: HTMLBcmAccordionGroupElement;
386
+ }
387
+ export interface BcmAlertCustomEvent<T> extends CustomEvent<T> {
388
+ detail: T;
389
+ target: HTMLBcmAlertElement;
390
+ }
391
+ export interface BcmButtonCustomEvent<T> extends CustomEvent<T> {
392
+ detail: T;
393
+ target: HTMLBcmButtonElement;
394
+ }
395
+ export interface BcmChipCustomEvent<T> extends CustomEvent<T> {
396
+ detail: T;
397
+ target: HTMLBcmChipElement;
398
+ }
399
+ declare global {
400
+ interface HTMLBcmAccordionElementEventMap {
401
+ "bcmAccordionChange": AccordionChangeEventType;
402
+ }
403
+ /**
404
+ * @component BcmAccordion
405
+ * @description A collapsible accordion component that provides expandable/collapsible content sections with keyboard navigation
406
+ * and accessibility features. Offers customizable header, content, and footer areas through slots.
407
+ * @example Basic usage
408
+ * <bcm-accordion>
409
+ * <div slot="title">Accordion Title</div>
410
+ * <div>Content goes here</div>
411
+ * </bcm-accordion>
412
+ * @example With all slots and hint text
413
+ * <bcm-accordion hint-text="Additional information">
414
+ * <div slot="title">Title</div>
415
+ * <div slot="actions">
416
+ * <button>Action</button>
417
+ * </div>
418
+ * <div>Main content</div>
419
+ * <div slot="footer">Footer content</div>
420
+ * </bcm-accordion>
421
+ * @example Event handling
422
+ * // Listen to accordion state changes
423
+ * const accordion = document.querySelector('bcm-accordion');
424
+ * accordion.addEventListener('bcmAccordionChange', (event) => {
425
+ * const { expanded, source } = event.detail;
426
+ * console.log('Accordion expanded:', expanded);
427
+ * console.log('Changed accordion:', source);
428
+ * });
429
+ * // Programmatically control accordion
430
+ * await accordion.toggle(); // Toggle state
431
+ * await accordion.expand(); // Expand accordion
432
+ * await accordion.collapse(); // Collapse accordion
433
+ * @prop {boolean} expanded - Controls the expanded state of the accordion (default: false)
434
+ * @prop {boolean} group - Indicates if the accordion is part of an accordion group (default: false)
435
+ * @prop {string} hintText - Optional hint text to display in the footer when no footer content is provided
436
+ * @event {EventEmitter<AccordionChangeEventType>} bcmAccordionChange - Emitted when the accordion's expanded state changes
437
+ * @eventProperty {boolean} expanded - Current expanded state
438
+ * @eventProperty {HTMLBcmAccordionElement} source - Reference to the accordion element that changed
439
+ * @csspart container - The root container element
440
+ * @csspart header - The header section with title and actions
441
+ * @csspart content - The collapsible content section
442
+ * @csspart footer - The footer section with hint text or footer slot
443
+ * @csspart section - Container for header content sections
444
+ * @csspart icon - The expand/collapse chevron icon
445
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion header (default: 4px)
446
+ * @css {string} --bcm-accordion-bg - Background color of the accordion header
447
+ * @css {string} --bcm-accordion-text - Text color of the accordion
448
+ * @css {string} --bcm-accordion-footer-bg - Background color of the footer section
449
+ * @methods toggle() - Toggles the accordion's expanded state
450
+ * expand() - Expands the accordion if collapsed
451
+ * collapse() - Collapses the accordion if expanded
452
+ */
453
+ interface HTMLBcmAccordionElement extends Components.BcmAccordion, HTMLStencilElement {
454
+ addEventListener<K extends keyof HTMLBcmAccordionElementEventMap>(type: K, listener: (this: HTMLBcmAccordionElement, ev: BcmAccordionCustomEvent<HTMLBcmAccordionElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
455
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
456
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
457
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
458
+ removeEventListener<K extends keyof HTMLBcmAccordionElementEventMap>(type: K, listener: (this: HTMLBcmAccordionElement, ev: BcmAccordionCustomEvent<HTMLBcmAccordionElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
459
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
460
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
461
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
462
+ }
463
+ var HTMLBcmAccordionElement: {
464
+ prototype: HTMLBcmAccordionElement;
465
+ new (): HTMLBcmAccordionElement;
466
+ };
467
+ interface HTMLBcmAccordionGroupElementEventMap {
468
+ "bcmAccordionGroupChange": AccordionGroupChangeEventType;
469
+ }
470
+ /**
471
+ * @component BcmAccordionGroup
472
+ * @description A container component that manages a group of accordions. Provides single/multiple expansion
473
+ * modes and methods for controlling all accordions simultaneously. Uses shadow DOM for style encapsulation.
474
+ * @example Basic usage - Single expansion mode
475
+ * <bcm-accordion-group>
476
+ * <bcm-accordion>
477
+ * <div slot="title">Section 1</div>
478
+ * <div>Content 1</div>
479
+ * </bcm-accordion>
480
+ * <bcm-accordion>
481
+ * <div slot="title">Section 2</div>
482
+ * <div>Content 2</div>
483
+ * </bcm-accordion>
484
+ * </bcm-accordion-group>
485
+ * @example Multiple expansion mode
486
+ * <bcm-accordion-group multi={true}>
487
+ * <bcm-accordion>...</bcm-accordion>
488
+ * <bcm-accordion>...</bcm-accordion>
489
+ * </bcm-accordion-group>
490
+ * @example Event handling
491
+ * // Listen to accordion group changes
492
+ * const accordionGroup = document.querySelector('bcm-accordion-group');
493
+ * accordionGroup.addEventListener('bcmAccordionGroupChange', (event) => {
494
+ * const { expanded, changed, expandedItems, expandedCount } = event.detail;
495
+ * console.log('Accordion expanded state:', expanded);
496
+ * console.log('Changed accordion:', changed);
497
+ * console.log('Currently expanded accordions:', expandedItems);
498
+ * console.log('Number of expanded accordions:', expandedCount);
499
+ * });
500
+ * // Using methods
501
+ * await accordionGroup.expandAll(); // Expands all accordions (only in multi mode)
502
+ * await accordionGroup.collapseAll(); // Collapses all accordions
503
+ * const expanded = await accordionGroup.getExpandedItems(); // Gets expanded accordions
504
+ * @prop {boolean} multi - Controls whether multiple accordions can be expanded simultaneously (default: false)
505
+ * @event {EventEmitter<AccordionGroupChangeEventType>} bcmAccordionGroupChange - Emitted when any accordion's state changes
506
+ * @eventProperty {boolean} expanded - Current expanded state of the changed accordion
507
+ * @eventProperty {HTMLElement} changed - The accordion element that triggered the change
508
+ * @eventProperty {HTMLElement[]} expandedItems - Array of currently expanded accordion elements
509
+ * @eventProperty {number} expandedCount - Number of currently expanded accordions
510
+ * @method expandAll() - Expands all accordions (only available in multi mode)
511
+ * @method collapseAll() - Collapses all accordions
512
+ * @method getExpandedItems() - Returns array of currently expanded accordions
513
+ * @csspart container - The accordion group container element
514
+ * @css {string} --bcm-accordion-border - Border color of the accordion group
515
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion group
516
+ */
517
+ interface HTMLBcmAccordionGroupElement extends Components.BcmAccordionGroup, HTMLStencilElement {
518
+ addEventListener<K extends keyof HTMLBcmAccordionGroupElementEventMap>(type: K, listener: (this: HTMLBcmAccordionGroupElement, ev: BcmAccordionGroupCustomEvent<HTMLBcmAccordionGroupElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
519
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
520
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
521
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
522
+ removeEventListener<K extends keyof HTMLBcmAccordionGroupElementEventMap>(type: K, listener: (this: HTMLBcmAccordionGroupElement, ev: BcmAccordionGroupCustomEvent<HTMLBcmAccordionGroupElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
523
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
524
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
525
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
526
+ }
527
+ var HTMLBcmAccordionGroupElement: {
528
+ prototype: HTMLBcmAccordionGroupElement;
529
+ new (): HTMLBcmAccordionGroupElement;
530
+ };
531
+ interface HTMLBcmAlertElementEventMap {
532
+ "bcmDismiss": void;
533
+ }
534
+ /**
535
+ * Alert component that displays messages with different statuses and styles
536
+ * @class BcmAlert
537
+ */
538
+ interface HTMLBcmAlertElement extends Components.BcmAlert, HTMLStencilElement {
539
+ addEventListener<K extends keyof HTMLBcmAlertElementEventMap>(type: K, listener: (this: HTMLBcmAlertElement, ev: BcmAlertCustomEvent<HTMLBcmAlertElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
540
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
541
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
542
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
543
+ removeEventListener<K extends keyof HTMLBcmAlertElementEventMap>(type: K, listener: (this: HTMLBcmAlertElement, ev: BcmAlertCustomEvent<HTMLBcmAlertElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
544
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
545
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
546
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
547
+ }
548
+ var HTMLBcmAlertElement: {
549
+ prototype: HTMLBcmAlertElement;
550
+ new (): HTMLBcmAlertElement;
551
+ };
552
+ interface HTMLBcmAvatarElement extends Components.BcmAvatar, HTMLStencilElement {
553
+ }
554
+ var HTMLBcmAvatarElement: {
555
+ prototype: HTMLBcmAvatarElement;
556
+ new (): HTMLBcmAvatarElement;
557
+ };
558
+ interface HTMLBcmButtonElementEventMap {
559
+ "bcmClick": MouseEvent;
560
+ "bcmFocus": FocusEvent;
561
+ "bcmBlur": FocusEvent;
562
+ }
563
+ interface HTMLBcmButtonElement extends Components.BcmButton, HTMLStencilElement {
564
+ addEventListener<K extends keyof HTMLBcmButtonElementEventMap>(type: K, listener: (this: HTMLBcmButtonElement, ev: BcmButtonCustomEvent<HTMLBcmButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
565
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
566
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
567
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
568
+ removeEventListener<K extends keyof HTMLBcmButtonElementEventMap>(type: K, listener: (this: HTMLBcmButtonElement, ev: BcmButtonCustomEvent<HTMLBcmButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
569
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
570
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
571
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
572
+ }
573
+ var HTMLBcmButtonElement: {
574
+ prototype: HTMLBcmButtonElement;
575
+ new (): HTMLBcmButtonElement;
576
+ };
577
+ interface HTMLBcmChipElementEventMap {
578
+ "bcmDismiss": void;
579
+ }
580
+ /**
581
+ * @component BcmChip
582
+ * @description A versatile chip component that can be used to display compact pieces of information, filters, or actions.
583
+ * Supports different sizes, styles (filled, outlined, text), statuses, and can be dismissible.
584
+ * @example <bcm-chip size="medium" kind="filled" status="success">
585
+ * Success Chip
586
+ * </bcm-chip>
587
+ * @example Dismissible chip
588
+ * <bcm-chip dismissible={true} onDismiss={() => handleDismiss()}>
589
+ * Dismissible Chip
590
+ * </bcm-chip>
591
+ * @prop {ChipSize} size - Defines the size of the chip: 'small' | 'medium' | 'large'
592
+ * @prop {ChipKind} kind - Defines the visual style: 'filled' | 'outlined' | 'text'
593
+ * @prop {ChipStatus} status - Defines the status color: 'info' | 'error' | 'warning' | 'success' | 'default'
594
+ * @prop {boolean} dismissible - Whether the chip can be dismissed
595
+ * @prop {boolean} disabled - Whether the chip is disabled
596
+ * @prop {string} color - Custom color override for the chip
597
+ * @event {EventEmitter<void>} dismiss - Emitted when the dismiss button is clicked
598
+ * @csspart chip - The root chip element
599
+ * @csspart dismiss-icon - The dismiss button icon
600
+ */
601
+ interface HTMLBcmChipElement extends Components.BcmChip, HTMLStencilElement {
602
+ addEventListener<K extends keyof HTMLBcmChipElementEventMap>(type: K, listener: (this: HTMLBcmChipElement, ev: BcmChipCustomEvent<HTMLBcmChipElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
603
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
604
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
605
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
606
+ removeEventListener<K extends keyof HTMLBcmChipElementEventMap>(type: K, listener: (this: HTMLBcmChipElement, ev: BcmChipCustomEvent<HTMLBcmChipElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
607
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
608
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
609
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
610
+ }
611
+ var HTMLBcmChipElement: {
612
+ prototype: HTMLBcmChipElement;
613
+ new (): HTMLBcmChipElement;
614
+ };
615
+ interface HTMLBcmTextElement extends Components.BcmText, HTMLStencilElement {
616
+ }
617
+ var HTMLBcmTextElement: {
618
+ prototype: HTMLBcmTextElement;
619
+ new (): HTMLBcmTextElement;
620
+ };
621
+ interface HTMLElementTagNameMap {
622
+ "bcm-accordion": HTMLBcmAccordionElement;
623
+ "bcm-accordion-group": HTMLBcmAccordionGroupElement;
624
+ "bcm-alert": HTMLBcmAlertElement;
625
+ "bcm-avatar": HTMLBcmAvatarElement;
626
+ "bcm-button": HTMLBcmButtonElement;
627
+ "bcm-chip": HTMLBcmChipElement;
628
+ "bcm-text": HTMLBcmTextElement;
629
+ }
630
+ }
631
+ declare namespace LocalJSX {
632
+ /**
633
+ * @component BcmAccordion
634
+ * @description A collapsible accordion component that provides expandable/collapsible content sections with keyboard navigation
635
+ * and accessibility features. Offers customizable header, content, and footer areas through slots.
636
+ * @example Basic usage
637
+ * <bcm-accordion>
638
+ * <div slot="title">Accordion Title</div>
639
+ * <div>Content goes here</div>
640
+ * </bcm-accordion>
641
+ * @example With all slots and hint text
642
+ * <bcm-accordion hint-text="Additional information">
643
+ * <div slot="title">Title</div>
644
+ * <div slot="actions">
645
+ * <button>Action</button>
646
+ * </div>
647
+ * <div>Main content</div>
648
+ * <div slot="footer">Footer content</div>
649
+ * </bcm-accordion>
650
+ * @example Event handling
651
+ * // Listen to accordion state changes
652
+ * const accordion = document.querySelector('bcm-accordion');
653
+ * accordion.addEventListener('bcmAccordionChange', (event) => {
654
+ * const { expanded, source } = event.detail;
655
+ * console.log('Accordion expanded:', expanded);
656
+ * console.log('Changed accordion:', source);
657
+ * });
658
+ * // Programmatically control accordion
659
+ * await accordion.toggle(); // Toggle state
660
+ * await accordion.expand(); // Expand accordion
661
+ * await accordion.collapse(); // Collapse accordion
662
+ * @prop {boolean} expanded - Controls the expanded state of the accordion (default: false)
663
+ * @prop {boolean} group - Indicates if the accordion is part of an accordion group (default: false)
664
+ * @prop {string} hintText - Optional hint text to display in the footer when no footer content is provided
665
+ * @event {EventEmitter<AccordionChangeEventType>} bcmAccordionChange - Emitted when the accordion's expanded state changes
666
+ * @eventProperty {boolean} expanded - Current expanded state
667
+ * @eventProperty {HTMLBcmAccordionElement} source - Reference to the accordion element that changed
668
+ * @csspart container - The root container element
669
+ * @csspart header - The header section with title and actions
670
+ * @csspart content - The collapsible content section
671
+ * @csspart footer - The footer section with hint text or footer slot
672
+ * @csspart section - Container for header content sections
673
+ * @csspart icon - The expand/collapse chevron icon
674
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion header (default: 4px)
675
+ * @css {string} --bcm-accordion-bg - Background color of the accordion header
676
+ * @css {string} --bcm-accordion-text - Text color of the accordion
677
+ * @css {string} --bcm-accordion-footer-bg - Background color of the footer section
678
+ * @methods toggle() - Toggles the accordion's expanded state
679
+ * expand() - Expands the accordion if collapsed
680
+ * collapse() - Collapses the accordion if expanded
681
+ */
682
+ interface BcmAccordion {
683
+ /**
684
+ * Controls whether the accordion is expanded or collapsed.
685
+ * @prop
686
+ * @defaultValue false
687
+ */
688
+ "expanded"?: boolean;
689
+ /**
690
+ * Indicates if the accordion is part of a group. Used for group behavior coordination.
691
+ * @prop
692
+ * @defaultValue false
693
+ */
694
+ "group"?: boolean;
695
+ /**
696
+ * Optional title text to display in the header.
697
+ * @prop
698
+ * @defaultValue undefined
699
+ */
700
+ "headerTitle"?: string;
701
+ /**
702
+ * Optional text to display in the footer when no footer slot content is provided.
703
+ * @prop
704
+ */
705
+ "hintText"?: string;
706
+ /**
707
+ * Emitted when the accordion's expanded state changes.
708
+ * @event
709
+ */
710
+ "onBcmAccordionChange"?: (event: BcmAccordionCustomEvent<AccordionChangeEventType>) => void;
711
+ }
712
+ /**
713
+ * @component BcmAccordionGroup
714
+ * @description A container component that manages a group of accordions. Provides single/multiple expansion
715
+ * modes and methods for controlling all accordions simultaneously. Uses shadow DOM for style encapsulation.
716
+ * @example Basic usage - Single expansion mode
717
+ * <bcm-accordion-group>
718
+ * <bcm-accordion>
719
+ * <div slot="title">Section 1</div>
720
+ * <div>Content 1</div>
721
+ * </bcm-accordion>
722
+ * <bcm-accordion>
723
+ * <div slot="title">Section 2</div>
724
+ * <div>Content 2</div>
725
+ * </bcm-accordion>
726
+ * </bcm-accordion-group>
727
+ * @example Multiple expansion mode
728
+ * <bcm-accordion-group multi={true}>
729
+ * <bcm-accordion>...</bcm-accordion>
730
+ * <bcm-accordion>...</bcm-accordion>
731
+ * </bcm-accordion-group>
732
+ * @example Event handling
733
+ * // Listen to accordion group changes
734
+ * const accordionGroup = document.querySelector('bcm-accordion-group');
735
+ * accordionGroup.addEventListener('bcmAccordionGroupChange', (event) => {
736
+ * const { expanded, changed, expandedItems, expandedCount } = event.detail;
737
+ * console.log('Accordion expanded state:', expanded);
738
+ * console.log('Changed accordion:', changed);
739
+ * console.log('Currently expanded accordions:', expandedItems);
740
+ * console.log('Number of expanded accordions:', expandedCount);
741
+ * });
742
+ * // Using methods
743
+ * await accordionGroup.expandAll(); // Expands all accordions (only in multi mode)
744
+ * await accordionGroup.collapseAll(); // Collapses all accordions
745
+ * const expanded = await accordionGroup.getExpandedItems(); // Gets expanded accordions
746
+ * @prop {boolean} multi - Controls whether multiple accordions can be expanded simultaneously (default: false)
747
+ * @event {EventEmitter<AccordionGroupChangeEventType>} bcmAccordionGroupChange - Emitted when any accordion's state changes
748
+ * @eventProperty {boolean} expanded - Current expanded state of the changed accordion
749
+ * @eventProperty {HTMLElement} changed - The accordion element that triggered the change
750
+ * @eventProperty {HTMLElement[]} expandedItems - Array of currently expanded accordion elements
751
+ * @eventProperty {number} expandedCount - Number of currently expanded accordions
752
+ * @method expandAll() - Expands all accordions (only available in multi mode)
753
+ * @method collapseAll() - Collapses all accordions
754
+ * @method getExpandedItems() - Returns array of currently expanded accordions
755
+ * @csspart container - The accordion group container element
756
+ * @css {string} --bcm-accordion-border - Border color of the accordion group
757
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion group
758
+ */
759
+ interface BcmAccordionGroup {
760
+ /**
761
+ * Controls whether multiple accordions can be expanded simultaneously
762
+ */
763
+ "multi"?: boolean;
764
+ /**
765
+ * Event emitted when any accordion's expanded state changes
766
+ */
767
+ "onBcmAccordionGroupChange"?: (event: BcmAccordionGroupCustomEvent<AccordionGroupChangeEventType>) => void;
768
+ }
769
+ /**
770
+ * Alert component that displays messages with different statuses and styles
771
+ * @class BcmAlert
772
+ */
773
+ interface BcmAlert {
774
+ /**
775
+ * Whether alert can be dismissed
776
+ */
777
+ "dismissible"?: boolean;
778
+ /**
779
+ * Alert style variant
780
+ */
781
+ "kind"?: AlertKind;
782
+ "onBcmDismiss"?: (event: BcmAlertCustomEvent<void>) => void;
783
+ /**
784
+ * Whether to show status icon
785
+ */
786
+ "showStatusIcon"?: boolean;
787
+ /**
788
+ * Alert size variant
789
+ */
790
+ "size"?: AlertSize;
791
+ /**
792
+ * Alert status type
793
+ */
794
+ "status"?: AlertStatus;
795
+ }
796
+ interface BcmAvatar {
797
+ /**
798
+ * Alternative text for image
799
+ */
800
+ "alt"?: string;
801
+ /**
802
+ * Status indicator animation
803
+ */
804
+ "blink"?: boolean;
805
+ /**
806
+ * Custom background color
807
+ */
808
+ "color"?: string;
809
+ /**
810
+ * Fallback icon class
811
+ */
812
+ "icon"?: string;
813
+ /**
814
+ * Source URL for avatar image
815
+ */
816
+ "image"?: string;
817
+ /**
818
+ * Display name (used for initials)
819
+ */
820
+ "name"?: string;
821
+ /**
822
+ * Shape of the avatar (ellipse/square)
823
+ */
824
+ "shape"?: AvatarShape;
825
+ /**
826
+ * Size of the avatar
827
+ */
828
+ "size"?: AvatarSize;
829
+ /**
830
+ * Status indicator type
831
+ */
832
+ "status"?: AvatarStatus;
833
+ }
834
+ interface BcmButton {
835
+ /**
836
+ * Active state
837
+ */
838
+ "active"?: boolean;
839
+ /**
840
+ * ID of controlled element
841
+ */
842
+ "controls"?: string;
843
+ /**
844
+ * Disabled state
845
+ */
846
+ "disabled"?: boolean;
847
+ /**
848
+ * Expanded state for expandable content
849
+ */
850
+ "expanded"?: string;
851
+ /**
852
+ * Form association
853
+ */
854
+ "form"?: string;
855
+ /**
856
+ * Full width button
857
+ */
858
+ "fullWidth"?: boolean;
859
+ /**
860
+ * Icon class name
861
+ */
862
+ "icon"?: string;
863
+ /**
864
+ * Icon-only button mode
865
+ */
866
+ "iconOnly"?: boolean;
867
+ /**
868
+ * Icon placement (prefix/suffix)
869
+ */
870
+ "iconPosition"?: IconPosition;
871
+ /**
872
+ * Defines the main visual style of the button
873
+ */
874
+ "kind"?: ButtonKind;
875
+ /**
876
+ * Screen reader label
877
+ */
878
+ "label"?: string;
879
+ /**
880
+ * Loading state
881
+ */
882
+ "loading"?: boolean;
883
+ "name"?: string;
884
+ "onBcmBlur"?: (event: BcmButtonCustomEvent<FocusEvent>) => void;
885
+ "onBcmClick"?: (event: BcmButtonCustomEvent<MouseEvent>) => void;
886
+ "onBcmFocus"?: (event: BcmButtonCustomEvent<FocusEvent>) => void;
887
+ /**
888
+ * Controls the button size
889
+ */
890
+ "size"?: ButtonSize;
891
+ /**
892
+ * Defines the button's status/state color
893
+ */
894
+ "status"?: ButtonStatus;
895
+ /**
896
+ * Button text content
897
+ */
898
+ "text"?: string;
899
+ /**
900
+ * HTML button type
901
+ */
902
+ "type"?: ButtonType;
903
+ "value"?: string;
904
+ /**
905
+ * Predefined button variants
906
+ */
907
+ "variant"?: ButtonVariant;
908
+ }
909
+ /**
910
+ * @component BcmChip
911
+ * @description A versatile chip component that can be used to display compact pieces of information, filters, or actions.
912
+ * Supports different sizes, styles (filled, outlined, text), statuses, and can be dismissible.
913
+ * @example <bcm-chip size="medium" kind="filled" status="success">
914
+ * Success Chip
915
+ * </bcm-chip>
916
+ * @example Dismissible chip
917
+ * <bcm-chip dismissible={true} onDismiss={() => handleDismiss()}>
918
+ * Dismissible Chip
919
+ * </bcm-chip>
920
+ * @prop {ChipSize} size - Defines the size of the chip: 'small' | 'medium' | 'large'
921
+ * @prop {ChipKind} kind - Defines the visual style: 'filled' | 'outlined' | 'text'
922
+ * @prop {ChipStatus} status - Defines the status color: 'info' | 'error' | 'warning' | 'success' | 'default'
923
+ * @prop {boolean} dismissible - Whether the chip can be dismissed
924
+ * @prop {boolean} disabled - Whether the chip is disabled
925
+ * @prop {string} color - Custom color override for the chip
926
+ * @event {EventEmitter<void>} dismiss - Emitted when the dismiss button is clicked
927
+ * @csspart chip - The root chip element
928
+ * @csspart dismiss-icon - The dismiss button icon
929
+ */
930
+ interface BcmChip {
931
+ /**
932
+ * Chip color variant
933
+ */
934
+ "color"?: string;
935
+ /**
936
+ * Whether chip is disabled
937
+ */
938
+ "disabled"?: boolean;
939
+ /**
940
+ * Whether chip can be dismissed
941
+ */
942
+ "dismissible"?: boolean;
943
+ /**
944
+ * Chip style variant
945
+ */
946
+ "kind"?: ChipKind;
947
+ "onBcmDismiss"?: (event: BcmChipCustomEvent<void>) => void;
948
+ /**
949
+ * Chip size variant
950
+ */
951
+ "size"?: ChipSize;
952
+ /**
953
+ * Chip status
954
+ */
955
+ "status"?: ChipStatus;
956
+ }
957
+ interface BcmText {
958
+ /**
959
+ * Text size
960
+ */
961
+ "size"?: TextSize;
962
+ /**
963
+ * Text content
964
+ */
965
+ "text"?: string;
966
+ /**
967
+ * Text variant
968
+ */
969
+ "variant"?: TextVariant;
970
+ }
971
+ interface IntrinsicElements {
972
+ "bcm-accordion": BcmAccordion;
973
+ "bcm-accordion-group": BcmAccordionGroup;
974
+ "bcm-alert": BcmAlert;
975
+ "bcm-avatar": BcmAvatar;
976
+ "bcm-button": BcmButton;
977
+ "bcm-chip": BcmChip;
978
+ "bcm-text": BcmText;
979
+ }
980
+ }
981
+ export { LocalJSX as JSX };
982
+ declare module "@stencil/core" {
983
+ export namespace JSX {
984
+ interface IntrinsicElements {
985
+ /**
986
+ * @component BcmAccordion
987
+ * @description A collapsible accordion component that provides expandable/collapsible content sections with keyboard navigation
988
+ * and accessibility features. Offers customizable header, content, and footer areas through slots.
989
+ * @example Basic usage
990
+ * <bcm-accordion>
991
+ * <div slot="title">Accordion Title</div>
992
+ * <div>Content goes here</div>
993
+ * </bcm-accordion>
994
+ * @example With all slots and hint text
995
+ * <bcm-accordion hint-text="Additional information">
996
+ * <div slot="title">Title</div>
997
+ * <div slot="actions">
998
+ * <button>Action</button>
999
+ * </div>
1000
+ * <div>Main content</div>
1001
+ * <div slot="footer">Footer content</div>
1002
+ * </bcm-accordion>
1003
+ * @example Event handling
1004
+ * // Listen to accordion state changes
1005
+ * const accordion = document.querySelector('bcm-accordion');
1006
+ * accordion.addEventListener('bcmAccordionChange', (event) => {
1007
+ * const { expanded, source } = event.detail;
1008
+ * console.log('Accordion expanded:', expanded);
1009
+ * console.log('Changed accordion:', source);
1010
+ * });
1011
+ * // Programmatically control accordion
1012
+ * await accordion.toggle(); // Toggle state
1013
+ * await accordion.expand(); // Expand accordion
1014
+ * await accordion.collapse(); // Collapse accordion
1015
+ * @prop {boolean} expanded - Controls the expanded state of the accordion (default: false)
1016
+ * @prop {boolean} group - Indicates if the accordion is part of an accordion group (default: false)
1017
+ * @prop {string} hintText - Optional hint text to display in the footer when no footer content is provided
1018
+ * @event {EventEmitter<AccordionChangeEventType>} bcmAccordionChange - Emitted when the accordion's expanded state changes
1019
+ * @eventProperty {boolean} expanded - Current expanded state
1020
+ * @eventProperty {HTMLBcmAccordionElement} source - Reference to the accordion element that changed
1021
+ * @csspart container - The root container element
1022
+ * @csspart header - The header section with title and actions
1023
+ * @csspart content - The collapsible content section
1024
+ * @csspart footer - The footer section with hint text or footer slot
1025
+ * @csspart section - Container for header content sections
1026
+ * @csspart icon - The expand/collapse chevron icon
1027
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion header (default: 4px)
1028
+ * @css {string} --bcm-accordion-bg - Background color of the accordion header
1029
+ * @css {string} --bcm-accordion-text - Text color of the accordion
1030
+ * @css {string} --bcm-accordion-footer-bg - Background color of the footer section
1031
+ * @methods toggle() - Toggles the accordion's expanded state
1032
+ * expand() - Expands the accordion if collapsed
1033
+ * collapse() - Collapses the accordion if expanded
1034
+ */
1035
+ "bcm-accordion": LocalJSX.BcmAccordion & JSXBase.HTMLAttributes<HTMLBcmAccordionElement>;
1036
+ /**
1037
+ * @component BcmAccordionGroup
1038
+ * @description A container component that manages a group of accordions. Provides single/multiple expansion
1039
+ * modes and methods for controlling all accordions simultaneously. Uses shadow DOM for style encapsulation.
1040
+ * @example Basic usage - Single expansion mode
1041
+ * <bcm-accordion-group>
1042
+ * <bcm-accordion>
1043
+ * <div slot="title">Section 1</div>
1044
+ * <div>Content 1</div>
1045
+ * </bcm-accordion>
1046
+ * <bcm-accordion>
1047
+ * <div slot="title">Section 2</div>
1048
+ * <div>Content 2</div>
1049
+ * </bcm-accordion>
1050
+ * </bcm-accordion-group>
1051
+ * @example Multiple expansion mode
1052
+ * <bcm-accordion-group multi={true}>
1053
+ * <bcm-accordion>...</bcm-accordion>
1054
+ * <bcm-accordion>...</bcm-accordion>
1055
+ * </bcm-accordion-group>
1056
+ * @example Event handling
1057
+ * // Listen to accordion group changes
1058
+ * const accordionGroup = document.querySelector('bcm-accordion-group');
1059
+ * accordionGroup.addEventListener('bcmAccordionGroupChange', (event) => {
1060
+ * const { expanded, changed, expandedItems, expandedCount } = event.detail;
1061
+ * console.log('Accordion expanded state:', expanded);
1062
+ * console.log('Changed accordion:', changed);
1063
+ * console.log('Currently expanded accordions:', expandedItems);
1064
+ * console.log('Number of expanded accordions:', expandedCount);
1065
+ * });
1066
+ * // Using methods
1067
+ * await accordionGroup.expandAll(); // Expands all accordions (only in multi mode)
1068
+ * await accordionGroup.collapseAll(); // Collapses all accordions
1069
+ * const expanded = await accordionGroup.getExpandedItems(); // Gets expanded accordions
1070
+ * @prop {boolean} multi - Controls whether multiple accordions can be expanded simultaneously (default: false)
1071
+ * @event {EventEmitter<AccordionGroupChangeEventType>} bcmAccordionGroupChange - Emitted when any accordion's state changes
1072
+ * @eventProperty {boolean} expanded - Current expanded state of the changed accordion
1073
+ * @eventProperty {HTMLElement} changed - The accordion element that triggered the change
1074
+ * @eventProperty {HTMLElement[]} expandedItems - Array of currently expanded accordion elements
1075
+ * @eventProperty {number} expandedCount - Number of currently expanded accordions
1076
+ * @method expandAll() - Expands all accordions (only available in multi mode)
1077
+ * @method collapseAll() - Collapses all accordions
1078
+ * @method getExpandedItems() - Returns array of currently expanded accordions
1079
+ * @csspart container - The accordion group container element
1080
+ * @css {string} --bcm-accordion-border - Border color of the accordion group
1081
+ * @css {string} --bcm-accordion-radius - Border radius of the accordion group
1082
+ */
1083
+ "bcm-accordion-group": LocalJSX.BcmAccordionGroup & JSXBase.HTMLAttributes<HTMLBcmAccordionGroupElement>;
1084
+ /**
1085
+ * Alert component that displays messages with different statuses and styles
1086
+ * @class BcmAlert
1087
+ */
1088
+ "bcm-alert": LocalJSX.BcmAlert & JSXBase.HTMLAttributes<HTMLBcmAlertElement>;
1089
+ "bcm-avatar": LocalJSX.BcmAvatar & JSXBase.HTMLAttributes<HTMLBcmAvatarElement>;
1090
+ "bcm-button": LocalJSX.BcmButton & JSXBase.HTMLAttributes<HTMLBcmButtonElement>;
1091
+ /**
1092
+ * @component BcmChip
1093
+ * @description A versatile chip component that can be used to display compact pieces of information, filters, or actions.
1094
+ * Supports different sizes, styles (filled, outlined, text), statuses, and can be dismissible.
1095
+ * @example <bcm-chip size="medium" kind="filled" status="success">
1096
+ * Success Chip
1097
+ * </bcm-chip>
1098
+ * @example Dismissible chip
1099
+ * <bcm-chip dismissible={true} onDismiss={() => handleDismiss()}>
1100
+ * Dismissible Chip
1101
+ * </bcm-chip>
1102
+ * @prop {ChipSize} size - Defines the size of the chip: 'small' | 'medium' | 'large'
1103
+ * @prop {ChipKind} kind - Defines the visual style: 'filled' | 'outlined' | 'text'
1104
+ * @prop {ChipStatus} status - Defines the status color: 'info' | 'error' | 'warning' | 'success' | 'default'
1105
+ * @prop {boolean} dismissible - Whether the chip can be dismissed
1106
+ * @prop {boolean} disabled - Whether the chip is disabled
1107
+ * @prop {string} color - Custom color override for the chip
1108
+ * @event {EventEmitter<void>} dismiss - Emitted when the dismiss button is clicked
1109
+ * @csspart chip - The root chip element
1110
+ * @csspart dismiss-icon - The dismiss button icon
1111
+ */
1112
+ "bcm-chip": LocalJSX.BcmChip & JSXBase.HTMLAttributes<HTMLBcmChipElement>;
1113
+ "bcm-text": LocalJSX.BcmText & JSXBase.HTMLAttributes<HTMLBcmTextElement>;
1114
+ }
1115
+ }
1116
+ }