@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.
Files changed (56) hide show
  1. package/README.md +556 -556
  2. package/fesm2022/pecb-ui-components.mjs +998 -1907
  3. package/fesm2022/pecb-ui-components.mjs.map +1 -1
  4. package/index.d.ts +2439 -3
  5. package/package.json +6 -8
  6. package/esm2022/lib/components/button/button.component.mjs +0 -171
  7. package/esm2022/lib/components/card/card.component.mjs +0 -182
  8. package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -126
  9. package/esm2022/lib/components/datepicker/datepicker.component.mjs +0 -349
  10. package/esm2022/lib/components/dropdown/dropdown.component.mjs +0 -329
  11. package/esm2022/lib/components/input/input.component.mjs +0 -321
  12. package/esm2022/lib/components/pagination/pagination.component.mjs +0 -197
  13. package/esm2022/lib/components/radio/radio.component.mjs +0 -147
  14. package/esm2022/lib/components/right-modal/right-modal.component.mjs +0 -234
  15. package/esm2022/lib/components/sidebar/sidebar.component.mjs +0 -155
  16. package/esm2022/lib/components/status/status.component.mjs +0 -50
  17. package/esm2022/lib/components/tab/tab.component.mjs +0 -151
  18. package/esm2022/lib/components/table/table.component.mjs +0 -503
  19. package/esm2022/lib/components/toggle/toggle.component.mjs +0 -126
  20. package/esm2022/lib/pecb-components.module.mjs +0 -118
  21. package/esm2022/lib/services/loading.service.mjs +0 -182
  22. package/esm2022/lib/services/notification.service.mjs +0 -144
  23. package/esm2022/lib/services/theme.service.mjs +0 -232
  24. package/esm2022/lib/shared/interfaces/component.interfaces.mjs +0 -2
  25. package/esm2022/lib/shared/types/common.types.mjs +0 -6
  26. package/esm2022/lib/shared/utils/accessibility.utils.mjs +0 -223
  27. package/esm2022/lib/shared/utils/dom.utils.mjs +0 -240
  28. package/esm2022/lib/shared/utils/error.utils.mjs +0 -277
  29. package/esm2022/lib/shared/utils/string.utils.mjs +0 -204
  30. package/esm2022/pecb-ui-components.mjs +0 -5
  31. package/esm2022/public-api.mjs +0 -53
  32. package/lib/components/button/button.component.d.ts +0 -130
  33. package/lib/components/card/card.component.d.ts +0 -140
  34. package/lib/components/checkbox/checkbox.component.d.ts +0 -74
  35. package/lib/components/datepicker/datepicker.component.d.ts +0 -155
  36. package/lib/components/dropdown/dropdown.component.d.ts +0 -144
  37. package/lib/components/input/input.component.d.ts +0 -215
  38. package/lib/components/pagination/pagination.component.d.ts +0 -53
  39. package/lib/components/radio/radio.component.d.ts +0 -93
  40. package/lib/components/right-modal/right-modal.component.d.ts +0 -137
  41. package/lib/components/sidebar/sidebar.component.d.ts +0 -97
  42. package/lib/components/status/status.component.d.ts +0 -19
  43. package/lib/components/tab/tab.component.d.ts +0 -102
  44. package/lib/components/table/table.component.d.ts +0 -403
  45. package/lib/components/toggle/toggle.component.d.ts +0 -74
  46. package/lib/pecb-components.module.d.ts +0 -37
  47. package/lib/services/loading.service.d.ts +0 -129
  48. package/lib/services/notification.service.d.ts +0 -136
  49. package/lib/services/theme.service.d.ts +0 -142
  50. package/lib/shared/interfaces/component.interfaces.d.ts +0 -283
  51. package/lib/shared/types/common.types.d.ts +0 -86
  52. package/lib/shared/utils/accessibility.utils.d.ts +0 -167
  53. package/lib/shared/utils/dom.utils.d.ts +0 -108
  54. package/lib/shared/utils/error.utils.d.ts +0 -191
  55. package/lib/shared/utils/string.utils.d.ts +0 -144
  56. 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>') // '&lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;'
133
- */
134
- export function escapeHtml(str) {
135
- const htmlEscapes = {
136
- '&': '&amp;',
137
- '<': '&lt;',
138
- '>': '&gt;',
139
- '"': '&quot;',
140
- "'": '&#39;'
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=
@@ -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
- }