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.
- package/LICENSE +21 -0
- package/dist/bromcom-ui/bromcom-ui.css +1 -0
- package/dist/bromcom-ui/bromcom-ui.esm.js +2 -0
- package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -0
- package/dist/bromcom-ui/global/global.js +40 -0
- package/dist/bromcom-ui/index.esm.js +2 -0
- package/dist/bromcom-ui/index.esm.js.map +1 -0
- package/dist/bromcom-ui/p-27c997d8.js +3 -0
- package/dist/bromcom-ui/p-27c997d8.js.map +1 -0
- package/dist/bromcom-ui/p-341d46a8.entry.js +2 -0
- package/dist/bromcom-ui/p-341d46a8.entry.js.map +1 -0
- package/dist/bromcom-ui/p-40643b53.js +2 -0
- package/dist/bromcom-ui/p-40643b53.js.map +1 -0
- package/dist/bromcom-ui/p-5fcf77f9.js +2 -0
- package/dist/bromcom-ui/p-5fcf77f9.js.map +1 -0
- package/dist/bromcom-ui/p-997f314c.entry.js +2 -0
- package/dist/bromcom-ui/p-997f314c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-b36f4f44.js +7 -0
- package/dist/bromcom-ui/p-b36f4f44.js.map +1 -0
- package/dist/bromcom-ui/p-dcb9df00.entry.js +2 -0
- package/dist/bromcom-ui/p-dcb9df00.entry.js.map +1 -0
- package/dist/bromcom-ui/p-f0c61f8c.entry.js +2 -0
- package/dist/bromcom-ui/p-f0c61f8c.entry.js.map +1 -0
- package/dist/cjs/app-globals-e8faea0d.js +43 -0
- package/dist/cjs/app-globals-e8faea0d.js.map +1 -0
- package/dist/cjs/bcm-accordion_4.cjs.entry.js +623 -0
- package/dist/cjs/bcm-accordion_4.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-alert.cjs.entry.js +99 -0
- package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-avatar.cjs.entry.js +89 -0
- package/dist/cjs/bcm-avatar.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-text.cjs.entry.js +119 -0
- package/dist/cjs/bcm-text.cjs.entry.js.map +1 -0
- package/dist/cjs/bromcom-ui.cjs.js +27 -0
- package/dist/cjs/bromcom-ui.cjs.js.map +1 -0
- package/dist/cjs/index-310db2a6.js +2584 -0
- package/dist/cjs/index-310db2a6.js.map +1 -0
- package/dist/cjs/index-638f2d15.js +1441 -0
- package/dist/cjs/index-638f2d15.js.map +1 -0
- package/dist/cjs/index-a4eea4bb.js +84 -0
- package/dist/cjs/index-a4eea4bb.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +17 -0
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +18 -0
- package/dist/collection/components/accordion/accordion.component.js +399 -0
- package/dist/collection/components/accordion/accordion.component.js.map +1 -0
- package/dist/collection/components/accordion/accordion.css +1 -0
- package/dist/collection/components/accordion/types.js +2 -0
- package/dist/collection/components/accordion/types.js.map +1 -0
- package/dist/collection/components/accordion-group/accordion-group.component.js +269 -0
- package/dist/collection/components/accordion-group/accordion-group.component.js.map +1 -0
- package/dist/collection/components/accordion-group/accordion-group.css +1 -0
- package/dist/collection/components/accordion-group/types.js +2 -0
- package/dist/collection/components/accordion-group/types.js.map +1 -0
- package/dist/collection/components/alert/alert.component.js +241 -0
- package/dist/collection/components/alert/alert.component.js.map +1 -0
- package/dist/collection/components/alert/alert.css +1 -0
- package/dist/collection/components/alert/types.js +2 -0
- package/dist/collection/components/alert/types.js.map +1 -0
- package/dist/collection/components/avatar/avatar.component.js +290 -0
- package/dist/collection/components/avatar/avatar.component.js.map +1 -0
- package/dist/collection/components/avatar/avatar.css +1 -0
- package/dist/collection/components/avatar/types.js +2 -0
- package/dist/collection/components/avatar/types.js.map +1 -0
- package/dist/collection/components/button/button.component.js +628 -0
- package/dist/collection/components/button/button.component.js.map +1 -0
- package/dist/collection/components/button/button.css +1 -0
- package/dist/collection/components/button/types.js +142 -0
- package/dist/collection/components/button/types.js.map +1 -0
- package/dist/collection/components/chip/chip.component.js +308 -0
- package/dist/collection/components/chip/chip.component.js.map +1 -0
- package/dist/collection/components/chip/chip.css +1 -0
- package/dist/collection/components/chip/types.js +7 -0
- package/dist/collection/components/chip/types.js.map +1 -0
- package/dist/collection/components/text/text.component.js +176 -0
- package/dist/collection/components/text/text.component.js.map +1 -0
- package/dist/collection/components/text/text.css +1 -0
- package/dist/collection/components/text/text.types.js +2 -0
- package/dist/collection/components/text/text.types.js.map +1 -0
- package/dist/collection/components/text/text.utils.js +18 -0
- package/dist/collection/components/text/text.utils.js.map +1 -0
- package/dist/collection/global/global.js +40 -0
- package/dist/collection/index.js +2 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/styles/theme-variables.js +355 -0
- package/dist/collection/styles/theme-variables.js.map +1 -0
- package/dist/components/bcm-accordion-group.d.ts +11 -0
- package/dist/components/bcm-accordion-group.js +113 -0
- package/dist/components/bcm-accordion-group.js.map +1 -0
- package/dist/components/bcm-accordion.d.ts +11 -0
- package/dist/components/bcm-accordion.js +152 -0
- package/dist/components/bcm-accordion.js.map +1 -0
- package/dist/components/bcm-alert.d.ts +11 -0
- package/dist/components/bcm-alert.js +120 -0
- package/dist/components/bcm-alert.js.map +1 -0
- package/dist/components/bcm-avatar.d.ts +11 -0
- package/dist/components/bcm-avatar.js +115 -0
- package/dist/components/bcm-avatar.js.map +1 -0
- package/dist/components/bcm-button.d.ts +11 -0
- package/dist/components/bcm-button.js +334 -0
- package/dist/components/bcm-button.js.map +1 -0
- package/dist/components/bcm-chip.d.ts +11 -0
- package/dist/components/bcm-chip.js +152 -0
- package/dist/components/bcm-chip.js.map +1 -0
- package/dist/components/bcm-text.d.ts +11 -0
- package/dist/components/bcm-text.js +138 -0
- package/dist/components/bcm-text.js.map +1 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/index.js +38 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/p-0adcc84f.js +1222 -0
- package/dist/components/p-0adcc84f.js.map +1 -0
- package/dist/components/p-5fcf77f9.js +2582 -0
- package/dist/components/p-5fcf77f9.js.map +1 -0
- package/dist/components/p-b36f4f44.js +82 -0
- package/dist/components/p-b36f4f44.js.map +1 -0
- package/dist/esm/app-globals-f781c325.js +41 -0
- package/dist/esm/app-globals-f781c325.js.map +1 -0
- package/dist/esm/bcm-accordion_4.entry.js +616 -0
- package/dist/esm/bcm-accordion_4.entry.js.map +1 -0
- package/dist/esm/bcm-alert.entry.js +95 -0
- package/dist/esm/bcm-alert.entry.js.map +1 -0
- package/dist/esm/bcm-avatar.entry.js +85 -0
- package/dist/esm/bcm-avatar.entry.js.map +1 -0
- package/dist/esm/bcm-text.entry.js +115 -0
- package/dist/esm/bcm-text.entry.js.map +1 -0
- package/dist/esm/bromcom-ui.js +22 -0
- package/dist/esm/bromcom-ui.js.map +1 -0
- package/dist/esm/index-ce2fac11.js +1412 -0
- package/dist/esm/index-ce2fac11.js.map +1 -0
- package/dist/esm/index-f0e9d579.js +82 -0
- package/dist/esm/index-f0e9d579.js.map +1 -0
- package/dist/esm/index-f3b17e60.js +2582 -0
- package/dist/esm/index-f3b17e60.js.map +1 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +13 -0
- package/dist/esm/loader.js.map +1 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/types/components/accordion/accordion.component.d.ts +137 -0
- package/dist/types/components/accordion/types.d.ts +16 -0
- package/dist/types/components/accordion-group/accordion-group.component.d.ts +95 -0
- package/dist/types/components/accordion-group/types.d.ts +13 -0
- package/dist/types/components/alert/alert.component.d.ts +28 -0
- package/dist/types/components/alert/types.d.ts +3 -0
- package/dist/types/components/avatar/avatar.component.d.ts +24 -0
- package/dist/types/components/avatar/types.d.ts +3 -0
- package/dist/types/components/button/button.component.d.ts +52 -0
- package/dist/types/components/button/types.d.ts +15 -0
- package/dist/types/components/chip/chip.component.d.ts +48 -0
- package/dist/types/components/chip/types.d.ts +9 -0
- package/dist/types/components/text/text.component.d.ts +12 -0
- package/dist/types/components/text/text.types.d.ts +3 -0
- package/dist/types/components/text/text.utils.d.ts +2 -0
- package/dist/types/components.d.ts +1116 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/stencil-public-runtime.d.ts +1680 -0
- package/dist/types/styles/theme-variables.d.ts +384 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/loader/package.json +11 -0
- package/package.json +49 -0
- 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
|
+
}
|