@juligc99/loro-ui 0.0.15 → 0.0.17

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,5 +1,4 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { LoroIconName as LoroIconName$1, LoroIconSize as LoroIconSize$1, LoroIconRenderMode as LoroIconRenderMode$1, LoroIconColor as LoroIconColor$1 } from '@loro-ui/components/resources/loro-icon';
3
2
  import * as _juligc99_loro_ui from '@juligc99/loro-ui';
4
3
  import { FormValueControl, WithOptionalFieldTree, ValidationError, FormCheckboxControl } from '@angular/forms/signals';
5
4
 
@@ -8,249 +7,6 @@ declare class Footer {
8
7
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<Footer, "loro-footer", never, {}, {}, never, never, true, never>;
9
8
  }
10
9
 
11
- declare class LoroAccordion {
12
- title: _angular_core.InputSignal<string>;
13
- icon: _angular_core.InputSignal<LoroIconName$1 | null>;
14
- expanded: _angular_core.InputSignal<boolean>;
15
- expandedChange: _angular_core.OutputEmitterRef<boolean>;
16
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroAccordion, never>;
17
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroAccordion, "loro-accordion", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expandedChange": "expandedChange"; }, never, ["*"], true, never>;
18
- }
19
-
20
- interface LoroAppNavItem {
21
- id: string;
22
- label: string;
23
- icon: LoroIconName$1;
24
- active?: boolean;
25
- badge?: string | number | null;
26
- disabled?: boolean;
27
- }
28
- interface LoroAppNavClick {
29
- item: LoroAppNavItem;
30
- section: 'main' | 'utility';
31
- }
32
- declare class LoroAppNav {
33
- private readonly haptics;
34
- private readonly draggedMobileIndex;
35
- private readonly mobilePointerActive;
36
- private activePointerId;
37
- private suppressNextMobileClick;
38
- items: _angular_core.InputSignal<LoroAppNavItem[]>;
39
- utilityItems: _angular_core.InputSignal<LoroAppNavItem[]>;
40
- ariaLabel: _angular_core.InputSignal<string>;
41
- showUtilityItems: _angular_core.InputSignal<boolean>;
42
- compactDesktop: _angular_core.InputSignal<boolean>;
43
- itemClick: _angular_core.OutputEmitterRef<LoroAppNavItem>;
44
- utilityItemClick: _angular_core.OutputEmitterRef<LoroAppNavItem>;
45
- navItemClick: _angular_core.OutputEmitterRef<LoroAppNavClick>;
46
- protected readonly desktopItems: _angular_core.Signal<LoroAppNavItem[]>;
47
- protected readonly mobileItems: _angular_core.Signal<LoroAppNavItem[]>;
48
- protected readonly mobileVisualSlotCount: _angular_core.Signal<number>;
49
- private readonly selectedMobileIndex;
50
- protected readonly mobileSliderPosition: _angular_core.Signal<number>;
51
- protected readonly isMobileDragging: _angular_core.Signal<boolean>;
52
- protected readonly mobileItemCount: _angular_core.Signal<number>;
53
- protected readonly selectedMobileItemId: _angular_core.Signal<string>;
54
- protected isMobileItemVisualActive(index: number): boolean;
55
- onMainItemClick(item: LoroAppNavItem): void;
56
- protected onMobileItemClick(item: LoroAppNavItem): void;
57
- protected onMobilePointerDown(event: PointerEvent): void;
58
- protected onMobilePointerMove(event: PointerEvent): void;
59
- protected onMobilePointerUp(event: PointerEvent): void;
60
- protected onMobilePointerCancel(event: PointerEvent): void;
61
- onUtilityItemClick(item: LoroAppNavItem): void;
62
- private emitMainItem;
63
- private getMobileVisualSlotPosition;
64
- protected mobileItemGridColumn(index: number): number;
65
- private mobileItemIndexToVisualSlot;
66
- private getNearestEnabledMobileIndex;
67
- private releaseMobilePointer;
68
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroAppNav, never>;
69
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroAppNav, "loro-app-nav", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "utilityItems": { "alias": "utilityItems"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showUtilityItems": { "alias": "showUtilityItems"; "required": false; "isSignal": true; }; "compactDesktop": { "alias": "compactDesktop"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "utilityItemClick": "utilityItemClick"; "navItemClick": "navItemClick"; }, never, never, true, never>;
70
- }
71
-
72
- /**
73
- * LoroButton Type Definitions
74
- *
75
- * Centralized type definitions for the LoroButton component.
76
- * Use these types for consistency across the application.
77
- *
78
- * @example
79
- * const config: LoroButtonConfig = {
80
- * variant: 'primary',
81
- * size: 'md',
82
- * disabled: false,
83
- * };
84
- */
85
- /**
86
- * Visual variant style of the button
87
- * @type {'primary' | 'outline' | 'ghost' | 'danger' | 'soft' | 'social' | 'action' | 'navigation'}
88
- */
89
- type LoroButtonVariant = 'primary' | 'outline' | 'ghost' | 'danger' | 'soft' | 'social' | 'action' | 'navigation';
90
- /**
91
- * Button visual type (semantic grouping)
92
- * @type {'primary' | 'secondary' | 'tertiary'}
93
- */
94
- type LoroButtonType = 'primary' | 'secondary' | 'tertiary';
95
- /**
96
- * Button color theme
97
- * @type {'primary' | 'secondary' | 'tertiary' | 'danger'}
98
- */
99
- type LoroButtonColor = 'primary' | 'secondary' | 'tertiary' | 'danger';
100
- /**
101
- * Button size preset
102
- * @type {'sm' | 'md' | 'lg'}
103
- */
104
- type LoroButtonSize = 'sm' | 'md' | 'lg';
105
- /**
106
- * Button width behavior
107
- * @type {'fit-content' | 'full'}
108
- */
109
- type LoroButtonWidth = 'fit-content' | 'full';
110
- /**
111
- * Icon display mode within the button
112
- * @type {'none' | 'with-icon' | 'only-icon'}
113
- */
114
- type LoroButtonIconMode = 'none' | 'with-icon' | 'only-icon';
115
- /**
116
- * Button HTML type
117
- * @type {'button' | 'submit' | 'reset'}
118
- */
119
- type LoroButtonHtmlType = 'button' | 'submit' | 'reset';
120
-
121
- /**
122
- * LoroButton Constants
123
- *
124
- * Default values, valid options, and configuration constants for the LoroButton component.
125
- * Update these to maintain consistency across all button usage.
126
- */
127
-
128
- /**
129
- * Default input values for LoroButton
130
- */
131
- declare const LORO_BUTTON_DEFAULTS: {
132
- readonly text: "";
133
- readonly label: "";
134
- readonly variant: "primary";
135
- readonly type: "primary";
136
- readonly color: "primary";
137
- readonly size: "md";
138
- readonly fullWidth: false;
139
- readonly buttonWidth: "fit-content";
140
- readonly disabled: false;
141
- readonly loading: false;
142
- readonly selected: false;
143
- readonly htmlType: "button";
144
- readonly iconMode: "none";
145
- readonly socialMobileCompact: true;
146
- readonly iconSize: 23;
147
- readonly iconButtonSize: null;
148
- readonly iconColor: "";
149
- };
150
- /**
151
- * Valid options for button variants
152
- */
153
- declare const LORO_BUTTON_VARIANTS: readonly LoroButtonVariant[];
154
- /**
155
- * Valid options for button types
156
- */
157
- declare const LORO_BUTTON_TYPES: readonly LoroButtonType[];
158
- /**
159
- * Valid options for button colors
160
- */
161
- declare const LORO_BUTTON_COLORS: readonly LoroButtonColor[];
162
- /**
163
- * Valid options for button sizes
164
- */
165
- declare const LORO_BUTTON_SIZES: readonly LoroButtonSize[];
166
- /**
167
- * Valid options for icon modes
168
- */
169
- declare const LORO_BUTTON_ICON_MODES: readonly LoroButtonIconMode[];
170
- /**
171
- * CSS class names used by LoroButton (BEM notation)
172
- */
173
- declare const LORO_BUTTON_CLASSES: {
174
- readonly container: "loro-button";
175
- readonly variant: (variant: LoroButtonVariant) => string;
176
- readonly size: (size: LoroButtonSize) => string;
177
- readonly color: (color: LoroButtonColor) => string;
178
- readonly width: (width: LoroButtonWidth) => "loro-button--full" | undefined;
179
- readonly state: {
180
- readonly disabled: "loro-button--disabled";
181
- readonly loading: "loro-button--loading";
182
- readonly selected: "loro-button--selected";
183
- };
184
- readonly elements: {
185
- readonly label: "loro-button__label";
186
- readonly spinner: "loro-button__spinner";
187
- readonly srStatus: "loro-button__sr-status";
188
- };
189
- };
190
-
191
- /**
192
- * LoroButton Component
193
- *
194
- * A versatile, accessible button component with multiple variants, sizes, and states.
195
- * Follows Angular 21 best practices with signals, OnPush change detection, and semantic HTML.
196
- *
197
- * @example
198
- * ```html
199
- * <loro-button
200
- * [text]="'Click me'"
201
- * variant="primary"
202
- * size="md"
203
- * (change)="onButtonClick()"
204
- * />
205
- * ```
206
- */
207
- declare class LoroButton {
208
- label: _angular_core.InputSignal<string>;
209
- text: _angular_core.InputSignal<string>;
210
- icon: _angular_core.InputSignal<LoroIconName$1 | LoroButtonIconMode | null>;
211
- iconContent: _angular_core.InputSignal<LoroIconName$1 | null>;
212
- iconMode: _angular_core.InputSignal<LoroButtonIconMode>;
213
- iconSize: _angular_core.InputSignal<LoroIconSize$1>;
214
- iconButtonSize: _angular_core.InputSignal<LoroIconSize$1 | null>;
215
- iconColor: _angular_core.InputSignal<string>;
216
- socialMobileCompact: _angular_core.InputSignal<boolean>;
217
- selected: _angular_core.InputSignal<boolean>;
218
- variant: _angular_core.InputSignal<LoroButtonVariant>;
219
- typeButton: _angular_core.InputSignal<LoroButtonType>;
220
- color: _angular_core.InputSignal<LoroButtonColor>;
221
- size: _angular_core.InputSignal<LoroButtonSize>;
222
- fullWidth: _angular_core.InputSignal<boolean>;
223
- buttonWidth: _angular_core.InputSignal<LoroButtonWidth>;
224
- disabled: _angular_core.InputSignal<boolean>;
225
- loading: _angular_core.InputSignal<boolean>;
226
- type: _angular_core.InputSignal<"button" | "submit" | "reset">;
227
- formId: _angular_core.InputSignal<string>;
228
- ariaLabel: _angular_core.InputSignal<string>;
229
- ariaDescription: _angular_core.InputSignal<string>;
230
- buttonClick: _angular_core.OutputEmitterRef<void>;
231
- change: _angular_core.OutputEmitterRef<void>;
232
- sanChange: _angular_core.OutputEmitterRef<void>;
233
- protected readonly resolvedText: _angular_core.Signal<string>;
234
- protected readonly resolvedIcon: _angular_core.Signal<LoroIconName$1 | null>;
235
- protected readonly resolvedIconMode: _angular_core.Signal<LoroButtonIconMode>;
236
- protected readonly resolvedButtonWidth: _angular_core.Signal<LoroButtonWidth>;
237
- protected readonly resolvedIconButtonSize: _angular_core.Signal<string>;
238
- protected readonly resolvedTypeButton: _angular_core.Signal<LoroButtonType>;
239
- protected readonly resolvedColor: _angular_core.Signal<LoroButtonColor>;
240
- protected readonly showIcon: _angular_core.Signal<boolean>;
241
- protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
242
- protected readonly resolvedIconColor: _angular_core.Signal<string>;
243
- protected readonly resolvedIconRenderMode: _angular_core.Signal<LoroIconRenderMode$1>;
244
- protected readonly isDisabled: _angular_core.Signal<boolean>;
245
- protected readonly showSpinner: _angular_core.Signal<boolean>;
246
- protected readonly loadingAriaLabel: _angular_core.Signal<string>;
247
- protected emitChange(): void;
248
- protected defaultIconColor(): LoroIconColor$1;
249
- private isIconMode;
250
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroButton, never>;
251
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroButton, "loro-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconContent": { "alias": "iconContent"; "required": false; "isSignal": true; }; "iconMode": { "alias": "iconMode"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconButtonSize": { "alias": "iconButtonSize"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "socialMobileCompact": { "alias": "socialMobileCompact"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "typeButton": { "alias": "typeButton"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "buttonWidth": { "alias": "buttonWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "formId": { "alias": "formId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaDescription": { "alias": "ariaDescription"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; "change": "change"; "sanChange": "sanChange"; }, never, never, true, never>;
252
- }
253
-
254
10
  type LoroAssetLayer = 'Action' | 'Brand' | 'Direction' | 'Home' | 'Illustrations' | 'Navigation' | 'Product' | 'Products' | 'Screens' | 'Social' | 'Status' | 'Stores';
255
11
  type LoroIconAsset = {
256
12
  readonly name: string;
@@ -1115,18 +871,281 @@ type LoroImageAssetName = keyof typeof LORO_IMAGE_PATHS;
1115
871
  type LoroImageLegacyName = keyof typeof LORO_IMAGE_LEGACY_NAMES;
1116
872
  type LoroImageName = LoroImageAssetName | LoroImageLegacyName;
1117
873
 
1118
- declare class LoroImage {
1119
- name: _angular_core.InputSignal<LoroImageName>;
874
+ type LoroIconColorToken = 'default' | 'primary' | 'primary-strong' | 'primary-deep' | 'text' | 'muted' | 'success' | 'danger' | 'warning' | 'inverse';
875
+ type LoroIconColor = LoroIconColorToken | string;
876
+ type LoroIconRenderMode = 'mask' | 'origin';
877
+ type LoroIconSize = number | string;
878
+ declare class LoroIcon {
879
+ name: _angular_core.InputSignal<LoroIconName>;
880
+ size: _angular_core.InputSignal<LoroIconSize>;
1120
881
  alt: _angular_core.InputSignal<string>;
1121
- size: _angular_core.InputSignal<string>;
1122
- width: _angular_core.InputSignal<string>;
1123
- height: _angular_core.InputSignal<string>;
1124
- fit: _angular_core.InputSignal<"contain" | "cover">;
1125
- protected readonly assetName: _angular_core.Signal<"image-al-loro-design-library-home-ai" | "image-favicon-apple-touch-icon" | "image-favicon-assets-xcassets-appicon-appiconset-appicon-any" | "image-favicon-assets-xcassets-appicon-appiconset-appicon-dark" | "image-favicon-assets-xcassets-splash-imageset-splash-2732x2732" | "image-favicon-assets-xcassets-splash-imageset-splash-2732x2732-1" | "image-favicon-assets-xcassets-splash-imageset-splash-2732x2732-2" | "image-favicon-assets-xcassets-splash-imageset-splash-dark-2732x2732" | "image-favicon-assets-xcassets-splash-imageset-splash-dark-2732x2732-1" | "image-favicon-assets-xcassets-splash-imageset-splash-dark-2732x2732-2" | "image-favicon-favicon" | "image-home-icon-ai" | "image-home-icon-basket" | "image-home-icon-compare" | "image-home-icon-expiry" | "image-home-icon-pantry" | "image-home-icon-scan" | "image-image-home" | "image-logo-despensa-buy" | "image-logo-list-buy" | "image-loro-apaisado" | "image-loro-apaisado-blanco" | "image-loro-card-buy" | "image-loro-card-caducidad" | "image-loro-card-comparativa" | "image-loro-card-ia" | "image-loro-card-qr" | "image-loro-despensa" | "image-loro-icon-default" | "image-loro-spinner-ring" | "image-loro-tittle-sub" | "image-pantry-cabinet" | "image-pantry-metric-chart" | "image-product-bananas" | "image-product-milk" | "image-product-pasta" | "image-product-rice" | "image-product-tomatoes" | "image-product-yogurt" | "image-store-ahorramas" | "image-store-alcampo" | "image-store-aldi" | "image-store-bonpreu" | "image-store-caprabo" | "image-store-carrefour" | "image-store-consum" | "image-store-coviran" | "image-store-dia" | "image-store-el-corte-ingles" | "image-store-eroski" | "image-store-froiz" | "image-store-gadis" | "image-store-lidl" | "image-store-mercadona">;
1126
- protected readonly src: _angular_core.Signal<"assets/loro-ui/images/al-loro-design-library-home-ai.png" | "assets/loro-ui/favicons/apple-touch-icon.png" | "assets/loro-ui/favicons/Assets.xcassets/AppIcon.appiconset/AppIcon-Any.png" | "assets/loro-ui/favicons/Assets.xcassets/AppIcon.appiconset/AppIcon-Dark.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732-1.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732-2.png" | "assets/loro-ui/favicons/favicon.svg" | "assets/loro-ui/images/home-icon-ai.svg" | "assets/loro-ui/images/home-icon-basket.svg" | "assets/loro-ui/images/home-icon-compare.svg" | "assets/loro-ui/images/home-icon-expiry.svg" | "assets/loro-ui/images/home-icon-pantry.svg" | "assets/loro-ui/images/home-icon-scan.svg" | "assets/loro-ui/images/image-home.png" | "assets/loro-ui/images/logo-despensa-buy.png" | "assets/loro-ui/images/logo-list-buy.png" | "assets/loro-ui/images/loro-apaisado.png" | "assets/loro-ui/images/loro-apaisado-blanco.png" | "assets/loro-ui/images/loro-card-buy.png" | "assets/loro-ui/images/loro-card-caducidad.png" | "assets/loro-ui/images/loro-card-comparativa.png" | "assets/loro-ui/images/loro-card-ia.png" | "assets/loro-ui/images/loro-card-qr.png" | "assets/loro-ui/images/loro-despensa.png" | "assets/loro-ui/images/loro-icon-default.png" | "assets/loro-ui/images/loro-spinner-ring.svg" | "assets/loro-ui/images/loro-tittle-sub.png" | "assets/loro-ui/images/pantry-cabinet.svg" | "assets/loro-ui/images/pantry-metric-chart.svg" | "assets/loro-ui/images/product-bananas.svg" | "assets/loro-ui/images/product-milk.svg" | "assets/loro-ui/images/product-pasta.svg" | "assets/loro-ui/images/product-rice.svg" | "assets/loro-ui/images/product-tomatoes.svg" | "assets/loro-ui/images/product-yogurt.svg" | "assets/loro-ui/images/store-ahorramas.svg" | "assets/loro-ui/images/store-alcampo.png" | "assets/loro-ui/images/store-aldi.svg" | "assets/loro-ui/images/store-bonpreu.svg" | "assets/loro-ui/images/store-caprabo.svg" | "assets/loro-ui/images/store-carrefour.svg" | "assets/loro-ui/images/store-consum.png" | "assets/loro-ui/images/store-coviran.png" | "assets/loro-ui/images/store-dia.svg" | "assets/loro-ui/images/store-el-corte-ingles.svg" | "assets/loro-ui/images/store-eroski.png" | "assets/loro-ui/images/store-froiz.svg" | "assets/loro-ui/images/store-gadis.png" | "assets/loro-ui/images/store-lidl.svg" | "assets/loro-ui/images/store-mercadona.svg">;
882
+ decorative: _angular_core.InputSignal<boolean>;
883
+ color: _angular_core.InputSignal<string>;
884
+ renderMode: _angular_core.InputSignal<LoroIconRenderMode>;
885
+ protected readonly assetName: _angular_core.Signal<"icon-apple" | "icon-arrow-right" | "icon-auto" | "icon-back" | "icon-bag" | "icon-barcode" | "icon-bell" | "icon-bottle" | "icon-bulb" | "icon-calendar" | "icon-camera" | "icon-cart" | "icon-chart-bar" | "icon-chat" | "icon-check" | "icon-checkbox-empty" | "icon-chevron-down" | "icon-chevron-right" | "icon-chevron-up" | "icon-clock" | "icon-download" | "icon-email" | "icon-eye-off" | "icon-eye" | "icon-globe" | "icon-google" | "icon-headset" | "icon-help" | "icon-home" | "icon-info" | "icon-laptop" | "icon-leaf" | "icon-list" | "icon-location" | "icon-lock" | "icon-logout" | "icon-megaphone" | "icon-moon" | "icon-more-vertical" | "icon-nav-compare" | "icon-nav-home" | "icon-nav-list" | "icon-nav-pantry" | "icon-pantry-stock" | "icon-paperclip" | "icon-phone" | "icon-plus-user" | "icon-plus" | "icon-scanner" | "icon-search" | "icon-send" | "icon-settings" | "icon-shelf" | "icon-shield-alert" | "icon-shield" | "icon-star" | "icon-store" | "icon-sun" | "icon-tablet" | "icon-tag" | "icon-tick-circle" | "icon-trash-white" | "icon-trash" | "icon-trend" | "icon-user" | "icon-warning">;
886
+ protected readonly src: _angular_core.Signal<"assets/loro-ui/icons/apple.svg" | "assets/loro-ui/icons/arrow-right.svg" | "assets/loro-ui/icons/auto.svg" | "assets/loro-ui/icons/back.svg" | "assets/loro-ui/icons/bag.svg" | "assets/loro-ui/icons/barcode.svg" | "assets/loro-ui/icons/bell.svg" | "assets/loro-ui/icons/bottle.svg" | "assets/loro-ui/icons/bulb.svg" | "assets/loro-ui/icons/calendar.svg" | "assets/loro-ui/icons/camera.svg" | "assets/loro-ui/icons/cart.svg" | "assets/loro-ui/icons/chart-bar.svg" | "assets/loro-ui/icons/chat.svg" | "assets/loro-ui/icons/check.svg" | "assets/loro-ui/icons/checkbox-empty.svg" | "assets/loro-ui/icons/chevron-down.svg" | "assets/loro-ui/icons/chevron-right.svg" | "assets/loro-ui/icons/chevron-up.svg" | "assets/loro-ui/icons/clock.svg" | "assets/loro-ui/icons/download.svg" | "assets/loro-ui/icons/email.svg" | "assets/loro-ui/icons/eye-off.svg" | "assets/loro-ui/icons/eye.svg" | "assets/loro-ui/icons/globe.svg" | "assets/loro-ui/icons/google.svg" | "assets/loro-ui/icons/headset.svg" | "assets/loro-ui/icons/help.svg" | "assets/loro-ui/icons/home.svg" | "assets/loro-ui/icons/info.svg" | "assets/loro-ui/icons/laptop.svg" | "assets/loro-ui/icons/leaf.svg" | "assets/loro-ui/icons/list.svg" | "assets/loro-ui/icons/location.svg" | "assets/loro-ui/icons/lock.svg" | "assets/loro-ui/icons/logout.svg" | "assets/loro-ui/icons/megaphone.svg" | "assets/loro-ui/icons/moon.svg" | "assets/loro-ui/icons/more-vertical.svg" | "assets/loro-ui/icons/nav-compare.svg" | "assets/loro-ui/icons/nav-home.svg" | "assets/loro-ui/icons/nav-list.svg" | "assets/loro-ui/icons/nav-pantry.svg" | "assets/loro-ui/icons/pantry-stock.svg" | "assets/loro-ui/icons/paperclip.svg" | "assets/loro-ui/icons/phone.svg" | "assets/loro-ui/icons/plus-user.svg" | "assets/loro-ui/icons/plus.svg" | "assets/loro-ui/icons/scanner.svg" | "assets/loro-ui/icons/search.svg" | "assets/loro-ui/icons/send.svg" | "assets/loro-ui/icons/settings.svg" | "assets/loro-ui/icons/shelf.svg" | "assets/loro-ui/icons/shield-alert.svg" | "assets/loro-ui/icons/shield.svg" | "assets/loro-ui/icons/star.svg" | "assets/loro-ui/icons/store.svg" | "assets/loro-ui/icons/sun.svg" | "assets/loro-ui/icons/tablet.svg" | "assets/loro-ui/icons/tag.svg" | "assets/loro-ui/icons/tick-circle.svg" | "assets/loro-ui/icons/trash-white.svg" | "assets/loro-ui/icons/trash.svg" | "assets/loro-ui/icons/trend.svg" | "assets/loro-ui/icons/user.svg" | "assets/loro-ui/icons/warning.svg">;
1127
887
  protected readonly altText: _angular_core.Signal<string>;
1128
- protected readonly resolvedWidth: _angular_core.Signal<string>;
1129
- protected readonly resolvedHeight: _angular_core.Signal<string>;
888
+ protected readonly resolvedSize: _angular_core.Signal<string>;
889
+ protected readonly resolvedColor: _angular_core.Signal<string>;
890
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroIcon, never>;
891
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroIcon, "loro-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "renderMode": { "alias": "renderMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
892
+ }
893
+
894
+ declare class LoroAccordion {
895
+ title: _angular_core.InputSignal<string>;
896
+ icon: _angular_core.InputSignal<LoroIconName | null>;
897
+ expanded: _angular_core.InputSignal<boolean>;
898
+ expandedChange: _angular_core.OutputEmitterRef<boolean>;
899
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroAccordion, never>;
900
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroAccordion, "loro-accordion", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expandedChange": "expandedChange"; }, never, ["*"], true, never>;
901
+ }
902
+
903
+ interface LoroAppNavItem {
904
+ id: string;
905
+ label: string;
906
+ icon: LoroIconName;
907
+ active?: boolean;
908
+ badge?: string | number | null;
909
+ disabled?: boolean;
910
+ }
911
+ interface LoroAppNavClick {
912
+ item: LoroAppNavItem;
913
+ section: 'main' | 'utility';
914
+ }
915
+ declare class LoroAppNav {
916
+ private readonly haptics;
917
+ private readonly draggedMobileIndex;
918
+ private readonly mobilePointerActive;
919
+ private activePointerId;
920
+ private suppressNextMobileClick;
921
+ items: _angular_core.InputSignal<LoroAppNavItem[]>;
922
+ utilityItems: _angular_core.InputSignal<LoroAppNavItem[]>;
923
+ ariaLabel: _angular_core.InputSignal<string>;
924
+ showUtilityItems: _angular_core.InputSignal<boolean>;
925
+ compactDesktop: _angular_core.InputSignal<boolean>;
926
+ itemClick: _angular_core.OutputEmitterRef<LoroAppNavItem>;
927
+ utilityItemClick: _angular_core.OutputEmitterRef<LoroAppNavItem>;
928
+ navItemClick: _angular_core.OutputEmitterRef<LoroAppNavClick>;
929
+ protected readonly desktopItems: _angular_core.Signal<LoroAppNavItem[]>;
930
+ protected readonly mobileItems: _angular_core.Signal<LoroAppNavItem[]>;
931
+ protected readonly mobileVisualSlotCount: _angular_core.Signal<number>;
932
+ private readonly selectedMobileIndex;
933
+ protected readonly mobileSliderPosition: _angular_core.Signal<number>;
934
+ protected readonly isMobileDragging: _angular_core.Signal<boolean>;
935
+ protected readonly mobileItemCount: _angular_core.Signal<number>;
936
+ protected readonly selectedMobileItemId: _angular_core.Signal<string>;
937
+ protected isMobileItemVisualActive(index: number): boolean;
938
+ onMainItemClick(item: LoroAppNavItem): void;
939
+ protected onMobileItemClick(item: LoroAppNavItem): void;
940
+ protected onMobilePointerDown(event: PointerEvent): void;
941
+ protected onMobilePointerMove(event: PointerEvent): void;
942
+ protected onMobilePointerUp(event: PointerEvent): void;
943
+ protected onMobilePointerCancel(event: PointerEvent): void;
944
+ onUtilityItemClick(item: LoroAppNavItem): void;
945
+ private emitMainItem;
946
+ private getMobileVisualSlotPosition;
947
+ protected mobileItemGridColumn(index: number): number;
948
+ private mobileItemIndexToVisualSlot;
949
+ private getNearestEnabledMobileIndex;
950
+ private releaseMobilePointer;
951
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroAppNav, never>;
952
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroAppNav, "loro-app-nav", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "utilityItems": { "alias": "utilityItems"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "showUtilityItems": { "alias": "showUtilityItems"; "required": false; "isSignal": true; }; "compactDesktop": { "alias": "compactDesktop"; "required": false; "isSignal": true; }; }, { "itemClick": "itemClick"; "utilityItemClick": "utilityItemClick"; "navItemClick": "navItemClick"; }, never, never, true, never>;
953
+ }
954
+
955
+ /**
956
+ * LoroButton Type Definitions
957
+ *
958
+ * Centralized type definitions for the LoroButton component.
959
+ * Use these types for consistency across the application.
960
+ *
961
+ * @example
962
+ * const config: LoroButtonConfig = {
963
+ * variant: 'primary',
964
+ * size: 'md',
965
+ * disabled: false,
966
+ * };
967
+ */
968
+ /**
969
+ * Visual variant style of the button
970
+ * @type {'primary' | 'outline' | 'ghost' | 'danger' | 'soft' | 'social' | 'action' | 'navigation'}
971
+ */
972
+ type LoroButtonVariant = 'primary' | 'outline' | 'ghost' | 'danger' | 'soft' | 'social' | 'action' | 'navigation';
973
+ /**
974
+ * Button visual type (semantic grouping)
975
+ * @type {'primary' | 'secondary' | 'tertiary'}
976
+ */
977
+ type LoroButtonType = 'primary' | 'secondary' | 'tertiary';
978
+ /**
979
+ * Button color theme
980
+ * @type {'primary' | 'secondary' | 'tertiary' | 'danger'}
981
+ */
982
+ type LoroButtonColor = 'primary' | 'secondary' | 'tertiary' | 'danger';
983
+ /**
984
+ * Button size preset
985
+ * @type {'sm' | 'md' | 'lg'}
986
+ */
987
+ type LoroButtonSize = 'sm' | 'md' | 'lg';
988
+ /**
989
+ * Button width behavior
990
+ * @type {'fit-content' | 'full'}
991
+ */
992
+ type LoroButtonWidth = 'fit-content' | 'full';
993
+ /**
994
+ * Icon display mode within the button
995
+ * @type {'none' | 'with-icon' | 'only-icon'}
996
+ */
997
+ type LoroButtonIconMode = 'none' | 'with-icon' | 'only-icon';
998
+ /**
999
+ * Button HTML type
1000
+ * @type {'button' | 'submit' | 'reset'}
1001
+ */
1002
+ type LoroButtonHtmlType = 'button' | 'submit' | 'reset';
1003
+
1004
+ /**
1005
+ * LoroButton Constants
1006
+ *
1007
+ * Default values, valid options, and configuration constants for the LoroButton component.
1008
+ * Update these to maintain consistency across all button usage.
1009
+ */
1010
+
1011
+ /**
1012
+ * Default input values for LoroButton
1013
+ */
1014
+ declare const LORO_BUTTON_DEFAULTS: {
1015
+ readonly text: "";
1016
+ readonly label: "";
1017
+ readonly variant: "primary";
1018
+ readonly type: "primary";
1019
+ readonly color: "primary";
1020
+ readonly size: "md";
1021
+ readonly fullWidth: false;
1022
+ readonly buttonWidth: "fit-content";
1023
+ readonly disabled: false;
1024
+ readonly loading: false;
1025
+ readonly selected: false;
1026
+ readonly htmlType: "button";
1027
+ readonly iconMode: "none";
1028
+ readonly socialMobileCompact: true;
1029
+ readonly iconSize: 23;
1030
+ readonly iconButtonSize: null;
1031
+ readonly iconColor: "";
1032
+ };
1033
+ /**
1034
+ * Valid options for button variants
1035
+ */
1036
+ declare const LORO_BUTTON_VARIANTS: readonly LoroButtonVariant[];
1037
+ /**
1038
+ * Valid options for button types
1039
+ */
1040
+ declare const LORO_BUTTON_TYPES: readonly LoroButtonType[];
1041
+ /**
1042
+ * Valid options for button colors
1043
+ */
1044
+ declare const LORO_BUTTON_COLORS: readonly LoroButtonColor[];
1045
+ /**
1046
+ * Valid options for button sizes
1047
+ */
1048
+ declare const LORO_BUTTON_SIZES: readonly LoroButtonSize[];
1049
+ /**
1050
+ * Valid options for icon modes
1051
+ */
1052
+ declare const LORO_BUTTON_ICON_MODES: readonly LoroButtonIconMode[];
1053
+ /**
1054
+ * CSS class names used by LoroButton (BEM notation)
1055
+ */
1056
+ declare const LORO_BUTTON_CLASSES: {
1057
+ readonly container: "loro-button";
1058
+ readonly variant: (variant: LoroButtonVariant) => string;
1059
+ readonly size: (size: LoroButtonSize) => string;
1060
+ readonly color: (color: LoroButtonColor) => string;
1061
+ readonly width: (width: LoroButtonWidth) => "loro-button--full" | undefined;
1062
+ readonly state: {
1063
+ readonly disabled: "loro-button--disabled";
1064
+ readonly loading: "loro-button--loading";
1065
+ readonly selected: "loro-button--selected";
1066
+ };
1067
+ readonly elements: {
1068
+ readonly label: "loro-button__label";
1069
+ readonly spinner: "loro-button__spinner";
1070
+ readonly srStatus: "loro-button__sr-status";
1071
+ };
1072
+ };
1073
+
1074
+ /**
1075
+ * LoroButton Component
1076
+ *
1077
+ * A versatile, accessible button component with multiple variants, sizes, and states.
1078
+ * Follows Angular 21 best practices with signals, OnPush change detection, and semantic HTML.
1079
+ *
1080
+ * @example
1081
+ * ```html
1082
+ * <loro-button
1083
+ * [text]="'Click me'"
1084
+ * variant="primary"
1085
+ * size="md"
1086
+ * (change)="onButtonClick()"
1087
+ * />
1088
+ * ```
1089
+ */
1090
+ declare class LoroButton {
1091
+ label: _angular_core.InputSignal<string>;
1092
+ text: _angular_core.InputSignal<string>;
1093
+ icon: _angular_core.InputSignal<LoroIconName | LoroButtonIconMode | null>;
1094
+ iconContent: _angular_core.InputSignal<LoroIconName | null>;
1095
+ iconMode: _angular_core.InputSignal<LoroButtonIconMode>;
1096
+ iconSize: _angular_core.InputSignal<LoroIconSize>;
1097
+ iconButtonSize: _angular_core.InputSignal<LoroIconSize | null>;
1098
+ iconColor: _angular_core.InputSignal<string>;
1099
+ socialMobileCompact: _angular_core.InputSignal<boolean>;
1100
+ selected: _angular_core.InputSignal<boolean>;
1101
+ variant: _angular_core.InputSignal<LoroButtonVariant>;
1102
+ typeButton: _angular_core.InputSignal<LoroButtonType>;
1103
+ color: _angular_core.InputSignal<LoroButtonColor>;
1104
+ size: _angular_core.InputSignal<LoroButtonSize>;
1105
+ fullWidth: _angular_core.InputSignal<boolean>;
1106
+ buttonWidth: _angular_core.InputSignal<LoroButtonWidth>;
1107
+ disabled: _angular_core.InputSignal<boolean>;
1108
+ loading: _angular_core.InputSignal<boolean>;
1109
+ type: _angular_core.InputSignal<"button" | "submit" | "reset">;
1110
+ formId: _angular_core.InputSignal<string>;
1111
+ ariaLabel: _angular_core.InputSignal<string>;
1112
+ ariaDescription: _angular_core.InputSignal<string>;
1113
+ buttonClick: _angular_core.OutputEmitterRef<void>;
1114
+ change: _angular_core.OutputEmitterRef<void>;
1115
+ sanChange: _angular_core.OutputEmitterRef<void>;
1116
+ protected readonly resolvedText: _angular_core.Signal<string>;
1117
+ protected readonly resolvedIcon: _angular_core.Signal<LoroIconName | null>;
1118
+ protected readonly resolvedIconMode: _angular_core.Signal<LoroButtonIconMode>;
1119
+ protected readonly resolvedButtonWidth: _angular_core.Signal<LoroButtonWidth>;
1120
+ protected readonly resolvedIconButtonSize: _angular_core.Signal<string>;
1121
+ protected readonly resolvedTypeButton: _angular_core.Signal<LoroButtonType>;
1122
+ protected readonly resolvedColor: _angular_core.Signal<LoroButtonColor>;
1123
+ protected readonly showIcon: _angular_core.Signal<boolean>;
1124
+ protected readonly resolvedAriaLabel: _angular_core.Signal<string | null>;
1125
+ protected readonly resolvedIconColor: _angular_core.Signal<string>;
1126
+ protected readonly resolvedIconRenderMode: _angular_core.Signal<LoroIconRenderMode>;
1127
+ protected readonly isDisabled: _angular_core.Signal<boolean>;
1128
+ protected readonly showSpinner: _angular_core.Signal<boolean>;
1129
+ protected readonly loadingAriaLabel: _angular_core.Signal<string>;
1130
+ protected emitChange(): void;
1131
+ protected defaultIconColor(): LoroIconColor;
1132
+ private isIconMode;
1133
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroButton, never>;
1134
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroButton, "loro-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconContent": { "alias": "iconContent"; "required": false; "isSignal": true; }; "iconMode": { "alias": "iconMode"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconButtonSize": { "alias": "iconButtonSize"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "socialMobileCompact": { "alias": "socialMobileCompact"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "typeButton": { "alias": "typeButton"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "buttonWidth": { "alias": "buttonWidth"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "formId": { "alias": "formId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaDescription": { "alias": "ariaDescription"; "required": false; "isSignal": true; }; }, { "buttonClick": "buttonClick"; "change": "change"; "sanChange": "sanChange"; }, never, never, true, never>;
1135
+ }
1136
+
1137
+ declare class LoroImage {
1138
+ name: _angular_core.InputSignal<LoroImageName>;
1139
+ alt: _angular_core.InputSignal<string>;
1140
+ size: _angular_core.InputSignal<string>;
1141
+ width: _angular_core.InputSignal<string>;
1142
+ height: _angular_core.InputSignal<string>;
1143
+ fit: _angular_core.InputSignal<"contain" | "cover">;
1144
+ protected readonly assetName: _angular_core.Signal<"image-al-loro-design-library-home-ai" | "image-favicon-apple-touch-icon" | "image-favicon-assets-xcassets-appicon-appiconset-appicon-any" | "image-favicon-assets-xcassets-appicon-appiconset-appicon-dark" | "image-favicon-assets-xcassets-splash-imageset-splash-2732x2732" | "image-favicon-assets-xcassets-splash-imageset-splash-2732x2732-1" | "image-favicon-assets-xcassets-splash-imageset-splash-2732x2732-2" | "image-favicon-assets-xcassets-splash-imageset-splash-dark-2732x2732" | "image-favicon-assets-xcassets-splash-imageset-splash-dark-2732x2732-1" | "image-favicon-assets-xcassets-splash-imageset-splash-dark-2732x2732-2" | "image-favicon-favicon" | "image-home-icon-ai" | "image-home-icon-basket" | "image-home-icon-compare" | "image-home-icon-expiry" | "image-home-icon-pantry" | "image-home-icon-scan" | "image-image-home" | "image-logo-despensa-buy" | "image-logo-list-buy" | "image-loro-apaisado" | "image-loro-apaisado-blanco" | "image-loro-card-buy" | "image-loro-card-caducidad" | "image-loro-card-comparativa" | "image-loro-card-ia" | "image-loro-card-qr" | "image-loro-despensa" | "image-loro-icon-default" | "image-loro-spinner-ring" | "image-loro-tittle-sub" | "image-pantry-cabinet" | "image-pantry-metric-chart" | "image-product-bananas" | "image-product-milk" | "image-product-pasta" | "image-product-rice" | "image-product-tomatoes" | "image-product-yogurt" | "image-store-ahorramas" | "image-store-alcampo" | "image-store-aldi" | "image-store-bonpreu" | "image-store-caprabo" | "image-store-carrefour" | "image-store-consum" | "image-store-coviran" | "image-store-dia" | "image-store-el-corte-ingles" | "image-store-eroski" | "image-store-froiz" | "image-store-gadis" | "image-store-lidl" | "image-store-mercadona">;
1145
+ protected readonly src: _angular_core.Signal<"assets/loro-ui/images/al-loro-design-library-home-ai.png" | "assets/loro-ui/favicons/apple-touch-icon.png" | "assets/loro-ui/favicons/Assets.xcassets/AppIcon.appiconset/AppIcon-Any.png" | "assets/loro-ui/favicons/Assets.xcassets/AppIcon.appiconset/AppIcon-Dark.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732-1.png" | "assets/loro-ui/favicons/Assets.xcassets/Splash.imageset/splash-dark-2732x2732-2.png" | "assets/loro-ui/favicons/favicon.svg" | "assets/loro-ui/images/home-icon-ai.svg" | "assets/loro-ui/images/home-icon-basket.svg" | "assets/loro-ui/images/home-icon-compare.svg" | "assets/loro-ui/images/home-icon-expiry.svg" | "assets/loro-ui/images/home-icon-pantry.svg" | "assets/loro-ui/images/home-icon-scan.svg" | "assets/loro-ui/images/image-home.png" | "assets/loro-ui/images/logo-despensa-buy.png" | "assets/loro-ui/images/logo-list-buy.png" | "assets/loro-ui/images/loro-apaisado.png" | "assets/loro-ui/images/loro-apaisado-blanco.png" | "assets/loro-ui/images/loro-card-buy.png" | "assets/loro-ui/images/loro-card-caducidad.png" | "assets/loro-ui/images/loro-card-comparativa.png" | "assets/loro-ui/images/loro-card-ia.png" | "assets/loro-ui/images/loro-card-qr.png" | "assets/loro-ui/images/loro-despensa.png" | "assets/loro-ui/images/loro-icon-default.png" | "assets/loro-ui/images/loro-spinner-ring.svg" | "assets/loro-ui/images/loro-tittle-sub.png" | "assets/loro-ui/images/pantry-cabinet.svg" | "assets/loro-ui/images/pantry-metric-chart.svg" | "assets/loro-ui/images/product-bananas.svg" | "assets/loro-ui/images/product-milk.svg" | "assets/loro-ui/images/product-pasta.svg" | "assets/loro-ui/images/product-rice.svg" | "assets/loro-ui/images/product-tomatoes.svg" | "assets/loro-ui/images/product-yogurt.svg" | "assets/loro-ui/images/store-ahorramas.svg" | "assets/loro-ui/images/store-alcampo.png" | "assets/loro-ui/images/store-aldi.svg" | "assets/loro-ui/images/store-bonpreu.svg" | "assets/loro-ui/images/store-caprabo.svg" | "assets/loro-ui/images/store-carrefour.svg" | "assets/loro-ui/images/store-consum.png" | "assets/loro-ui/images/store-coviran.png" | "assets/loro-ui/images/store-dia.svg" | "assets/loro-ui/images/store-el-corte-ingles.svg" | "assets/loro-ui/images/store-eroski.png" | "assets/loro-ui/images/store-froiz.svg" | "assets/loro-ui/images/store-gadis.png" | "assets/loro-ui/images/store-lidl.svg" | "assets/loro-ui/images/store-mercadona.svg">;
1146
+ protected readonly altText: _angular_core.Signal<string>;
1147
+ protected readonly resolvedWidth: _angular_core.Signal<string>;
1148
+ protected readonly resolvedHeight: _angular_core.Signal<string>;
1130
1149
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroImage, never>;
1131
1150
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroImage, "loro-image", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "fit": { "alias": "fit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1132
1151
  }
@@ -1135,9 +1154,9 @@ declare class LoroAssistantCard {
1135
1154
  title: _angular_core.InputSignal<string>;
1136
1155
  description: _angular_core.InputSignal<string>;
1137
1156
  imageName: _angular_core.InputSignal<LoroImageName | null>;
1138
- icon: _angular_core.InputSignal<LoroIconName$1>;
1157
+ icon: _angular_core.InputSignal<LoroIconName>;
1139
1158
  actionLabel: _angular_core.InputSignal<string>;
1140
- actionIcon: _angular_core.InputSignal<LoroIconName$1 | null>;
1159
+ actionIcon: _angular_core.InputSignal<LoroIconName | null>;
1141
1160
  actionVariant: _angular_core.InputSignal<LoroButtonVariant>;
1142
1161
  action: _angular_core.OutputEmitterRef<void>;
1143
1162
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroAssistantCard, never>;
@@ -1145,7 +1164,7 @@ declare class LoroAssistantCard {
1145
1164
  }
1146
1165
 
1147
1166
  declare class LoroAuthSocialButton {
1148
- icon: _angular_core.InputSignal<LoroIconName$1>;
1167
+ icon: _angular_core.InputSignal<LoroIconName>;
1149
1168
  label: _angular_core.InputSignal<string>;
1150
1169
  outline: _angular_core.InputSignal<boolean>;
1151
1170
  selected: _angular_core.InputSignal<boolean>;
@@ -1164,41 +1183,68 @@ declare class LoroBadge {
1164
1183
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroBadge, "loro-badge", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1165
1184
  }
1166
1185
 
1167
- type LoroCardVariant = 'default' | 'tinted' | 'danger' | 'selectable' | 'benefit' | 'benefit-showcase' | 'home-hero' | 'home-primary' | 'home-secondary';
1186
+ type LoroCardVariant = 'default' | 'tinted' | 'danger' | 'selectable';
1187
+ type LoroCardBenefitVariant = 'benefit' | 'benefit-showcase';
1188
+ type LoroCardLinkVariant = 'primary' | 'secondary' | 'hero';
1168
1189
  type LoroCardJustify = 'start' | 'center' | 'end';
1169
- declare class LoroCard {
1170
- title: _angular_core.InputSignal<string>;
1171
- description: _angular_core.InputSignal<string>;
1172
- icon: _angular_core.InputSignal<LoroIconName$1 | null>;
1173
- iconSize: _angular_core.InputSignal<number>;
1174
- iconColor: _angular_core.InputSignal<string>;
1175
- link: _angular_core.InputSignal<string>;
1176
- variant: _angular_core.InputSignal<LoroCardVariant>;
1177
- justify: _angular_core.InputSignal<LoroCardJustify>;
1178
- mobileJustify: _angular_core.InputSignal<LoroCardJustify>;
1179
- selected: _angular_core.InputSignal<boolean>;
1180
- showArrow: _angular_core.InputSignal<boolean>;
1181
- arrowSize: _angular_core.InputSignal<number>;
1182
- heroGreeting: _angular_core.InputSignal<string>;
1183
- heroSubtitle: _angular_core.InputSignal<string>;
1184
- heroAvatarSrc: _angular_core.InputSignal<string | null>;
1185
- heroAvatarAlt: _angular_core.InputSignal<string>;
1186
- heroAvatarIcon: _angular_core.InputSignal<LoroIconName$1>;
1187
- heroAvatarIconSize: _angular_core.InputSignal<number>;
1188
- heroVisualImage: _angular_core.InputSignal<LoroImageName | null>;
1189
- heroVisualAlt: _angular_core.InputSignal<string>;
1190
- protected readonly resolvedIconSize: _angular_core.Signal<string>;
1191
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroCard, never>;
1192
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroCard, "loro-card", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "justify": { "alias": "justify"; "required": false; "isSignal": true; }; "mobileJustify": { "alias": "mobileJustify"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "showArrow": { "alias": "showArrow"; "required": false; "isSignal": true; }; "arrowSize": { "alias": "arrowSize"; "required": false; "isSignal": true; }; "heroGreeting": { "alias": "heroGreeting"; "required": false; "isSignal": true; }; "heroSubtitle": { "alias": "heroSubtitle"; "required": false; "isSignal": true; }; "heroAvatarSrc": { "alias": "heroAvatarSrc"; "required": false; "isSignal": true; }; "heroAvatarAlt": { "alias": "heroAvatarAlt"; "required": false; "isSignal": true; }; "heroAvatarIcon": { "alias": "heroAvatarIcon"; "required": false; "isSignal": true; }; "heroAvatarIconSize": { "alias": "heroAvatarIconSize"; "required": false; "isSignal": true; }; "heroVisualImage": { "alias": "heroVisualImage"; "required": false; "isSignal": true; }; "heroVisualAlt": { "alias": "heroVisualAlt"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1190
+ type LoroCardBenefitIconName = LoroIconName;
1191
+ type LoroCardBenefitIconColor = LoroIconColorToken;
1192
+ type LoroCardBenefitIconSize = 12 | 14 | 16 | 18 | 20 | 22 | 24 | 28 | 32;
1193
+ type LoroCardLinkAvatarSize = LoroCardBenefitIconSize;
1194
+ type LoroCardHomeVariant = LoroCardLinkVariant;
1195
+
1196
+ declare class LoroCardBenefit {
1197
+ readonly title: _angular_core.InputSignal<string>;
1198
+ readonly description: _angular_core.InputSignal<string>;
1199
+ readonly icon: _angular_core.InputSignal<_juligc99_loro_ui.LoroIconName | null>;
1200
+ readonly iconSize: _angular_core.InputSignal<LoroCardBenefitIconSize>;
1201
+ readonly iconColor: _angular_core.InputSignal<_juligc99_loro_ui.LoroIconColorToken>;
1202
+ protected readonly hasIcon: _angular_core.Signal<boolean>;
1203
+ protected readonly hasDescription: _angular_core.Signal<boolean>;
1204
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroCardBenefit, never>;
1205
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroCardBenefit, "loro-card-benefit", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1193
1206
  }
1194
1207
 
1208
+ declare class LoroCardNavigation {
1209
+ readonly title: _angular_core.InputSignal<string>;
1210
+ readonly description: _angular_core.InputSignal<string>;
1211
+ readonly icon: _angular_core.InputSignal<LoroIconName | null>;
1212
+ readonly iconSize: _angular_core.InputSignal<number>;
1213
+ readonly iconColor: _angular_core.InputSignal<string>;
1214
+ readonly link: _angular_core.InputSignal<string>;
1215
+ readonly disabled: _angular_core.InputSignal<boolean>;
1216
+ readonly showArrow: _angular_core.InputSignal<boolean>;
1217
+ readonly arrowSize: _angular_core.InputSignal<number>;
1218
+ protected readonly hasDescription: _angular_core.Signal<boolean>;
1219
+ protected readonly isInteractive: _angular_core.Signal<boolean>;
1220
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroCardNavigation, never>;
1221
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroCardNavigation, "loro-card-navigation", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "iconColor": { "alias": "iconColor"; "required": false; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "showArrow": { "alias": "showArrow"; "required": false; "isSignal": true; }; "arrowSize": { "alias": "arrowSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1222
+ }
1223
+
1224
+ declare class LoroCardLink {
1225
+ readonly title: _angular_core.InputSignal<string>;
1226
+ readonly subtitle: _angular_core.InputSignal<string>;
1227
+ readonly avatarImage: _angular_core.InputSignal<string | null>;
1228
+ readonly iconSize: _angular_core.InputSignal<_juligc99_loro_ui.LoroCardBenefitIconSize>;
1229
+ readonly illustration: _angular_core.InputSignal<LoroImageName | null>;
1230
+ protected readonly avatarLoadFailed: _angular_core.WritableSignal<boolean>;
1231
+ protected readonly shouldShowAvatarImage: _angular_core.Signal<boolean>;
1232
+ protected onAvatarImageError(): void;
1233
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroCardLink, never>;
1234
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroCardLink, "loro-card-link", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "avatarImage": { "alias": "avatarImage"; "required": false; "isSignal": true; }; "iconSize": { "alias": "iconSize"; "required": false; "isSignal": true; }; "illustration": { "alias": "illustration"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1235
+ }
1236
+
1237
+ declare const LoroCardDefaultIconSize = 28;
1238
+ declare const LoroCardDefaultArrowSize = 16;
1239
+ declare const LoroCardDefaultHeroAvatarIconSize = 22;
1240
+
1195
1241
  type LoroCardNavVariant = 'default' | 'danger' | 'soft';
1196
1242
  type LoroCardNavTrailing = 'arrow' | 'toggle' | 'radio' | 'text' | 'badge' | 'none';
1197
1243
  declare class LoroCardNav {
1198
1244
  private readonly router;
1199
1245
  title: _angular_core.InputSignal<string>;
1200
1246
  description: _angular_core.InputSignal<string>;
1201
- icon: _angular_core.InputSignal<LoroIconName$1 | null>;
1247
+ icon: _angular_core.InputSignal<LoroIconName | null>;
1202
1248
  iconSize: _angular_core.InputSignal<number>;
1203
1249
  iconColor: _angular_core.InputSignal<string>;
1204
1250
  route: _angular_core.InputSignal<string>;
@@ -1222,7 +1268,7 @@ declare class LoroDashboardCard {
1222
1268
  title: _angular_core.InputSignal<string>;
1223
1269
  description: _angular_core.InputSignal<string>;
1224
1270
  link: _angular_core.InputSignal<string>;
1225
- icon: _angular_core.InputSignal<LoroIconName$1 | null>;
1271
+ icon: _angular_core.InputSignal<LoroIconName | null>;
1226
1272
  illustration: _angular_core.InputSignal<LoroImageName | null>;
1227
1273
  variant: _angular_core.InputSignal<"home" | "default">;
1228
1274
  showArrow: _angular_core.InputSignal<boolean>;
@@ -1298,7 +1344,7 @@ declare class LoroProductRow {
1298
1344
 
1299
1345
  declare class LoroProductSection {
1300
1346
  title: _angular_core.InputSignal<string>;
1301
- icon: _angular_core.InputSignal<LoroIconName$1>;
1347
+ icon: _angular_core.InputSignal<LoroIconName>;
1302
1348
  collapsible: _angular_core.InputSignal<boolean>;
1303
1349
  protected readonly expanded: _angular_core.WritableSignal<boolean>;
1304
1350
  protected toggle(): void;
@@ -1355,7 +1401,7 @@ declare class LoroStatCard {
1355
1401
  value: _angular_core.InputSignal<string>;
1356
1402
  description: _angular_core.InputSignal<string>;
1357
1403
  eyebrow: _angular_core.InputSignal<string>;
1358
- icon: _angular_core.InputSignal<LoroIconName$1 | null>;
1404
+ icon: _angular_core.InputSignal<LoroIconName | null>;
1359
1405
  iconSize: _angular_core.InputSignal<number>;
1360
1406
  image: _angular_core.InputSignal<LoroImageName | null>;
1361
1407
  topImage: _angular_core.InputSignal<LoroImageName | null>;
@@ -1398,7 +1444,7 @@ type LoroTabAlign = 'flex' | 'block';
1398
1444
  interface LoroTabOption {
1399
1445
  readonly value: string;
1400
1446
  readonly label: string;
1401
- readonly icon?: LoroIconName$1 | null;
1447
+ readonly icon?: LoroIconName | null;
1402
1448
  readonly ariaLabel?: string;
1403
1449
  }
1404
1450
  declare class LoroTab {
@@ -1435,7 +1481,7 @@ declare class LoroAlert {
1435
1481
  readonly action: _angular_core.OutputEmitterRef<void>;
1436
1482
  /** Emitted by the close button. The parent decides whether to remove the alert. */
1437
1483
  readonly dismissed: _angular_core.OutputEmitterRef<void>;
1438
- protected readonly resolvedIcon: _angular_core.Signal<LoroIconName$1>;
1484
+ protected readonly resolvedIcon: _angular_core.Signal<LoroIconName>;
1439
1485
  protected readonly resolvedIconColor: _angular_core.Signal<string>;
1440
1486
  protected readonly role: _angular_core.Signal<"status" | "alert" | null>;
1441
1487
  protected readonly ariaLive: _angular_core.Signal<"polite" | "assertive" | null>;
@@ -1466,7 +1512,7 @@ interface LoroNotificationItem {
1466
1512
  title: string;
1467
1513
  message: string;
1468
1514
  time?: string;
1469
- icon?: LoroIconName$1;
1515
+ icon?: LoroIconName;
1470
1516
  unread?: boolean;
1471
1517
  }
1472
1518
  declare class LoroNotificationPanel {
@@ -1477,7 +1523,7 @@ declare class LoroNotificationPanel {
1477
1523
  markAllLabel: _angular_core.InputSignal<string>;
1478
1524
  showClearAll: _angular_core.InputSignal<boolean>;
1479
1525
  clearAllLabel: _angular_core.InputSignal<string>;
1480
- emptyIcon: _angular_core.InputSignal<LoroIconName$1>;
1526
+ emptyIcon: _angular_core.InputSignal<LoroIconName>;
1481
1527
  emptyTitle: _angular_core.InputSignal<string>;
1482
1528
  emptyMessage: _angular_core.InputSignal<string>;
1483
1529
  itemClick: _angular_core.OutputEmitterRef<LoroNotificationItem>;
@@ -1495,7 +1541,7 @@ declare class LoroNotificationRow {
1495
1541
  title: _angular_core.InputSignal<string>;
1496
1542
  message: _angular_core.InputSignal<string>;
1497
1543
  time: _angular_core.InputSignal<string>;
1498
- icon: _angular_core.InputSignal<LoroIconName$1>;
1544
+ icon: _angular_core.InputSignal<LoroIconName>;
1499
1545
  unread: _angular_core.InputSignal<boolean>;
1500
1546
  rowClick: _angular_core.OutputEmitterRef<void>;
1501
1547
  rowRemove: _angular_core.OutputEmitterRef<void>;
@@ -1550,7 +1596,7 @@ declare class LoroToast {
1550
1596
 
1551
1597
  type LoroAuthFieldState = 'default' | 'error';
1552
1598
  declare class LoroAuthField implements FormValueControl<string> {
1553
- icon: _angular_core.InputSignal<LoroIconName$1>;
1599
+ icon: _angular_core.InputSignal<LoroIconName>;
1554
1600
  label: _angular_core.InputSignal<string>;
1555
1601
  placeholder: _angular_core.InputSignal<string>;
1556
1602
  value: _angular_core.ModelSignal<string>;
@@ -1621,7 +1667,7 @@ declare class LoroDropdown implements FormValueControl<string> {
1621
1667
  declare class LoroFilterChip {
1622
1668
  label: _angular_core.InputSignal<string>;
1623
1669
  value: _angular_core.InputSignal<string>;
1624
- icon: _angular_core.InputSignal<LoroIconName$1 | null>;
1670
+ icon: _angular_core.InputSignal<LoroIconName | null>;
1625
1671
  active: _angular_core.InputSignal<boolean>;
1626
1672
  selected: _angular_core.OutputEmitterRef<string>;
1627
1673
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroFilterChip, never>;
@@ -1640,9 +1686,9 @@ declare class LoroInput implements FormValueControl<string> {
1640
1686
  name: _angular_core.InputSignal<string>;
1641
1687
  autocomplete: _angular_core.InputSignal<string>;
1642
1688
  inputmode: _angular_core.InputSignal<"" | "email" | "search" | "text" | "none" | "tel" | "url" | "numeric" | "decimal">;
1643
- icon: _angular_core.InputSignal<LoroIconName$1 | null>;
1689
+ icon: _angular_core.InputSignal<LoroIconName | null>;
1644
1690
  iconSize: _angular_core.InputSignal<number>;
1645
- trailingIcon: _angular_core.InputSignal<LoroIconName$1 | null>;
1691
+ trailingIcon: _angular_core.InputSignal<LoroIconName | null>;
1646
1692
  trailingIconSize: _angular_core.InputSignal<number>;
1647
1693
  trailingAriaLabel: _angular_core.InputSignal<string>;
1648
1694
  variant: _angular_core.InputSignal<LoroInputVariant>;
@@ -1719,7 +1765,7 @@ declare class LoroSelect {
1719
1765
  title: _angular_core.InputSignal<string>;
1720
1766
  subtitle: _angular_core.InputSignal<string>;
1721
1767
  meta: _angular_core.InputSignal<string>;
1722
- icon: _angular_core.InputSignal<LoroIconName$1>;
1768
+ icon: _angular_core.InputSignal<LoroIconName>;
1723
1769
  badge: _angular_core.InputSignal<string>;
1724
1770
  status: _angular_core.InputSignal<string>;
1725
1771
  selected: _angular_core.InputSignal<boolean>;
@@ -1815,26 +1861,6 @@ declare class LoroModal {
1815
1861
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroModal, "loro-modal", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "sheetDragToClose": { "alias": "sheetDragToClose"; "required": false; "isSignal": true; }; "sheetRestTop": { "alias": "sheetRestTop"; "required": false; "isSignal": true; }; "showBackdrop": { "alias": "showBackdrop"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; }, { "modalClose": "modalClose"; }, never, ["*", "[loro-modal-actions]"], true, never>;
1816
1862
  }
1817
1863
 
1818
- type LoroIconColorToken = 'default' | 'primary' | 'primary-strong' | 'primary-deep' | 'text' | 'muted' | 'success' | 'danger' | 'warning' | 'inverse';
1819
- type LoroIconColor = LoroIconColorToken | string;
1820
- type LoroIconRenderMode = 'mask' | 'origin';
1821
- type LoroIconSize = number | string;
1822
- declare class LoroIcon {
1823
- name: _angular_core.InputSignal<LoroIconName>;
1824
- size: _angular_core.InputSignal<LoroIconSize>;
1825
- alt: _angular_core.InputSignal<string>;
1826
- decorative: _angular_core.InputSignal<boolean>;
1827
- color: _angular_core.InputSignal<string>;
1828
- renderMode: _angular_core.InputSignal<LoroIconRenderMode>;
1829
- protected readonly assetName: _angular_core.Signal<"icon-apple" | "icon-arrow-right" | "icon-auto" | "icon-back" | "icon-bag" | "icon-barcode" | "icon-bell" | "icon-bottle" | "icon-bulb" | "icon-calendar" | "icon-camera" | "icon-cart" | "icon-chart-bar" | "icon-chat" | "icon-check" | "icon-checkbox-empty" | "icon-chevron-down" | "icon-chevron-right" | "icon-chevron-up" | "icon-clock" | "icon-download" | "icon-email" | "icon-eye-off" | "icon-eye" | "icon-globe" | "icon-google" | "icon-headset" | "icon-help" | "icon-home" | "icon-info" | "icon-laptop" | "icon-leaf" | "icon-list" | "icon-location" | "icon-lock" | "icon-logout" | "icon-megaphone" | "icon-moon" | "icon-more-vertical" | "icon-nav-compare" | "icon-nav-home" | "icon-nav-list" | "icon-nav-pantry" | "icon-pantry-stock" | "icon-paperclip" | "icon-phone" | "icon-plus-user" | "icon-plus" | "icon-scanner" | "icon-search" | "icon-send" | "icon-settings" | "icon-shelf" | "icon-shield-alert" | "icon-shield" | "icon-star" | "icon-store" | "icon-sun" | "icon-tablet" | "icon-tag" | "icon-tick-circle" | "icon-trash-white" | "icon-trash" | "icon-trend" | "icon-user" | "icon-warning">;
1830
- protected readonly src: _angular_core.Signal<"assets/loro-ui/icons/apple.svg" | "assets/loro-ui/icons/arrow-right.svg" | "assets/loro-ui/icons/auto.svg" | "assets/loro-ui/icons/back.svg" | "assets/loro-ui/icons/bag.svg" | "assets/loro-ui/icons/barcode.svg" | "assets/loro-ui/icons/bell.svg" | "assets/loro-ui/icons/bottle.svg" | "assets/loro-ui/icons/bulb.svg" | "assets/loro-ui/icons/calendar.svg" | "assets/loro-ui/icons/camera.svg" | "assets/loro-ui/icons/cart.svg" | "assets/loro-ui/icons/chart-bar.svg" | "assets/loro-ui/icons/chat.svg" | "assets/loro-ui/icons/check.svg" | "assets/loro-ui/icons/checkbox-empty.svg" | "assets/loro-ui/icons/chevron-down.svg" | "assets/loro-ui/icons/chevron-right.svg" | "assets/loro-ui/icons/chevron-up.svg" | "assets/loro-ui/icons/clock.svg" | "assets/loro-ui/icons/download.svg" | "assets/loro-ui/icons/email.svg" | "assets/loro-ui/icons/eye-off.svg" | "assets/loro-ui/icons/eye.svg" | "assets/loro-ui/icons/globe.svg" | "assets/loro-ui/icons/google.svg" | "assets/loro-ui/icons/headset.svg" | "assets/loro-ui/icons/help.svg" | "assets/loro-ui/icons/home.svg" | "assets/loro-ui/icons/info.svg" | "assets/loro-ui/icons/laptop.svg" | "assets/loro-ui/icons/leaf.svg" | "assets/loro-ui/icons/list.svg" | "assets/loro-ui/icons/location.svg" | "assets/loro-ui/icons/lock.svg" | "assets/loro-ui/icons/logout.svg" | "assets/loro-ui/icons/megaphone.svg" | "assets/loro-ui/icons/moon.svg" | "assets/loro-ui/icons/more-vertical.svg" | "assets/loro-ui/icons/nav-compare.svg" | "assets/loro-ui/icons/nav-home.svg" | "assets/loro-ui/icons/nav-list.svg" | "assets/loro-ui/icons/nav-pantry.svg" | "assets/loro-ui/icons/pantry-stock.svg" | "assets/loro-ui/icons/paperclip.svg" | "assets/loro-ui/icons/phone.svg" | "assets/loro-ui/icons/plus-user.svg" | "assets/loro-ui/icons/plus.svg" | "assets/loro-ui/icons/scanner.svg" | "assets/loro-ui/icons/search.svg" | "assets/loro-ui/icons/send.svg" | "assets/loro-ui/icons/settings.svg" | "assets/loro-ui/icons/shelf.svg" | "assets/loro-ui/icons/shield-alert.svg" | "assets/loro-ui/icons/shield.svg" | "assets/loro-ui/icons/star.svg" | "assets/loro-ui/icons/store.svg" | "assets/loro-ui/icons/sun.svg" | "assets/loro-ui/icons/tablet.svg" | "assets/loro-ui/icons/tag.svg" | "assets/loro-ui/icons/tick-circle.svg" | "assets/loro-ui/icons/trash-white.svg" | "assets/loro-ui/icons/trash.svg" | "assets/loro-ui/icons/trend.svg" | "assets/loro-ui/icons/user.svg" | "assets/loro-ui/icons/warning.svg">;
1831
- protected readonly altText: _angular_core.Signal<string>;
1832
- protected readonly resolvedSize: _angular_core.Signal<string>;
1833
- protected readonly resolvedColor: _angular_core.Signal<string>;
1834
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoroIcon, never>;
1835
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoroIcon, "loro-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "renderMode": { "alias": "renderMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1836
- }
1837
-
1838
1864
  declare class LoroHapticsService {
1839
1865
  private readonly document;
1840
1866
  private readonly vibration;
@@ -1846,5 +1872,5 @@ declare class LoroHapticsService {
1846
1872
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<LoroHapticsService>;
1847
1873
  }
1848
1874
 
1849
- export { Footer, LORO_BUTTON_CLASSES, LORO_BUTTON_COLORS, LORO_BUTTON_DEFAULTS, LORO_BUTTON_ICON_MODES, LORO_BUTTON_SIZES, LORO_BUTTON_TYPES, LORO_BUTTON_VARIANTS, LORO_ICON_ASSETS, LORO_ICON_LEGACY_NAMES, LORO_ICON_PATHS, LORO_IMAGE_ASSETS, LORO_IMAGE_LEGACY_NAMES, LORO_IMAGE_PATHS, LoroAccordion, LoroAlert, LoroAppNav, LoroAssistantCard, LoroAuthField, LoroAuthSocialButton, LoroBadge, LoroButton, LoroCard, LoroCardNav, LoroCheckbox, LoroDashboardCard, LoroDivider, LoroDropdown, LoroFilterChip, LoroHapticsService, LoroIcon, LoroImage, LoroInput, LoroModal, LoroNotification, LoroNotificationPanel, LoroNotificationRow, LoroProductRow, LoroProductSection, LoroProfileCard, LoroProfileHero, LoroRadio, LoroSegmentedControl, LoroSelect, LoroSpinner, LoroStatCard, LoroStoreRankCard, LoroSummaryBar, LoroTab, LoroTextArea, LoroToast, LoroToggle, LoroUpload };
1850
- export type { LoroAlertAnnouncement, LoroAlertVariant, LoroAppNavClick, LoroAppNavItem, LoroAuthFieldState, LoroBadgeVariant, LoroButtonColor, LoroButtonHtmlType, LoroButtonIconMode, LoroButtonSize, LoroButtonType, LoroButtonVariant, LoroButtonWidth, LoroCardJustify, LoroCardNavTrailing, LoroCardNavVariant, LoroCardVariant, LoroDividerAlign, LoroDropdownOption, LoroIconAsset, LoroIconAssetName, LoroIconColor, LoroIconColorToken, LoroIconLegacyName, LoroIconName, LoroIconRenderMode, LoroIconSize, LoroImageAsset, LoroImageAssetName, LoroImageLegacyName, LoroImageName, LoroInputState, LoroInputUnit, LoroInputVariant, LoroModalPlacement, LoroModalSize, LoroNotificationItem, LoroProductRowStatus, LoroProductRowVariant, LoroRadioVariant, LoroSegmentedOption, LoroStatCardVariant, LoroStoreRankCardVariant, LoroTabAlign, LoroTabOption, LoroToastPosition, LoroToastVariant };
1875
+ export { Footer, LORO_BUTTON_CLASSES, LORO_BUTTON_COLORS, LORO_BUTTON_DEFAULTS, LORO_BUTTON_ICON_MODES, LORO_BUTTON_SIZES, LORO_BUTTON_TYPES, LORO_BUTTON_VARIANTS, LORO_ICON_ASSETS, LORO_ICON_LEGACY_NAMES, LORO_ICON_PATHS, LORO_IMAGE_ASSETS, LORO_IMAGE_LEGACY_NAMES, LORO_IMAGE_PATHS, LoroAccordion, LoroAlert, LoroAppNav, LoroAssistantCard, LoroAuthField, LoroAuthSocialButton, LoroBadge, LoroButton, LoroCardBenefit, LoroCardDefaultArrowSize, LoroCardDefaultHeroAvatarIconSize, LoroCardDefaultIconSize, LoroCardLink, LoroCardNav, LoroCardNavigation, LoroCheckbox, LoroDashboardCard, LoroDivider, LoroDropdown, LoroFilterChip, LoroHapticsService, LoroIcon, LoroImage, LoroInput, LoroModal, LoroNotification, LoroNotificationPanel, LoroNotificationRow, LoroProductRow, LoroProductSection, LoroProfileCard, LoroProfileHero, LoroRadio, LoroSegmentedControl, LoroSelect, LoroSpinner, LoroStatCard, LoroStoreRankCard, LoroSummaryBar, LoroTab, LoroTextArea, LoroToast, LoroToggle, LoroUpload };
1876
+ export type { LoroAlertAnnouncement, LoroAlertVariant, LoroAppNavClick, LoroAppNavItem, LoroAuthFieldState, LoroBadgeVariant, LoroButtonColor, LoroButtonHtmlType, LoroButtonIconMode, LoroButtonSize, LoroButtonType, LoroButtonVariant, LoroButtonWidth, LoroCardBenefitIconColor, LoroCardBenefitIconName, LoroCardBenefitIconSize, LoroCardBenefitVariant, LoroCardHomeVariant, LoroCardJustify, LoroCardLinkAvatarSize, LoroCardLinkVariant, LoroCardNavTrailing, LoroCardNavVariant, LoroCardVariant, LoroDividerAlign, LoroDropdownOption, LoroIconAsset, LoroIconAssetName, LoroIconColor, LoroIconColorToken, LoroIconLegacyName, LoroIconName, LoroIconRenderMode, LoroIconSize, LoroImageAsset, LoroImageAssetName, LoroImageLegacyName, LoroImageName, LoroInputState, LoroInputUnit, LoroInputVariant, LoroModalPlacement, LoroModalSize, LoroNotificationItem, LoroProductRowStatus, LoroProductRowVariant, LoroRadioVariant, LoroSegmentedOption, LoroStatCardVariant, LoroStoreRankCardVariant, LoroTabAlign, LoroTabOption, LoroToastPosition, LoroToastVariant };