@koobiq/components 19.7.0 → 19.8.1

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 (164) hide show
  1. package/accordion/accordion-content.directive.d.ts +1 -0
  2. package/autocomplete/autocomplete-trigger.directive.d.ts +2 -1
  3. package/autocomplete/autocomplete.component.d.ts +7 -1
  4. package/code-block/_code-block-theme.scss +1 -10
  5. package/code-block/code-block-highlight.d.ts +61 -7
  6. package/code-block/code-block-tokens.scss +5 -10
  7. package/code-block/code-block.d.ts +14 -1
  8. package/code-block/code-block.scss +8 -7
  9. package/core/forms/forms-tokens.scss +1 -1
  10. package/core/locales/en-US.d.ts +1 -0
  11. package/core/locales/es-LA.d.ts +1 -0
  12. package/core/locales/locale-service.d.ts +5 -0
  13. package/core/locales/pt-BR.d.ts +1 -0
  14. package/core/locales/ru-RU.d.ts +1 -0
  15. package/core/locales/tk-TM.d.ts +1 -0
  16. package/core/option/option.d.ts +2 -1
  17. package/core/styles/common/_groups-mixins.scss +2 -2
  18. package/core/styles/common/_groups.scss +6 -6
  19. package/dropdown/dropdown-item.scss +9 -6
  20. package/dropdown/dropdown-tokens.scss +1 -1
  21. package/dropdown/dropdown-trigger.directive.d.ts +8 -1
  22. package/dropdown/dropdown.component.d.ts +6 -6
  23. package/dropdown/dropdown.scss +1 -1
  24. package/dropdown/dropdown.types.d.ts +19 -7
  25. package/fesm2022/koobiq-components-accordion.mjs +32 -29
  26. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  27. package/fesm2022/koobiq-components-actions-panel.mjs +10 -10
  28. package/fesm2022/koobiq-components-alert.mjs +16 -16
  29. package/fesm2022/koobiq-components-app-switcher.mjs +25 -25
  30. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  31. package/fesm2022/koobiq-components-autocomplete.mjs +35 -23
  32. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  33. package/fesm2022/koobiq-components-badge.mjs +13 -13
  34. package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
  35. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  36. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  37. package/fesm2022/koobiq-components-button.mjs +19 -19
  38. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  39. package/fesm2022/koobiq-components-checkbox.mjs +10 -10
  40. package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
  41. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-code-block.mjs +143 -46
  43. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-content-panel.mjs +28 -28
  45. package/fesm2022/koobiq-components-core.mjs +229 -225
  46. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  47. package/fesm2022/koobiq-components-datepicker.mjs +37 -42
  48. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  49. package/fesm2022/koobiq-components-divider.mjs +7 -7
  50. package/fesm2022/koobiq-components-dl.mjs +13 -13
  51. package/fesm2022/koobiq-components-dropdown.mjs +69 -38
  52. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  53. package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
  54. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
  55. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  56. package/fesm2022/koobiq-components-file-upload.mjs +39 -39
  57. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-filter-bar.mjs +85 -85
  59. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-form-field.mjs +83 -81
  61. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-icon.mjs +343 -21
  63. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-inline-edit.mjs +19 -17
  65. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-input.mjs +22 -22
  67. package/fesm2022/koobiq-components-link.mjs +7 -7
  68. package/fesm2022/koobiq-components-list.mjs +19 -19
  69. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  70. package/fesm2022/koobiq-components-markdown.mjs +10 -10
  71. package/fesm2022/koobiq-components-modal.mjs +28 -28
  72. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  73. package/fesm2022/koobiq-components-navbar-ic.mjs +40 -40
  74. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -1
  75. package/fesm2022/koobiq-components-navbar.mjs +82 -56
  76. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  77. package/fesm2022/koobiq-components-notification-center.mjs +168 -31
  78. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  79. package/fesm2022/koobiq-components-overflow-items.mjs +16 -16
  80. package/fesm2022/koobiq-components-popover.mjs +18 -18
  81. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  83. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  84. package/fesm2022/koobiq-components-radio.mjs +10 -10
  85. package/fesm2022/koobiq-components-resizer.mjs +10 -10
  86. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  87. package/fesm2022/koobiq-components-scrollbar.mjs +12 -12
  88. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  89. package/fesm2022/koobiq-components-search-expandable.mjs +7 -7
  90. package/fesm2022/koobiq-components-select.mjs +129 -64
  91. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-sidebar.mjs +13 -13
  93. package/fesm2022/koobiq-components-sidepanel.mjs +28 -28
  94. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  95. package/fesm2022/koobiq-components-skeleton.mjs +10 -10
  96. package/fesm2022/koobiq-components-split-button.mjs +7 -7
  97. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  98. package/fesm2022/koobiq-components-table.mjs +10 -10
  99. package/fesm2022/koobiq-components-tabs.mjs +54 -54
  100. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  101. package/fesm2022/koobiq-components-tags.mjs +38 -31
  102. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  103. package/fesm2022/koobiq-components-textarea.mjs +7 -7
  104. package/fesm2022/koobiq-components-time-range.mjs +22 -22
  105. package/fesm2022/koobiq-components-timepicker.mjs +11 -26
  106. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  107. package/fesm2022/koobiq-components-timezone.mjs +58 -37
  108. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  109. package/fesm2022/koobiq-components-title.mjs +7 -7
  110. package/fesm2022/koobiq-components-toast.mjs +58 -39
  111. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-toggle.mjs +7 -7
  113. package/fesm2022/koobiq-components-tooltip.mjs +16 -16
  114. package/fesm2022/koobiq-components-top-bar.mjs +17 -25
  115. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-tree-select.mjs +14 -8
  117. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-tree.mjs +74 -39
  119. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-username.mjs +28 -28
  121. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  122. package/file-upload/multiple-file-upload.component.scss +6 -0
  123. package/file-upload/single-file-upload.component.scss +6 -0
  124. package/form-field/_form-field-theme.scss +9 -4
  125. package/form-field/fieldset-tokens.scss +1 -0
  126. package/form-field/fieldset.scss +1 -0
  127. package/form-field/form-field-tokens.scss +1 -0
  128. package/form-field/password-toggle.scss +1 -1
  129. package/icon/icon-button.scss +5 -0
  130. package/icon/icon-item.scss +5 -0
  131. package/icon/icon-registry-providers.d.ts +34 -0
  132. package/icon/icon-registry.d.ts +50 -0
  133. package/icon/icon.component.d.ts +16 -3
  134. package/icon/icon.scss +7 -0
  135. package/icon/public-api.d.ts +2 -0
  136. package/inline-edit/inline-edit.d.ts +3 -1
  137. package/inline-edit/inline-edit.scss +1 -11
  138. package/link/_link-theme.scss +9 -2
  139. package/navbar/_navbar-theme.scss +0 -4
  140. package/navbar/navbar-brand.component.d.ts +3 -1
  141. package/navbar/navbar-item.component.d.ts +1 -0
  142. package/navbar/navbar-item.scss +9 -0
  143. package/navbar/navbar.component.d.ts +1 -0
  144. package/notification-center/_notification-center-theme.scss +2 -1
  145. package/notification-center/notification-center.d.ts +29 -1
  146. package/notification-center/notification-center.scss +28 -3
  147. package/notification-center/notification-center.service.d.ts +44 -1
  148. package/notification-center/notification-item.scss +1 -1
  149. package/package.json +5 -5
  150. package/popover/popover.scss +3 -3
  151. package/prebuilt-themes/dark-theme.css +1 -1
  152. package/prebuilt-themes/light-theme.css +1 -1
  153. package/prebuilt-themes/theme.css +1 -1
  154. package/schematics/ng-add/index.js +4 -4
  155. package/scrollbar/scrollbar-tokens.scss +1 -1
  156. package/select/select-option.directive.d.ts +9 -10
  157. package/select/select.component.d.ts +42 -3
  158. package/tabs/_tabs-common.scss +4 -1
  159. package/timepicker/timepicker.directive.d.ts +1 -0
  160. package/timezone/timezone-option.directive.d.ts +12 -9
  161. package/toast/toast.service.d.ts +5 -3
  162. package/top-bar/top-bar.d.ts +0 -7
  163. package/top-bar/top-bar.scss +3 -9
  164. package/tree/tree-selection.component.d.ts +7 -0
@@ -1,8 +1,280 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, ElementRef, ChangeDetectorRef, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, effect, booleanAttribute, NgModule } from '@angular/core';
4
- import { toObservable } from '@angular/core/rxjs-interop';
3
+ import { InjectionToken, inject, SecurityContext, Injectable, ElementRef, ChangeDetectorRef, DestroyRef, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, effect, booleanAttribute, NgModule } from '@angular/core';
4
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
5
5
  import { KbqColorDirective, KBQ_FORM_FIELD_REF } from '@koobiq/components/core';
6
+ import { of, throwError, ReplaySubject, EMPTY } from 'rxjs';
7
+ import { map, catchError, share, finalize, switchMap } from 'rxjs/operators';
8
+ import { DOCUMENT } from '@angular/common';
9
+ import { HttpClient } from '@angular/common/http';
10
+ import { DomSanitizer } from '@angular/platform-browser';
11
+
12
+ const KBQ_ICONS_CONFIG = new InjectionToken('KBQ_ICONS_CONFIG');
13
+ /**
14
+ * Multi-valued injection token for icon resolver functions.
15
+ * Resolvers are tried in registration order; the first non-null result wins.
16
+ */
17
+ const KBQ_ICON_RESOLVER = new InjectionToken('KBQ_ICON_RESOLVER');
18
+ /** Configures the icon registry to load icons from one or more SVG sprite assets. */
19
+ function kbqIconsProvider(...sprites) {
20
+ return { provide: KBQ_ICONS_CONFIG, useValue: sprites };
21
+ }
22
+ /**
23
+ * Registers a resolver function that maps icon names to SVG strings or URLs.
24
+ * Multiple resolvers can be registered; they are tried in registration order.
25
+ */
26
+ function kbqIconsResolverProvider(resolver) {
27
+ return { provide: KBQ_ICON_RESOLVER, useValue: resolver, multi: true };
28
+ }
29
+ /**
30
+ * Registers a name→SVG/URL dictionary as an icon resolver.
31
+ * Values starting with `<` are treated as inline SVG (no HTTP request).
32
+ * All other values are treated as URLs and fetched at runtime.
33
+ *
34
+ * @example
35
+ * kbqIconsDictProvider({ 'chevron-down-s_16': '<svg>...</svg>' })
36
+ */
37
+ function kbqIconsDictProvider(dict) {
38
+ return kbqIconsResolverProvider((name) => dict[name] ?? null);
39
+ }
40
+
41
+ function iconKey(namespace, name) {
42
+ return namespace ? `${namespace}:${name}` : name;
43
+ }
44
+ function cloneSvg(svg) {
45
+ return svg.cloneNode(true);
46
+ }
47
+ class KbqIconRegistry {
48
+ constructor() {
49
+ this.sanitizer = inject(DomSanitizer);
50
+ this.document = inject(DOCUMENT);
51
+ this.httpClient = inject(HttpClient, { optional: true });
52
+ this.iconsConfig = inject(KBQ_ICONS_CONFIG, { optional: true });
53
+ this.resolvers = inject(KBQ_ICON_RESOLVER, { optional: true }) ?? [];
54
+ /** Individual icon configs, keyed by "namespace:name". */
55
+ this.iconConfigs = new Map();
56
+ /** Icon-set configs per namespace. */
57
+ this.iconSetConfigs = new Map();
58
+ /** In-progress URL fetches to dedupe concurrent requests. */
59
+ this.inProgressUrlFetches = new Map();
60
+ /** Cached parsed SVG sets, keyed by URL string. */
61
+ this.cachedIconSets = new Map();
62
+ this.registerIconSet();
63
+ }
64
+ /** Registers an SVG icon by URL in the default namespace. */
65
+ addSvgIcon(name, url, options) {
66
+ this.addSvgIconInNamespace('', name, url, options);
67
+ }
68
+ /** Registers an SVG icon from an inline HTML string in the default namespace. */
69
+ addSvgIconLiteral(name, literal, options) {
70
+ this.addSvgIconLiteralInNamespace('', name, literal, options);
71
+ }
72
+ /** Registers an SVG icon by URL under the given namespace. */
73
+ addSvgIconInNamespace(namespace, name, url, options) {
74
+ this.cacheIcon(namespace, name, { url, svgText: null, options, svgElement: null });
75
+ }
76
+ /** Registers an SVG icon from an inline HTML string under the given namespace. */
77
+ addSvgIconLiteralInNamespace(namespace, name, literal, options) {
78
+ const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, literal);
79
+ if (!sanitized) {
80
+ throw Error(`KbqIconRegistry: literal for icon "${iconKey(namespace, name)}" sanitized to empty string.`);
81
+ }
82
+ this.cacheIcon(namespace, name, {
83
+ url: null,
84
+ svgText: this.sanitizer.bypassSecurityTrustHtml(sanitized),
85
+ options,
86
+ svgElement: null
87
+ });
88
+ }
89
+ /** Registers an SVG sprite file in the default namespace. Icons are looked up by their `symbol id`. */
90
+ addSvgIconSet(url, options) {
91
+ this.addSvgIconSetInNamespace('', url, options);
92
+ }
93
+ /** Registers an SVG sprite file under the given namespace. Duplicate URLs are silently ignored. */
94
+ addSvgIconSetInNamespace(namespace, url, options) {
95
+ const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url) ?? '';
96
+ const sets = this.iconSetConfigs.get(namespace) ?? [];
97
+ const alreadyRegistered = sets.some((set) => this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, set.url) === urlStr);
98
+ if (alreadyRegistered)
99
+ return;
100
+ const config = { url, svgText: null, options, svgElement: null };
101
+ sets.push(config);
102
+ this.iconSetConfigs.set(namespace, sets);
103
+ }
104
+ /**
105
+ * Emits a cloned SVGElement for the given name.
106
+ * Accepts "namespace:name" syntax.
107
+ */
108
+ getNamedSvgIcon(name, namespace = '') {
109
+ let resolvedNs = namespace;
110
+ let resolvedName = name;
111
+ if (resolvedName.trimStart().startsWith('<')) {
112
+ const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, resolvedName) ?? '';
113
+ return of(this.svgElementFromText(sanitized));
114
+ }
115
+ const colonIndex = name.indexOf(':');
116
+ if (colonIndex !== -1) {
117
+ resolvedNs = name.slice(0, colonIndex);
118
+ resolvedName = name.slice(colonIndex + 1);
119
+ }
120
+ const key = iconKey(resolvedNs, resolvedName);
121
+ const iconConfig = this.iconConfigs.get(key);
122
+ if (iconConfig) {
123
+ return this.loadIcon(iconConfig, resolvedName);
124
+ }
125
+ for (const resolver of this.resolvers) {
126
+ const result = resolver(resolvedName);
127
+ if (result == null)
128
+ continue;
129
+ const config = {
130
+ url: null,
131
+ svgText: null,
132
+ svgElement: null,
133
+ options: undefined
134
+ };
135
+ if (result.trimStart().startsWith('<')) {
136
+ const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, result) ?? '';
137
+ config.svgText = this.sanitizer.bypassSecurityTrustHtml(sanitized);
138
+ }
139
+ else {
140
+ config.url = this.sanitizer.bypassSecurityTrustResourceUrl(result);
141
+ }
142
+ this.iconConfigs.set(key, config);
143
+ return this.loadIcon(config, resolvedName);
144
+ }
145
+ const sets = this.iconSetConfigs.get(resolvedNs);
146
+ if (sets?.length) {
147
+ return this.loadIconFromSets(resolvedName, sets);
148
+ }
149
+ return throwError(() => Error(`KbqIconRegistry: no icon registered for "${key}".`));
150
+ }
151
+ cacheIcon(namespace, name, config) {
152
+ this.iconConfigs.set(iconKey(namespace, name), config);
153
+ return this;
154
+ }
155
+ loadIcon(config, name) {
156
+ if (config.svgElement) {
157
+ return of(cloneSvg(config.svgElement));
158
+ }
159
+ if (config.svgText) {
160
+ const svg = this.svgElementFromText(config.svgText, config.options);
161
+ config.svgElement = svg;
162
+ return of(cloneSvg(svg));
163
+ }
164
+ if (config.url) {
165
+ return this.fetchUrl(config.url, config.options?.withCredentials).pipe(map((text) => {
166
+ const svg = this.svgElementFromText(text, config.options);
167
+ config.svgElement = svg;
168
+ return cloneSvg(svg);
169
+ }));
170
+ }
171
+ return throwError(() => Error(`KbqIconRegistry: icon "${name}" has neither URL nor literal.`));
172
+ }
173
+ registerIconSet() {
174
+ if (!this.iconsConfig)
175
+ return;
176
+ for (const config of this.iconsConfig) {
177
+ const url = this.sanitizer.bypassSecurityTrustResourceUrl(config.spriteUrl);
178
+ if (config.namespace) {
179
+ this.addSvgIconSetInNamespace(config.namespace, url);
180
+ }
181
+ else {
182
+ this.addSvgIconSet(url);
183
+ }
184
+ }
185
+ }
186
+ loadIconFromSets(name, sets) {
187
+ const sources = sets
188
+ .slice()
189
+ .reverse()
190
+ .map((set) => this.loadIconSet(set));
191
+ const tryNext = (index) => {
192
+ if (index >= sources.length) {
193
+ return throwError(() => Error(`KbqIconRegistry: icon "${name}" not found in any registered icon set.`));
194
+ }
195
+ return sources[index].pipe(map((setElement) => {
196
+ const icon = this.extractIconFromSet(name, setElement);
197
+ if (!icon) {
198
+ throw Error(`KbqIconRegistry: icon "${name}" not found in set.`);
199
+ }
200
+ return icon;
201
+ }), catchError(() => tryNext(index + 1)));
202
+ };
203
+ return tryNext(0);
204
+ }
205
+ loadIconSet(config) {
206
+ if (config.svgElement) {
207
+ return of(config.svgElement);
208
+ }
209
+ if (!config.url) {
210
+ return throwError(() => Error('KbqIconRegistry: icon set has no URL.'));
211
+ }
212
+ const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, config.url);
213
+ if (!urlStr) {
214
+ return throwError(() => Error('KbqIconRegistry: icon set URL failed sanitization.'));
215
+ }
216
+ if (this.cachedIconSets.has(urlStr)) {
217
+ config.svgElement = this.cachedIconSets.get(urlStr);
218
+ return of(config.svgElement);
219
+ }
220
+ return this.fetchUrl(config.url, config.options?.withCredentials).pipe(map((text) => {
221
+ const svg = this.svgElementFromText(text, config.options);
222
+ config.svgElement = svg;
223
+ this.cachedIconSets.set(urlStr, svg);
224
+ return svg;
225
+ }));
226
+ }
227
+ extractIconFromSet(name, setElement) {
228
+ const symbol = setElement.querySelector(`#${name}`);
229
+ if (!symbol)
230
+ return null;
231
+ const svg = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg');
232
+ const viewBox = symbol.getAttribute('viewBox') || setElement.getAttribute('viewBox') || '0 0 24 24';
233
+ svg.setAttribute('viewBox', viewBox);
234
+ svg.setAttribute('aria-hidden', 'true');
235
+ svg.setAttribute('focusable', 'false');
236
+ for (const child of Array.from(symbol.childNodes)) {
237
+ svg.appendChild(child.cloneNode(true));
238
+ }
239
+ return svg;
240
+ }
241
+ svgElementFromText(text, options) {
242
+ const div = this.document.createElement('div');
243
+ div.innerHTML = text;
244
+ const svg = div.querySelector('svg');
245
+ if (!svg) {
246
+ throw Error('KbqIconRegistry: could not find <svg> element in icon markup.');
247
+ }
248
+ if (options?.viewBox) {
249
+ svg.setAttribute('viewBox', options.viewBox);
250
+ }
251
+ svg.setAttribute('aria-hidden', 'true');
252
+ svg.setAttribute('focusable', 'false');
253
+ return svg;
254
+ }
255
+ fetchUrl(url, withCredentials = false) {
256
+ if (!this.httpClient) {
257
+ throw Error('KbqIconRegistry: HttpClient is required for loading icons from URLs. ' +
258
+ 'Provide it via provideHttpClient() or HttpClientModule.');
259
+ }
260
+ const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url);
261
+ if (!urlStr) {
262
+ return throwError(() => Error('KbqIconRegistry: URL failed security sanitization.'));
263
+ }
264
+ const inProgress = this.inProgressUrlFetches.get(urlStr);
265
+ if (inProgress)
266
+ return inProgress;
267
+ const fetch = this.httpClient.get(urlStr, { responseType: 'text', withCredentials }).pipe(share(), finalize(() => this.inProgressUrlFetches.delete(urlStr)));
268
+ this.inProgressUrlFetches.set(urlStr, fetch);
269
+ return fetch;
270
+ }
271
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
272
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconRegistry, providedIn: 'root' }); }
273
+ }
274
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconRegistry, decorators: [{
275
+ type: Injectable,
276
+ args: [{ providedIn: 'root' }]
277
+ }], ctorParameters: () => [] });
6
278
 
7
279
  class KbqIcon extends KbqColorDirective {
8
280
  constructor() {
@@ -10,10 +282,19 @@ class KbqIcon extends KbqColorDirective {
10
282
  this.elementRef = inject(ElementRef);
11
283
  this.formField = inject(KBQ_FORM_FIELD_REF, { optional: true });
12
284
  this.changeDetectorRef = inject(ChangeDetectorRef);
285
+ this.registry = inject(KbqIconRegistry, { optional: true });
286
+ this.destroyRef = inject(DestroyRef);
13
287
  this.small = false;
14
288
  this.autoColor = false;
15
289
  this.hasError = false;
16
290
  this.name = 'KbqIcon';
291
+ /**
292
+ * True when icon is being rendered as inline SVG.
293
+ * @docs-private
294
+ */
295
+ this.svgIcon = false;
296
+ /** @docs-private */
297
+ this.svgIconName = new ReplaySubject(1);
17
298
  this.updateState = () => {
18
299
  this.hasError = this.formField?.control?.errorState;
19
300
  this.changeDetectorRef.markForCheck();
@@ -26,28 +307,69 @@ class KbqIcon extends KbqColorDirective {
26
307
  if (this.name !== 'KbqIcon') {
27
308
  return;
28
309
  }
29
- const size = parseInt(this.iconName?.split('_')[1]);
310
+ const size = this.parseIconSize();
30
311
  if (size) {
31
312
  this.getHostElement().style.maxHeight = `${size}px`;
32
313
  }
33
314
  }
315
+ ngOnChanges(changes) {
316
+ if (changes.iconName) {
317
+ this.svgIconName.next(changes['iconName'].currentValue);
318
+ }
319
+ }
34
320
  ngAfterContentInit() {
35
321
  if (this.autoColor) {
36
322
  this.formField?.control?.stateChanges.subscribe(this.updateState);
37
323
  this.updateState();
38
324
  }
39
325
  this.updateMaxHeight();
326
+ this.svgIconName
327
+ .pipe(switchMap((name) => {
328
+ if (!this.registry || !name) {
329
+ this.svgIcon = false;
330
+ return EMPTY;
331
+ }
332
+ return this.registry.getNamedSvgIcon(name);
333
+ }), takeUntilDestroyed(this.destroyRef))
334
+ .subscribe({
335
+ next: (svg) => {
336
+ this.svgIcon = true;
337
+ const host = this.getHostElement();
338
+ // Remove any previously injected SVG.
339
+ const existing = host.querySelector('svg');
340
+ if (existing) {
341
+ host.removeChild(existing);
342
+ }
343
+ const size = this.parseIconSize();
344
+ if (size) {
345
+ svg.setAttribute('width', `${size}`);
346
+ svg.setAttribute('height', `${size}`);
347
+ }
348
+ host.insertBefore(svg, host.firstChild);
349
+ this.changeDetectorRef.markForCheck();
350
+ },
351
+ error: () => {
352
+ // Icon not registered — fall through to font-class path.
353
+ this.svgIcon = false;
354
+ this.updateMaxHeight();
355
+ this.changeDetectorRef.markForCheck();
356
+ }
357
+ });
358
+ }
359
+ parseIconSize() {
360
+ const baseName = this.iconName?.includes(':') ? this.iconName.split(':')[1] : this.iconName;
361
+ return parseInt(baseName?.split('_').pop() ?? '');
40
362
  }
41
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIcon, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
42
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: KbqIcon, isStandalone: true, selector: "[kbq-icon]", inputs: { small: "small", autoColor: "autoColor", iconName: ["kbq-icon", "iconName"] }, host: { properties: { "class": "iconName", "class.kbq-error": "color === \"error\" || hasError" }, classAttribute: "kbq kbq-icon" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color)}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color)}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color)}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color)}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color)}\n", ".kbq-icon{--kbq-icon-theme-color: var(--kbq-icon-theme);--kbq-icon-contrast-color: var(--kbq-icon-contrast);--kbq-icon-fade-contrast-color: var(--kbq-icon-contrast-fade);--kbq-icon-error-color: var(--kbq-icon-error);--kbq-icon-success-color: var(--kbq-icon-success);--kbq-icon-warning-color: var(--kbq-icon-warning)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
363
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIcon, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
364
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqIcon, isStandalone: true, selector: "[kbq-icon]", inputs: { small: "small", autoColor: "autoColor", iconName: ["kbq-icon", "iconName"] }, host: { properties: { "class": "svgIcon ? null : iconName", "class.kbq-error": "color === \"error\" || hasError" }, classAttribute: "kbq kbq-icon" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon>svg{fill:currentColor;vertical-align:middle}.kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color)}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color)}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color)}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color)}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color)}\n", ".kbq-icon{--kbq-icon-theme-color: var(--kbq-icon-theme);--kbq-icon-contrast-color: var(--kbq-icon-contrast);--kbq-icon-fade-contrast-color: var(--kbq-icon-contrast-fade);--kbq-icon-error-color: var(--kbq-icon-error);--kbq-icon-success-color: var(--kbq-icon-success);--kbq-icon-warning-color: var(--kbq-icon-warning)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
43
365
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIcon, decorators: [{
366
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIcon, decorators: [{
45
367
  type: Component,
46
368
  args: [{ selector: '[kbq-icon]', template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
47
369
  class: 'kbq kbq-icon',
48
- '[class]': 'iconName',
370
+ '[class]': 'svgIcon ? null : iconName',
49
371
  '[class.kbq-error]': 'color === "error" || hasError'
50
- }, styles: [".kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color)}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color)}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color)}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color)}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color)}\n", ".kbq-icon{--kbq-icon-theme-color: var(--kbq-icon-theme);--kbq-icon-contrast-color: var(--kbq-icon-contrast);--kbq-icon-fade-contrast-color: var(--kbq-icon-contrast-fade);--kbq-icon-error-color: var(--kbq-icon-error);--kbq-icon-success-color: var(--kbq-icon-success);--kbq-icon-warning-color: var(--kbq-icon-warning)}\n"] }]
372
+ }, styles: [".kbq-icon>svg{fill:currentColor;vertical-align:middle}.kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color)}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color)}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color)}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color)}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color)}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color)}\n", ".kbq-icon{--kbq-icon-theme-color: var(--kbq-icon-theme);--kbq-icon-contrast-color: var(--kbq-icon-contrast);--kbq-icon-fade-contrast-color: var(--kbq-icon-contrast-fade);--kbq-icon-error-color: var(--kbq-icon-error);--kbq-icon-success-color: var(--kbq-icon-success);--kbq-icon-warning-color: var(--kbq-icon-warning)}\n"] }]
51
373
  }], propDecorators: { small: [{
52
374
  type: Input
53
375
  }], autoColor: [{
@@ -96,10 +418,10 @@ class KbqIconButton extends KbqIcon {
96
418
  stopFocusMonitor() {
97
419
  this.focusMonitor.stopMonitoring(this.getHostElement());
98
420
  }
99
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.20", type: KbqIconButton, isStandalone: true, selector: "[kbq-icon-button]", inputs: { small: "small", iconName: ["kbq-icon-button", "iconName"], tabindex: "tabindex", disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled || null", "class.kbq-disabled": "disabled", "class.kbq-icon-button_small": "small" }, classAttribute: "kbq kbq-icon-button" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
421
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
422
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.21", type: KbqIconButton, isStandalone: true, selector: "[kbq-icon-button]", inputs: { small: "small", iconName: ["kbq-icon-button", "iconName"], tabindex: "tabindex", disabled: ["disabled", "disabled", booleanAttribute] }, host: { properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled || null", "class.kbq-disabled": "disabled", "class.kbq-icon-button_small": "small" }, classAttribute: "kbq kbq-icon-button" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}.kbq-icon-button>svg{fill:currentColor;vertical-align:middle}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
101
423
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIconButton, decorators: [{
424
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconButton, decorators: [{
103
425
  type: Component,
104
426
  args: [{ selector: `[kbq-icon-button]`, template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
105
427
  class: 'kbq kbq-icon-button',
@@ -107,7 +429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
107
429
  '[attr.disabled]': 'disabled || null',
108
430
  '[class.kbq-disabled]': 'disabled',
109
431
  '[class.kbq-icon-button_small]': 'small'
110
- }, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
432
+ }, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}.kbq-icon-button>svg{fill:currentColor;vertical-align:middle}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
111
433
  }], ctorParameters: () => [], propDecorators: { small: [{
112
434
  type: Input
113
435
  }], iconName: [{
@@ -127,10 +449,10 @@ class KbqIconItem extends KbqIcon {
127
449
  this.fade = false;
128
450
  this.big = false;
129
451
  }
130
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIconItem, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
131
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: KbqIconItem, isStandalone: true, selector: "[kbq-icon-item]", inputs: { iconName: ["kbq-icon-item", "iconName"], fade: "fade", big: "big" }, host: { properties: { "class.kbq-icon-item_normal": "!big", "class.kbq-icon-item_big": "big", "class.kbq-icon-item_fade-off": "!fade", "class.kbq-icon-item_fade-on": "fade" }, classAttribute: "kbq kbq-icon-item kbq-icon-item_filled" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
452
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconItem, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
453
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.21", type: KbqIconItem, isStandalone: true, selector: "[kbq-icon-item]", inputs: { iconName: ["kbq-icon-item", "iconName"], fade: "fade", big: "big" }, host: { properties: { "class.kbq-icon-item_normal": "!big", "class.kbq-icon-item_big": "big", "class.kbq-icon-item_fade-off": "!fade", "class.kbq-icon-item_fade-on": "fade" }, classAttribute: "kbq kbq-icon-item kbq-icon-item_filled" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item>svg{fill:currentColor;vertical-align:middle}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
132
454
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIconItem, decorators: [{
455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconItem, decorators: [{
134
456
  type: Component,
135
457
  args: [{ selector: `[kbq-icon-item]`, template: '<ng-content />', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
136
458
  class: 'kbq kbq-icon-item kbq-icon-item_filled',
@@ -138,7 +460,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
138
460
  '[class.kbq-icon-item_big]': 'big',
139
461
  '[class.kbq-icon-item_fade-off]': '!fade',
140
462
  '[class.kbq-icon-item_fade-on]': 'fade'
141
- }, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"] }]
463
+ }, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item>svg{fill:currentColor;vertical-align:middle}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"] }]
142
464
  }], propDecorators: { iconName: [{
143
465
  type: Input,
144
466
  args: [{ alias: 'kbq-icon-item' }]
@@ -154,15 +476,15 @@ const COMPONENTS = [
154
476
  KbqIconItem
155
477
  ];
156
478
  class KbqIconModule {
157
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
158
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.20", ngImport: i0, type: KbqIconModule, imports: [KbqIcon,
479
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
480
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule, imports: [KbqIcon,
159
481
  KbqIconButton,
160
482
  KbqIconItem], exports: [KbqIcon,
161
483
  KbqIconButton,
162
484
  KbqIconItem] }); }
163
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIconModule }); }
485
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule }); }
164
486
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: KbqIconModule, decorators: [{
487
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.21", ngImport: i0, type: KbqIconModule, decorators: [{
166
488
  type: NgModule,
167
489
  args: [{
168
490
  imports: COMPONENTS,
@@ -174,5 +496,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
174
496
  * Generated bundle index. Do not edit.
175
497
  */
176
498
 
177
- export { KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule };
499
+ export { KBQ_ICONS_CONFIG, KBQ_ICON_RESOLVER, KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule, KbqIconRegistry, kbqIconsDictProvider, kbqIconsProvider, kbqIconsResolverProvider };
178
500
  //# sourceMappingURL=koobiq-components-icon.mjs.map