@lumaui/angular 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@lumaui/angular",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Angular components for Luma UI - Neo-Minimal design system",
5
5
  "dependencies": {
6
- "@lumaui/core": "^0.4.2",
7
- "@lumaui/tokens": "^0.4.2",
6
+ "@lumaui/core": "^0.4.4",
7
+ "@lumaui/tokens": "^0.4.4",
8
8
  "tslib": "^2.3.0"
9
9
  },
10
10
  "peerDependencies": {
@@ -1,7 +1,8 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, Signal, OnDestroy, WritableSignal, AfterViewInit, ElementRef, OnInit } from '@angular/core';
3
- import { ButtonVariant, ButtonSize, ButtonRadius, BadgeVariant, BadgeRadius, CardVariant, CardTitleSize, CardDescriptionSize, AccordionItemVariant, AccordionTitleSize, TooltipPosition, TabsVariant, ToastPosition as ToastPosition$1, ToastVariant as ToastVariant$1 } from '@lumaui/core';
2
+ import { OnInit, InjectionToken, Signal, OnDestroy, WritableSignal, AfterViewInit, ElementRef } from '@angular/core';
3
+ import { ButtonVariant, ButtonSize, ButtonRadius, BadgeVariant, BadgeRadius, InputSize, LabelSize, HelperTextSize, ErrorTextSize, TextareaSize, CardVariant, CardTitleSize, CardDescriptionSize, AccordionItemVariant, AccordionTitleSize, TooltipPosition, TabsVariant, ToastPosition as ToastPosition$1, ToastVariant as ToastVariant$1, SelectSize } from '@lumaui/core';
4
4
  export { ToastCloseVariants, ToastContainerVariants, ToastIconVariants, ToastItemVariants, ToastState } from '@lumaui/core';
5
+ import { ControlValueAccessor } from '@angular/forms';
5
6
  import * as _lumaui_angular from '@lumaui/angular';
6
7
  import { Observable } from 'rxjs';
7
8
 
@@ -26,6 +27,219 @@ declare class LmBadgeDirective {
26
27
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmBadgeDirective, "[lumaBadge]", never, { "lmVariant": { "alias": "lmVariant"; "required": false; "isSignal": true; }; "lmRadius": { "alias": "lmRadius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
27
28
  }
28
29
 
30
+ /**
31
+ * Input directive with CVA variants and Angular Forms integration
32
+ *
33
+ * @example
34
+ * <input lumaInput lmSize="md" />
35
+ */
36
+ declare class LmInputDirective implements ControlValueAccessor, OnInit {
37
+ private injector;
38
+ private elementRef;
39
+ private ngControl;
40
+ private destroyRef;
41
+ lmSize: _angular_core.InputSignal<InputSize>;
42
+ lmError: _angular_core.InputSignal<boolean>;
43
+ lmDisabled: _angular_core.InputSignal<boolean>;
44
+ lmRequired: _angular_core.InputSignal<boolean>;
45
+ private _formDisabled;
46
+ private _formInvalid;
47
+ private _formTouched;
48
+ isDisabled: _angular_core.Signal<boolean>;
49
+ elementId: _angular_core.WritableSignal<string>;
50
+ describedBy: _angular_core.WritableSignal<string | null>;
51
+ hasError: _angular_core.Signal<boolean>;
52
+ classes: _angular_core.Signal<string>;
53
+ private onChange;
54
+ private onTouched;
55
+ ngOnInit(): void;
56
+ writeValue(value: string): void;
57
+ registerOnChange(fn: (value: string) => void): void;
58
+ registerOnTouched(fn: () => void): void;
59
+ setDisabledState(isDisabled: boolean): void;
60
+ onInput(event: Event): void;
61
+ onBlur(): void;
62
+ /**
63
+ * Set the aria-describedby attribute value
64
+ * This is typically called by parent components or directives
65
+ */
66
+ setDescribedBy(value: string | null): void;
67
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmInputDirective, never>;
68
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmInputDirective, "input[lumaInput]", never, { "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; "lmError": { "alias": "lmError"; "required": false; "isSignal": true; }; "lmDisabled": { "alias": "lmDisabled"; "required": false; "isSignal": true; }; "lmRequired": { "alias": "lmRequired"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
69
+ }
70
+
71
+ /**
72
+ * Label directive with required indicator support
73
+ *
74
+ * @example
75
+ * <label lumaLabel for="email" lmRequired>Email</label>
76
+ */
77
+ declare class LmLabelDirective {
78
+ for: _angular_core.InputSignal<string>;
79
+ lmRequired: _angular_core.InputSignal<boolean>;
80
+ lmSize: _angular_core.InputSignal<LabelSize>;
81
+ lmInline: _angular_core.InputSignal<boolean>;
82
+ classes: _angular_core.Signal<string>;
83
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmLabelDirective, never>;
84
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmLabelDirective, "label[lumaLabel]", never, { "for": { "alias": "for"; "required": false; "isSignal": true; }; "lmRequired": { "alias": "lmRequired"; "required": false; "isSignal": true; }; "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; "lmInline": { "alias": "lmInline"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
85
+ }
86
+
87
+ /**
88
+ * Helper text directive for displaying hint/description text
89
+ *
90
+ * @example
91
+ * <span lumaHelperText>We'll never share your email.</span>
92
+ */
93
+ declare class LmHelperTextDirective {
94
+ elementId: _angular_core.WritableSignal<string>;
95
+ lmSize: _angular_core.InputSignal<HelperTextSize>;
96
+ classes: _angular_core.Signal<string>;
97
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmHelperTextDirective, never>;
98
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmHelperTextDirective, "[lumaHelperText]", never, { "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
99
+ }
100
+
101
+ /**
102
+ * Error text directive for displaying validation error messages
103
+ *
104
+ * @example
105
+ * <span lumaErrorText *ngIf="hasError">Password must be at least 8 characters.</span>
106
+ */
107
+ declare class LmErrorTextDirective {
108
+ elementId: _angular_core.WritableSignal<string>;
109
+ lmSize: _angular_core.InputSignal<ErrorTextSize>;
110
+ classes: _angular_core.Signal<string>;
111
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmErrorTextDirective, never>;
112
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmErrorTextDirective, "[lumaErrorText]", never, { "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
113
+ }
114
+
115
+ /**
116
+ * Textarea directive with CVA variants and Angular Forms integration
117
+ *
118
+ * @example
119
+ * <textarea lumaTextarea lmSize="md"></textarea>
120
+ */
121
+ declare class LmTextareaDirective implements ControlValueAccessor, OnInit {
122
+ private injector;
123
+ private elementRef;
124
+ private ngControl;
125
+ private destroyRef;
126
+ lmSize: _angular_core.InputSignal<TextareaSize>;
127
+ lmError: _angular_core.InputSignal<boolean>;
128
+ lmDisabled: _angular_core.InputSignal<boolean>;
129
+ lmRequired: _angular_core.InputSignal<boolean>;
130
+ private _formDisabled;
131
+ private _formInvalid;
132
+ private _formTouched;
133
+ isDisabled: _angular_core.Signal<boolean>;
134
+ elementId: _angular_core.WritableSignal<string>;
135
+ describedBy: _angular_core.WritableSignal<string | null>;
136
+ hasError: _angular_core.Signal<boolean>;
137
+ classes: _angular_core.Signal<string>;
138
+ private onChange;
139
+ private onTouched;
140
+ ngOnInit(): void;
141
+ writeValue(value: string): void;
142
+ registerOnChange(fn: (value: string) => void): void;
143
+ registerOnTouched(fn: () => void): void;
144
+ setDisabledState(isDisabled: boolean): void;
145
+ onInput(event: Event): void;
146
+ onBlur(): void;
147
+ /**
148
+ * Set the aria-describedby attribute value
149
+ * This is typically called by parent components or directives
150
+ */
151
+ setDescribedBy(value: string | null): void;
152
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmTextareaDirective, never>;
153
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmTextareaDirective, "textarea[lumaTextarea]", never, { "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; "lmError": { "alias": "lmError"; "required": false; "isSignal": true; }; "lmDisabled": { "alias": "lmDisabled"; "required": false; "isSignal": true; }; "lmRequired": { "alias": "lmRequired"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
154
+ }
155
+
156
+ /**
157
+ * Checkbox directive with CVA variants and Angular Forms integration.
158
+ * Supports boolean ControlValueAccessor (checked/unchecked).
159
+ *
160
+ * @example
161
+ * <input type="checkbox" lumaCheckbox [formControl]="agreedControl" />
162
+ */
163
+ declare class LmCheckboxDirective implements ControlValueAccessor, OnInit {
164
+ private injector;
165
+ private elementRef;
166
+ private ngControl;
167
+ private destroyRef;
168
+ lmError: _angular_core.InputSignal<boolean>;
169
+ lmDisabled: _angular_core.InputSignal<boolean>;
170
+ lmRequired: _angular_core.InputSignal<boolean>;
171
+ private _formDisabled;
172
+ private _formInvalid;
173
+ private _formTouched;
174
+ isChecked: _angular_core.WritableSignal<boolean>;
175
+ readonly checkmarkSvg = "url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8l3 3 5-5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C%2Fsvg%3E\")";
176
+ isDisabled: _angular_core.Signal<boolean>;
177
+ elementId: _angular_core.WritableSignal<string>;
178
+ describedBy: _angular_core.WritableSignal<string | null>;
179
+ hasError: _angular_core.Signal<boolean>;
180
+ classes: _angular_core.Signal<string>;
181
+ private onChange;
182
+ private onTouched;
183
+ ngOnInit(): void;
184
+ writeValue(value: boolean): void;
185
+ registerOnChange(fn: (value: boolean) => void): void;
186
+ registerOnTouched(fn: () => void): void;
187
+ setDisabledState(isDisabled: boolean): void;
188
+ onChangeEvent(event: Event): void;
189
+ onBlur(): void;
190
+ /**
191
+ * Set the aria-describedby attribute value.
192
+ * Typically called by helper/error text directives.
193
+ */
194
+ setDescribedBy(value: string | null): void;
195
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmCheckboxDirective, never>;
196
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmCheckboxDirective, "input[type=\"checkbox\"][lumaCheckbox]", never, { "lmError": { "alias": "lmError"; "required": false; "isSignal": true; }; "lmDisabled": { "alias": "lmDisabled"; "required": false; "isSignal": true; }; "lmRequired": { "alias": "lmRequired"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
197
+ }
198
+
199
+ /**
200
+ * Radio button directive with CVA variants and Angular Forms integration.
201
+ * Emits `lmValue` to the FormControl when checked.
202
+ * The inner dot indicator is rendered via a signal-bound `box-shadow` style.
203
+ *
204
+ * @example
205
+ * <input type="radio" lumaRadio lmValue="option-a" [formControl]="optionControl" />
206
+ */
207
+ declare class LmRadioDirective implements ControlValueAccessor, OnInit {
208
+ private injector;
209
+ private elementRef;
210
+ private ngControl;
211
+ private destroyRef;
212
+ lmValue: _angular_core.InputSignal<unknown>;
213
+ lmError: _angular_core.InputSignal<boolean>;
214
+ lmDisabled: _angular_core.InputSignal<boolean>;
215
+ lmRequired: _angular_core.InputSignal<boolean>;
216
+ private _formDisabled;
217
+ private _formInvalid;
218
+ private _formTouched;
219
+ isChecked: _angular_core.WritableSignal<boolean>;
220
+ isDisabled: _angular_core.Signal<boolean>;
221
+ elementId: _angular_core.WritableSignal<string>;
222
+ describedBy: _angular_core.WritableSignal<string | null>;
223
+ hasError: _angular_core.Signal<boolean>;
224
+ classes: _angular_core.Signal<string>;
225
+ private onChange;
226
+ private onTouched;
227
+ ngOnInit(): void;
228
+ writeValue(value: unknown): void;
229
+ registerOnChange(fn: (value: unknown) => void): void;
230
+ registerOnTouched(fn: () => void): void;
231
+ setDisabledState(isDisabled: boolean): void;
232
+ onChangeEvent(event: Event): void;
233
+ onBlur(): void;
234
+ /**
235
+ * Set the aria-describedby attribute value.
236
+ * Typically called by helper/error text directives.
237
+ */
238
+ setDescribedBy(value: string | null): void;
239
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmRadioDirective, never>;
240
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LmRadioDirective, "input[type=\"radio\"][lumaRadio]", never, { "lmValue": { "alias": "lmValue"; "required": false; "isSignal": true; }; "lmError": { "alias": "lmError"; "required": false; "isSignal": true; }; "lmDisabled": { "alias": "lmDisabled"; "required": false; "isSignal": true; }; "lmRequired": { "alias": "lmRequired"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
241
+ }
242
+
29
243
  declare class LmCardComponent {
30
244
  /**
31
245
  * Card visual style variant
@@ -347,7 +561,7 @@ declare class LmTooltipDirective implements OnDestroy {
347
561
  lumaTooltip: _angular_core.InputSignal<string>;
348
562
  lmPosition: _angular_core.InputSignal<TooltipPosition>;
349
563
  lmHtml: _angular_core.InputSignal<boolean>;
350
- lmTrigger: _angular_core.InputSignal<"click" | "hover" | "focus">;
564
+ lmTrigger: _angular_core.InputSignal<"click" | "focus" | "hover">;
351
565
  lmDelay: _angular_core.InputSignal<number>;
352
566
  isVisible: _angular_core.WritableSignal<boolean>;
353
567
  actualPosition: _angular_core.WritableSignal<TooltipPosition>;
@@ -1299,5 +1513,146 @@ declare class LmToastCloseComponent {
1299
1513
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<LmToastCloseComponent, "luma-toast-close", never, { "lmVariant": { "alias": "lmVariant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1300
1514
  }
1301
1515
 
1302
- export { ACCORDION_ITEM, DEFAULT_TOAST_CONFIG, LmAccordionContentDirective, LmAccordionGroupComponent, LmAccordionIconDirective, LmAccordionItemComponent, LmAccordionTitleDirective, LmAccordionTriggerDirective, LmBadgeDirective, LmButtonDirective, LmCardComponent, LmCardContentDirective, LmCardDescriptionDirective, LmCardHeaderDirective, LmCardTitleDirective, LmModalCloseComponent, LmModalComponent, LmModalContainerComponent, LmModalContentDirective, LmModalFooterDirective, LmModalHeaderDirective, LmModalOverlayComponent, LmModalTitleDirective, LmTabsComponent, LmTabsIndicatorComponent, LmTabsListDirective, LmTabsPanelDirective, LmTabsTriggerDirective, LmToastCloseComponent, LmToastContainerComponent, LmToastItemComponent, LmToastService, LmTooltipDirective, MODAL_CONTEXT, TABS_GROUP, TABS_LIST, TOAST_CONFIG, provideToastConfig };
1303
- export type { AccordionItemBase, ModalContext, ModalSize, TabsGroupBase, TabsListBase, Toast, ToastConfig, ToastOptions, ToastPosition, ToastRef, ToastVariant };
1516
+ /**
1517
+ * Data registered by each LmSelectOptionComponent into the parent LmSelectComponent.
1518
+ * label is a plain getter that reads textContent lazily — no timing race with ngAfterViewInit.
1519
+ */
1520
+ interface OptionEntry {
1521
+ value: unknown;
1522
+ /** Plain getter — reads textContent on every call, always up-to-date when filter runs */
1523
+ label: () => string;
1524
+ /** Direct reference to the option's lmDisabled InputSignal */
1525
+ disabled: Signal<boolean>;
1526
+ }
1527
+ /**
1528
+ * Interface that LmSelectComponent implements and exposes via SELECT_CONTEXT.
1529
+ * Options use this to register/unregister themselves without circular imports.
1530
+ */
1531
+ interface SelectContext {
1532
+ isMultiple: Signal<boolean>;
1533
+ registerOption(entry: OptionEntry): void;
1534
+ unregisterOption(value: unknown): void;
1535
+ }
1536
+ declare const SELECT_CONTEXT: InjectionToken<SelectContext>;
1537
+
1538
+ declare class LmSelectComponent implements SelectContext, ControlValueAccessor, OnInit, OnDestroy {
1539
+ private readonly injector;
1540
+ private readonly destroyRef;
1541
+ private readonly elementRef;
1542
+ private readonly document;
1543
+ private readonly platformId;
1544
+ private ngControl;
1545
+ lmSize: _angular_core.InputSignal<SelectSize>;
1546
+ lmMultiple: _angular_core.InputSignal<boolean>;
1547
+ lmPlaceholder: _angular_core.InputSignal<string>;
1548
+ lmSearchPlaceholder: _angular_core.InputSignal<string>;
1549
+ lmDisabled: _angular_core.InputSignal<boolean>;
1550
+ lmRequired: _angular_core.InputSignal<boolean>;
1551
+ lmError: _angular_core.InputSignal<boolean>;
1552
+ lmEmptyMessage: _angular_core.InputSignal<string>;
1553
+ lmClearable: _angular_core.InputSignal<boolean>;
1554
+ lmCompareWith: _angular_core.InputSignal<((a: unknown, b: unknown) => boolean) | null>;
1555
+ lmValueChange: _angular_core.OutputEmitterRef<unknown>;
1556
+ selectId: _angular_core.WritableSignal<string>;
1557
+ readonly listboxId: _angular_core.Signal<string>;
1558
+ readonly searchInputId: _angular_core.Signal<string>;
1559
+ /** ID of the currently focused option for aria-activedescendant */
1560
+ readonly activeDescendantId: _angular_core.Signal<string | null>;
1561
+ /** Whether the select has a value (for clear button visibility) */
1562
+ readonly hasValue: _angular_core.Signal<boolean>;
1563
+ private readonly _singleValue;
1564
+ private readonly _multiValue;
1565
+ private readonly _internalOpen;
1566
+ readonly isOpen: _angular_core.Signal<boolean>;
1567
+ readonly searchQuery: _angular_core.WritableSignal<string>;
1568
+ private readonly _options;
1569
+ private readonly _formDisabled;
1570
+ private readonly _formInvalid;
1571
+ private readonly _formTouched;
1572
+ readonly isDisabled: _angular_core.Signal<boolean>;
1573
+ readonly hasError: _angular_core.Signal<boolean>;
1574
+ /** SelectContext interface */
1575
+ readonly isMultiple: _angular_core.Signal<boolean>;
1576
+ /** Compare two values using the custom compareWith function or strict equality */
1577
+ private compareValues;
1578
+ /**
1579
+ * Combines filtering with selected-state baking in a single computed.
1580
+ * Avoids creating per-row signal instances; the whole array recomputes
1581
+ * when search query, options, or selection state changes.
1582
+ */
1583
+ readonly filteredOptionsWithState: _angular_core.Signal<{
1584
+ entry: OptionEntry;
1585
+ isSelected: boolean;
1586
+ }[]>;
1587
+ /** Label shown in the trigger when the dropdown is closed (single-select only) */
1588
+ readonly triggerLabel: _angular_core.Signal<string | null>;
1589
+ /** Chip data for multi-select: maps selected values to { value, label } */
1590
+ readonly selectedChips: _angular_core.Signal<{
1591
+ value: unknown;
1592
+ label: string;
1593
+ }[]>;
1594
+ private readonly _flipAbove;
1595
+ readonly focusedOptionIndex: _angular_core.WritableSignal<number>;
1596
+ readonly searchInputRef: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
1597
+ readonly triggerRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
1598
+ readonly listboxRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
1599
+ readonly triggerClasses: _angular_core.Signal<string>;
1600
+ readonly listboxClasses: _angular_core.Signal<string>;
1601
+ readonly searchInputClasses: string;
1602
+ /** Chip classes — reactive to size */
1603
+ readonly chipClasses: _angular_core.Signal<string>;
1604
+ /** Chip dismiss button classes — reactive to size */
1605
+ readonly chipDismissClasses: _angular_core.Signal<string>;
1606
+ optionClasses(isSelected: boolean, disabled: boolean, isFocused: boolean): string;
1607
+ private onChange;
1608
+ private onTouched;
1609
+ private clickOutsideHandler;
1610
+ constructor();
1611
+ ngOnInit(): void;
1612
+ ngOnDestroy(): void;
1613
+ registerOption(entry: OptionEntry): void;
1614
+ unregisterOption(value: unknown): void;
1615
+ open(): void;
1616
+ close(): void;
1617
+ toggle(): void;
1618
+ selectValue(value: unknown): void;
1619
+ /** Remove a chip by its value (without opening/closing the dropdown) */
1620
+ removeChip(event: Event, value: unknown): void;
1621
+ /** Clear the current selection */
1622
+ clear(event?: Event): void;
1623
+ onTriggerKeydown(event: KeyboardEvent): void;
1624
+ onSearchInput(event: Event): void;
1625
+ onSearchKeydown(event: KeyboardEvent): void;
1626
+ private checkFlipPosition;
1627
+ private registerClickOutside;
1628
+ private unregisterClickOutside;
1629
+ writeValue(value: unknown): void;
1630
+ registerOnChange(fn: (v: unknown) => void): void;
1631
+ registerOnTouched(fn: () => void): void;
1632
+ setDisabledState(isDisabled: boolean): void;
1633
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmSelectComponent, never>;
1634
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LmSelectComponent, "luma-select", never, { "lmSize": { "alias": "lmSize"; "required": false; "isSignal": true; }; "lmMultiple": { "alias": "lmMultiple"; "required": false; "isSignal": true; }; "lmPlaceholder": { "alias": "lmPlaceholder"; "required": false; "isSignal": true; }; "lmSearchPlaceholder": { "alias": "lmSearchPlaceholder"; "required": false; "isSignal": true; }; "lmDisabled": { "alias": "lmDisabled"; "required": false; "isSignal": true; }; "lmRequired": { "alias": "lmRequired"; "required": false; "isSignal": true; }; "lmError": { "alias": "lmError"; "required": false; "isSignal": true; }; "lmEmptyMessage": { "alias": "lmEmptyMessage"; "required": false; "isSignal": true; }; "lmClearable": { "alias": "lmClearable"; "required": false; "isSignal": true; }; "lmCompareWith": { "alias": "lmCompareWith"; "required": false; "isSignal": true; }; }, { "lmValueChange": "lmValueChange"; }, never, ["*"], true, never>;
1635
+ }
1636
+
1637
+ /**
1638
+ * Option component for luma-select.
1639
+ * Projects content into a hidden slot (the parent hides it via aria-hidden);
1640
+ * registers its value/label/disabled as signals into the parent's registry.
1641
+ *
1642
+ * @example
1643
+ * <luma-select-option [lmValue]="'apple'">Apple</luma-select-option>
1644
+ */
1645
+ declare class LmSelectOptionComponent implements OnInit, OnDestroy {
1646
+ private readonly context;
1647
+ private readonly elementRef;
1648
+ lmValue: _angular_core.InputSignal<unknown>;
1649
+ lmDisabled: _angular_core.InputSignal<boolean>;
1650
+ private entry;
1651
+ ngOnInit(): void;
1652
+ ngOnDestroy(): void;
1653
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<LmSelectOptionComponent, never>;
1654
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<LmSelectOptionComponent, "luma-select-option", never, { "lmValue": { "alias": "lmValue"; "required": true; "isSignal": true; }; "lmDisabled": { "alias": "lmDisabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1655
+ }
1656
+
1657
+ export { ACCORDION_ITEM, DEFAULT_TOAST_CONFIG, LmAccordionContentDirective, LmAccordionGroupComponent, LmAccordionIconDirective, LmAccordionItemComponent, LmAccordionTitleDirective, LmAccordionTriggerDirective, LmBadgeDirective, LmButtonDirective, LmCardComponent, LmCardContentDirective, LmCardDescriptionDirective, LmCardHeaderDirective, LmCardTitleDirective, LmCheckboxDirective, LmErrorTextDirective, LmHelperTextDirective, LmInputDirective, LmLabelDirective, LmModalCloseComponent, LmModalComponent, LmModalContainerComponent, LmModalContentDirective, LmModalFooterDirective, LmModalHeaderDirective, LmModalOverlayComponent, LmModalTitleDirective, LmRadioDirective, LmSelectComponent, LmSelectOptionComponent, LmTabsComponent, LmTabsIndicatorComponent, LmTabsListDirective, LmTabsPanelDirective, LmTabsTriggerDirective, LmTextareaDirective, LmToastCloseComponent, LmToastContainerComponent, LmToastItemComponent, LmToastService, LmTooltipDirective, MODAL_CONTEXT, SELECT_CONTEXT, TABS_GROUP, TABS_LIST, TOAST_CONFIG, provideToastConfig };
1658
+ export type { AccordionItemBase, ModalContext, ModalSize, OptionEntry, SelectContext, TabsGroupBase, TabsListBase, Toast, ToastConfig, ToastOptions, ToastPosition, ToastRef, ToastVariant };