@edmicro/olkit 1.0.4 → 1.0.8

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.
@@ -1,40 +1,78 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { OnDestroy, QueryList, ElementRef } from '@angular/core';
2
+ import { OnInit, OnDestroy, ElementRef, QueryList, TemplateRef } from '@angular/core';
3
3
  import { ControlValueAccessor } from '@angular/forms';
4
4
  import * as _edmicro_olkit from '@edmicro/olkit';
5
5
  import { SafeHtml } from '@angular/platform-browser';
6
6
  import { Observable } from 'rxjs';
7
7
 
8
- declare class AccordionItemComponent {
9
- readonly itemId: _angular_core.InputSignal<string>;
8
+ declare class OlAccordionItemComponent {
9
+ private readonly parentAccordion;
10
10
  readonly title: _angular_core.InputSignal<string>;
11
+ readonly disabled: _angular_core.InputSignal<boolean>;
12
+ readonly itemId: _angular_core.InputSignal<string>;
11
13
  readonly isOpen: _angular_core.ModelSignal<boolean>;
12
14
  readonly opened: _angular_core.OutputEmitterRef<void>;
13
15
  readonly closed: _angular_core.OutputEmitterRef<void>;
14
- private readonly parentAccordion;
16
+ readonly isSeparated: _angular_core.Signal<boolean>;
17
+ readonly isFlush: _angular_core.Signal<boolean>;
18
+ readonly headerId: _angular_core.Signal<string>;
19
+ readonly contentId: _angular_core.Signal<string>;
20
+ readonly headerClasses: _angular_core.Signal<string>;
21
+ readonly chevronClasses: _angular_core.Signal<string>;
22
+ readonly contentClasses: _angular_core.Signal<string>;
23
+ readonly bodyClasses: _angular_core.Signal<"px-0 pt-1 pb-4 text-base text-gray-600 dark:text-gray-300 leading-relaxed" | "border-t border-gray-200 dark:border-slate-700 px-5 py-4 text-base text-gray-600 dark:text-gray-300 bg-white dark:bg-slate-900 leading-relaxed">;
24
+ toggle(): void;
15
25
  open(): void;
16
26
  close(): void;
17
- toggle(): void;
18
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionItemComponent, never>;
19
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionItemComponent, "ol-accordion-item", never, { "itemId": { "alias": "itemId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "opened": "opened"; "closed": "closed"; }, never, ["[icon]", "*"], true, never>;
27
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAccordionItemComponent, never>;
28
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlAccordionItemComponent, "ol-accordion-item", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "itemId": { "alias": "itemId"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "opened": "opened"; "closed": "closed"; }, never, ["*"], true, never>;
20
29
  }
21
30
 
22
- declare class AccordionComponent {
23
- readonly flush: _angular_core.InputSignal<boolean>;
24
- readonly alwaysOpen: _angular_core.InputSignal<boolean>;
25
- readonly items: _angular_core.Signal<readonly AccordionItemComponent[]>;
31
+ type AccordionVariant = 'bordered' | 'flush' | 'separated';
32
+ declare class OlAccordionComponent {
33
+ readonly multiple: _angular_core.InputSignal<boolean>;
34
+ readonly variant: _angular_core.InputSignal<AccordionVariant>;
35
+ readonly items: _angular_core.Signal<readonly OlAccordionItemComponent[]>;
36
+ readonly accordionClasses: _angular_core.Signal<"border border-gray-200 dark:border-slate-700 rounded-xl overflow-hidden bg-white dark:bg-slate-900 shadow-2xs divide-y divide-gray-200 dark:divide-slate-700" | "border-b border-gray-200 dark:border-slate-700 divide-y divide-gray-200 dark:divide-slate-700 bg-transparent" | "space-y-3">;
37
+ handleItemOpened(openedItem: OlAccordionItemComponent): void;
26
38
  /**
27
- * Xử lý khi một item con được mở ra
39
+ * Keyboard navigation
28
40
  */
29
- handleItemToggle(activeItem: AccordionItemComponent): void;
30
- getItem(indexOrId: number | string): AccordionItemComponent | undefined;
41
+ handleKeyboard(event: KeyboardEvent): void;
42
+ getItem(indexOrId: number | string): OlAccordionItemComponent | undefined;
31
43
  open(indexOrId: number | string): void;
32
44
  close(indexOrId: number | string): void;
33
45
  toggle(indexOrId: number | string): void;
34
46
  openAll(): void;
35
47
  closeAll(): void;
36
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AccordionComponent, never>;
37
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AccordionComponent, "ol-accordion", never, { "flush": { "alias": "flush"; "required": false; "isSignal": true; }; "alwaysOpen": { "alias": "alwaysOpen"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*"], true, never>;
48
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAccordionComponent, never>;
49
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlAccordionComponent, "ol-accordion", never, { "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, ["items"], ["*"], true, never>;
50
+ }
51
+
52
+ type AlertType = 'info' | 'success' | 'warning' | 'danger' | 'neutral';
53
+ type AlertVariant$1 = 'subtle' | 'solid' | 'bordered' | 'accent-left';
54
+ type AlertRounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
55
+ declare class OlAlertComponent {
56
+ readonly type: _angular_core.InputSignal<AlertType>;
57
+ readonly variant: _angular_core.InputSignal<AlertVariant$1>;
58
+ readonly title: _angular_core.InputSignal<string>;
59
+ readonly icon: _angular_core.InputSignal<string | boolean>;
60
+ readonly dismissible: _angular_core.InputSignal<boolean>;
61
+ readonly rounded: _angular_core.InputSignal<AlertRounded>;
62
+ readonly onDismiss: _angular_core.OutputEmitterRef<void>;
63
+ readonly visible: _angular_core.WritableSignal<boolean>;
64
+ readonly showIcon: _angular_core.Signal<boolean>;
65
+ readonly iconName: _angular_core.Signal<string>;
66
+ readonly alertClasses: _angular_core.Signal<string>;
67
+ readonly iconClasses: _angular_core.Signal<string>;
68
+ readonly closeButtonClasses: _angular_core.Signal<"ms-auto -mx-1.5 -my-1.5 rounded-lg p-1.5 inline-flex items-center justify-center shrink-0 transition-colors focus:outline-none focus:ring-2 text-white/80 hover:text-white hover:bg-white/20 focus:ring-white/50" | "ms-auto -mx-1.5 -my-1.5 rounded-lg p-1.5 inline-flex items-center justify-center shrink-0 transition-colors focus:outline-none focus:ring-2 text-emerald-600 hover:bg-emerald-100 focus:ring-emerald-200 dark:text-emerald-400 dark:hover:bg-emerald-900/30 dark:focus:ring-emerald-800" | "ms-auto -mx-1.5 -my-1.5 rounded-lg p-1.5 inline-flex items-center justify-center shrink-0 transition-colors focus:outline-none focus:ring-2 text-amber-600 hover:bg-amber-100 focus:ring-amber-200 dark:text-amber-400 dark:hover:bg-amber-900/30 dark:focus:ring-amber-800" | "ms-auto -mx-1.5 -my-1.5 rounded-lg p-1.5 inline-flex items-center justify-center shrink-0 transition-colors focus:outline-none focus:ring-2 text-rose-600 hover:bg-rose-100 focus:ring-rose-200 dark:text-rose-400 dark:hover:bg-rose-900/30 dark:focus:ring-rose-800" | "ms-auto -mx-1.5 -my-1.5 rounded-lg p-1.5 inline-flex items-center justify-center shrink-0 transition-colors focus:outline-none focus:ring-2 text-brand-600 hover:bg-brand-100 focus:ring-brand-200 dark:text-brand-400 dark:hover:bg-brand-900/30 dark:focus:ring-brand-800" | "ms-auto -mx-1.5 -my-1.5 rounded-lg p-1.5 inline-flex items-center justify-center shrink-0 transition-colors focus:outline-none focus:ring-2 text-gray-600 hover:bg-gray-100 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-slate-700 dark:focus:ring-slate-600">;
69
+ private applyColorClasses;
70
+ private applySubtleColors;
71
+ private applySolidColors;
72
+ private applyBorderedColors;
73
+ dismiss(): void;
74
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlAlertComponent, never>;
75
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlAlertComponent, "ol-alert", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; }, { "onDismiss": "onDismiss"; }, never, ["*", "[alertActions]"], true, never>;
38
76
  }
39
77
 
40
78
  type AlertColor = 'info' | 'danger' | 'success' | 'warning' | 'dark';
@@ -60,7 +98,7 @@ declare class AlertComponent {
60
98
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AlertComponent, "ol-alert", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "border": { "alias": "border"; "required": false; "isSignal": true; }; "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; }, { "isVisible": "isVisibleChange"; "dismissed": "dismissed"; }, never, ["[badge]", "*", "[icon]", "[title]", "*", "[actions]", "[icon]", "*"], true, never>;
61
99
  }
62
100
 
63
- type AvatarSize = 'xs' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl';
101
+ type AvatarSize = '2xs' | 'xs' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl';
64
102
  type AvatarShape = 'rounded' | 'circle';
65
103
  type AvatarStatus = 'online' | 'offline' | 'alternative' | 'busy' | 'away';
66
104
  declare class AvatarComponent {
@@ -91,35 +129,117 @@ declare class AvatarGroupComponent {
91
129
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarGroupComponent, "ol-avatar-group", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "counter": { "alias": "counter"; "required": false; "isSignal": true; }; "counterAriaLabel": { "alias": "counterAriaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
92
130
  }
93
131
 
94
- type BadgeColor = 'default' | 'dark' | 'red' | 'green' | 'yellow' | 'indigo' | 'purple' | 'pink';
95
- type BadgeSize = 'xs' | 'sm';
132
+ type BadgeTheme = 'brand' | 'gray' | 'white' | 'danger' | 'warning' | 'success' | 'default' | 'dark' | 'red' | 'yellow' | 'green';
133
+ type BadgeSize = 'sm' | 'lg' | 'xs';
134
+ type BadgeShape = 'square' | 'pill';
135
+ type BadgeType = 'default' | 'dot' | 'icon' | 'avatar' | 'loader' | 'secondary';
96
136
  declare class BadgeComponent {
97
- readonly color: _angular_core.InputSignal<BadgeColor>;
137
+ readonly theme: _angular_core.InputSignal<BadgeTheme>;
138
+ readonly color: _angular_core.InputSignal<BadgeTheme>;
98
139
  readonly size: _angular_core.InputSignal<BadgeSize>;
140
+ readonly shape: _angular_core.InputSignal<BadgeShape>;
99
141
  readonly rounded: _angular_core.InputSignal<boolean>;
142
+ readonly type: _angular_core.InputSignal<BadgeType>;
143
+ readonly dot: _angular_core.InputSignal<boolean>;
144
+ readonly leftIcon: _angular_core.InputSignal<string | null>;
145
+ readonly rightIcon: _angular_core.InputSignal<string | null>;
146
+ readonly avatar: _angular_core.InputSignal<string | null>;
147
+ readonly avatarText: _angular_core.InputSignal<string | null>;
148
+ readonly secondaryText: _angular_core.InputSignal<string | null>;
149
+ readonly loading: _angular_core.InputSignal<boolean>;
150
+ readonly removable: _angular_core.InputSignal<boolean>;
100
151
  readonly href: _angular_core.InputSignal<string | null>;
152
+ readonly dismiss: _angular_core.OutputEmitterRef<MouseEvent>;
153
+ readonly normalizedTheme: _angular_core.Signal<string>;
154
+ readonly isPill: _angular_core.Signal<boolean>;
155
+ readonly badgeClasses: _angular_core.Signal<string>;
156
+ readonly dotClasses: _angular_core.Signal<"bg-[#2B4182] dark:bg-blue-400" | "bg-[#C70036] dark:bg-rose-400" | "bg-[#FF5A1F] dark:bg-amber-400" | "bg-[#007A55] dark:bg-emerald-400" | "bg-gray-700 dark:bg-gray-300" | "bg-gray-500 dark:bg-gray-400">;
157
+ onDismiss(event: MouseEvent): void;
101
158
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BadgeComponent, never>;
102
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "ol-badge", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
159
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BadgeComponent, "ol-badge", never, { "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "leftIcon": { "alias": "leftIcon"; "required": false; "isSignal": true; }; "rightIcon": { "alias": "rightIcon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "avatarText": { "alias": "avatarText"; "required": false; "isSignal": true; }; "secondaryText": { "alias": "secondaryText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, ["*"], true, never>;
103
160
  }
104
161
 
105
- declare class BannerComponent {
106
- readonly position: _angular_core.InputSignal<"bottom" | "top">;
107
- readonly dismissed: _angular_core.OutputEmitterRef<void>;
162
+ type BannerVariant = 'brand' | 'gradient' | 'warning' | 'dark' | 'subtle';
163
+ type BannerPosition = 'top-fixed' | 'top-sticky' | 'inline' | 'bottom-floating';
164
+ /**
165
+ * Banner Component - Full-width announcement component
166
+ *
167
+ * @example
168
+ * ```html
169
+ * <ol-banner>
170
+ * Ôn Luyện ra mắt kho học liệu số mới cho giáo viên
171
+ * </ol-banner>
172
+ *
173
+ * <ol-banner
174
+ * variant="gradient"
175
+ * [showBadge]="true"
176
+ * badgeText="Mới"
177
+ * icon="bullhorn">
178
+ * Tính năng AI chấm bài tự động đã có mặt!
179
+ * </ol-banner>
180
+ *
181
+ * <ol-banner
182
+ * variant="warning"
183
+ * position="bottom-floating"
184
+ * storageKey="maintenance-2024-09"
185
+ * (onDismiss)="handleDismiss()">
186
+ * <span>Hệ thống sẽ bảo trì vào 20:00 tối nay</span>
187
+ * <button bannerCta class="btn btn-sm btn-warning">
188
+ * Gia hạn ngay
189
+ * </button>
190
+ * </ol-banner>
191
+ * ```
192
+ */
193
+ declare class OlBannerComponent implements OnInit {
194
+ readonly variant: _angular_core.InputSignal<BannerVariant>;
195
+ readonly position: _angular_core.InputSignal<BannerPosition>;
196
+ readonly storageKey: _angular_core.InputSignal<string>;
197
+ readonly dismissible: _angular_core.InputSignal<boolean>;
198
+ readonly showBadge: _angular_core.InputSignal<boolean>;
199
+ readonly badgeText: _angular_core.InputSignal<string>;
200
+ readonly icon: _angular_core.InputSignal<string>;
201
+ readonly onDismiss: _angular_core.OutputEmitterRef<void>;
202
+ readonly visible: _angular_core.WritableSignal<boolean>;
203
+ readonly bannerClasses: _angular_core.Signal<string>;
204
+ readonly badgeClasses: _angular_core.Signal<string>;
205
+ readonly dismissButtonClasses: _angular_core.Signal<"text-amber-600 hover:bg-amber-100 dark:text-amber-200 dark:hover:bg-amber-900/40" | "text-gray-500 hover:bg-gray-200 dark:text-slate-400 dark:hover:bg-slate-700" | "text-white/70 hover:bg-white/10 hover:text-white">;
206
+ ngOnInit(): void;
108
207
  dismiss(): void;
109
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BannerComponent, never>;
110
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BannerComponent, "ol-banner", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, ["*"], true, never>;
208
+ private getStoredDismissState;
209
+ private setStoredDismissState;
210
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlBannerComponent, never>;
211
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlBannerComponent, "ol-banner", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "storageKey": { "alias": "storageKey"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "showBadge": { "alias": "showBadge"; "required": false; "isSignal": true; }; "badgeText": { "alias": "badgeText"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, { "onDismiss": "onDismiss"; }, never, ["*", "[bannerCta]"], true, never>;
111
212
  }
112
213
 
214
+ type BreadcrumbVariant = 'default' | 'background' | 'with-dropdown' | 'with-group-buttons' | 'only-buttons' | 'with-badge';
215
+ type BreadcrumbSeparator = 'chevron' | 'slash' | 'arrow' | 'dot';
113
216
  declare class BreadcrumbComponent {
217
+ readonly variant: _angular_core.InputSignal<BreadcrumbVariant>;
218
+ readonly separator: _angular_core.InputSignal<BreadcrumbSeparator>;
219
+ readonly contained: _angular_core.InputSignal<boolean>;
220
+ readonly isBackground: _angular_core.Signal<boolean>;
221
+ readonly navClasses: _angular_core.Signal<"flex items-center text-sm font-medium px-3 py-2 bg-gray-50 dark:bg-slate-800/80 rounded-xl border border-gray-200 dark:border-slate-700/80 shadow-xs w-fit max-w-full overflow-x-auto" | "flex items-center text-sm font-medium w-full overflow-x-auto">;
114
222
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
115
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbComponent, "ol-breadcrumb", never, {}, {}, never, ["*"], true, never>;
223
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbComponent, "ol-breadcrumb", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "contained": { "alias": "contained"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
116
224
  }
117
225
 
226
+ type BreadcrumbItemStatus = 'initial' | 'hover' | 'active';
118
227
  declare class BreadcrumbItemComponent {
228
+ readonly label: _angular_core.InputSignal<string>;
229
+ readonly routerLink: _angular_core.InputSignal<string | any[] | null>;
119
230
  readonly href: _angular_core.InputSignal<string | null>;
120
- readonly isHome: _angular_core.InputSignal<boolean>;
231
+ readonly icon: _angular_core.InputSignal<string | null>;
232
+ readonly current: _angular_core.InputSignal<boolean>;
233
+ readonly active: _angular_core.InputSignal<boolean>;
234
+ readonly status: _angular_core.InputSignal<BreadcrumbItemStatus>;
235
+ readonly showSeparator: _angular_core.InputSignal<boolean>;
236
+ readonly separator: _angular_core.InputSignal<BreadcrumbSeparator | null>;
237
+ private readonly parentBreadcrumb;
238
+ readonly isCurrent: _angular_core.Signal<boolean>;
239
+ readonly effectiveSeparator: _angular_core.Signal<BreadcrumbSeparator>;
240
+ readonly isLink: _angular_core.Signal<boolean>;
121
241
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbItemComponent, never>;
122
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbItemComponent, "ol-breadcrumb-item", never, { "href": { "alias": "href"; "required": false; "isSignal": true; }; "isHome": { "alias": "isHome"; "required": false; "isSignal": true; }; }, {}, never, ["*", "*"], true, never>;
242
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbItemComponent, "ol-breadcrumb-item", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "current": { "alias": "current"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "showSeparator": { "alias": "showSeparator"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
123
243
  }
124
244
 
125
245
  type ButtonColor = 'default' | 'brand' | 'primary' | 'alternative' | 'secondary' | 'tertiary' | 'ghost' | 'success' | 'green' | 'danger' | 'red' | 'warning' | 'yellow' | 'purple' | 'dark' | 'light';
@@ -140,7 +260,7 @@ declare class ButtonComponent {
140
260
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "ol-button", never, { "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "pill": { "alias": "pill"; "required": false; "isSignal": true; }; "outline": { "alias": "outline"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, { "btnClick": "btnClick"; }, never, ["[leftIcon]", "[logo]", "*", "[rightIcon]"], true, never>;
141
261
  }
142
262
 
143
- type AppDevice = 'appstore' | 'googleplay' | 'google-play';
263
+ type AppDevice = 'appstore' | 'googleplay' | 'google-play' | 'apple' | 'google';
144
264
  type AppTheme = 'light' | 'dark' | 'auto';
145
265
  declare class DownloadAppButtonComponent {
146
266
  readonly store: _angular_core.InputSignal<AppDevice>;
@@ -154,18 +274,38 @@ declare class DownloadAppButtonComponent {
154
274
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DownloadAppButtonComponent, "ol-download-app-button", never, { "store": { "alias": "store"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, { "btnClick": "btnClick"; }, never, never, true, never>;
155
275
  }
156
276
 
277
+ type ButtonGroupOrientation = 'horizontal' | 'vertical';
278
+ type ButtonGroupSize = 'xs' | 'sm' | 'base' | 'l';
279
+ type ButtonGroupColor = 'gray' | 'white' | 'brand';
157
280
  declare class ButtonGroupComponent {
281
+ readonly orientation: _angular_core.InputSignal<ButtonGroupOrientation>;
282
+ readonly size: _angular_core.InputSignal<ButtonGroupSize>;
283
+ readonly color: _angular_core.InputSignal<ButtonGroupColor>;
284
+ readonly shadow: _angular_core.InputSignal<boolean>;
285
+ readonly fullWidth: _angular_core.InputSignal<boolean>;
286
+ readonly containerClasses: _angular_core.Signal<string>;
158
287
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonGroupComponent, never>;
159
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonGroupComponent, "ol-button-group", never, {}, {}, never, ["*"], true, never>;
288
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonGroupComponent, "ol-button-group", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
160
289
  }
161
290
 
291
+ type CardVariant = 'default' | 'flat' | 'outline' | 'interactive' | 'selected' | 'disabled';
292
+ type CardPadding = 'none' | 'sm' | 'md' | 'lg';
293
+ type CardShadow = 'none' | 'xs' | 'sm' | 'md' | 'lg';
294
+ type CardRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
162
295
  declare class CardComponent {
163
- readonly href: _angular_core.InputSignal<string | null>;
296
+ readonly variant: _angular_core.InputSignal<CardVariant>;
297
+ readonly padding: _angular_core.InputSignal<CardPadding>;
298
+ readonly shadow: _angular_core.InputSignal<CardShadow>;
299
+ readonly rounded: _angular_core.InputSignal<CardRadius>;
300
+ readonly horizontal: _angular_core.InputSignal<boolean>;
164
301
  readonly imgSrc: _angular_core.InputSignal<string | null>;
165
302
  readonly imgAlt: _angular_core.InputSignal<string>;
166
- readonly horizontal: _angular_core.InputSignal<boolean>;
303
+ readonly href: _angular_core.InputSignal<string | null>;
304
+ readonly interactive: _angular_core.InputSignal<boolean>;
305
+ readonly selected: _angular_core.InputSignal<boolean>;
306
+ readonly disabled: _angular_core.InputSignal<boolean>;
167
307
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardComponent, never>;
168
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "ol-card", never, { "href": { "alias": "href"; "required": false; "isSignal": true; }; "imgSrc": { "alias": "imgSrc"; "required": false; "isSignal": true; }; "imgAlt": { "alias": "imgAlt"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
308
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CardComponent, "ol-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "imgSrc": { "alias": "imgSrc"; "required": false; "isSignal": true; }; "imgAlt": { "alias": "imgAlt"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
169
309
  }
170
310
 
171
311
  declare class CarouselComponent {
@@ -284,7 +424,7 @@ declare class DatepickerStateService {
284
424
  };
285
425
  clear(): void;
286
426
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatepickerStateService, never>;
287
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<DatepickerStateService>;
427
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
288
428
  }
289
429
 
290
430
  declare class DatepickerComponent implements ControlValueAccessor {
@@ -307,13 +447,17 @@ declare class DatepickerComponent implements ControlValueAccessor {
307
447
  readonly size: _angular_core.InputSignal<DatepickerSize>;
308
448
  readonly clearable: _angular_core.InputSignal<boolean>;
309
449
  readonly dateChange: _angular_core.OutputEmitterRef<Date | null>;
450
+ readonly timestampChange: _angular_core.OutputEmitterRef<number | null>;
451
+ readonly isoChange: _angular_core.OutputEmitterRef<string | null>;
452
+ readonly formattedChange: _angular_core.OutputEmitterRef<string>;
310
453
  readonly isOpen: _angular_core.WritableSignal<boolean>;
311
454
  readonly inputValue: _angular_core.WritableSignal<string>;
312
455
  private onChange;
313
456
  private onTouched;
457
+ private emitAllChanges;
314
458
  constructor();
315
459
  readonly inputSizeClasses: _angular_core.Signal<"py-2 px-3 ps-9 text-xs rounded-lg" | "py-3.5 px-4 ps-11 text-base rounded-xl" | "py-2.5 px-3.5 ps-10 text-sm rounded-xl">;
316
- readonly iconSizeClasses: _angular_core.Signal<"w-3.5 h-3.5 text-gray-500 start-3" | "w-5 h-5 text-gray-500 start-3.5" | "w-4 h-4 text-gray-500 start-3.5">;
460
+ readonly iconSizeClasses: _angular_core.Signal<"w-3.5 h-3.5 text-gray-500 inset-s-3" | "w-5 h-5 text-gray-500 inset-s-3.5" | "w-4 h-4 text-gray-500 inset-s-3.5">;
317
461
  writeValue(val: Date | null | string): void;
318
462
  registerOnChange(fn: (val: Date | null) => void): void;
319
463
  registerOnTouched(fn: () => void): void;
@@ -327,7 +471,7 @@ declare class DatepickerComponent implements ControlValueAccessor {
327
471
  onDocumentClick(event: MouseEvent): void;
328
472
  onEscape(): void;
329
473
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatepickerComponent, never>;
330
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerComponent, "ol-datepicker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "daysDisabled": { "alias": "daysDisabled"; "required": false; "isSignal": true; }; "datesDisabled": { "alias": "datesDisabled"; "required": false; "isSignal": true; }; "datesEnabled": { "alias": "datesEnabled"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "dateChange": "dateChange"; }, never, never, true, never>;
474
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerComponent, "ol-datepicker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; "daysDisabled": { "alias": "daysDisabled"; "required": false; "isSignal": true; }; "datesDisabled": { "alias": "datesDisabled"; "required": false; "isSignal": true; }; "datesEnabled": { "alias": "datesEnabled"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "inline": { "alias": "inline"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "clearable": { "alias": "clearable"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "dateChange": "dateChange"; "timestampChange": "timestampChange"; "isoChange": "isoChange"; "formattedChange": "formattedChange"; }, never, never, true, never>;
331
475
  }
332
476
 
333
477
  declare class DateRangePickerComponent implements ControlValueAccessor {
@@ -371,6 +515,8 @@ declare class DateRangePickerComponent implements ControlValueAccessor {
371
515
  togglePopup(event?: MouseEvent): void;
372
516
  closePopup(): void;
373
517
  onValueSelected(val: Date | [Date | null, Date | null]): void;
518
+ onPopupApply(): void;
519
+ onPopupCancel(): void;
374
520
  onPopupClear(): void;
375
521
  onStartInputChange(val: string): void;
376
522
  onEndInputChange(val: string): void;
@@ -439,10 +585,17 @@ declare class DatepickerFooterComponent {
439
585
  readonly state: DatepickerStateService;
440
586
  readonly clearClick: _angular_core.OutputEmitterRef<void>;
441
587
  readonly todayClick: _angular_core.OutputEmitterRef<void>;
588
+ readonly applyClick: _angular_core.OutputEmitterRef<void>;
589
+ readonly cancelClick: _angular_core.OutputEmitterRef<void>;
590
+ readonly isRangeMode: _angular_core.Signal<boolean>;
591
+ readonly rangeSummaryText: _angular_core.Signal<string>;
592
+ readonly canApply: _angular_core.Signal<boolean>;
442
593
  onClear(): void;
443
594
  onToday(): void;
595
+ onApply(): void;
596
+ onCancel(): void;
444
597
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatepickerFooterComponent, never>;
445
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerFooterComponent, "ol-datepicker-footer", never, {}, { "clearClick": "clearClick"; "todayClick": "todayClick"; }, never, never, true, never>;
598
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerFooterComponent, "ol-datepicker-footer", never, {}, { "clearClick": "clearClick"; "todayClick": "todayClick"; "applyClick": "applyClick"; "cancelClick": "cancelClick"; }, never, never, true, never>;
446
599
  }
447
600
 
448
601
  declare class DatepickerPopupComponent {
@@ -452,12 +605,16 @@ declare class DatepickerPopupComponent {
452
605
  readonly presets: _angular_core.InputSignal<DatepickerPreset[]>;
453
606
  readonly valueChange: _angular_core.OutputEmitterRef<Date | [Date | null, Date | null]>;
454
607
  readonly clearClick: _angular_core.OutputEmitterRef<void>;
608
+ readonly applyClick: _angular_core.OutputEmitterRef<void>;
609
+ readonly cancelClick: _angular_core.OutputEmitterRef<void>;
455
610
  onDaySelected(date: Date): void;
456
611
  onFooterToday(): void;
457
612
  onFooterClear(): void;
613
+ onFooterApply(): void;
614
+ onFooterCancel(): void;
458
615
  applyPreset(preset: DatepickerPreset): void;
459
616
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatepickerPopupComponent, never>;
460
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerPopupComponent, "ol-datepicker-popup", never, { "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "dualMonth": { "alias": "dualMonth"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "clearClick": "clearClick"; }, never, never, true, never>;
617
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatepickerPopupComponent, "ol-datepicker-popup", never, { "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "dualMonth": { "alias": "dualMonth"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "clearClick": "clearClick"; "applyClick": "applyClick"; "cancelClick": "cancelClick"; }, never, never, true, never>;
461
618
  }
462
619
 
463
620
  declare const WEEKDAYS_SHORT_VI: string[];
@@ -510,6 +667,7 @@ declare class DrawerComponent {
510
667
 
511
668
  type DropdownPlacement = 'bottom' | 'top' | 'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
512
669
  type DropdownTrigger = 'click' | 'hover';
670
+ type DropdownAutoClose = boolean | 'inside' | 'outside';
513
671
  declare class DropdownComponent {
514
672
  private readonly elementRef;
515
673
  private readonly destroyRef;
@@ -517,19 +675,18 @@ declare class DropdownComponent {
517
675
  readonly buttonId: string;
518
676
  readonly menuId: string;
519
677
  private readonly triggerButtonRef;
520
- private readonly menuRef;
521
678
  private hideTimeoutId;
522
- private suppressOutsideClickTimeoutId;
523
- private suppressOutsideClick;
524
679
  readonly label: _angular_core.InputSignal<string | null>;
525
680
  readonly isOpen: _angular_core.ModelSignal<boolean>;
526
681
  readonly placement: _angular_core.InputSignal<DropdownPlacement>;
527
682
  readonly trigger: _angular_core.InputSignal<DropdownTrigger>;
683
+ readonly autoClose: _angular_core.InputSignal<DropdownAutoClose>;
684
+ readonly disabled: _angular_core.InputSignal<boolean>;
528
685
  readonly triggerClass: _angular_core.InputSignal<string>;
686
+ readonly menuClass: _angular_core.InputSignal<string>;
529
687
  readonly opened: _angular_core.OutputEmitterRef<void>;
530
688
  readonly closed: _angular_core.OutputEmitterRef<void>;
531
689
  constructor();
532
- readonly triggerButtonClasses: _angular_core.Signal<string>;
533
690
  readonly menuPlacementClasses: _angular_core.Signal<"bottom-full left-0 mb-2" | "bottom-full right-0 mb-2" | "right-full top-0 me-2" | "left-full top-0 ms-2" | "top-full right-0 mt-2" | "top-full left-0 mt-2">;
534
691
  onDocumentClick(event: MouseEvent): void;
535
692
  onEscape(): void;
@@ -538,19 +695,30 @@ declare class DropdownComponent {
538
695
  show(): void;
539
696
  hide(): void;
540
697
  toggle(): void;
541
- isVisible(): boolean;
542
- private focusFirstMenuItem;
543
698
  private clearHideTimeout;
544
699
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownComponent, never>;
545
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "ol-dropdown", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "triggerClass": { "alias": "triggerClass"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "opened": "opened"; "closed": "closed"; }, never, ["[triggerIcon]", "*"], true, never>;
700
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownComponent, "ol-dropdown", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "triggerClass": { "alias": "triggerClass"; "required": false; "isSignal": true; }; "menuClass": { "alias": "menuClass"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "opened": "opened"; "closed": "closed"; }, never, ["[slot=trigger], [trigger]", "[triggerIcon]", "[triggerIcon]", "*"], true, never>;
546
701
  }
547
702
 
548
703
  declare class DropdownItemComponent {
704
+ readonly routerLink: _angular_core.InputSignal<string | any[] | null>;
549
705
  readonly href: _angular_core.InputSignal<string | null>;
706
+ readonly icon: _angular_core.InputSignal<string | null>;
707
+ readonly label: _angular_core.InputSignal<string | null>;
708
+ readonly secondaryText: _angular_core.InputSignal<string | null>;
709
+ readonly kbd: _angular_core.InputSignal<string | null>;
710
+ readonly suffixIcon: _angular_core.InputSignal<string | null>;
711
+ readonly selected: _angular_core.InputSignal<boolean>;
712
+ readonly active: _angular_core.InputSignal<boolean>;
713
+ readonly danger: _angular_core.InputSignal<boolean>;
714
+ readonly disabled: _angular_core.InputSignal<boolean>;
550
715
  readonly itemClick: _angular_core.OutputEmitterRef<MouseEvent>;
716
+ private readonly parentDropdown;
717
+ readonly isItemActive: _angular_core.Signal<boolean>;
718
+ readonly itemClasses: _angular_core.Signal<string>;
551
719
  handleClick(event: MouseEvent): void;
552
720
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownItemComponent, never>;
553
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownItemComponent, "ol-dropdown-item", never, { "href": { "alias": "href"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, ["*"], true, never>;
721
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownItemComponent, "ol-dropdown-item", never, { "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "secondaryText": { "alias": "secondaryText"; "required": false; "isSignal": true; }; "kbd": { "alias": "kbd"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "danger": { "alias": "danger"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, ["*"], true, never>;
554
722
  }
555
723
 
556
724
  declare class FooterComponent {
@@ -630,20 +798,34 @@ declare class SelectComponent {
630
798
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "ol-select", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showAsterisk": { "alias": "showAsterisk"; "required": false; "isSignal": true; }; "leftIcon": { "alias": "leftIcon"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, ["[leftIcon]", "*"], true, never>;
631
799
  }
632
800
 
633
- declare class CheckboxComponent {
801
+ type CheckboxSize = 'sm' | 'md' | 'lg';
802
+ declare class CheckboxComponent implements ControlValueAccessor {
634
803
  readonly checked: _angular_core.ModelSignal<boolean>;
635
804
  readonly label: _angular_core.InputSignal<string>;
636
805
  readonly description: _angular_core.InputSignal<string>;
637
806
  readonly disabled: _angular_core.InputSignal<boolean>;
807
+ readonly size: _angular_core.InputSignal<CheckboxSize>;
808
+ readonly indeterminate: _angular_core.InputSignal<boolean>;
809
+ readonly card: _angular_core.InputSignal<boolean>;
638
810
  readonly id: _angular_core.InputSignal<string>;
639
- /** Falls back to an auto-generated id so the label stays associated with the input even when consumers don't pass one. */
811
+ nativeInput?: ElementRef<HTMLInputElement>;
640
812
  private readonly generatedId;
641
813
  protected readonly inputId: _angular_core.Signal<string>;
814
+ private onChange;
815
+ private onTouched;
816
+ constructor();
817
+ onModelChange(val: boolean): void;
818
+ toggleCard(): void;
819
+ writeValue(val: boolean): void;
820
+ registerOnChange(fn: any): void;
821
+ registerOnTouched(fn: any): void;
822
+ setDisabledState?(isDisabled: boolean): void;
642
823
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
643
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ol-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
824
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ol-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "card": { "alias": "card"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, ["*"], true, never>;
644
825
  }
645
826
 
646
- declare class RadioComponent {
827
+ type RadioSize = 'sm' | 'md' | 'lg';
828
+ declare class RadioComponent implements ControlValueAccessor {
647
829
  readonly name: _angular_core.InputSignal<string>;
648
830
  readonly value: _angular_core.InputSignal<any>;
649
831
  readonly selectedValue: _angular_core.ModelSignal<any>;
@@ -651,26 +833,46 @@ declare class RadioComponent {
651
833
  readonly label: _angular_core.InputSignal<string>;
652
834
  readonly description: _angular_core.InputSignal<string>;
653
835
  readonly disabled: _angular_core.InputSignal<boolean>;
836
+ readonly size: _angular_core.InputSignal<RadioSize>;
837
+ readonly card: _angular_core.InputSignal<boolean>;
654
838
  readonly id: _angular_core.InputSignal<string>;
655
- /** Falls back to an auto-generated id so the label stays associated with the input even when consumers don't pass one. */
839
+ readonly checked: _angular_core.InputSignal<boolean | null>;
656
840
  private readonly generatedId;
657
841
  protected readonly inputId: _angular_core.Signal<string>;
658
- get currentValue(): any;
659
- onModelChange(val: any): void;
842
+ private onChange;
843
+ private onTouched;
844
+ get isChecked(): boolean;
845
+ onSelect(): void;
846
+ writeValue(val: any): void;
847
+ registerOnChange(fn: any): void;
848
+ registerOnTouched(fn: any): void;
849
+ setDisabledState?(isDisabled: boolean): void;
660
850
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioComponent, never>;
661
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "ol-radio", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "modelValue": { "alias": "modelValue"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "selectedValue": "selectedValueChange"; "modelValue": "modelValueChange"; }, never, never, true, never>;
851
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "ol-radio", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "selectedValue": { "alias": "selectedValue"; "required": false; "isSignal": true; }; "modelValue": { "alias": "modelValue"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "card": { "alias": "card"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "selectedValue": "selectedValueChange"; "modelValue": "modelValueChange"; }, never, ["*"], true, never>;
662
852
  }
663
853
 
664
854
  type ToggleSize = 'sm' | 'md' | 'lg';
665
- declare class ToggleComponent {
855
+ type ToggleColor = 'brand' | 'orange' | 'green' | 'red';
856
+ declare class ToggleComponent implements ControlValueAccessor {
666
857
  readonly checked: _angular_core.ModelSignal<boolean>;
667
858
  readonly label: _angular_core.InputSignal<string>;
668
859
  readonly description: _angular_core.InputSignal<string>;
669
860
  readonly disabled: _angular_core.InputSignal<boolean>;
670
861
  readonly size: _angular_core.InputSignal<ToggleSize>;
862
+ readonly color: _angular_core.InputSignal<ToggleColor>;
863
+ readonly justifyBetween: _angular_core.InputSignal<boolean>;
671
864
  readonly id: _angular_core.InputSignal<string>;
865
+ private readonly generatedId;
866
+ protected readonly inputId: _angular_core.Signal<string>;
867
+ private onChange;
868
+ private onTouched;
869
+ onModelChange(val: boolean): void;
870
+ writeValue(val: boolean): void;
871
+ registerOnChange(fn: any): void;
872
+ registerOnTouched(fn: any): void;
873
+ setDisabledState?(isDisabled: boolean): void;
672
874
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
673
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "ol-toggle", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
875
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "ol-toggle", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "justifyBetween": { "alias": "justifyBetween"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; }, never, never, true, never>;
674
876
  }
675
877
 
676
878
  type FileInputSize = 'sm' | 'md' | 'lg';
@@ -696,29 +898,78 @@ declare class FileInputComponent {
696
898
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileInputComponent, "ol-file-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dropzone": { "alias": "dropzone"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "filesChanged": "filesChanged"; }, never, never, true, never>;
697
899
  }
698
900
 
699
- declare class RangeComponent {
901
+ declare class RangeComponent implements ControlValueAccessor {
700
902
  readonly value: _angular_core.ModelSignal<number>;
903
+ readonly minValue: _angular_core.ModelSignal<number>;
904
+ readonly maxValue: _angular_core.ModelSignal<number>;
905
+ readonly dualRange: _angular_core.InputSignal<boolean>;
701
906
  readonly min: _angular_core.InputSignal<number>;
702
907
  readonly max: _angular_core.InputSignal<number>;
703
908
  readonly step: _angular_core.InputSignal<number>;
704
909
  readonly label: _angular_core.InputSignal<string>;
705
910
  readonly helperText: _angular_core.InputSignal<string>;
706
911
  readonly showValue: _angular_core.InputSignal<boolean>;
912
+ readonly showTooltip: _angular_core.InputSignal<boolean>;
913
+ readonly showMinMaxLabels: _angular_core.InputSignal<boolean>;
914
+ readonly unit: _angular_core.InputSignal<string>;
707
915
  readonly disabled: _angular_core.InputSignal<boolean>;
708
916
  readonly id: _angular_core.InputSignal<string>;
917
+ private readonly generatedId;
918
+ protected readonly inputId: _angular_core.Signal<string>;
919
+ readonly singlePercentage: _angular_core.Signal<number>;
920
+ readonly dualMinPercentage: _angular_core.Signal<number>;
921
+ readonly dualMaxPercentage: _angular_core.Signal<number>;
922
+ private onChange;
923
+ private onTouched;
924
+ onSingleChange(val: number): void;
925
+ onMinChange(val: number): void;
926
+ onMaxChange(val: number): void;
927
+ writeValue(val: any): void;
928
+ registerOnChange(fn: any): void;
929
+ registerOnTouched(fn: any): void;
930
+ setDisabledState?(isDisabled: boolean): void;
709
931
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RangeComponent, never>;
710
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RangeComponent, "ol-range", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
932
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<RangeComponent, "ol-range", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "dualRange": { "alias": "dualRange"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "showTooltip": { "alias": "showTooltip"; "required": false; "isSignal": true; }; "showMinMaxLabels": { "alias": "showMinMaxLabels"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "minValue": "minValueChange"; "maxValue": "maxValueChange"; }, never, ["[slot=prefix]", "[slot=suffix]"], true, never>;
711
933
  }
712
934
 
713
- declare class FloatingLabelComponent {
935
+ type FloatingLabelVariant = 'outlined' | 'filled' | 'standard';
936
+ type FloatingLabelSize = 'sm' | 'md' | 'lg';
937
+ type FloatingLabelState = 'default' | 'error' | 'success';
938
+ declare class FloatingLabelComponent implements ControlValueAccessor {
714
939
  readonly value: _angular_core.ModelSignal<string>;
715
940
  readonly label: _angular_core.InputSignal<string>;
716
941
  readonly type: _angular_core.InputSignal<string>;
942
+ readonly variant: _angular_core.InputSignal<FloatingLabelVariant>;
943
+ readonly size: _angular_core.InputSignal<FloatingLabelSize>;
944
+ readonly state: _angular_core.InputSignal<FloatingLabelState>;
717
945
  readonly disabled: _angular_core.InputSignal<boolean>;
946
+ readonly readonly: _angular_core.InputSignal<boolean>;
718
947
  readonly helperText: _angular_core.InputSignal<string>;
948
+ readonly errorText: _angular_core.InputSignal<string>;
719
949
  readonly id: _angular_core.InputSignal<string>;
950
+ readonly autocomplete: _angular_core.InputSignal<string>;
951
+ readonly labelBg: _angular_core.InputSignal<string>;
952
+ readonly prefixIcon: _angular_core.InputSignal<string>;
953
+ readonly suffixIcon: _angular_core.InputSignal<string>;
954
+ readonly prefixVariant: _angular_core.InputSignal<string>;
955
+ readonly suffixVariant: _angular_core.InputSignal<string>;
956
+ readonly hasPrefix: _angular_core.Signal<boolean>;
957
+ readonly hasSuffix: _angular_core.Signal<boolean>;
958
+ readonly isFocused: _angular_core.WritableSignal<boolean>;
959
+ readonly isFloated: _angular_core.Signal<boolean>;
960
+ private readonly generatedId;
961
+ protected readonly inputId: _angular_core.Signal<string>;
962
+ private onChange;
963
+ private onTouched;
964
+ onFocus(): void;
965
+ onBlur(): void;
966
+ onModelChange(val: string): void;
967
+ writeValue(val: string): void;
968
+ registerOnChange(fn: any): void;
969
+ registerOnTouched(fn: any): void;
970
+ setDisabledState?(isDisabled: boolean): void;
720
971
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FloatingLabelComponent, never>;
721
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingLabelComponent, "ol-floating-label", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
972
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FloatingLabelComponent, "ol-floating-label", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "labelBg": { "alias": "labelBg"; "required": false; "isSignal": true; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; "isSignal": true; }; "suffixIcon": { "alias": "suffixIcon"; "required": false; "isSignal": true; }; "prefixVariant": { "alias": "prefixVariant"; "required": false; "isSignal": true; }; "suffixVariant": { "alias": "suffixVariant"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
722
973
  }
723
974
 
724
975
  type InputCounterSize = 'sm' | 'md' | 'lg';
@@ -796,6 +1047,142 @@ declare class RichTextEditorComponent {
796
1047
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<RichTextEditorComponent, "ol-rich-text-editor", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "content": "contentChange"; }, never, never, true, never>;
797
1048
  }
798
1049
 
1050
+ type TimepickerFormat = '24h' | '12h';
1051
+ type TimepickerSize = 'sm' | 'md' | 'lg';
1052
+ type TimepickerState = 'default' | 'error' | 'success';
1053
+ interface TimeObject {
1054
+ hour: number;
1055
+ minute: number;
1056
+ period?: 'AM' | 'PM';
1057
+ formatted: string;
1058
+ }
1059
+ declare class TimepickerComponent implements ControlValueAccessor {
1060
+ private readonly elementRef;
1061
+ readonly value: _angular_core.ModelSignal<string>;
1062
+ readonly label: _angular_core.InputSignal<string>;
1063
+ readonly placeholder: _angular_core.InputSignal<string>;
1064
+ readonly format: _angular_core.InputSignal<TimepickerFormat>;
1065
+ readonly size: _angular_core.InputSignal<TimepickerSize>;
1066
+ readonly state: _angular_core.InputSignal<TimepickerState>;
1067
+ readonly disabled: _angular_core.InputSignal<boolean>;
1068
+ readonly readonly: _angular_core.InputSignal<boolean>;
1069
+ readonly required: _angular_core.InputSignal<boolean>;
1070
+ readonly showAsterisk: _angular_core.InputSignal<boolean>;
1071
+ readonly helperText: _angular_core.InputSignal<string>;
1072
+ readonly errorText: _angular_core.InputSignal<string>;
1073
+ readonly id: _angular_core.InputSignal<string>;
1074
+ readonly minuteStep: _angular_core.InputSignal<number>;
1075
+ readonly showPresets: _angular_core.InputSignal<boolean>;
1076
+ readonly addonType: _angular_core.InputSignal<"none" | "left" | "right">;
1077
+ readonly addonText: _angular_core.InputSignal<string>;
1078
+ readonly addonIcon: _angular_core.InputSignal<string>;
1079
+ private readonly generatedId;
1080
+ protected readonly inputId: _angular_core.Signal<string>;
1081
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
1082
+ readonly selectedHour: _angular_core.WritableSignal<number>;
1083
+ readonly selectedMinute: _angular_core.WritableSignal<number>;
1084
+ readonly selectedPeriod: _angular_core.WritableSignal<"AM" | "PM">;
1085
+ readonly presetTimes: string[];
1086
+ readonly hours24: number[];
1087
+ readonly hours12: number[];
1088
+ readonly minutes: number[];
1089
+ readonly hourContainerRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
1090
+ readonly minuteContainerRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
1091
+ readonly timeChange: _angular_core.OutputEmitterRef<string>;
1092
+ readonly timestampChange: _angular_core.OutputEmitterRef<number | null>;
1093
+ readonly isoChange: _angular_core.OutputEmitterRef<string | null>;
1094
+ readonly timeObjectChange: _angular_core.OutputEmitterRef<TimeObject | null>;
1095
+ private onChange;
1096
+ private onTouched;
1097
+ private emitAllChanges;
1098
+ constructor(elementRef: ElementRef);
1099
+ onDocumentClick(event: MouseEvent): void;
1100
+ toggleDropdown(): void;
1101
+ private scrollToSelected;
1102
+ private parseCurrentValue;
1103
+ selectHour(h: number): void;
1104
+ selectMinute(m: number): void;
1105
+ selectPeriod(p: 'AM' | 'PM'): void;
1106
+ selectPreset(time: string): void;
1107
+ clear(event: MouseEvent): void;
1108
+ apply(): void;
1109
+ cancel(): void;
1110
+ private updateFormattedValue;
1111
+ pad(num: number): string;
1112
+ writeValue(val: string): void;
1113
+ registerOnChange(fn: any): void;
1114
+ registerOnTouched(fn: any): void;
1115
+ setDisabledState?(isDisabled: boolean): void;
1116
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimepickerComponent, never>;
1117
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimepickerComponent, "ol-timepicker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "format": { "alias": "format"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showAsterisk": { "alias": "showAsterisk"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; "showPresets": { "alias": "showPresets"; "required": false; "isSignal": true; }; "addonType": { "alias": "addonType"; "required": false; "isSignal": true; }; "addonText": { "alias": "addonText"; "required": false; "isSignal": true; }; "addonIcon": { "alias": "addonIcon"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "timeChange": "timeChange"; "timestampChange": "timestampChange"; "isoChange": "isoChange"; "timeObjectChange": "timeObjectChange"; }, never, never, true, never>;
1118
+ }
1119
+
1120
+ type AutocompleteSize = 'sm' | 'md' | 'lg';
1121
+ type AutocompleteState = 'default' | 'error' | 'success';
1122
+ interface AutocompleteOption {
1123
+ label: string;
1124
+ value: any;
1125
+ subLabel?: string;
1126
+ avatar?: string;
1127
+ badge?: string;
1128
+ group?: string;
1129
+ disabled?: boolean;
1130
+ [key: string]: any;
1131
+ }
1132
+ declare class AutocompleteComponent implements ControlValueAccessor {
1133
+ private readonly elementRef;
1134
+ readonly value: _angular_core.ModelSignal<any>;
1135
+ readonly options: _angular_core.InputSignal<any[]>;
1136
+ readonly label: _angular_core.InputSignal<string>;
1137
+ readonly placeholder: _angular_core.InputSignal<string>;
1138
+ readonly labelKey: _angular_core.InputSignal<string>;
1139
+ readonly valueKey: _angular_core.InputSignal<string>;
1140
+ readonly multiple: _angular_core.InputSignal<boolean>;
1141
+ readonly disabled: _angular_core.InputSignal<boolean>;
1142
+ readonly readonly: _angular_core.InputSignal<boolean>;
1143
+ readonly loading: _angular_core.InputSignal<boolean>;
1144
+ readonly size: _angular_core.InputSignal<AutocompleteSize>;
1145
+ readonly state: _angular_core.InputSignal<AutocompleteState>;
1146
+ readonly required: _angular_core.InputSignal<boolean>;
1147
+ readonly showAsterisk: _angular_core.InputSignal<boolean>;
1148
+ readonly helperText: _angular_core.InputSignal<string>;
1149
+ readonly errorText: _angular_core.InputSignal<string>;
1150
+ readonly id: _angular_core.InputSignal<string>;
1151
+ readonly allowCreate: _angular_core.InputSignal<boolean>;
1152
+ readonly emptyText: _angular_core.InputSignal<string>;
1153
+ readonly groupBy: _angular_core.InputSignal<string>;
1154
+ readonly createOption: _angular_core.OutputEmitterRef<string>;
1155
+ optionTemplate?: TemplateRef<any>;
1156
+ private readonly generatedId;
1157
+ protected readonly inputId: _angular_core.Signal<string>;
1158
+ readonly searchQuery: _angular_core.WritableSignal<string>;
1159
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
1160
+ readonly activeIndex: _angular_core.WritableSignal<number>;
1161
+ private onChange;
1162
+ private onTouched;
1163
+ constructor(elementRef: ElementRef);
1164
+ onDocumentClick(event: MouseEvent): void;
1165
+ readonly filteredOptions: _angular_core.Signal<any[]>;
1166
+ getItemLabel(item: any): string;
1167
+ getItemValue(item: any): any;
1168
+ isSelected(item: any): boolean;
1169
+ private areValuesEqual;
1170
+ onInputFocus(): void;
1171
+ onSearchChange(val: string): void;
1172
+ selectOption(item: any): void;
1173
+ removeTag(valToRemove: any, event: MouseEvent): void;
1174
+ clearAll(event: MouseEvent): void;
1175
+ onCreateNew(): void;
1176
+ onKeyDown(event: KeyboardEvent): void;
1177
+ getDisplayLabelForValue(val: any): string;
1178
+ writeValue(val: any): void;
1179
+ registerOnChange(fn: any): void;
1180
+ registerOnTouched(fn: any): void;
1181
+ setDisabledState?(isDisabled: boolean): void;
1182
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
1183
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutocompleteComponent, "ol-autocomplete", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "labelKey": { "alias": "labelKey"; "required": false; "isSignal": true; }; "valueKey": { "alias": "valueKey"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showAsterisk": { "alias": "showAsterisk"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "allowCreate": { "alias": "allowCreate"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "createOption": "createOption"; }, ["optionTemplate"], never, true, never>;
1184
+ }
1185
+
799
1186
  declare class KbdComponent {
800
1187
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbdComponent, never>;
801
1188
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbdComponent, "ol-kbd", never, {}, {}, never, ["*"], true, never>;
@@ -840,29 +1227,89 @@ declare class ModalComponent {
840
1227
  }
841
1228
 
842
1229
  declare class NavbarComponent {
1230
+ readonly brandLogo: _angular_core.InputSignal<string>;
1231
+ readonly brandName: _angular_core.InputSignal<string>;
1232
+ readonly sticky: _angular_core.InputSignal<boolean>;
1233
+ readonly bordered: _angular_core.InputSignal<boolean>;
1234
+ readonly fluid: _angular_core.InputSignal<boolean>;
1235
+ readonly showSearch: _angular_core.InputSignal<boolean>;
1236
+ readonly searchPlaceholder: _angular_core.InputSignal<string>;
843
1237
  readonly isCollapsed: _angular_core.ModelSignal<boolean>;
844
- toggle(): void;
1238
+ readonly onSearch: _angular_core.OutputEmitterRef<string>;
1239
+ readonly onToggleMobileMenu: _angular_core.OutputEmitterRef<boolean>;
1240
+ searchQuery: string;
1241
+ private readonly elementRef;
1242
+ readonly navbarClasses: _angular_core.Signal<string>;
1243
+ readonly containerClasses: _angular_core.Signal<"w-full px-4 sm:px-6" | "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">;
1244
+ toggleMobileMenu(): void;
1245
+ handleSearchSubmit(): void;
1246
+ handleSearchInput(event: Event): void;
1247
+ handleGlobalKeydown(event: KeyboardEvent): void;
845
1248
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavbarComponent, never>;
846
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarComponent, "ol-navbar", never, { "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; }, { "isCollapsed": "isCollapsedChange"; }, never, ["[brand]", "*"], true, never>;
1249
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarComponent, "ol-navbar", never, { "brandLogo": { "alias": "brandLogo"; "required": false; "isSignal": true; }; "brandName": { "alias": "brandName"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "fluid": { "alias": "fluid"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; }, { "isCollapsed": "isCollapsedChange"; "onSearch": "onSearch"; "onToggleMobileMenu": "onToggleMobileMenu"; }, never, ["[slot=brand], [brand]", "[slot=navigation], [navigation], ol-navbar-item, ol-nav-dropdown", "[slot=actions], [actions]", "[slot=mobile-user]", "[slot=mobile], [slot=mobile-links]", "[slot=mobile-actions]", "[slot=mobile-footer]"], true, never>;
847
1250
  }
848
1251
 
849
1252
  declare class NavbarItemComponent {
850
- readonly href: _angular_core.InputSignal<string>;
1253
+ readonly routerLink: _angular_core.InputSignal<string | any[] | null>;
1254
+ readonly routerLinkActive: _angular_core.InputSignal<string>;
1255
+ readonly routerLinkActiveOptions: _angular_core.InputSignal<{
1256
+ exact: boolean;
1257
+ }>;
1258
+ readonly href: _angular_core.InputSignal<string | null>;
1259
+ readonly icon: _angular_core.InputSignal<string | null>;
1260
+ readonly label: _angular_core.InputSignal<string | null>;
851
1261
  readonly active: _angular_core.InputSignal<boolean>;
1262
+ readonly disabled: _angular_core.InputSignal<boolean>;
1263
+ readonly itemClasses: _angular_core.Signal<string>;
852
1264
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavbarItemComponent, never>;
853
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarItemComponent, "ol-navbar-item", never, { "href": { "alias": "href"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1265
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavbarItemComponent, "ol-navbar-item", never, { "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "routerLinkActive": { "alias": "routerLinkActive"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1266
+ }
1267
+
1268
+ declare class NavDropdownComponent {
1269
+ readonly label: _angular_core.InputSignal<string>;
1270
+ readonly icon: _angular_core.InputSignal<string | null>;
1271
+ readonly alignRight: _angular_core.InputSignal<boolean>;
1272
+ readonly isOpen: _angular_core.WritableSignal<boolean>;
1273
+ private readonly elementRef;
1274
+ toggle(): void;
1275
+ close(): void;
1276
+ handleClickOutside(event: MouseEvent): void;
1277
+ handleEscape(): void;
1278
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NavDropdownComponent, never>;
1279
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NavDropdownComponent, "ol-nav-dropdown", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "alignRight": { "alias": "alignRight"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=trigger], [trigger]", "*"], true, never>;
854
1280
  }
855
1281
 
1282
+ type PaginationType = 'default' | 'arrows' | 'dropdown-buttons' | 'text-buttons' | 'two-buttons' | 'buttons-helper' | 'with-dropdown' | 'with-input' | 'simple-input';
1283
+ type PaginationVariant = PaginationType | 'grouped' | 'separated';
856
1284
  declare class PaginationComponent {
1285
+ readonly type: _angular_core.InputSignal<PaginationType>;
1286
+ readonly variant: _angular_core.InputSignal<PaginationVariant>;
1287
+ readonly total: _angular_core.InputSignal<number>;
1288
+ readonly pageSize: _angular_core.ModelSignal<number>;
1289
+ readonly pageIndex: _angular_core.ModelSignal<number>;
857
1290
  readonly currentPage: _angular_core.ModelSignal<number>;
858
- readonly totalPages: _angular_core.InputSignal<number>;
859
- readonly showIcons: _angular_core.InputSignal<boolean>;
1291
+ readonly totalPagesInput: _angular_core.InputSignal<number | null>;
1292
+ readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
1293
+ readonly showText: _angular_core.InputSignal<boolean>;
1294
+ readonly text: _angular_core.InputSignal<string>;
1295
+ readonly showInfo: _angular_core.InputSignal<boolean>;
1296
+ readonly showSizeChanger: _angular_core.InputSignal<boolean>;
1297
+ readonly showQuickJumper: _angular_core.InputSignal<boolean>;
860
1298
  readonly pageChange: _angular_core.OutputEmitterRef<number>;
1299
+ jumpPageValue: _angular_core.WritableSignal<number | null>;
1300
+ readonly effectiveType: _angular_core.Signal<PaginationType>;
1301
+ readonly effectivePageIndex: _angular_core.Signal<number>;
1302
+ readonly calculatedTotalPages: _angular_core.Signal<number>;
1303
+ readonly startRecord: _angular_core.Signal<number>;
1304
+ readonly endRecord: _angular_core.Signal<number>;
1305
+ readonly visiblePages: _angular_core.Signal<(number | "ellipsis")[]>;
861
1306
  goToPage(page: number): void;
862
1307
  prev(): void;
863
1308
  next(): void;
1309
+ onPageSizeSelect(event: Event): void;
1310
+ handleJump(): void;
864
1311
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginationComponent, never>;
865
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginationComponent, "ol-pagination", never, { "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "totalPages": { "alias": "totalPages"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; }, { "currentPage": "currentPageChange"; "pageChange": "pageChange"; }, never, never, true, never>;
1312
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginationComponent, "ol-pagination", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageIndex": { "alias": "pageIndex"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "totalPagesInput": { "alias": "totalPages"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "showText": { "alias": "showText"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "showInfo": { "alias": "showInfo"; "required": false; "isSignal": true; }; "showSizeChanger": { "alias": "showSizeChanger"; "required": false; "isSignal": true; }; "showQuickJumper": { "alias": "showQuickJumper"; "required": false; "isSignal": true; }; }, { "pageSize": "pageSizeChange"; "pageIndex": "pageIndexChange"; "currentPage": "currentPageChange"; "pageChange": "pageChange"; }, never, never, true, never>;
866
1313
  }
867
1314
 
868
1315
  type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right';
@@ -896,36 +1343,265 @@ declare class RatingComponent {
896
1343
  }
897
1344
 
898
1345
  declare class SidebarComponent {
1346
+ readonly collapsed: _angular_core.ModelSignal<boolean>;
1347
+ readonly width: _angular_core.InputSignal<string>;
1348
+ readonly collapsedWidth: _angular_core.InputSignal<string>;
1349
+ readonly collapsible: _angular_core.InputSignal<boolean>;
1350
+ readonly bordered: _angular_core.InputSignal<boolean>;
1351
+ readonly currentWidth: _angular_core.Signal<string>;
1352
+ readonly sidebarClasses: _angular_core.Signal<string>;
1353
+ toggle(): void;
899
1354
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
900
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "ol-sidebar", never, {}, {}, never, ["*"], true, never>;
1355
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "ol-sidebar", never, { "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["[slot=header], [header]", "*", "[slot=footer], [footer]"], true, never>;
901
1356
  }
902
1357
 
903
1358
  declare class SidebarItemComponent {
904
- readonly href: _angular_core.InputSignal<string>;
905
- readonly icon: _angular_core.InputSignal<string>;
1359
+ readonly routerLink: _angular_core.InputSignal<string | any[] | null>;
1360
+ readonly routerLinkActive: _angular_core.InputSignal<string>;
1361
+ readonly routerLinkActiveOptions: _angular_core.InputSignal<{
1362
+ exact: boolean;
1363
+ }>;
1364
+ readonly href: _angular_core.InputSignal<string | null>;
1365
+ readonly icon: _angular_core.InputSignal<string | null>;
1366
+ readonly badge: _angular_core.InputSignal<string | number | null>;
1367
+ readonly badgeTheme: _angular_core.InputSignal<BadgeTheme>;
1368
+ readonly active: _angular_core.InputSignal<boolean>;
1369
+ readonly disabled: _angular_core.InputSignal<boolean>;
1370
+ readonly dot: _angular_core.InputSignal<boolean>;
1371
+ readonly itemClasses: _angular_core.Signal<string>;
906
1372
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarItemComponent, never>;
907
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarItemComponent, "ol-sidebar-item", never, { "href": { "alias": "href"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["[icon]", "*"], true, never>;
1373
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarItemComponent, "ol-sidebar-item", never, { "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "routerLinkActive": { "alias": "routerLinkActive"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeTheme": { "alias": "badgeTheme"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; }, {}, never, ["*", "*", "*"], true, never>;
908
1374
  }
909
1375
 
910
- declare class SkeletonComponent {
911
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonComponent, never>;
912
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "ol-skeleton", never, {}, {}, never, never, true, never>;
1376
+ declare class SidebarGroupComponent {
1377
+ readonly title: _angular_core.InputSignal<string>;
1378
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarGroupComponent, never>;
1379
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarGroupComponent, "ol-sidebar-group", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
913
1380
  }
914
1381
 
915
- declare class SpeedDialComponent {
1382
+ declare class SidebarSubmenuComponent {
1383
+ readonly label: _angular_core.InputSignal<string>;
1384
+ readonly icon: _angular_core.InputSignal<string | null>;
1385
+ readonly badge: _angular_core.InputSignal<string | number | null>;
1386
+ readonly badgeTheme: _angular_core.InputSignal<BadgeTheme>;
916
1387
  readonly isOpen: _angular_core.ModelSignal<boolean>;
1388
+ readonly active: _angular_core.InputSignal<boolean>;
1389
+ readonly triggerClasses: _angular_core.Signal<string>;
917
1390
  toggle(): void;
918
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpeedDialComponent, never>;
919
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpeedDialComponent, "ol-speed-dial", never, { "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; }, never, ["*"], true, never>;
1391
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarSubmenuComponent, never>;
1392
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarSubmenuComponent, "ol-sidebar-submenu", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeTheme": { "alias": "badgeTheme"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; }, never, ["*"], true, never>;
920
1393
  }
921
1394
 
922
- type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
923
- type SpinnerColor = 'blue' | 'gray' | 'green' | 'red' | 'yellow' | 'pink' | 'purple';
924
- declare class SpinnerComponent {
925
- readonly size: _angular_core.InputSignal<SpinnerSize>;
926
- readonly color: _angular_core.InputSignal<SpinnerColor>;
927
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
928
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "ol-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1395
+ /**
1396
+ * OlSkeleton - Loading placeholder component
1397
+ *
1398
+ * Hiển thị skeleton loader cho content đang tải với nhiều variants và animations
1399
+ *
1400
+ * @example
1401
+ * // Text skeleton
1402
+ * <ol-skeleton type="text" />
1403
+ *
1404
+ * // Avatar skeleton
1405
+ * <ol-skeleton type="avatar" rounded="full" />
1406
+ *
1407
+ * // Card skeleton
1408
+ * <ol-skeleton type="card" height="200px" />
1409
+ *
1410
+ * // Multiple text lines
1411
+ * @for (i of [1,2,3,4]; track i) {
1412
+ * <ol-skeleton type="text" [width]="i === 4 ? '60%' : '100%'" />
1413
+ * }
1414
+ */
1415
+ declare class OlSkeletonComponent {
1416
+ /**
1417
+ * Loại skeleton
1418
+ * - text: Thanh ngang cho text line
1419
+ * - avatar: Hình tròn cho avatar
1420
+ * - card: Khối chữ nhật cho card
1421
+ * - button: Nhỏ hơn cho button
1422
+ * - image: Tỷ lệ 16:9 hoặc 4:3
1423
+ * - custom: Tùy chỉnh width/height
1424
+ */
1425
+ type: _angular_core.InputSignal<"image" | "custom" | "avatar" | "button" | "text" | "card">;
1426
+ /**
1427
+ * Chiều rộng của skeleton
1428
+ * Mặc định: 100% (hoặc theo preset của type)
1429
+ */
1430
+ width: _angular_core.InputSignal<string | undefined>;
1431
+ /**
1432
+ * Chiều cao của skeleton
1433
+ * Mặc định: theo preset của type
1434
+ */
1435
+ height: _angular_core.InputSignal<string | undefined>;
1436
+ /**
1437
+ * Bo tròn góc
1438
+ * - none: rounded-none
1439
+ * - sm: rounded-sm
1440
+ * - md: rounded-md (default)
1441
+ * - lg: rounded-lg
1442
+ * - xl: rounded-xl
1443
+ * - full: rounded-full (cho avatar)
1444
+ */
1445
+ rounded: _angular_core.InputSignal<"sm" | "md" | "lg" | "xl" | "none" | "full">;
1446
+ /**
1447
+ * Loại animation
1448
+ * - pulse: Nhấp nháy opacity (default)
1449
+ * - wave: Gradient di chuyển ngang
1450
+ * - none: Static không animation
1451
+ */
1452
+ animation: _angular_core.InputSignal<"none" | "pulse" | "wave">;
1453
+ /**
1454
+ * Aspect ratio cho image type
1455
+ * - 16/9: Landscape (default)
1456
+ * - 4/3: Standard
1457
+ */
1458
+ aspectRatio: _angular_core.InputSignal<"16/9" | "4/3">;
1459
+ /**
1460
+ * Computed classes cho skeleton
1461
+ */
1462
+ skeletonClasses: _angular_core.Signal<string>;
1463
+ /**
1464
+ * Computed styles cho skeleton
1465
+ */
1466
+ skeletonStyles: _angular_core.Signal<Record<string, string>>;
1467
+ /**
1468
+ * Get rounded class based on type and input
1469
+ */
1470
+ private getRoundedClass;
1471
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlSkeletonComponent, never>;
1472
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlSkeletonComponent, "ol-skeleton", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1473
+ }
1474
+
1475
+ type SpeedDialDirection = 'top' | 'bottom' | 'left' | 'right';
1476
+ type SpeedDialType = 'default' | 'rounded' | 'menu';
1477
+ type SpeedDialTrigger = 'click' | 'hover';
1478
+ type SpeedDialColor = 'brand' | 'neutral' | 'success' | 'danger' | 'warning';
1479
+ interface SpeedDialAction {
1480
+ id?: string;
1481
+ label: string;
1482
+ icon?: string;
1483
+ svgPath?: string;
1484
+ tooltip?: string;
1485
+ disabled?: boolean;
1486
+ class?: string;
1487
+ onClick?: () => void;
1488
+ }
1489
+
1490
+ declare class OlSpeedDialComponent {
1491
+ private readonly elementRef;
1492
+ direction: _angular_core.InputSignal<SpeedDialDirection>;
1493
+ type: _angular_core.InputSignal<SpeedDialType>;
1494
+ trigger: _angular_core.InputSignal<SpeedDialTrigger>;
1495
+ color: _angular_core.InputSignal<SpeedDialColor>;
1496
+ icon: _angular_core.InputSignal<string>;
1497
+ ariaLabel: _angular_core.InputSignal<string>;
1498
+ tooltip: _angular_core.InputSignal<string | undefined>;
1499
+ disabled: _angular_core.InputSignal<boolean>;
1500
+ backdrop: _angular_core.InputSignal<boolean>;
1501
+ closeOnClickOutside: _angular_core.InputSignal<boolean>;
1502
+ closeOnEscape: _angular_core.InputSignal<boolean>;
1503
+ actions: _angular_core.InputSignal<SpeedDialAction[]>;
1504
+ customClass: _angular_core.InputSignal<string>;
1505
+ isOpen: _angular_core.ModelSignal<boolean>;
1506
+ onOpen: _angular_core.OutputEmitterRef<void>;
1507
+ onClose: _angular_core.OutputEmitterRef<void>;
1508
+ actionClick: _angular_core.OutputEmitterRef<SpeedDialAction>;
1509
+ private hoverTimeout?;
1510
+ containerClasses: _angular_core.Signal<string>;
1511
+ itemsContainerClasses: _angular_core.Signal<string>;
1512
+ triggerButtonClasses: _angular_core.Signal<string>;
1513
+ tooltipPositionForItems: _angular_core.Signal<"left" | "top">;
1514
+ toggle(): void;
1515
+ open(): void;
1516
+ close(): void;
1517
+ handleAction(action: SpeedDialAction, event: MouseEvent): void;
1518
+ onMouseEnter(): void;
1519
+ onMouseLeave(): void;
1520
+ onBackdropMouseEnter(): void;
1521
+ onDocumentClick(event: MouseEvent): void;
1522
+ onEscape(): void;
1523
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlSpeedDialComponent, never>;
1524
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlSpeedDialComponent, "ol-speed-dial", never, { "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "backdrop": { "alias": "backdrop"; "required": false; "isSignal": true; }; "closeOnClickOutside": { "alias": "closeOnClickOutside"; "required": false; "isSignal": true; }; "closeOnEscape": { "alias": "closeOnEscape"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "onOpen": "onOpen"; "onClose": "onClose"; "actionClick": "actionClick"; }, never, ["*"], true, never>;
1525
+ }
1526
+
1527
+ declare class OlSpeedDialItemComponent {
1528
+ label: _angular_core.InputSignal<string>;
1529
+ icon: _angular_core.InputSignal<string | undefined>;
1530
+ tooltip: _angular_core.InputSignal<string | undefined>;
1531
+ tooltipPosition: _angular_core.InputSignal<"left" | "right" | "top" | "bottom">;
1532
+ disabled: _angular_core.InputSignal<boolean>;
1533
+ type: _angular_core.InputSignal<SpeedDialType>;
1534
+ customClass: _angular_core.InputSignal<string>;
1535
+ onClick: _angular_core.OutputEmitterRef<MouseEvent>;
1536
+ handleClick(event: MouseEvent): void;
1537
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlSpeedDialItemComponent, never>;
1538
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlSpeedDialItemComponent, "ol-speed-dial-item", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
1539
+ }
1540
+
1541
+ /**
1542
+ * OlSpinner - Loading spinner component
1543
+ *
1544
+ * Hiển thị loading indicator với nhiều variants và sizes
1545
+ *
1546
+ * @example
1547
+ * // Circle spinner (default)
1548
+ * <ol-spinner />
1549
+ *
1550
+ * // Dots spinner
1551
+ * <ol-spinner variant="dots" size="lg" color="brand" />
1552
+ *
1553
+ * // Pulse spinner
1554
+ * <ol-spinner variant="pulse" size="xl" color="success" />
1555
+ */
1556
+ declare class OlSpinnerComponent {
1557
+ /**
1558
+ * Variant của spinner
1559
+ * - circle: Vòng tròn xoay với viền khuyết (default)
1560
+ * - dots: 3 chấm tròn nhấp nhô
1561
+ * - pulse: Hình tròn nhấp nháy scale
1562
+ */
1563
+ variant: _angular_core.InputSignal<"circle" | "pulse" | "dots">;
1564
+ /**
1565
+ * Kích thước spinner
1566
+ * - xs: 12px (w-3 h-3)
1567
+ * - sm: 16px (w-4 h-4)
1568
+ * - md: 24px (w-6 h-6) - default
1569
+ * - lg: 36px (w-9 h-9)
1570
+ * - xl: 48px (w-12 h-12)
1571
+ */
1572
+ size: _angular_core.InputSignal<"xs" | "sm" | "md" | "lg" | "xl">;
1573
+ /**
1574
+ * Màu sắc của spinner
1575
+ * - brand: border-brand-600 (default)
1576
+ * - white: border-white
1577
+ * - success: border-emerald-600
1578
+ * - warning: border-amber-500
1579
+ * - danger: border-rose-600
1580
+ * - gray: border-gray-400
1581
+ */
1582
+ color: _angular_core.InputSignal<"brand" | "danger" | "success" | "warning" | "white" | "gray">;
1583
+ /**
1584
+ * Aria label cho accessibility
1585
+ */
1586
+ ariaLabel: _angular_core.InputSignal<string>;
1587
+ /**
1588
+ * Computed classes cho spinner container
1589
+ */
1590
+ spinnerClasses: _angular_core.Signal<string>;
1591
+ /**
1592
+ * Computed classes cho size
1593
+ */
1594
+ sizeClasses: _angular_core.Signal<"w-4 h-4" | "w-6 h-6" | "w-12 h-12" | "w-3 h-3" | "w-9 h-9">;
1595
+ /**
1596
+ * Computed classes cho dots
1597
+ */
1598
+ dotClasses: _angular_core.Signal<string>;
1599
+ /**
1600
+ * Computed classes cho pulse
1601
+ */
1602
+ pulseClasses: _angular_core.Signal<string>;
1603
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlSpinnerComponent, never>;
1604
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlSpinnerComponent, "ol-spinner", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
929
1605
  }
930
1606
 
931
1607
  declare class TableComponent {
@@ -937,19 +1613,33 @@ declare class TableComponent {
937
1613
 
938
1614
  declare class TabItemComponent {
939
1615
  readonly tabId: _angular_core.InputSignal<string>;
1616
+ readonly label: _angular_core.InputSignal<string>;
940
1617
  readonly title: _angular_core.InputSignal<string>;
1618
+ readonly subtitle: _angular_core.InputSignal<string>;
1619
+ readonly helper: _angular_core.InputSignal<string>;
1620
+ readonly icon: _angular_core.InputSignal<string | null>;
1621
+ readonly avatar: _angular_core.InputSignal<string | null>;
1622
+ readonly badge: _angular_core.InputSignal<string | number | null>;
1623
+ readonly badgeTheme: _angular_core.InputSignal<BadgeTheme>;
941
1624
  readonly disabled: _angular_core.InputSignal<boolean>;
942
- readonly badge: _angular_core.InputSignal<string | undefined>;
1625
+ readonly displayLabel: _angular_core.Signal<string>;
1626
+ readonly displaySubtitle: _angular_core.Signal<string>;
943
1627
  private readonly parentTabs;
944
1628
  readonly isActive: _angular_core.Signal<boolean>;
945
1629
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabItemComponent, never>;
946
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabItemComponent, "ol-tab-item", never, { "tabId": { "alias": "tabId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1630
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabItemComponent, "ol-tab-item", never, { "tabId": { "alias": "tabId"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "helper": { "alias": "helper"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeTheme": { "alias": "badgeTheme"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
947
1631
  }
948
1632
 
949
- type TabsVariant = 'underline' | 'pills' | 'card';
1633
+ type TabsVariant = 'default' | 'underline' | 'border-bottom' | 'pills' | 'button' | 'boxed' | 'button-group' | 'vertical' | 'vertical-pills' | 'vertical-list' | 'card';
1634
+ type TabsSize = 'sm' | 'md' | 'lg';
950
1635
  declare class TabsComponent {
951
- readonly activeTab: _angular_core.ModelSignal<string | number>;
952
1636
  readonly variant: _angular_core.InputSignal<TabsVariant>;
1637
+ readonly size: _angular_core.InputSignal<TabsSize>;
1638
+ readonly fullWidth: _angular_core.InputSignal<boolean>;
1639
+ readonly mobile: _angular_core.InputSignal<boolean>;
1640
+ readonly mobileDropdown: _angular_core.InputSignal<boolean>;
1641
+ readonly selectedIndex: _angular_core.ModelSignal<number>;
1642
+ readonly activeTab: _angular_core.ModelSignal<string | number>;
953
1643
  readonly tabChange: _angular_core.OutputEmitterRef<{
954
1644
  index: number;
955
1645
  id?: string;
@@ -957,13 +1647,16 @@ declare class TabsComponent {
957
1647
  }>;
958
1648
  readonly items: _angular_core.Signal<readonly TabItemComponent[]>;
959
1649
  readonly currentIndex: _angular_core.Signal<number>;
960
- selectTab(indexOrId: number | string): void;
1650
+ readonly currentItem: _angular_core.Signal<TabItemComponent>;
1651
+ readonly isMobileDropdown: _angular_core.Signal<boolean>;
1652
+ readonly isVertical: _angular_core.Signal<boolean>;
1653
+ readonly sizeClasses: _angular_core.Signal<"py-1.5 px-3 text-xs gap-1.5" | "py-3.5 px-6 text-base gap-2.5" | "py-2.5 px-4 text-sm gap-2">;
1654
+ selectTab(index: number): void;
961
1655
  show(indexOrId: number | string): void;
962
1656
  nextTab(): void;
963
1657
  prevTab(): void;
964
- getActiveTab(): TabItemComponent | undefined;
965
1658
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
966
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ol-tabs", never, { "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, { "activeTab": "activeTabChange"; "tabChange": "tabChange"; }, ["items"], ["[tab-headers]", "*"], true, never>;
1659
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "ol-tabs", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "mobile": { "alias": "mobile"; "required": false; "isSignal": true; }; "mobileDropdown": { "alias": "mobileDropdown"; "required": false; "isSignal": true; }; "selectedIndex": { "alias": "selectedIndex"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; }, { "selectedIndex": "selectedIndexChange"; "activeTab": "activeTabChange"; "tabChange": "tabChange"; }, ["items"], ["*", "*"], true, never>;
967
1660
  }
968
1661
 
969
1662
  declare class TimelineComponent {
@@ -997,6 +1690,76 @@ declare class ToastComponent implements OnDestroy {
997
1690
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ol-toast", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; }, { "isVisible": "isVisibleChange"; "closed": "closed"; }, never, ["*"], true, never>;
998
1691
  }
999
1692
 
1693
+ interface ToastConfig {
1694
+ id?: string;
1695
+ type?: 'success' | 'danger' | 'warning' | 'info' | 'neutral';
1696
+ title?: string;
1697
+ message: string;
1698
+ duration?: number;
1699
+ position?: ToastPosition;
1700
+ actionLabel?: string;
1701
+ onAction?: () => void;
1702
+ showProgress?: boolean;
1703
+ avatar?: string;
1704
+ icon?: string | boolean;
1705
+ dismissible?: boolean;
1706
+ }
1707
+ type ToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
1708
+ interface Toast extends ToastConfig {
1709
+ id: string;
1710
+ createdAt: number;
1711
+ }
1712
+
1713
+ declare class OlToastService {
1714
+ private toasts;
1715
+ private maxToasts;
1716
+ private defaultDuration;
1717
+ readonly toasts$: _angular_core.Signal<Toast[]>;
1718
+ show(config: ToastConfig): string;
1719
+ success(message: string, config?: Partial<ToastConfig>): string;
1720
+ error(message: string, config?: Partial<ToastConfig>): string;
1721
+ warning(message: string, config?: Partial<ToastConfig>): string;
1722
+ info(message: string, config?: Partial<ToastConfig>): string;
1723
+ dismiss(id: string): void;
1724
+ clear(position?: ToastPosition): void;
1725
+ private addToast;
1726
+ private scheduleAutoDismiss;
1727
+ private generateId;
1728
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlToastService, never>;
1729
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1730
+ }
1731
+
1732
+ declare class OlToastComponent implements OnInit, OnDestroy {
1733
+ config: _angular_core.InputSignal<Toast>;
1734
+ dismiss: _angular_core.OutputEmitterRef<void>;
1735
+ progress: _angular_core.WritableSignal<number>;
1736
+ private progressInterval?;
1737
+ private isPaused;
1738
+ toastClasses: _angular_core.Signal<string>;
1739
+ showIcon: _angular_core.Signal<boolean>;
1740
+ iconName: _angular_core.Signal<string>;
1741
+ iconClasses: _angular_core.Signal<string>;
1742
+ progressBarClasses: _angular_core.Signal<string>;
1743
+ ngOnInit(): void;
1744
+ ngOnDestroy(): void;
1745
+ onMouseEnter(): void;
1746
+ onMouseLeave(): void;
1747
+ handleDismiss(): void;
1748
+ handleAction(): void;
1749
+ private startProgress;
1750
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlToastComponent, never>;
1751
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlToastComponent, "ol-toast", never, { "config": { "alias": "config"; "required": true; "isSignal": true; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
1752
+ }
1753
+
1754
+ declare class OlToastContainerComponent {
1755
+ toastService: OlToastService;
1756
+ positions: ToastPosition[];
1757
+ getToastsByPosition(position: ToastPosition): _edmicro_olkit.Toast[];
1758
+ getContainerClasses(position: ToastPosition): string;
1759
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlToastContainerComponent, never>;
1760
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlToastContainerComponent, "ol-toast-container", never, {}, {}, never, never, true, never>;
1761
+ }
1762
+
1000
1763
  type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
1001
1764
  type TooltipTrigger = 'hover' | 'click';
1002
1765
  type TooltipTheme = 'dark' | 'light';
@@ -1020,6 +1783,120 @@ declare class TooltipComponent {
1020
1783
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "ol-tooltip", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "trigger": { "alias": "trigger"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; }, { "opened": "opened"; "closed": "closed"; }, never, ["*"], true, never>;
1021
1784
  }
1022
1785
 
1786
+ /**
1787
+ * Tooltip Directive
1788
+ * Provides accessible tooltips with Floating UI positioning
1789
+ *
1790
+ * @example
1791
+ * ```html
1792
+ * <button olTooltip="Lưu câu hỏi">
1793
+ * <ol-icon name="save" />
1794
+ * </button>
1795
+ *
1796
+ * <span olTooltip="Điểm cao nhất" tooltipPosition="bottom">9.5/10</span>
1797
+ *
1798
+ * <div olTooltip="Thông tin" tooltipTheme="light">Hover me</div>
1799
+ * ```
1800
+ */
1801
+ declare class OlTooltipDirective implements OnDestroy {
1802
+ private readonly elementRef;
1803
+ private readonly renderer;
1804
+ private readonly appRef;
1805
+ private readonly injector;
1806
+ private readonly positioningService;
1807
+ /** Tooltip content */
1808
+ olTooltip: _angular_core.InputSignal<string>;
1809
+ /** Tooltip position */
1810
+ tooltipPosition: _angular_core.InputSignal<"left" | "right" | "top" | "bottom">;
1811
+ /** Tooltip theme */
1812
+ tooltipTheme: _angular_core.InputSignal<"brand" | "dark" | "light">;
1813
+ /** Delay before showing tooltip (ms) */
1814
+ tooltipDelay: _angular_core.InputSignal<number>;
1815
+ /** Disable tooltip */
1816
+ tooltipDisabled: _angular_core.InputSignal<boolean>;
1817
+ /** Show arrow */
1818
+ tooltipArrow: _angular_core.InputSignal<boolean>;
1819
+ private showTimeout?;
1820
+ private hideTimeout?;
1821
+ private touchTimeout?;
1822
+ private tooltipComponent?;
1823
+ private tooltipElement?;
1824
+ private cleanupAutoUpdate?;
1825
+ private tooltipId;
1826
+ private mouseEnterListener?;
1827
+ private mouseLeaveListener?;
1828
+ private focusListener?;
1829
+ private blurListener?;
1830
+ private touchStartListener?;
1831
+ private touchEndListener?;
1832
+ constructor();
1833
+ ngOnDestroy(): void;
1834
+ /**
1835
+ * Setup event listeners for tooltip triggers
1836
+ */
1837
+ private setupListeners;
1838
+ /**
1839
+ * Remove event listeners
1840
+ */
1841
+ private removeListeners;
1842
+ /**
1843
+ * Schedule tooltip show with delay
1844
+ */
1845
+ private scheduleShow;
1846
+ /**
1847
+ * Schedule tooltip hide with delay
1848
+ */
1849
+ private scheduleHide;
1850
+ /**
1851
+ * Show tooltip
1852
+ */
1853
+ private show;
1854
+ /**
1855
+ * Hide tooltip
1856
+ */
1857
+ private hide;
1858
+ /**
1859
+ * Destroy tooltip component
1860
+ */
1861
+ private destroyTooltip;
1862
+ /**
1863
+ * Position tooltip using Floating UI
1864
+ */
1865
+ private positionTooltip;
1866
+ /**
1867
+ * Cleanup all resources
1868
+ */
1869
+ private cleanup;
1870
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlTooltipDirective, never>;
1871
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<OlTooltipDirective, "[olTooltip]", never, { "olTooltip": { "alias": "olTooltip"; "required": true; "isSignal": true; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; "isSignal": true; }; "tooltipTheme": { "alias": "tooltipTheme"; "required": false; "isSignal": true; }; "tooltipDelay": { "alias": "tooltipDelay"; "required": false; "isSignal": true; }; "tooltipDisabled": { "alias": "tooltipDisabled"; "required": false; "isSignal": true; }; "tooltipArrow": { "alias": "tooltipArrow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1872
+ }
1873
+
1874
+ /**
1875
+ * Internal Tooltip Component
1876
+ * Renders the actual tooltip content with theme and arrow support
1877
+ * Used internally by OlTooltipDirective
1878
+ */
1879
+ declare class OlTooltipComponent {
1880
+ /** Tooltip content text */
1881
+ content: _angular_core.InputSignal<string>;
1882
+ /** Theme variant */
1883
+ theme: _angular_core.InputSignal<"brand" | "dark" | "light">;
1884
+ /** Tooltip ID for ARIA */
1885
+ tooltipId: _angular_core.InputSignal<string>;
1886
+ /** Show arrow */
1887
+ arrow: _angular_core.InputSignal<boolean>;
1888
+ /**
1889
+ * Computed tooltip classes based on theme
1890
+ */
1891
+ tooltipClasses: _angular_core.Signal<string>;
1892
+ /**
1893
+ * Computed arrow classes based on theme
1894
+ */
1895
+ arrowClasses: _angular_core.Signal<string>;
1896
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlTooltipComponent, never>;
1897
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<OlTooltipComponent, "ol-tooltip-internal", never, { "content": { "alias": "content"; "required": true; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "tooltipId": { "alias": "tooltipId"; "required": false; "isSignal": true; }; "arrow": { "alias": "arrow"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1898
+ }
1899
+
1023
1900
  type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | number;
1024
1901
  type IconColor = 'current' | 'brand' | 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'white' | 'muted' | string;
1025
1902
  type IconVariant = 'linear' | 'bold' | 'line-duotone' | 'file-type' | 'brand' | 'custom' | string;
@@ -1066,7 +1943,8 @@ declare class OlIconService {
1066
1943
  */
1067
1944
  private loadManifest;
1068
1945
  /**
1069
- * Lấy SVG SafeHtml tức thì đồng bộ 0ms từ In-Memory Pre-bundled Registry
1946
+ * Lấy SVG SafeHtml tức thì đồng bộ 0ms từ In-Memory Pre-bundled Registry (OL_ICONS)
1947
+ * Tất cả icons được lưu trong OL_ICONS (icons.data.ts) - nguồn dữ liệu duy nhất, hỗ trợ tree-shaking.
1070
1948
  */
1071
1949
  getIconSync(name: string, variant?: string): SafeHtml | null;
1072
1950
  /**
@@ -1074,12 +1952,17 @@ declare class OlIconService {
1074
1952
  */
1075
1953
  getIcon(name: string, variant?: string): Observable<SafeHtml | null>;
1076
1954
  private fetchIconSvg;
1955
+ /**
1956
+ * Alias map: ánh xạ tên icon thay thế sang tên chuẩn trong OL_ICONS.
1957
+ * Các icons trong builtinSvgMap cũ đã được hợp nhất trực tiếp vào OL_ICONS (icons.data.ts)
1958
+ * để chuẩn hoá về một nguồn dữ liệu duy nhất, hỗ trợ tree-shaking.
1959
+ */
1077
1960
  private readonly aliasMap;
1078
1961
  private getCandidateUrls;
1079
1962
  private normalizeKey;
1080
1963
  private cleanSvg;
1081
1964
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<OlIconService, never>;
1082
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<OlIconService>;
1965
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
1083
1966
  }
1084
1967
 
1085
1968
  /**
@@ -1099,6 +1982,575 @@ interface IconDefinition {
1099
1982
  }
1100
1983
  declare const OL_ICONS: Record<string, IconDefinition>;
1101
1984
 
1102
- export { AccordionComponent, AccordionItemComponent, AlertComponent, AvatarComponent, AvatarGroupComponent, BadgeComponent, BannerComponent, BreadcrumbComponent, BreadcrumbItemComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CarouselComponent, CarouselSlideComponent, CheckboxComponent, ClipboardComponent, CollapseComponent, DateRangePickerComponent, DatepickerComponent, DatepickerDirective, DatepickerFooterComponent, DatepickerHeaderComponent, DatepickerPopupComponent, DatepickerStateService, DayViewComponent, DownloadAppButtonComponent, DrawerComponent, DropdownComponent, DropdownItemComponent, FileInputComponent, FloatingLabelComponent, FooterComponent, IconComponent, InputComponent, InputCounterComponent, KbdComponent, ListGroupComponent, ListGroupItemComponent, MONTHS_FULL_EN, MONTHS_FULL_VI, MONTHS_SHORT_VI, ModalComponent, MonthViewComponent, NavbarComponent, NavbarItemComponent, OL_ICONS, OlIconService, OtpInputComponent, PaginationComponent, PopoverComponent, ProgressComponent, RadioComponent, RangeComponent, RatingComponent, RichTextEditorComponent, SelectComponent, SidebarComponent, SidebarItemComponent, SkeletonComponent, SpeedDialComponent, SpinnerComponent, TabItemComponent, TableComponent, TabsComponent, TagInputComponent, TextareaComponent, TimelineComponent, TimelineItemComponent, ToastComponent, ToggleComponent, TooltipComponent, WEEKDAYS_SHORT_EN, WEEKDAYS_SHORT_VI, YearViewComponent, cloneDate, endOfDay, formatDate, generateMonthMatrix, generateMonthsMatrix, generateYearsMatrix, isBetween, isDateDisabled, isSameDay, isSameMonth, isSameYear, isToday, parseDate, startOfDay };
1103
- export type { AlertColor, AlertVariant, AppDevice, AppTheme, AvatarShape, AvatarSize, AvatarStatus, BadgeColor, BadgeSize, ButtonColor, ButtonSize, DateCustomClass, DateRange, DatepickerPreset, DatepickerSelectionMode, DatepickerSize, DatepickerViewMode, DayCell, DrawerPlacement, DropdownPlacement, DropdownTrigger, FileInputSize, IconColor, IconDefinition, IconManifestEntry, IconSize, IconVariant, InputCounterSize, InputSize, InputState, ModalPlacement, ModalSize, MonthCell, PopoverPlacement, ProgressColor, ProgressSize, SelectOption, SelectSize, SelectState, SpinnerColor, SpinnerSize, TabsVariant, TextareaState, ToastType, ToggleSize, TooltipPlacement, TooltipTheme, TooltipTrigger, YearCell };
1985
+ type IconShapeSize = 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl';
1986
+ type IconShapeColor = 'brand' | 'white' | 'dark' | 'red' | 'gray' | 'green' | 'yellow';
1987
+ type IconShapeType = 'circle' | 'square';
1988
+ declare class IconShapeComponent {
1989
+ readonly icon: _angular_core.InputSignal<string>;
1990
+ readonly size: _angular_core.InputSignal<IconShapeSize>;
1991
+ readonly color: _angular_core.InputSignal<IconShapeColor>;
1992
+ readonly type: _angular_core.InputSignal<IconShapeType>;
1993
+ readonly iconSize: _angular_core.Signal<number>;
1994
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconShapeComponent, never>;
1995
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconShapeComponent, "ol-icon-shape", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1996
+ }
1997
+
1998
+ declare class BottomNavComponent {
1999
+ readonly bordered: _angular_core.InputSignal<boolean>;
2000
+ readonly shadow: _angular_core.InputSignal<boolean>;
2001
+ readonly safeArea: _angular_core.InputSignal<boolean>;
2002
+ readonly position: _angular_core.InputSignal<"fixed" | "relative">;
2003
+ readonly navClasses: _angular_core.Signal<string>;
2004
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BottomNavComponent, never>;
2005
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BottomNavComponent, "ol-bottom-nav", never, { "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "shadow": { "alias": "shadow"; "required": false; "isSignal": true; }; "safeArea": { "alias": "safeArea"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2006
+ }
2007
+
2008
+ declare class BottomNavItemComponent {
2009
+ readonly routerLink: _angular_core.InputSignal<string | any[] | null>;
2010
+ readonly routerLinkActive: _angular_core.InputSignal<string>;
2011
+ readonly routerLinkActiveOptions: _angular_core.InputSignal<{
2012
+ exact: boolean;
2013
+ }>;
2014
+ readonly href: _angular_core.InputSignal<string | null>;
2015
+ readonly icon: _angular_core.InputSignal<string>;
2016
+ readonly label: _angular_core.InputSignal<string>;
2017
+ readonly badge: _angular_core.InputSignal<string | number | null>;
2018
+ readonly badgeTheme: _angular_core.InputSignal<BadgeTheme>;
2019
+ readonly isCenterAction: _angular_core.InputSignal<boolean>;
2020
+ readonly active: _angular_core.InputSignal<boolean>;
2021
+ readonly itemClasses: _angular_core.Signal<string>;
2022
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BottomNavItemComponent, never>;
2023
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BottomNavItemComponent, "ol-bottom-nav-item", never, { "routerLink": { "alias": "routerLink"; "required": false; "isSignal": true; }; "routerLinkActive": { "alias": "routerLinkActive"; "required": false; "isSignal": true; }; "routerLinkActiveOptions": { "alias": "routerLinkActiveOptions"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeTheme": { "alias": "badgeTheme"; "required": false; "isSignal": true; }; "isCenterAction": { "alias": "isCenterAction"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2024
+ }
2025
+
2026
+ type StepState = 'initial' | 'active' | 'completed' | 'error' | 'disabled';
2027
+ declare class StepItemComponent {
2028
+ readonly stepId: _angular_core.InputSignal<string>;
2029
+ readonly title: _angular_core.InputSignal<string>;
2030
+ readonly subtitle: _angular_core.InputSignal<string>;
2031
+ readonly description: _angular_core.InputSignal<string>;
2032
+ readonly icon: _angular_core.InputSignal<string | null>;
2033
+ readonly state: _angular_core.InputSignal<StepState | null>;
2034
+ readonly disabled: _angular_core.InputSignal<boolean>;
2035
+ readonly badge: _angular_core.InputSignal<string | null>;
2036
+ private readonly parentStepper;
2037
+ readonly stepIndex: _angular_core.Signal<any>;
2038
+ readonly effectiveState: _angular_core.Signal<StepState>;
2039
+ readonly isActive: _angular_core.Signal<boolean>;
2040
+ readonly effectiveSubtitle: _angular_core.Signal<string>;
2041
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepItemComponent, never>;
2042
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepItemComponent, "ol-step-item", never, { "stepId": { "alias": "stepId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2043
+ }
2044
+
2045
+ type StepperVariant = 'default' | 'only-icons' | 'icons-text' | 'with-dots' | 'vertical' | 'cards';
2046
+ type StepperOrientation = 'horizontal' | 'vertical';
2047
+ type StepperBreakpoint = 'desktop' | 'mobile';
2048
+ declare class StepperComponent {
2049
+ readonly currentStep: _angular_core.ModelSignal<number>;
2050
+ readonly variant: _angular_core.InputSignal<StepperVariant>;
2051
+ readonly orientation: _angular_core.InputSignal<StepperOrientation>;
2052
+ readonly breakpoint: _angular_core.InputSignal<StepperBreakpoint>;
2053
+ readonly linear: _angular_core.InputSignal<boolean>;
2054
+ readonly clickable: _angular_core.InputSignal<boolean>;
2055
+ readonly stepChange: _angular_core.OutputEmitterRef<number>;
2056
+ readonly steps: _angular_core.Signal<readonly StepItemComponent[]>;
2057
+ readonly isVertical: _angular_core.Signal<boolean>;
2058
+ readonly isHorizontal: _angular_core.Signal<boolean>;
2059
+ readonly isMobile: _angular_core.Signal<boolean>;
2060
+ goToStep(index: number): void;
2061
+ next(): void;
2062
+ prev(): void;
2063
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StepperComponent, never>;
2064
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StepperComponent, "ol-stepper", never, { "currentStep": { "alias": "currentStep"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "breakpoint": { "alias": "breakpoint"; "required": false; "isSignal": true; }; "linear": { "alias": "linear"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; }, { "currentStep": "currentStepChange"; "stepChange": "stepChange"; }, ["steps"], ["*"], true, never>;
2065
+ }
2066
+
2067
+ interface OlTreeNode {
2068
+ id: string;
2069
+ label: string;
2070
+ icon?: string;
2071
+ count?: number;
2072
+ badge?: string;
2073
+ badgeTheme?: 'brand' | 'green' | 'yellow' | 'red' | 'gray';
2074
+ children?: OlTreeNode[];
2075
+ expanded?: boolean;
2076
+ selected?: boolean;
2077
+ disabled?: boolean;
2078
+ data?: any;
2079
+ }
2080
+
2081
+ declare class TreeComponent {
2082
+ readonly nodes: _angular_core.ModelSignal<OlTreeNode[]>;
2083
+ readonly checkable: _angular_core.InputSignal<boolean>;
2084
+ readonly selectionMode: _angular_core.InputSignal<"single" | "multiple">;
2085
+ readonly bordered: _angular_core.InputSignal<boolean>;
2086
+ readonly toggleIcon: _angular_core.InputSignal<"plus-minus" | "chevron">;
2087
+ readonly nodeSelect: _angular_core.OutputEmitterRef<OlTreeNode>;
2088
+ readonly nodeCheck: _angular_core.OutputEmitterRef<{
2089
+ node: OlTreeNode;
2090
+ checked: boolean;
2091
+ }>;
2092
+ handleNodeClick(node: OlTreeNode): void;
2093
+ handleNodeCheck(event: {
2094
+ node: OlTreeNode;
2095
+ checked: boolean;
2096
+ }): void;
2097
+ handleToggleExpand(node: OlTreeNode): void;
2098
+ private updateNodeCheckCascade;
2099
+ private updateNodeExpanded;
2100
+ private setAllDescendantsSelected;
2101
+ private setSelectedNodeSingle;
2102
+ private cloneTree;
2103
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeComponent, never>;
2104
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeComponent, "ol-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "toggleIcon": { "alias": "toggleIcon"; "required": false; "isSignal": true; }; }, { "nodes": "nodesChange"; "nodeSelect": "nodeSelect"; "nodeCheck": "nodeCheck"; }, never, never, true, never>;
2105
+ }
2106
+
2107
+ declare class TreeNodeComponent {
2108
+ readonly node: _angular_core.InputSignal<OlTreeNode>;
2109
+ readonly checkable: _angular_core.InputSignal<boolean>;
2110
+ readonly selectionMode: _angular_core.InputSignal<"single" | "multiple">;
2111
+ readonly toggleIcon: _angular_core.InputSignal<"plus-minus" | "chevron">;
2112
+ readonly level: _angular_core.InputSignal<number>;
2113
+ readonly nodeClick: _angular_core.OutputEmitterRef<OlTreeNode>;
2114
+ readonly nodeCheck: _angular_core.OutputEmitterRef<{
2115
+ node: OlTreeNode;
2116
+ checked: boolean;
2117
+ }>;
2118
+ readonly toggleExpand: _angular_core.OutputEmitterRef<OlTreeNode>;
2119
+ handleToggle(event: MouseEvent): void;
2120
+ handleClick(): void;
2121
+ handleCheck(event: Event): void;
2122
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TreeNodeComponent, never>;
2123
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TreeNodeComponent, "ol-tree-node", never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; "checkable": { "alias": "checkable"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "toggleIcon": { "alias": "toggleIcon"; "required": false; "isSignal": true; }; "level": { "alias": "level"; "required": false; "isSignal": true; }; }, { "nodeClick": "nodeClick"; "nodeCheck": "nodeCheck"; "toggleExpand": "toggleExpand"; }, never, never, true, never>;
2124
+ }
2125
+
2126
+ type ChartType = 'line' | 'smooth-line' | 'area' | 'smooth-area' | 'step-line' | 'bar' | 'stacked-bar' | 'horizontal-bar' | 'stacked-horizontal-bar' | 'diverging-bar' | 'pie' | 'donut' | 'rose' | 'radar' | 'gauge' | 'radial' | 'scatter' | 'heatmap' | 'boxplot';
2127
+ /** Cấu hình chuỗi dữ liệu (Dành cho Line, Bar, Stacked Bar, Area, Radar) */
2128
+ interface ChartSeries {
2129
+ /** Tên chuỗi hiển thị trên Legend và Tooltip */
2130
+ name: string;
2131
+ /** Mảng giá trị tương ứng từng danh mục (categories) */
2132
+ data: number[];
2133
+ /** Màu sắc đặc trưng cho chuỗi (mã HEX, HSL hoặc tên biến CSS) */
2134
+ color?: string;
2135
+ /** Độ dày nét vẽ cho biểu đồ đường (mặc định 2.5) */
2136
+ strokeWidth?: number;
2137
+ /** Nét đứt (ví dụ: '4 4') */
2138
+ strokeDasharray?: string;
2139
+ }
2140
+ /** Cấu hình phân đoạn điểm dữ liệu (Dành cho Pie, Donut, Rose, Gauge) */
2141
+ interface ChartDataPoint {
2142
+ /** Nhãn mô tả phân đoạn */
2143
+ label: string;
2144
+ /** Giá trị số của phân đoạn */
2145
+ value: number;
2146
+ /** Màu sắc phân đoạn (nếu không cung cấp sẽ lấy theo bảng màu mặc định) */
2147
+ color?: string;
2148
+ /** Chú thích bổ sung hiển thị trên tooltip hoặc legend */
2149
+ subLabel?: string;
2150
+ }
2151
+ /** Cấu hình trục đánh giá đa chiều cho biểu đồ Radar */
2152
+ interface RadarIndicator {
2153
+ /** Tên tiêu chí đánh giá (ví dụ: 'Tư duy logic', 'Tính toán nhanh') */
2154
+ name: string;
2155
+ /** Giá trị tối đa của thang điểm (mặc định: 100) */
2156
+ max?: number;
2157
+ }
2158
+ /** Điểm dữ liệu toạ độ cho biểu đồ phân tán Scatter */
2159
+ interface ScatterDataPoint {
2160
+ /** Toạ độ trục hoành (X) */
2161
+ x: number;
2162
+ /** Toạ độ trục tung (Y) */
2163
+ y: number;
2164
+ /** Kích thước điểm tròn (mặc định 6) */
2165
+ size?: number;
2166
+ /** Nhãn tên của đối tượng dữ liệu */
2167
+ label?: string;
2168
+ /** Màu sắc riêng của điểm */
2169
+ color?: string;
2170
+ }
2171
+ /** Chuỗi dữ liệu phân tán */
2172
+ interface ScatterSeries {
2173
+ /** Tên nhóm phân tán */
2174
+ name: string;
2175
+ /** Danh sách các điểm toạ độ */
2176
+ data: ScatterDataPoint[];
2177
+ /** Màu mặc định của nhóm */
2178
+ color?: string;
2179
+ }
2180
+ /** Dữ liệu bản đồ nhiệt Heatmap theo ma trận 2 chiều */
2181
+ interface HeatmapData {
2182
+ /** Danh sách nhãn cột (Trục X: ví dụ thứ trong tuần T2 -> CN) */
2183
+ xLabels: string[];
2184
+ /** Danh sách nhãn hàng (Trục Y: ví dụ khung giờ 08:00, 12:00, 18:00...) */
2185
+ yLabels: string[];
2186
+ /** Ma trận giá trị [hàng][cột] tương ứng yLabels x xLabels */
2187
+ matrix: number[][];
2188
+ /** Giá trị nhỏ nhất thang đo nhiệt (mặc định: 0) */
2189
+ min?: number;
2190
+ /** Giá trị lớn nhất thang đo nhiệt (mặc định: tự động tính) */
2191
+ max?: number;
2192
+ /** Đơn vị đo hiển thị khi hover tooltip (ví dụ: 'lượt', 'câu', 'phút') */
2193
+ unit?: string;
2194
+ }
2195
+ /** Điểm dữ liệu biểu đồ hộp Boxplot (Thống kê phân vị điểm số) */
2196
+ interface BoxplotDataPoint {
2197
+ /** Nhãn nhóm (ví dụ: 'Lớp 12A1', 'Đề số 01') */
2198
+ label: string;
2199
+ /** Giá trị nhỏ nhất */
2200
+ min: number;
2201
+ /** Tứ phân vị thứ nhất (Q1 - 25%) */
2202
+ q1: number;
2203
+ /** Trung vị (Median - 50%) */
2204
+ median: number;
2205
+ /** Tứ phân vị thứ ba (Q3 - 75%) */
2206
+ q3: number;
2207
+ /** Giá trị lớn nhất */
2208
+ max: number;
2209
+ /** Các điểm ngoại lai (nếu có) */
2210
+ outliers?: number[];
2211
+ /** Màu sắc biểu diễn hộp */
2212
+ color?: string;
2213
+ }
2214
+
2215
+ declare class ChartComponent {
2216
+ /** Chủng loại biểu đồ */
2217
+ readonly type: _angular_core.InputSignal<ChartType>;
2218
+ /** Tiêu đề chính */
2219
+ readonly title: _angular_core.InputSignal<string>;
2220
+ /** Tiêu đề phụ / mô tả */
2221
+ readonly subtitle: _angular_core.InputSignal<string>;
2222
+ /** Danh sách nhãn phân loại trục hoành */
2223
+ readonly categories: _angular_core.InputSignal<string[]>;
2224
+ /** Chuỗi dữ liệu số (Line, Bar, Stacked, Area, Radar) */
2225
+ readonly series: _angular_core.InputSignal<ChartSeries[]>;
2226
+ /** Dữ liệu phân đoạn (Pie, Donut, Rose) */
2227
+ readonly dataPoints: _angular_core.InputSignal<ChartDataPoint[]>;
2228
+ /** Chỉ số đa chiều (Radar) */
2229
+ readonly indicators: _angular_core.InputSignal<RadarIndicator[]>;
2230
+ /** Chuỗi dữ liệu phân tán (Scatter) */
2231
+ readonly scatterSeries: _angular_core.InputSignal<ScatterSeries[]>;
2232
+ /** Ma trận nhiệt độ dữ liệu (Heatmap) */
2233
+ readonly heatmapData: _angular_core.InputSignal<HeatmapData | null>;
2234
+ /** Dữ liệu biểu đồ hộp (Boxplot) */
2235
+ readonly boxplotData: _angular_core.InputSignal<BoxplotDataPoint[]>;
2236
+ /** Giá trị đo lường tiến độ (Gauge / Radial) */
2237
+ readonly value: _angular_core.InputSignal<number>;
2238
+ /** Giá trị tối đa (Gauge / Radial) */
2239
+ readonly max: _angular_core.InputSignal<number>;
2240
+ /** Chiều cao khung biểu đồ (px) */
2241
+ readonly height: _angular_core.InputSignal<number>;
2242
+ /** Hiển thị chú thích bảng màu (Legend) */
2243
+ readonly showLegend: _angular_core.InputSignal<boolean>;
2244
+ /** Hiển thị đường gióng toạ độ (Grid) */
2245
+ readonly showGrid: _angular_core.InputSignal<boolean>;
2246
+ /** Tiêu đề nhãn trục hoành (X-Axis) - ví dụ: "Thời gian", "Tháng", "Số phút" */
2247
+ readonly xAxisTitle: _angular_core.InputSignal<string>;
2248
+ /** Tiêu đề nhãn trục tung (Y-Axis) - ví dụ: "Điểm số", "Số lượng (câu)", "Tỷ lệ (%)" */
2249
+ readonly yAxisTitle: _angular_core.InputSignal<string>;
2250
+ /** Đơn vị hiển thị sau số liệu */
2251
+ readonly unit: _angular_core.InputSignal<string>;
2252
+ readonly defaultPalette: string[];
2253
+ readonly activeTooltip: _angular_core.WritableSignal<{
2254
+ x: number;
2255
+ y: number;
2256
+ title: string;
2257
+ items: {
2258
+ label: string;
2259
+ value: string | number;
2260
+ color?: string;
2261
+ }[];
2262
+ } | null>;
2263
+ readonly hiddenItems: _angular_core.WritableSignal<Set<string>>;
2264
+ toggleLegendItem(name: string): void;
2265
+ isItemHidden(name: string): boolean;
2266
+ readonly seriesLegendList: _angular_core.Signal<{
2267
+ name: string;
2268
+ color: string;
2269
+ hidden: boolean;
2270
+ }[]>;
2271
+ readonly radarLegendList: _angular_core.Signal<{
2272
+ name: string;
2273
+ color: string;
2274
+ hidden: boolean;
2275
+ }[]>;
2276
+ readonly scatterLegendList: _angular_core.Signal<{
2277
+ name: string;
2278
+ color: string;
2279
+ hidden: boolean;
2280
+ }[]>;
2281
+ readonly yAxisMin: _angular_core.Signal<number>;
2282
+ readonly yAxisMax: _angular_core.Signal<number>;
2283
+ readonly yGridSteps: _angular_core.Signal<number[]>;
2284
+ readonly svgWidth = 560;
2285
+ readonly svgHeight = 230;
2286
+ readonly padding: {
2287
+ top: number;
2288
+ right: number;
2289
+ bottom: number;
2290
+ left: number;
2291
+ };
2292
+ readonly innerWidth: _angular_core.Signal<number>;
2293
+ readonly innerHeight: _angular_core.Signal<number>;
2294
+ readonly linePaths: _angular_core.Signal<{
2295
+ name: string;
2296
+ color: string;
2297
+ strokeWidth: number;
2298
+ strokeDasharray: string | undefined;
2299
+ linePathD: string;
2300
+ areaPathD: string;
2301
+ points: {
2302
+ x: number;
2303
+ y: number;
2304
+ value: number;
2305
+ category: string;
2306
+ }[];
2307
+ }[]>;
2308
+ private getSmoothSvgPath;
2309
+ readonly columnsComputed: _angular_core.Signal<{
2310
+ categories: {
2311
+ label: string;
2312
+ displayLabel: string;
2313
+ centerX: number;
2314
+ }[];
2315
+ bars: {
2316
+ categoryIndex: number;
2317
+ seriesIndex: number;
2318
+ name: string;
2319
+ value: number;
2320
+ x: number;
2321
+ y: number;
2322
+ width: number;
2323
+ height: number;
2324
+ color: string;
2325
+ }[];
2326
+ }>;
2327
+ readonly stackedColumnsComputed: _angular_core.Signal<{
2328
+ categories: {
2329
+ label: string;
2330
+ displayLabel: string;
2331
+ centerX: number;
2332
+ }[];
2333
+ segments: {
2334
+ categoryIndex: number;
2335
+ seriesIndex: number;
2336
+ name: string;
2337
+ value: number;
2338
+ x: number;
2339
+ y: number;
2340
+ width: number;
2341
+ height: number;
2342
+ color: string;
2343
+ }[];
2344
+ }>;
2345
+ readonly totalDonutValue: _angular_core.Signal<number>;
2346
+ readonly donutSegments: _angular_core.Signal<{
2347
+ label: string;
2348
+ value: number;
2349
+ percentage: number;
2350
+ color: string;
2351
+ strokeDasharray: string;
2352
+ strokeDashoffset: number;
2353
+ }[]>;
2354
+ readonly pieSlices: _angular_core.Signal<{
2355
+ label: string;
2356
+ value: number;
2357
+ percentage: number;
2358
+ color: string;
2359
+ pathD: string;
2360
+ }[]>;
2361
+ readonly pieBreakdownItems: _angular_core.Signal<{
2362
+ label: string;
2363
+ value: number;
2364
+ percentage: number;
2365
+ color: string;
2366
+ hidden: boolean;
2367
+ }[]>;
2368
+ readonly gaugePercentage: _angular_core.Signal<number>;
2369
+ readonly gaugeOffset: _angular_core.Signal<number>;
2370
+ readonly radialOffset: _angular_core.Signal<number>;
2371
+ readonly radarIndicatorsList: _angular_core.Signal<RadarIndicator[]>;
2372
+ readonly radarGridRings: _angular_core.Signal<string[]>;
2373
+ readonly radarAxes: _angular_core.Signal<{
2374
+ name: string;
2375
+ x1: number;
2376
+ y1: number;
2377
+ x2: number;
2378
+ y2: number;
2379
+ labelX: number;
2380
+ labelY: number;
2381
+ anchor: string;
2382
+ }[]>;
2383
+ readonly radarSeriesPolygons: _angular_core.Signal<{
2384
+ name: string;
2385
+ color: string;
2386
+ points: {
2387
+ x: number;
2388
+ y: number;
2389
+ value: number;
2390
+ name: string;
2391
+ }[];
2392
+ polygonStr: string;
2393
+ }[]>;
2394
+ readonly scatterDataComputed: _angular_core.Signal<{
2395
+ seriesList: {
2396
+ name: string;
2397
+ color: string;
2398
+ points: {
2399
+ cx: number;
2400
+ cy: number;
2401
+ r: number;
2402
+ color: string;
2403
+ x: number;
2404
+ y: number;
2405
+ size?: number;
2406
+ label?: string;
2407
+ }[];
2408
+ }[];
2409
+ xMin: number;
2410
+ xMax: number;
2411
+ yMin: number;
2412
+ yMax: number;
2413
+ xTicks: {
2414
+ val: number;
2415
+ x: number;
2416
+ }[];
2417
+ yTicks: {
2418
+ val: number;
2419
+ y: number;
2420
+ }[];
2421
+ }>;
2422
+ readonly heatmapComputed: _angular_core.Signal<{
2423
+ xLabels: string[];
2424
+ yLabels: string[];
2425
+ unit: string;
2426
+ cells: {
2427
+ row: number;
2428
+ col: number;
2429
+ yLabel: string;
2430
+ xLabel: string;
2431
+ value: number;
2432
+ ratio: number;
2433
+ opacity: number;
2434
+ }[];
2435
+ } | null>;
2436
+ readonly boxplotComputed: _angular_core.Signal<{
2437
+ label: string;
2438
+ color: string;
2439
+ centerX: number;
2440
+ boxX: number;
2441
+ boxWidth: number;
2442
+ yMin: number;
2443
+ yQ1: number;
2444
+ yMedian: number;
2445
+ yQ3: number;
2446
+ yMax: number;
2447
+ raw: BoxplotDataPoint;
2448
+ }[]>;
2449
+ readonly horizontalBarsComputed: _angular_core.Signal<({
2450
+ category: string;
2451
+ total: number;
2452
+ segments: {
2453
+ name: string;
2454
+ value: number;
2455
+ widthPct: number;
2456
+ leftPct: number;
2457
+ color: string;
2458
+ }[];
2459
+ isStacked: boolean;
2460
+ items?: undefined;
2461
+ zeroPct?: undefined;
2462
+ isDiverging?: undefined;
2463
+ isGrouped?: undefined;
2464
+ } | {
2465
+ category: string;
2466
+ items: {
2467
+ name: string;
2468
+ value: number;
2469
+ widthPct: number;
2470
+ leftPct: number;
2471
+ color: string;
2472
+ }[];
2473
+ zeroPct: number;
2474
+ isDiverging: boolean;
2475
+ total?: undefined;
2476
+ segments?: undefined;
2477
+ isStacked?: undefined;
2478
+ isGrouped?: undefined;
2479
+ } | {
2480
+ category: string;
2481
+ items: {
2482
+ name: string;
2483
+ value: number;
2484
+ widthPct: number;
2485
+ color: string;
2486
+ }[];
2487
+ isGrouped: boolean;
2488
+ total?: undefined;
2489
+ segments?: undefined;
2490
+ isStacked?: undefined;
2491
+ zeroPct?: undefined;
2492
+ isDiverging?: undefined;
2493
+ })[]>;
2494
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartComponent, never>;
2495
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartComponent, "ol-chart", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "series": { "alias": "series"; "required": false; "isSignal": true; }; "dataPoints": { "alias": "dataPoints"; "required": false; "isSignal": true; }; "indicators": { "alias": "indicators"; "required": false; "isSignal": true; }; "scatterSeries": { "alias": "scatterSeries"; "required": false; "isSignal": true; }; "heatmapData": { "alias": "heatmapData"; "required": false; "isSignal": true; }; "boxplotData": { "alias": "boxplotData"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "xAxisTitle": { "alias": "xAxisTitle"; "required": false; "isSignal": true; }; "yAxisTitle": { "alias": "yAxisTitle"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
2496
+ }
2497
+
2498
+ type ChatSender = 'user' | 'bot' | 'other';
2499
+ declare class ChatBubbleComponent {
2500
+ readonly sender: _angular_core.InputSignal<ChatSender>;
2501
+ readonly senderName: _angular_core.InputSignal<string>;
2502
+ readonly time: _angular_core.InputSignal<string>;
2503
+ readonly avatar: _angular_core.InputSignal<string>;
2504
+ readonly avatarText: _angular_core.InputSignal<string>;
2505
+ readonly status: _angular_core.InputSignal<"sending" | "sent" | "read" | "delivered">;
2506
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChatBubbleComponent, never>;
2507
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChatBubbleComponent, "ol-chat-bubble", never, { "sender": { "alias": "sender"; "required": false; "isSignal": true; }; "senderName": { "alias": "senderName"; "required": false; "isSignal": true; }; "time": { "alias": "time"; "required": false; "isSignal": true; }; "avatar": { "alias": "avatar"; "required": false; "isSignal": true; }; "avatarText": { "alias": "avatarText"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; }, {}, never, ["*", "*", "*"], true, never>;
2508
+ }
2509
+
2510
+ declare class ChatContainerComponent {
2511
+ readonly title: _angular_core.InputSignal<string>;
2512
+ readonly status: _angular_core.InputSignal<string>;
2513
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChatContainerComponent, never>;
2514
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChatContainerComponent, "ol-chat-container", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=header-actions]", "*", "[slot=footer]"], true, never>;
2515
+ }
2516
+
2517
+ type DeviceType = 'browser' | 'iphone' | 'tablet';
2518
+ declare class DeviceMockupComponent {
2519
+ readonly device: _angular_core.InputSignal<DeviceType>;
2520
+ readonly url: _angular_core.InputSignal<string>;
2521
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DeviceMockupComponent, never>;
2522
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DeviceMockupComponent, "ol-device-mockup", never, { "device": { "alias": "device"; "required": false; "isSignal": true; }; "url": { "alias": "url"; "required": false; "isSignal": true; }; }, {}, never, ["*", "*", "*"], true, never>;
2523
+ }
2524
+
2525
+ declare class GalleryComponent {
2526
+ readonly cols: _angular_core.InputSignal<2 | 3 | 4 | 5>;
2527
+ readonly gap: _angular_core.InputSignal<"sm" | "md" | "lg">;
2528
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GalleryComponent, never>;
2529
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GalleryComponent, "ol-gallery", never, { "cols": { "alias": "cols"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
2530
+ }
2531
+
2532
+ declare class GalleryItemComponent {
2533
+ readonly src: _angular_core.InputSignal<string>;
2534
+ readonly alt: _angular_core.InputSignal<string>;
2535
+ readonly title: _angular_core.InputSignal<string>;
2536
+ readonly subtitle: _angular_core.InputSignal<string>;
2537
+ readonly ratio: _angular_core.InputSignal<"video" | "square" | "auto" | "portrait">;
2538
+ readonly itemClick: _angular_core.OutputEmitterRef<void>;
2539
+ handleClick(): void;
2540
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GalleryItemComponent, never>;
2541
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<GalleryItemComponent, "ol-gallery-item", never, { "src": { "alias": "src"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "ratio": { "alias": "ratio"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; }, never, never, true, never>;
2542
+ }
2543
+
2544
+ type JumbotronVariant = 'brand' | 'dark' | 'gradient' | 'light';
2545
+ declare class JumbotronComponent {
2546
+ readonly title: _angular_core.InputSignal<string>;
2547
+ readonly subtitle: _angular_core.InputSignal<string>;
2548
+ readonly badgeText: _angular_core.InputSignal<string>;
2549
+ readonly variant: _angular_core.InputSignal<JumbotronVariant>;
2550
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<JumbotronComponent, never>;
2551
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<JumbotronComponent, "ol-jumbotron", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "badgeText": { "alias": "badgeText"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, ["[slot=badge-icon]", "[slot=actions]", "*"], true, never>;
2552
+ }
2553
+
2554
+ export { AlertComponent, AutocompleteComponent, AvatarComponent, AvatarGroupComponent, BadgeComponent, BottomNavComponent, BottomNavItemComponent, BreadcrumbComponent, BreadcrumbItemComponent, ButtonComponent, ButtonGroupComponent, CardComponent, CarouselComponent, CarouselSlideComponent, ChartComponent, ChatBubbleComponent, ChatContainerComponent, CheckboxComponent, ClipboardComponent, CollapseComponent, DateRangePickerComponent, DatepickerComponent, DatepickerDirective, DatepickerFooterComponent, DatepickerHeaderComponent, DatepickerPopupComponent, DatepickerStateService, DayViewComponent, DeviceMockupComponent, DownloadAppButtonComponent, DrawerComponent, DropdownComponent, DropdownItemComponent, FileInputComponent, FloatingLabelComponent, FooterComponent, GalleryComponent, GalleryItemComponent, IconComponent, IconShapeComponent, InputComponent, InputCounterComponent, JumbotronComponent, KbdComponent, ListGroupComponent, ListGroupItemComponent, MONTHS_FULL_EN, MONTHS_FULL_VI, MONTHS_SHORT_VI, ModalComponent, MonthViewComponent, NavDropdownComponent, NavbarComponent, NavbarItemComponent, OL_ICONS, OlAccordionComponent, OlAccordionItemComponent, OlAlertComponent, OlBannerComponent, OlIconService, OlSkeletonComponent, OlSpeedDialComponent, OlSpeedDialItemComponent, OlSpinnerComponent, OlToastComponent, OlToastContainerComponent, OlToastService, OlTooltipComponent, OlTooltipDirective, OtpInputComponent, PaginationComponent, PopoverComponent, ProgressComponent, RadioComponent, RangeComponent, RatingComponent, RichTextEditorComponent, SelectComponent, SidebarComponent, SidebarGroupComponent, SidebarItemComponent, SidebarSubmenuComponent, StepItemComponent, StepperComponent, TabItemComponent, TableComponent, TabsComponent, TagInputComponent, TextareaComponent, TimelineComponent, TimelineItemComponent, TimepickerComponent, ToastComponent, ToggleComponent, TooltipComponent, TreeComponent, TreeNodeComponent, WEEKDAYS_SHORT_EN, WEEKDAYS_SHORT_VI, YearViewComponent, cloneDate, endOfDay, formatDate, generateMonthMatrix, generateMonthsMatrix, generateYearsMatrix, isBetween, isDateDisabled, isSameDay, isSameMonth, isSameYear, isToday, parseDate, startOfDay };
2555
+ export type { AccordionVariant, AlertColor, AlertRounded, AlertType, AlertVariant$1 as AlertVariant, AppDevice, AppTheme, AutocompleteOption, AutocompleteSize, AutocompleteState, AvatarShape, AvatarSize, AvatarStatus, BadgeShape, BadgeSize, BadgeTheme, BadgeType, BannerPosition, BannerVariant, BoxplotDataPoint, BreadcrumbItemStatus, BreadcrumbSeparator, BreadcrumbVariant, ButtonColor, ButtonGroupColor, ButtonGroupOrientation, ButtonGroupSize, ButtonSize, CardPadding, CardRadius, CardShadow, CardVariant, ChartDataPoint, ChartSeries, ChartType, ChatSender, CheckboxSize, DateCustomClass, DateRange, DatepickerPreset, DatepickerSelectionMode, DatepickerSize, DatepickerViewMode, DayCell, DeviceType, DrawerPlacement, DropdownAutoClose, DropdownPlacement, DropdownTrigger, FileInputSize, FloatingLabelSize, FloatingLabelState, FloatingLabelVariant, HeatmapData, IconColor, IconDefinition, IconManifestEntry, IconShapeColor, IconShapeSize, IconShapeType, IconSize, IconVariant, InputCounterSize, InputSize, InputState, JumbotronVariant, ModalPlacement, ModalSize, MonthCell, OlTreeNode, PaginationType, PaginationVariant, PopoverPlacement, ProgressColor, ProgressSize, RadarIndicator, RadioSize, ScatterDataPoint, ScatterSeries, SelectOption, SelectSize, SelectState, SpeedDialAction, SpeedDialColor, SpeedDialDirection, SpeedDialTrigger, SpeedDialType, StepState, StepperBreakpoint, StepperOrientation, StepperVariant, TabsSize, TabsVariant, TextareaState, TimeObject, TimepickerFormat, TimepickerSize, TimepickerState, Toast, ToastConfig, ToastPosition, ToastType, ToggleColor, ToggleSize, TooltipPlacement, TooltipTheme, TooltipTrigger, YearCell };
1104
2556
  //# sourceMappingURL=edmicro-olkit.d.ts.map