@pecb-ui/components 1.1.2 → 2.0.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/README.md +556 -556
- package/fesm2022/pecb-ui-components.mjs +998 -1907
- package/fesm2022/pecb-ui-components.mjs.map +1 -1
- package/index.d.ts +2439 -3
- package/package.json +6 -8
- package/esm2022/lib/components/button/button.component.mjs +0 -171
- package/esm2022/lib/components/card/card.component.mjs +0 -182
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -126
- package/esm2022/lib/components/datepicker/datepicker.component.mjs +0 -349
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -329
- package/esm2022/lib/components/input/input.component.mjs +0 -321
- package/esm2022/lib/components/pagination/pagination.component.mjs +0 -197
- package/esm2022/lib/components/radio/radio.component.mjs +0 -147
- package/esm2022/lib/components/right-modal/right-modal.component.mjs +0 -234
- package/esm2022/lib/components/sidebar/sidebar.component.mjs +0 -155
- package/esm2022/lib/components/status/status.component.mjs +0 -50
- package/esm2022/lib/components/tab/tab.component.mjs +0 -151
- package/esm2022/lib/components/table/table.component.mjs +0 -503
- package/esm2022/lib/components/toggle/toggle.component.mjs +0 -126
- package/esm2022/lib/pecb-components.module.mjs +0 -118
- package/esm2022/lib/services/loading.service.mjs +0 -182
- package/esm2022/lib/services/notification.service.mjs +0 -144
- package/esm2022/lib/services/theme.service.mjs +0 -232
- package/esm2022/lib/shared/interfaces/component.interfaces.mjs +0 -2
- package/esm2022/lib/shared/types/common.types.mjs +0 -6
- package/esm2022/lib/shared/utils/accessibility.utils.mjs +0 -223
- package/esm2022/lib/shared/utils/dom.utils.mjs +0 -240
- package/esm2022/lib/shared/utils/error.utils.mjs +0 -277
- package/esm2022/lib/shared/utils/string.utils.mjs +0 -204
- package/esm2022/pecb-ui-components.mjs +0 -5
- package/esm2022/public-api.mjs +0 -53
- package/lib/components/button/button.component.d.ts +0 -130
- package/lib/components/card/card.component.d.ts +0 -140
- package/lib/components/checkbox/checkbox.component.d.ts +0 -74
- package/lib/components/datepicker/datepicker.component.d.ts +0 -155
- package/lib/components/dropdown/dropdown.component.d.ts +0 -144
- package/lib/components/input/input.component.d.ts +0 -215
- package/lib/components/pagination/pagination.component.d.ts +0 -53
- package/lib/components/radio/radio.component.d.ts +0 -93
- package/lib/components/right-modal/right-modal.component.d.ts +0 -137
- package/lib/components/sidebar/sidebar.component.d.ts +0 -97
- package/lib/components/status/status.component.d.ts +0 -19
- package/lib/components/tab/tab.component.d.ts +0 -102
- package/lib/components/table/table.component.d.ts +0 -403
- package/lib/components/toggle/toggle.component.d.ts +0 -74
- package/lib/pecb-components.module.d.ts +0 -37
- package/lib/services/loading.service.d.ts +0 -129
- package/lib/services/notification.service.d.ts +0 -136
- package/lib/services/theme.service.d.ts +0 -142
- package/lib/shared/interfaces/component.interfaces.d.ts +0 -283
- package/lib/shared/types/common.types.d.ts +0 -86
- package/lib/shared/utils/accessibility.utils.d.ts +0 -167
- package/lib/shared/utils/dom.utils.d.ts +0 -108
- package/lib/shared/utils/error.utils.d.ts +0 -191
- package/lib/shared/utils/string.utils.d.ts +0 -144
- package/public-api.d.ts +0 -24
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* String utility functions for PECB UI Components
|
|
3
|
-
* @module utils/string
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Convert a string to kebab-case
|
|
7
|
-
* @param str - The string to convert
|
|
8
|
-
* @returns The kebab-case string
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* toKebabCase('myComponentName') // 'my-component-name'
|
|
12
|
-
* toKebabCase('MyComponentName') // 'my-component-name'
|
|
13
|
-
*/
|
|
14
|
-
export function toKebabCase(str) {
|
|
15
|
-
return str
|
|
16
|
-
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
17
|
-
.replace(/[\s_]+/g, '-')
|
|
18
|
-
.toLowerCase();
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Convert a string to camelCase
|
|
22
|
-
* @param str - The string to convert
|
|
23
|
-
* @returns The camelCase string
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* toCamelCase('my-component-name') // 'myComponentName'
|
|
27
|
-
* toCamelCase('my_component_name') // 'myComponentName'
|
|
28
|
-
*/
|
|
29
|
-
export function toCamelCase(str) {
|
|
30
|
-
return str
|
|
31
|
-
.replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))
|
|
32
|
-
.replace(/^[A-Z]/, char => char.toLowerCase());
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Convert a string to PascalCase
|
|
36
|
-
* @param str - The string to convert
|
|
37
|
-
* @returns The PascalCase string
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* toPascalCase('my-component-name') // 'MyComponentName'
|
|
41
|
-
*/
|
|
42
|
-
export function toPascalCase(str) {
|
|
43
|
-
const camel = toCamelCase(str);
|
|
44
|
-
return camel.charAt(0).toUpperCase() + camel.slice(1);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Convert a string to snake_case
|
|
48
|
-
* @param str - The string to convert
|
|
49
|
-
* @returns The snake_case string
|
|
50
|
-
*
|
|
51
|
-
* @example
|
|
52
|
-
* toSnakeCase('myComponentName') // 'my_component_name'
|
|
53
|
-
*/
|
|
54
|
-
export function toSnakeCase(str) {
|
|
55
|
-
return toKebabCase(str).replace(/-/g, '_');
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Capitalize the first letter of a string
|
|
59
|
-
* @param str - The string to capitalize
|
|
60
|
-
* @returns The capitalized string
|
|
61
|
-
*
|
|
62
|
-
* @example
|
|
63
|
-
* capitalize('hello world') // 'Hello world'
|
|
64
|
-
*/
|
|
65
|
-
export function capitalize(str) {
|
|
66
|
-
if (!str)
|
|
67
|
-
return str;
|
|
68
|
-
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Truncate a string to a specified length
|
|
72
|
-
* @param str - The string to truncate
|
|
73
|
-
* @param maxLength - Maximum length
|
|
74
|
-
* @param suffix - Suffix to append when truncated (default: '...')
|
|
75
|
-
* @returns The truncated string
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* truncate('Hello World', 8) // 'Hello...'
|
|
79
|
-
* truncate('Hello World', 8, '…') // 'Hello W…'
|
|
80
|
-
*/
|
|
81
|
-
export function truncate(str, maxLength, suffix = '...') {
|
|
82
|
-
if (!str || str.length <= maxLength)
|
|
83
|
-
return str;
|
|
84
|
-
return str.slice(0, maxLength - suffix.length) + suffix;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Check if a string is empty or contains only whitespace
|
|
88
|
-
* @param str - The string to check
|
|
89
|
-
* @returns True if the string is empty or whitespace
|
|
90
|
-
*
|
|
91
|
-
* @example
|
|
92
|
-
* isBlank('') // true
|
|
93
|
-
* isBlank(' ') // true
|
|
94
|
-
* isBlank('hello') // false
|
|
95
|
-
*/
|
|
96
|
-
export function isBlank(str) {
|
|
97
|
-
return !str || str.trim().length === 0;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Check if a string is not empty and contains non-whitespace characters
|
|
101
|
-
* @param str - The string to check
|
|
102
|
-
* @returns True if the string is not empty
|
|
103
|
-
*/
|
|
104
|
-
export function isNotBlank(str) {
|
|
105
|
-
return !isBlank(str);
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Generate a slug from a string (URL-friendly)
|
|
109
|
-
* @param str - The string to convert
|
|
110
|
-
* @returns URL-friendly slug
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* slugify('Hello World!') // 'hello-world'
|
|
114
|
-
* slugify('Café Latte') // 'cafe-latte'
|
|
115
|
-
*/
|
|
116
|
-
export function slugify(str) {
|
|
117
|
-
return str
|
|
118
|
-
.toLowerCase()
|
|
119
|
-
.normalize('NFD')
|
|
120
|
-
.replace(/[\u0300-\u036f]/g, '') // Remove diacritics
|
|
121
|
-
.replace(/[^a-z0-9\s-]/g, '') // Remove non-alphanumeric
|
|
122
|
-
.replace(/[\s_]+/g, '-') // Replace spaces with hyphens
|
|
123
|
-
.replace(/-+/g, '-') // Remove consecutive hyphens
|
|
124
|
-
.replace(/^-|-$/g, ''); // Trim hyphens from ends
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Escape HTML special characters
|
|
128
|
-
* @param str - The string to escape
|
|
129
|
-
* @returns The escaped string
|
|
130
|
-
*
|
|
131
|
-
* @example
|
|
132
|
-
* escapeHtml('<script>alert("XSS")</script>') // '<script>alert("XSS")</script>'
|
|
133
|
-
*/
|
|
134
|
-
export function escapeHtml(str) {
|
|
135
|
-
const htmlEscapes = {
|
|
136
|
-
'&': '&',
|
|
137
|
-
'<': '<',
|
|
138
|
-
'>': '>',
|
|
139
|
-
'"': '"',
|
|
140
|
-
"'": '''
|
|
141
|
-
};
|
|
142
|
-
return str.replace(/[&<>"']/g, char => htmlEscapes[char]);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Strip HTML tags from a string
|
|
146
|
-
* @param str - The string containing HTML
|
|
147
|
-
* @returns The string without HTML tags
|
|
148
|
-
*
|
|
149
|
-
* @example
|
|
150
|
-
* stripHtml('<p>Hello <strong>World</strong></p>') // 'Hello World'
|
|
151
|
-
*/
|
|
152
|
-
export function stripHtml(str) {
|
|
153
|
-
return str.replace(/<[^>]*>/g, '');
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Generate initials from a name
|
|
157
|
-
* @param name - The name to extract initials from
|
|
158
|
-
* @param maxLength - Maximum number of initials (default: 2)
|
|
159
|
-
* @returns The initials in uppercase
|
|
160
|
-
*
|
|
161
|
-
* @example
|
|
162
|
-
* getInitials('John Doe') // 'JD'
|
|
163
|
-
* getInitials('John Michael Doe', 3) // 'JMD'
|
|
164
|
-
*/
|
|
165
|
-
export function getInitials(name, maxLength = 2) {
|
|
166
|
-
if (!name)
|
|
167
|
-
return '';
|
|
168
|
-
return name
|
|
169
|
-
.split(/\s+/)
|
|
170
|
-
.filter(Boolean)
|
|
171
|
-
.slice(0, maxLength)
|
|
172
|
-
.map(word => word.charAt(0).toUpperCase())
|
|
173
|
-
.join('');
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Pluralize a word based on count
|
|
177
|
-
* @param count - The count to check
|
|
178
|
-
* @param singular - Singular form
|
|
179
|
-
* @param plural - Plural form (optional, defaults to singular + 's')
|
|
180
|
-
* @returns The appropriate form of the word
|
|
181
|
-
*
|
|
182
|
-
* @example
|
|
183
|
-
* pluralize(1, 'item') // 'item'
|
|
184
|
-
* pluralize(5, 'item') // 'items'
|
|
185
|
-
* pluralize(2, 'child', 'children') // 'children'
|
|
186
|
-
*/
|
|
187
|
-
export function pluralize(count, singular, plural) {
|
|
188
|
-
return count === 1 ? singular : (plural ?? `${singular}s`);
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Format a number as a string with count and pluralized label
|
|
192
|
-
* @param count - The count
|
|
193
|
-
* @param singular - Singular form of the label
|
|
194
|
-
* @param plural - Plural form (optional)
|
|
195
|
-
* @returns Formatted string like "5 items"
|
|
196
|
-
*
|
|
197
|
-
* @example
|
|
198
|
-
* formatCount(1, 'item') // '1 item'
|
|
199
|
-
* formatCount(5, 'item') // '5 items'
|
|
200
|
-
*/
|
|
201
|
-
export function formatCount(count, singular, plural) {
|
|
202
|
-
return `${count} ${pluralize(count, singular, plural)}`;
|
|
203
|
-
}
|
|
204
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC91dGlscy9zdHJpbmcudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVc7SUFDckMsT0FBTyxHQUFHO1NBQ1AsT0FBTyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQztTQUNuQyxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQztTQUN2QixXQUFXLEVBQUUsQ0FBQztBQUNuQixDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVc7SUFDckMsT0FBTyxHQUFHO1NBQ1AsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBVztJQUN0QyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVc7SUFDckMsT0FBTyxXQUFXLENBQUMs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LENBQUMsQ0FBQztBQUNkLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBYSxFQUFFLFFBQWdCLEVBQUUsTUFBZTtJQUN4RSxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxNQUFlO0lBQzFFLE9BQU8sR0FBRyxLQUFLLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFN0cmluZyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgUEVDQiBVSSBDb21wb25lbnRzXHJcbiAqIEBtb2R1bGUgdXRpbHMvc3RyaW5nXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8ga2ViYWItY2FzZVxyXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBjb252ZXJ0XHJcbiAqIEByZXR1cm5zIFRoZSBrZWJhYi1jYXNlIHN0cmluZ1xyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiB0b0tlYmFiQ2FzZSgnbXlDb21wb25lbnROYW1lJykgLy8gJ215LWNvbXBvbmVudC1uYW1lJ1xyXG4gKiB0b0tlYmFiQ2FzZSgnTXlDb21wb25lbnROYW1lJykgLy8gJ215LWNvbXBvbmVudC1uYW1lJ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvS2ViYWJDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gc3RyXHJcbiAgICAucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywgJyQxLSQyJylcclxuICAgIC5yZXBsYWNlKC9bXFxzX10rL2csICctJylcclxuICAgIC50b0xvd2VyQ2FzZSgpO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCBhIHN0cmluZyB0byBjYW1lbENhc2VcclxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY29udmVydFxyXG4gKiBAcmV0dXJucyBUaGUgY2FtZWxDYXNlIHN0cmluZ1xyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiB0b0NhbWVsQ2FzZSgnbXktY29tcG9uZW50LW5hbWUnKSAvLyAnbXlDb21wb25lbnROYW1lJ1xyXG4gKiB0b0NhbWVsQ2FzZSgnbXlfY29tcG9uZW50X25hbWUnKSAvLyAnbXlDb21wb25lbnROYW1lJ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvQ2FtZWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gc3RyXHJcbiAgICAucmVwbGFjZSgvWy1fXFxzXSsoLik/L2csIChfLCBjaGFyKSA9PiAoY2hhciA/IGNoYXIudG9VcHBlckNhc2UoKSA6ICcnKSlcclxuICAgIC5yZXBsYWNlKC9eW0EtWl0vLCBjaGFyID0+IGNoYXIudG9Mb3dlckNhc2UoKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIFBhc2NhbENhc2VcclxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY29udmVydFxyXG4gKiBAcmV0dXJucyBUaGUgUGFzY2FsQ2FzZSBzdHJpbmdcclxuICpcclxuICogQGV4YW1wbGVcclxuICogdG9QYXNjYWxDYXNlKCdteS1jb21wb25lbnQtbmFtZScpIC8vICdNeUNvbXBvbmVudE5hbWUnXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9QYXNjYWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICBjb25zdCBjYW1lbCA9IHRvQ2FtZWxDYXNlKHN0cik7XHJcbiAgcmV0dXJuIGNhbWVsLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgY2FtZWwuc2xpY2UoMSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHNuYWtlX2Nhc2VcclxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY29udmVydFxyXG4gKiBAcmV0dXJucyBUaGUgc25ha2VfY2FzZSBzdHJpbmdcclxuICpcclxuICogQGV4YW1wbGVcclxuICogdG9TbmFrZUNhc2UoJ215Q29tcG9uZW50TmFtZScpIC8vICdteV9jb21wb25lbnRfbmFtZSdcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b1NuYWtlQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHRvS2ViYWJDYXNlKHN0cikucmVwbGFjZSgvLS9nLCAnXycpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXHJcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemVcclxuICogQHJldHVybnMgVGhlIGNhcGl0YWxpemVkIHN0cmluZ1xyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBjYXBpdGFsaXplKCdoZWxsbyB3b3JsZCcpIC8vICdIZWxsbyB3b3JsZCdcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAoIXN0cikgcmV0dXJuIHN0cjtcclxuICByZXR1cm4gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpO1xyXG59XHJcblxyXG4vKipcclxuICogVHJ1bmNhdGUgYSBzdHJpbmcgdG8gYSBzcGVjaWZpZWQgbGVuZ3RoXHJcbiAqIEBwYXJhbSBzdHIgLSBUaGUgc3RyaW5nIHRvIHRydW5jYXRlXHJcbiAqIEBwYXJhbSBtYXhMZW5ndGggLSBNYXhpbXVtIGxlbmd0aFxyXG4gKiBAcGFyYW0gc3VmZml4IC0gU3VmZml4IHRvIGFwcGVuZCB3aGVuIHRydW5jYXRlZCAoZGVmYXVsdDogJy4uLicpXHJcbiAqIEByZXR1cm5zIFRoZSB0cnVuY2F0ZWQgc3RyaW5nXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIHRydW5jYXRlKCdIZWxsbyBXb3JsZCcsIDgpIC8vICdIZWxsby4uLidcclxuICogdHJ1bmNhdGUoJ0hlbGxvIFdvcmxkJywgOCwgJ+KApicpIC8vICdIZWxsbyBX4oCmJ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRydW5jYXRlKHN0cjogc3RyaW5nLCBtYXhMZW5ndGg6IG51bWJlciwgc3VmZml4ID0gJy4uLicpOiBzdHJpbmcge1xyXG4gIGlmICghc3RyIHx8IHN0ci5sZW5ndGggPD0gbWF4TGVuZ3RoKSByZXR1cm4gc3RyO1xyXG4gIHJldHVybiBzdHIuc2xpY2UoMCwgbWF4TGVuZ3RoIC0gc3VmZml4Lmxlbmd0aCkgKyBzdWZmaXg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhIHN0cmluZyBpcyBlbXB0eSBvciBjb250YWlucyBvbmx5IHdoaXRlc3BhY2VcclxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIGVtcHR5IG9yIHdoaXRlc3BhY2VcclxuICpcclxuICogQGV4YW1wbGVcclxuICogaXNCbGFuaygnJykgLy8gdHJ1ZVxyXG4gKiBpc0JsYW5rKCcgICcpIC8vIHRydWVcclxuICogaXNCbGFuaygnaGVsbG8nKSAvLyBmYWxzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQmxhbmsoc3RyOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuICFzdHIgfHwgc3RyLnRyaW0oKS5sZW5ndGggPT09IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhIHN0cmluZyBpcyBub3QgZW1wdHkgYW5kIGNvbnRhaW5zIG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnNcclxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gY2hlY2tcclxuICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIG5vdCBlbXB0eVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTm90Qmxhbmsoc3RyOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyIGlzIHN0cmluZyB7XHJcbiAgcmV0dXJuICFpc0JsYW5rKHN0cik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSBhIHNsdWcgZnJvbSBhIHN0cmluZyAoVVJMLWZyaWVuZGx5KVxyXG4gKiBAcGFyYW0gc3RyIC0gVGhlIHN0cmluZyB0byBjb252ZXJ0XHJcbiAqIEByZXR1cm5zIFVSTC1mcmllbmRseSBzbHVnXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIHNsdWdpZnkoJ0hlbGxvIFdvcmxkIScpIC8vICdoZWxsby13b3JsZCdcclxuICogc2x1Z2lmeSgnQ2Fmw6kgTGF0dGUnKSAvLyAnY2FmZS1sYXR0ZSdcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzbHVnaWZ5KHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gc3RyXHJcbiAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgLm5vcm1hbGl6ZSgnTkZEJylcclxuICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJykgLy8gUmVtb3ZlIGRpYWNyaXRpY3NcclxuICAgIC5yZXBsYWNlKC9bXmEtejAtOVxccy1dL2csICcnKSAvLyBSZW1vdmUgbm9uLWFscGhhbnVtZXJpY1xyXG4gICAgLnJlcGxhY2UoL1tcXHNfXSsvZywgJy0nKSAvLyBSZXBsYWNlIHNwYWNlcyB3aXRoIGh5cGhlbnNcclxuICAgIC5yZXBsYWNlKC8tKy9nLCAnLScpIC8vIFJlbW92ZSBjb25zZWN1dGl2ZSBoeXBoZW5zXHJcbiAgICAucmVwbGFjZSgvXi18LSQvZywgJycpOyAvLyBUcmltIGh5cGhlbnMgZnJvbSBlbmRzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFc2NhcGUgSFRNTCBzcGVjaWFsIGNoYXJhY3RlcnNcclxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgdG8gZXNjYXBlXHJcbiAqIEByZXR1cm5zIFRoZSBlc2NhcGVkIHN0cmluZ1xyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBlc2NhcGVIdG1sKCc8c2NyaXB0PmFsZXJ0KFwiWFNTXCIpPC9zY3JpcHQ+JykgLy8gJyZsdDtzY3JpcHQmZ3Q7YWxlcnQoJnF1b3Q7WFNTJnF1b3Q7KSZsdDsvc2NyaXB0Jmd0OydcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVIdG1sKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICBjb25zdCBodG1sRXNjYXBlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcclxuICAgICcmJzogJyZhbXA7JyxcclxuICAgICc8JzogJyZsdDsnLFxyXG4gICAgJz4nOiAnJmd0OycsXHJcbiAgICAnXCInOiAnJnF1b3Q7JyxcclxuICAgIFwiJ1wiOiAnJiMzOTsnXHJcbiAgfTtcclxuICByZXR1cm4gc3RyLnJlcGxhY2UoL1smPD5cIiddL2csIGNoYXIgPT4gaHRtbEVzY2FwZXNbY2hhcl0pO1xyXG59XHJcblxyXG4vKipcclxuICogU3RyaXAgSFRNTCB0YWdzIGZyb20gYSBzdHJpbmdcclxuICogQHBhcmFtIHN0ciAtIFRoZSBzdHJpbmcgY29udGFpbmluZyBIVE1MXHJcbiAqIEByZXR1cm5zIFRoZSBzdHJpbmcgd2l0aG91dCBIVE1MIHRhZ3NcclxuICpcclxuICogQGV4YW1wbGVcclxuICogc3RyaXBIdG1sKCc8cD5IZWxsbyA8c3Ryb25nPldvcmxkPC9zdHJvbmc+PC9wPicpIC8vICdIZWxsbyBXb3JsZCdcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzdHJpcEh0bWwoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiBzdHIucmVwbGFjZSgvPFtePl0qPi9nLCAnJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZW5lcmF0ZSBpbml0aWFscyBmcm9tIGEgbmFtZVxyXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIHRvIGV4dHJhY3QgaW5pdGlhbHMgZnJvbVxyXG4gKiBAcGFyYW0gbWF4TGVuZ3RoIC0gTWF4aW11bSBudW1iZXIgb2YgaW5pdGlhbHMgKGRlZmF1bHQ6IDIpXHJcbiAqIEByZXR1cm5zIFRoZSBpbml0aWFscyBpbiB1cHBlcmNhc2VcclxuICpcclxuICogQGV4YW1wbGVcclxuICogZ2V0SW5pdGlhbHMoJ0pvaG4gRG9lJykgLy8gJ0pEJ1xyXG4gKiBnZXRJbml0aWFscygnSm9obiBNaWNoYWVsIERvZScsIDMpIC8vICdKTUQnXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbHMobmFtZTogc3RyaW5nLCBtYXhMZW5ndGggPSAyKTogc3RyaW5nIHtcclxuICBpZiAoIW5hbWUpIHJldHVybiAnJztcclxuXHJcbiAgcmV0dXJuIG5hbWVcclxuICAgIC5zcGxpdCgvXFxzKy8pXHJcbiAgICAuZmlsdGVyKEJvb2xlYW4pXHJcbiAgICAuc2xpY2UoMCwgbWF4TGVuZ3RoKVxyXG4gICAgLm1hcCh3b3JkID0+IHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkpXHJcbiAgICAuam9pbignJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQbHVyYWxpemUgYSB3b3JkIGJhc2VkIG9uIGNvdW50XHJcbiAqIEBwYXJhbSBjb3VudCAtIFRoZSBjb3VudCB0byBjaGVja1xyXG4gKiBAcGFyYW0gc2luZ3VsYXIgLSBTaW5ndWxhciBmb3JtXHJcbiAqIEBwYXJhbSBwbHVyYWwgLSBQbHVyYWwgZm9ybSAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIHNpbmd1bGFyICsgJ3MnKVxyXG4gKiBAcmV0dXJucyBUaGUgYXBwcm9wcmlhdGUgZm9ybSBvZiB0aGUgd29yZFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBwbHVyYWxpemUoMSwgJ2l0ZW0nKSAvLyAnaXRlbSdcclxuICogcGx1cmFsaXplKDUsICdpdGVtJykgLy8gJ2l0ZW1zJ1xyXG4gKiBwbHVyYWxpemUoMiwgJ2NoaWxkJywgJ2NoaWxkcmVuJykgLy8gJ2NoaWxkcmVuJ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBsdXJhbGl6ZShjb3VudDogbnVtYmVyLCBzaW5ndWxhcjogc3RyaW5nLCBwbHVyYWw/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiBjb3VudCA9PT0gMSA/IHNpbmd1bGFyIDogKHBsdXJhbCA/PyBgJHtzaW5ndWxhcn1zYCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXQgYSBudW1iZXIgYXMgYSBzdHJpbmcgd2l0aCBjb3VudCBhbmQgcGx1cmFsaXplZCBsYWJlbFxyXG4gKiBAcGFyYW0gY291bnQgLSBUaGUgY291bnRcclxuICogQHBhcmFtIHNpbmd1bGFyIC0gU2luZ3VsYXIgZm9ybSBvZiB0aGUgbGFiZWxcclxuICogQHBhcmFtIHBsdXJhbCAtIFBsdXJhbCBmb3JtIChvcHRpb25hbClcclxuICogQHJldHVybnMgRm9ybWF0dGVkIHN0cmluZyBsaWtlIFwiNSBpdGVtc1wiXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGZvcm1hdENvdW50KDEsICdpdGVtJykgLy8gJzEgaXRlbSdcclxuICogZm9ybWF0Q291bnQoNSwgJ2l0ZW0nKSAvLyAnNSBpdGVtcydcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDb3VudChjb3VudDogbnVtYmVyLCBzaW5ndWxhcjogc3RyaW5nLCBwbHVyYWw/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgJHtjb3VudH0gJHtwbHVyYWxpemUoY291bnQsIHNpbmd1bGFyLCBwbHVyYWwpfWA7XHJcbn1cclxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVjYi11aS1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdWktY29tcG9uZW50cy9zcmMvcGVjYi11aS1jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of @pecb-ui/components
|
|
3
|
-
*
|
|
4
|
-
* This file defines the public API of the library.
|
|
5
|
-
* Only exports from this file will be accessible to consumers.
|
|
6
|
-
*/
|
|
7
|
-
// =============================================================================
|
|
8
|
-
// MODULE
|
|
9
|
-
// =============================================================================
|
|
10
|
-
export * from './lib/pecb-components.module';
|
|
11
|
-
// =============================================================================
|
|
12
|
-
// COMPONENTS
|
|
13
|
-
// =============================================================================
|
|
14
|
-
export * from './lib/components/button/button.component';
|
|
15
|
-
export * from './lib/components/card/card.component';
|
|
16
|
-
export * from './lib/components/status/status.component';
|
|
17
|
-
export * from './lib/components/pagination/pagination.component';
|
|
18
|
-
export * from './lib/components/table/table.component';
|
|
19
|
-
export * from './lib/components/tab/tab.component';
|
|
20
|
-
export * from './lib/components/datepicker/datepicker.component';
|
|
21
|
-
export * from './lib/components/input/input.component';
|
|
22
|
-
export * from './lib/components/radio/radio.component';
|
|
23
|
-
export * from './lib/components/checkbox/checkbox.component';
|
|
24
|
-
export * from './lib/components/toggle/toggle.component';
|
|
25
|
-
export * from './lib/components/dropdown/dropdown.component';
|
|
26
|
-
export * from './lib/components/right-modal/right-modal.component';
|
|
27
|
-
export * from './lib/components/sidebar/sidebar.component';
|
|
28
|
-
// =============================================================================
|
|
29
|
-
// SERVICES
|
|
30
|
-
// =============================================================================
|
|
31
|
-
export * from './lib/services/notification.service';
|
|
32
|
-
export * from './lib/services/theme.service';
|
|
33
|
-
export * from './lib/services/loading.service';
|
|
34
|
-
// =============================================================================
|
|
35
|
-
// SHARED TYPES
|
|
36
|
-
// =============================================================================
|
|
37
|
-
export * from './lib/shared/types/common.types';
|
|
38
|
-
// =============================================================================
|
|
39
|
-
// SHARED INTERFACES
|
|
40
|
-
// =============================================================================
|
|
41
|
-
export * from './lib/shared/interfaces/component.interfaces';
|
|
42
|
-
// =============================================================================
|
|
43
|
-
// SHARED UTILITIES
|
|
44
|
-
// =============================================================================
|
|
45
|
-
// String utilities
|
|
46
|
-
export { toKebabCase, toCamelCase, toPascalCase, toSnakeCase, capitalize, truncate, isBlank, isNotBlank, slugify, escapeHtml, stripHtml, getInitials, pluralize, formatCount } from './lib/shared/utils/string.utils';
|
|
47
|
-
// DOM utilities
|
|
48
|
-
export { isBrowser, generateUniqueId, matchesSelector, closestElement, isElementVisible, getFocusableElements, trapFocus, scrollIntoView, getScrollParent, disableBodyScroll, copyToClipboard, hasClass, addClass, removeClass, toggleClass, getComputedStyleValue } from './lib/shared/utils/dom.utils';
|
|
49
|
-
// Accessibility utilities
|
|
50
|
-
export { getButtonAriaAttributes, getDialogAriaAttributes, getInputAriaAttributes, getProgressAriaAttributes, getTabAriaAttributes, getOptionAriaAttributes, generateLinkedIds, getVisuallyHiddenStyles, prefersReducedMotion, prefersHighContrast, announceToScreenReader, getAriaCurrent } from './lib/shared/utils/accessibility.utils';
|
|
51
|
-
// Error handling utilities
|
|
52
|
-
export { createError, createValidationError, wrapError, isPecbError, isRecoverableError, formatErrorMessage, formatErrorForLog, createNetworkError, createAuthError, createAuthorizationError, createConfigError, registerErrorHandler, handleError, tryAsync, trySync } from './lib/shared/utils/error.utils';
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxnRkFBZ0Y7QUFDaEYsU0FBUztBQUNULGdGQUFnRjtBQUNoRixjQUFjLDhCQUE4QixDQUFDO0FBRTdDLGdGQUFnRjtBQUNoRixhQUFhO0FBQ2IsZ0ZBQWdGO0FBQ2hGLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxnRkFBZ0Y7QUFDaEYsV0FBVztBQUNYLGdGQUFnRjtBQUNoRixjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxnRkFBZ0Y7QUFDaEYsZUFBZTtBQUNmLGdGQUFnRjtBQUNoRixjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGdGQUFnRjtBQUNoRixvQkFBb0I7QUFDcEIsZ0ZBQWdGO0FBQ2hGLGNBQWMsOENBQThDLENBQUM7QUFFN0QsZ0ZBQWdGO0FBQ2hGLG1CQUFtQjtBQUNuQixnRkFBZ0Y7QUFFaEYsbUJBQW1CO0FBQ25CLE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFlBQVksRUFDWixXQUFXLEVBQ1gsVUFBVSxFQUNWLFFBQVEsRUFDUixPQUFPLEVBQ1AsVUFBVSxFQUNWLE9BQU8sRUFDUCxVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsV0FBVyxFQUNaLE1BQU0saUNBQWlDLENBQUM7QUFFekMsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsY0FBYyxFQUNkLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLFFBQVEsRUFDUixRQUFRLEVBQ1IsV0FBVyxFQUNYLFdBQVcsRUFDWCxxQkFBcUIsRUFDdEIsTUFBTSw4QkFBOEIsQ0FBQztBQUV0QywwQkFBMEI7QUFDMUIsT0FBTyxFQUlMLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdEIsY0FBYyxFQUNmLE1BQU0sd0NBQXdDLENBQUM7QUFFaEQsMkJBQTJCO0FBQzNCLE9BQU8sRUFPTCxXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsUUFBUSxFQUNSLE9BQU8sRUFDUixNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBwZWNiLXVpL2NvbXBvbmVudHNcclxuICpcclxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIHB1YmxpYyBBUEkgb2YgdGhlIGxpYnJhcnkuXHJcbiAqIE9ubHkgZXhwb3J0cyBmcm9tIHRoaXMgZmlsZSB3aWxsIGJlIGFjY2Vzc2libGUgdG8gY29uc3VtZXJzLlxyXG4gKi9cclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIE1PRFVMRVxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wZWNiLWNvbXBvbmVudHMubW9kdWxlJztcclxuXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vIENPTVBPTkVOVFNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RhdHVzL3N0YXR1cy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JpZ2h0LW1vZGFsL3JpZ2h0LW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2lkZWJhci9zaWRlYmFyLmNvbXBvbmVudCc7XHJcblxyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4vLyBTRVJWSUNFU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gU0hBUkVEIFRZUEVTXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC90eXBlcy9jb21tb24udHlwZXMnO1xyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gU0hBUkVEIElOVEVSRkFDRVNcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2ludGVyZmFjZXMvY29tcG9uZW50LmludGVyZmFjZXMnO1xyXG5cclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gU0hBUkVEIFVUSUxJVElFU1xyXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuLy8gU3RyaW5nIHV0aWxpdGllc1xyXG5leHBvcnQge1xyXG4gIHRvS2ViYWJDYXNlLFxyXG4gIHRvQ2FtZWxDYXNlLFxyXG4gIHRvUGFzY2FsQ2FzZSxcclxuICB0b1NuYWtlQ2FzZSxcclxuICBjYXBpdGFsaXplLFxyXG4gIHRydW5jYXRlLFxyXG4gIGlzQmxhbmssXHJcbiAgaXNOb3RCbGFuayxcclxuICBzbHVnaWZ5LFxyXG4gIGVzY2FwZUh0bWwsXHJcbiAgc3RyaXBIdG1sLFxyXG4gIGdldEluaXRpYWxzLFxyXG4gIHBsdXJhbGl6ZSxcclxuICBmb3JtYXRDb3VudFxyXG59IGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9zdHJpbmcudXRpbHMnO1xyXG5cclxuLy8gRE9NIHV0aWxpdGllc1xyXG5leHBvcnQge1xyXG4gIGlzQnJvd3NlcixcclxuICBnZW5lcmF0ZVVuaXF1ZUlkLFxyXG4gIG1hdGNoZXNTZWxlY3RvcixcclxuICBjbG9zZXN0RWxlbWVudCxcclxuICBpc0VsZW1lbnRWaXNpYmxlLFxyXG4gIGdldEZvY3VzYWJsZUVsZW1lbnRzLFxyXG4gIHRyYXBGb2N1cyxcclxuICBzY3JvbGxJbnRvVmlldyxcclxuICBnZXRTY3JvbGxQYXJlbnQsXHJcbiAgZGlzYWJsZUJvZHlTY3JvbGwsXHJcbiAgY29weVRvQ2xpcGJvYXJkLFxyXG4gIGhhc0NsYXNzLFxyXG4gIGFkZENsYXNzLFxyXG4gIHJlbW92ZUNsYXNzLFxyXG4gIHRvZ2dsZUNsYXNzLFxyXG4gIGdldENvbXB1dGVkU3R5bGVWYWx1ZVxyXG59IGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9kb20udXRpbHMnO1xyXG5cclxuLy8gQWNjZXNzaWJpbGl0eSB1dGlsaXRpZXNcclxuZXhwb3J0IHtcclxuICBBcmlhTGl2ZSxcclxuICBBcmlhUm9sZSxcclxuICBBcmlhQXR0cmlidXRlcyxcclxuICBnZXRCdXR0b25BcmlhQXR0cmlidXRlcyxcclxuICBnZXREaWFsb2dBcmlhQXR0cmlidXRlcyxcclxuICBnZXRJbnB1dEFyaWFBdHRyaWJ1dGVzLFxyXG4gIGdldFByb2dyZXNzQXJpYUF0dHJpYnV0ZXMsXHJcbiAgZ2V0VGFiQXJpYUF0dHJpYnV0ZXMsXHJcbiAgZ2V0T3B0aW9uQXJpYUF0dHJpYnV0ZXMsXHJcbiAgZ2VuZXJhdGVMaW5rZWRJZHMsXHJcbiAgZ2V0VmlzdWFsbHlIaWRkZW5TdHlsZXMsXHJcbiAgcHJlZmVyc1JlZHVjZWRNb3Rpb24sXHJcbiAgcHJlZmVyc0hpZ2hDb250cmFzdCxcclxuICBhbm5vdW5jZVRvU2NyZWVuUmVhZGVyLFxyXG4gIGdldEFyaWFDdXJyZW50XHJcbn0gZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2FjY2Vzc2liaWxpdHkudXRpbHMnO1xyXG5cclxuLy8gRXJyb3IgaGFuZGxpbmcgdXRpbGl0aWVzXHJcbmV4cG9ydCB7XHJcbiAgRXJyb3JTZXZlcml0eSxcclxuICBFcnJvckNhdGVnb3J5LFxyXG4gIFBlY2JFcnJvcixcclxuICBWYWxpZGF0aW9uRXJyb3IsXHJcbiAgRXJyb3JPcHRpb25zLFxyXG4gIEVycm9ySGFuZGxlcixcclxuICBjcmVhdGVFcnJvcixcclxuICBjcmVhdGVWYWxpZGF0aW9uRXJyb3IsXHJcbiAgd3JhcEVycm9yLFxyXG4gIGlzUGVjYkVycm9yLFxyXG4gIGlzUmVjb3ZlcmFibGVFcnJvcixcclxuICBmb3JtYXRFcnJvck1lc3NhZ2UsXHJcbiAgZm9ybWF0RXJyb3JGb3JMb2csXHJcbiAgY3JlYXRlTmV0d29ya0Vycm9yLFxyXG4gIGNyZWF0ZUF1dGhFcnJvcixcclxuICBjcmVhdGVBdXRob3JpemF0aW9uRXJyb3IsXHJcbiAgY3JlYXRlQ29uZmlnRXJyb3IsXHJcbiAgcmVnaXN0ZXJFcnJvckhhbmRsZXIsXHJcbiAgaGFuZGxlRXJyb3IsXHJcbiAgdHJ5QXN5bmMsXHJcbiAgdHJ5U3luY1xyXG59IGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9lcnJvci51dGlscyc7XHJcbiJdfQ==
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export type ButtonVariant = 'primary' | 'primary-outline' | 'primary-2' | 'primary-2-outline' | 'neutral' | 'neutral-outline' | 'secondary' | 'text' | 'destructive' | 'destructive-outline';
|
|
4
|
-
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
5
|
-
export type ButtonIconStyle = 'none' | 'leading' | 'trailing' | 'icon-only';
|
|
6
|
-
/**
|
|
7
|
-
* A professional button component with multiple variants and sizes.
|
|
8
|
-
* Fully accessible with WCAG 2.1 AA compliance.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```html
|
|
12
|
-
* <pecb-button variant="primary" size="md" (clicked)="handleClick()">
|
|
13
|
-
* Click me
|
|
14
|
-
* </pecb-button>
|
|
15
|
-
*
|
|
16
|
-
* <!-- With leading icon -->
|
|
17
|
-
* <pecb-button variant="primary" iconStyle="leading" icon="+">
|
|
18
|
-
* Add Item
|
|
19
|
-
* </pecb-button>
|
|
20
|
-
*
|
|
21
|
-
* <!-- Icon only button -->
|
|
22
|
-
* <pecb-button variant="secondary" iconStyle="icon-only" icon="+" ariaLabel="Add item"></pecb-button>
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @publicApi
|
|
26
|
-
*/
|
|
27
|
-
export declare class ButtonComponent {
|
|
28
|
-
/**
|
|
29
|
-
* Unique ID for the button element
|
|
30
|
-
*/
|
|
31
|
-
id: string;
|
|
32
|
-
/**
|
|
33
|
-
* The visual style variant of the button
|
|
34
|
-
*/
|
|
35
|
-
variant: ButtonVariant;
|
|
36
|
-
/**
|
|
37
|
-
* The size of the button
|
|
38
|
-
*/
|
|
39
|
-
size: ButtonSize;
|
|
40
|
-
/**
|
|
41
|
-
* Icon placement style
|
|
42
|
-
*/
|
|
43
|
-
iconStyle: ButtonIconStyle;
|
|
44
|
-
/**
|
|
45
|
-
* Icon to display (used with iconStyle)
|
|
46
|
-
*/
|
|
47
|
-
icon?: string;
|
|
48
|
-
/**
|
|
49
|
-
* Whether the button is disabled
|
|
50
|
-
*/
|
|
51
|
-
disabled: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Whether the button should take full width
|
|
54
|
-
*/
|
|
55
|
-
fullWidth: boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Whether the button is in loading state
|
|
58
|
-
*/
|
|
59
|
-
loading: boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Button type attribute
|
|
62
|
-
*/
|
|
63
|
-
type: 'button' | 'submit' | 'reset';
|
|
64
|
-
/**
|
|
65
|
-
* Accessible label for the button (required for icon-only buttons)
|
|
66
|
-
*/
|
|
67
|
-
ariaLabel?: string;
|
|
68
|
-
/**
|
|
69
|
-
* ID of element that labels this button
|
|
70
|
-
*/
|
|
71
|
-
ariaLabelledBy?: string;
|
|
72
|
-
/**
|
|
73
|
-
* ID of element that describes this button
|
|
74
|
-
*/
|
|
75
|
-
ariaDescribedBy?: string;
|
|
76
|
-
/**
|
|
77
|
-
* Indicates the button controls an expandable element
|
|
78
|
-
*/
|
|
79
|
-
ariaExpanded?: boolean;
|
|
80
|
-
/**
|
|
81
|
-
* Indicates the pressed state for toggle buttons
|
|
82
|
-
*/
|
|
83
|
-
ariaPressed?: boolean;
|
|
84
|
-
/**
|
|
85
|
-
* Indicates the button opens a popup (menu, listbox, dialog, etc.)
|
|
86
|
-
*/
|
|
87
|
-
ariaHasPopup?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';
|
|
88
|
-
/**
|
|
89
|
-
* ID of the element controlled by this button
|
|
90
|
-
*/
|
|
91
|
-
ariaControls?: string;
|
|
92
|
-
/**
|
|
93
|
-
* Event emitted when the button is clicked
|
|
94
|
-
*/
|
|
95
|
-
clicked: EventEmitter<MouseEvent>;
|
|
96
|
-
/**
|
|
97
|
-
* Host binding for the component's ID
|
|
98
|
-
*/
|
|
99
|
-
get hostId(): null;
|
|
100
|
-
/**
|
|
101
|
-
* Get CSS classes for the button
|
|
102
|
-
*/
|
|
103
|
-
get buttonClasses(): string[];
|
|
104
|
-
/**
|
|
105
|
-
* Check if we should show leading icon
|
|
106
|
-
*/
|
|
107
|
-
get showLeadingIcon(): boolean;
|
|
108
|
-
/**
|
|
109
|
-
* Check if we should show trailing icon
|
|
110
|
-
*/
|
|
111
|
-
get showTrailingIcon(): boolean;
|
|
112
|
-
/**
|
|
113
|
-
* Check if this is icon-only button
|
|
114
|
-
*/
|
|
115
|
-
get isIconOnly(): boolean;
|
|
116
|
-
/**
|
|
117
|
-
* Get the loading announcement text for screen readers
|
|
118
|
-
*/
|
|
119
|
-
get loadingText(): string;
|
|
120
|
-
/**
|
|
121
|
-
* Handle button click
|
|
122
|
-
*/
|
|
123
|
-
onClick(event: MouseEvent): void;
|
|
124
|
-
/**
|
|
125
|
-
* Handle keyboard events for accessibility
|
|
126
|
-
*/
|
|
127
|
-
onKeyDown(event: KeyboardEvent): void;
|
|
128
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
129
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "pecb-button", never, { "id": { "alias": "id"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "iconStyle": { "alias": "iconStyle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "type": { "alias": "type"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaPressed": { "alias": "ariaPressed"; "required": false; }; "ariaHasPopup": { "alias": "ariaHasPopup"; "required": false; }; "ariaControls": { "alias": "ariaControls"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
130
|
-
}
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export type CardElevation = 'none' | 'sm' | 'md' | 'lg' | 'xl';
|
|
3
|
-
/**
|
|
4
|
-
* Semantic role for the card component
|
|
5
|
-
*/
|
|
6
|
-
export type CardRole = 'article' | 'region' | 'group' | 'listitem' | 'none';
|
|
7
|
-
/**
|
|
8
|
-
* A professional card component for displaying content in a contained format.
|
|
9
|
-
* Fully accessible with WCAG 2.1 AA compliance.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```html
|
|
13
|
-
* <!-- Basic card -->
|
|
14
|
-
* <pecb-card elevation="md">
|
|
15
|
-
* <pecb-card-header>
|
|
16
|
-
* <h3>Card Title</h3>
|
|
17
|
-
* </pecb-card-header>
|
|
18
|
-
* <pecb-card-body>
|
|
19
|
-
* <p>Card content goes here</p>
|
|
20
|
-
* </pecb-card-body>
|
|
21
|
-
* </pecb-card>
|
|
22
|
-
*
|
|
23
|
-
* <!-- Accessible card with region role -->
|
|
24
|
-
* <pecb-card role="region" ariaLabel="Product Information">
|
|
25
|
-
* <pecb-card-body>
|
|
26
|
-
* <p>Product details...</p>
|
|
27
|
-
* </pecb-card-body>
|
|
28
|
-
* </pecb-card>
|
|
29
|
-
*
|
|
30
|
-
* <!-- Card as article -->
|
|
31
|
-
* <pecb-card role="article" ariaLabelledBy="article-title">
|
|
32
|
-
* <pecb-card-header>
|
|
33
|
-
* <h2 id="article-title">Article Headline</h2>
|
|
34
|
-
* </pecb-card-header>
|
|
35
|
-
* <pecb-card-body>
|
|
36
|
-
* <p>Article content...</p>
|
|
37
|
-
* </pecb-card-body>
|
|
38
|
-
* </pecb-card>
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* @publicApi
|
|
42
|
-
*/
|
|
43
|
-
export declare class CardComponent {
|
|
44
|
-
/**
|
|
45
|
-
* Unique ID for the card element
|
|
46
|
-
*/
|
|
47
|
-
id: string;
|
|
48
|
-
/**
|
|
49
|
-
* The elevation level (shadow depth) of the card
|
|
50
|
-
*/
|
|
51
|
-
elevation: CardElevation;
|
|
52
|
-
/**
|
|
53
|
-
* Whether the card should be hoverable with elevation change
|
|
54
|
-
*/
|
|
55
|
-
hoverable: boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Whether to add padding to the card
|
|
58
|
-
*/
|
|
59
|
-
noPadding: boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Semantic role for the card (article, region, group, listitem, or none)
|
|
62
|
-
* Use 'article' for self-contained content, 'region' for significant sections
|
|
63
|
-
*/
|
|
64
|
-
role: CardRole;
|
|
65
|
-
/**
|
|
66
|
-
* Accessible label for the card
|
|
67
|
-
*/
|
|
68
|
-
ariaLabel?: string;
|
|
69
|
-
/**
|
|
70
|
-
* ID of element that labels this card
|
|
71
|
-
*/
|
|
72
|
-
ariaLabelledBy?: string;
|
|
73
|
-
/**
|
|
74
|
-
* ID of element that describes this card
|
|
75
|
-
*/
|
|
76
|
-
ariaDescribedBy?: string;
|
|
77
|
-
/**
|
|
78
|
-
* Get CSS classes for the card
|
|
79
|
-
*/
|
|
80
|
-
get cardClasses(): string[];
|
|
81
|
-
/**
|
|
82
|
-
* Get the role attribute value
|
|
83
|
-
*/
|
|
84
|
-
get roleAttribute(): string | null;
|
|
85
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
|
|
86
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "pecb-card", never, { "id": { "alias": "id"; "required": false; }; "elevation": { "alias": "elevation"; "required": false; }; "hoverable": { "alias": "hoverable"; "required": false; }; "noPadding": { "alias": "noPadding"; "required": false; }; "role": { "alias": "role"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaDescribedBy": { "alias": "ariaDescribedBy"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Card header component for displaying title and actions.
|
|
90
|
-
*
|
|
91
|
-
* @example
|
|
92
|
-
* ```html
|
|
93
|
-
* <pecb-card-header>
|
|
94
|
-
* <h3>Card Title</h3>
|
|
95
|
-
* </pecb-card-header>
|
|
96
|
-
* ```
|
|
97
|
-
*
|
|
98
|
-
* @publicApi
|
|
99
|
-
*/
|
|
100
|
-
export declare class CardHeaderComponent {
|
|
101
|
-
/**
|
|
102
|
-
* Heading level for accessibility (1-6)
|
|
103
|
-
* Only used if the header content doesn't contain a heading element
|
|
104
|
-
*/
|
|
105
|
-
headingLevel: number | null;
|
|
106
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CardHeaderComponent, never>;
|
|
107
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CardHeaderComponent, "pecb-card-header", never, { "headingLevel": { "alias": "headingLevel"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Card body component for main content.
|
|
111
|
-
*
|
|
112
|
-
* @example
|
|
113
|
-
* ```html
|
|
114
|
-
* <pecb-card-body>
|
|
115
|
-
* <p>Card content goes here</p>
|
|
116
|
-
* </pecb-card-body>
|
|
117
|
-
* ```
|
|
118
|
-
*
|
|
119
|
-
* @publicApi
|
|
120
|
-
*/
|
|
121
|
-
export declare class CardBodyComponent {
|
|
122
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CardBodyComponent, never>;
|
|
123
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CardBodyComponent, "pecb-card-body", never, {}, {}, never, ["*"], true, never>;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Card footer component for actions and additional information.
|
|
127
|
-
*
|
|
128
|
-
* @example
|
|
129
|
-
* ```html
|
|
130
|
-
* <pecb-card-footer>
|
|
131
|
-
* <button>Action</button>
|
|
132
|
-
* </pecb-card-footer>
|
|
133
|
-
* ```
|
|
134
|
-
*
|
|
135
|
-
* @publicApi
|
|
136
|
-
*/
|
|
137
|
-
export declare class CardFooterComponent {
|
|
138
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CardFooterComponent, never>;
|
|
139
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CardFooterComponent, "pecb-card-footer", never, {}, {}, never, ["*"], true, never>;
|
|
140
|
-
}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, ChangeDetectorRef } from '@angular/core';
|
|
2
|
-
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export type CheckboxLabelPosition = 'right' | 'left';
|
|
5
|
-
/**
|
|
6
|
-
* A professional checkbox component with label and description support.
|
|
7
|
-
* Fully accessible with WCAG 2.1 AA compliance and reactive forms support.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```html
|
|
11
|
-
* <pecb-checkbox
|
|
12
|
-
* label="Accept terms"
|
|
13
|
-
* description="I agree to the terms and conditions"
|
|
14
|
-
* [(ngModel)]="accepted"
|
|
15
|
-
* ></pecb-checkbox>
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @publicApi
|
|
19
|
-
*/
|
|
20
|
-
export declare class CheckboxComponent implements ControlValueAccessor {
|
|
21
|
-
private cdr;
|
|
22
|
-
/**
|
|
23
|
-
* Unique ID for the checkbox element
|
|
24
|
-
*/
|
|
25
|
-
id: string;
|
|
26
|
-
/**
|
|
27
|
-
* Name attribute for the checkbox
|
|
28
|
-
*/
|
|
29
|
-
name?: string;
|
|
30
|
-
/**
|
|
31
|
-
* Label text to display
|
|
32
|
-
*/
|
|
33
|
-
label?: string;
|
|
34
|
-
/**
|
|
35
|
-
* Description text to display below label
|
|
36
|
-
*/
|
|
37
|
-
description?: string;
|
|
38
|
-
/**
|
|
39
|
-
* Position of the label relative to the checkbox control.
|
|
40
|
-
* 'right' (default): [checkbox] Title Description
|
|
41
|
-
* 'left': Title Description [checkbox]
|
|
42
|
-
*/
|
|
43
|
-
labelPosition: CheckboxLabelPosition;
|
|
44
|
-
/**
|
|
45
|
-
* Whether the checkbox is disabled
|
|
46
|
-
*/
|
|
47
|
-
disabled: boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Event emitted when checked state changes
|
|
50
|
-
*/
|
|
51
|
-
checkedChange: EventEmitter<boolean>;
|
|
52
|
-
checked: boolean;
|
|
53
|
-
private onChange;
|
|
54
|
-
private onTouched;
|
|
55
|
-
constructor(cdr: ChangeDetectorRef);
|
|
56
|
-
/**
|
|
57
|
-
* Get CSS classes for the checkbox wrapper
|
|
58
|
-
*/
|
|
59
|
-
get wrapperClasses(): string[];
|
|
60
|
-
/**
|
|
61
|
-
* Handle checkbox change
|
|
62
|
-
*/
|
|
63
|
-
onCheckboxChange(event: Event): void;
|
|
64
|
-
/**
|
|
65
|
-
* Handle blur event
|
|
66
|
-
*/
|
|
67
|
-
onBlur(): void;
|
|
68
|
-
writeValue(value: boolean): void;
|
|
69
|
-
registerOnChange(fn: (value: boolean) => void): void;
|
|
70
|
-
registerOnTouched(fn: () => void): void;
|
|
71
|
-
setDisabledState(isDisabled: boolean): void;
|
|
72
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
73
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "pecb-checkbox", never, { "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; }; "label": { "alias": "label"; "required": false; }; "description": { "alias": "description"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
74
|
-
}
|