@lilydesignsystem/angular-headless 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import * as i0 from "@angular/core";
2
+ import { OnInit } from "@angular/core";
2
3
  /**
3
4
  * AccordionCheckbox — a checkbox option that reveals an accordion panel when checked
4
5
  *
@@ -3370,7 +3371,13 @@ export declare class ColorInput {
3370
3371
  */
3371
3372
  export declare class ColorPicker {
3372
3373
  readonly label: import("@angular/core").InputSignal<string>;
3374
+ /** Horizontal position, 0-100 (saturation). Two-way bindable. */
3375
+ readonly x: import("@angular/core").ModelSignal<number>;
3376
+ /** Vertical position, 0-100 (brightness). Two-way bindable. */
3377
+ readonly y: import("@angular/core").ModelSignal<number>;
3378
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
3373
3379
  readonly className: import("@angular/core").InputSignal<string>;
3380
+ protected onKeydown(event: KeyboardEvent): void;
3374
3381
  static ɵfac: i0.ɵɵFactoryDeclaration<ColorPicker, never>;
3375
3382
  static ɵcmp: i0.ɵɵComponentDeclaration<ColorPicker, "lily-color-picker", never, {
3376
3383
  "label": {
@@ -3378,12 +3385,30 @@ export declare class ColorPicker {
3378
3385
  "required": false;
3379
3386
  "isSignal": true;
3380
3387
  };
3388
+ "x": {
3389
+ "alias": "x";
3390
+ "required": false;
3391
+ "isSignal": true;
3392
+ };
3393
+ "y": {
3394
+ "alias": "y";
3395
+ "required": false;
3396
+ "isSignal": true;
3397
+ };
3398
+ "disabled": {
3399
+ "alias": "disabled";
3400
+ "required": false;
3401
+ "isSignal": true;
3402
+ };
3381
3403
  "className": {
3382
3404
  "alias": "className";
3383
3405
  "required": false;
3384
3406
  "isSignal": true;
3385
3407
  };
3386
- }, {}, never, ["*"], true, never>;
3408
+ }, {
3409
+ "x": "xChange";
3410
+ "y": "yChange";
3411
+ }, never, ["*"], true, never>;
3387
3412
  }
3388
3413
  /**
3389
3414
  * ColorPickerButton — a button showing a color swatch in a color picker
@@ -3750,17 +3775,6 @@ export declare class ContentsListItem {
3750
3775
  };
3751
3776
  }, {}, never, ["*"], true, never>;
3752
3777
  }
3753
- /**
3754
- * Which section is current: the last whose top has passed the activation line
3755
- * (`tops` are each section's top relative to the scroller; `offset` is the line).
3756
- * At the bottom of the scroll range the last section wins (a short last section
3757
- * never reaches the line); before the first section, the first.
3758
- */
3759
- declare function activeSectionIndex(tops: number[], offset: number, atBottom: boolean): number;
3760
- /** The in-page `<a href="#id">` links inside `nav`. */
3761
- declare function contentsLinks(nav: Element): HTMLAnchorElement[];
3762
- declare function contentsLinkId(link: Element): string;
3763
- declare function contentsTarget(link: Element, doc: Document): HTMLElement | null;
3764
3778
  export type ScrollspyOptions = {
3765
3779
  /** Activation line, px below the top of `root`. */
3766
3780
  offset?: number;
@@ -3771,12 +3785,6 @@ export type ScrollspyOptions = {
3771
3785
  /** Called once per change, with the section id. */
3772
3786
  onChange?: (id: string) => void;
3773
3787
  };
3774
- /**
3775
- * Mark the link of the section in view with `aria-current` and `data-active`
3776
- * (and its enclosing `<li>`s with `data-descendant-active`). Returns a function
3777
- * that stops listening.
3778
- */
3779
- declare function startScrollspy(nav: HTMLElement, options?: ScrollspyOptions): () => void;
3780
3788
  /**
3781
3789
  * ContentsNav — a navigation landmark for a table of contents.
3782
3790
  *
@@ -3850,7 +3858,13 @@ export declare class ContentsNav {
3850
3858
  */
3851
3859
  export declare class ContextMenu {
3852
3860
  readonly label: import("@angular/core").InputSignal<string>;
3861
+ /** Whether the menu is visible. Two-way bindable; Escape sets it to false. */
3862
+ readonly open: import("@angular/core").ModelSignal<boolean>;
3853
3863
  readonly className: import("@angular/core").InputSignal<string>;
3864
+ private readonly menu;
3865
+ constructor();
3866
+ /** Roving focus over the `role="menuitem"` descendants (WAI-ARIA APG menu pattern). */
3867
+ protected onKeydown(event: KeyboardEvent): void;
3854
3868
  static ɵfac: i0.ɵɵFactoryDeclaration<ContextMenu, never>;
3855
3869
  static ɵcmp: i0.ɵɵComponentDeclaration<ContextMenu, "lily-context-menu", never, {
3856
3870
  "label": {
@@ -3858,12 +3872,19 @@ export declare class ContextMenu {
3858
3872
  "required": false;
3859
3873
  "isSignal": true;
3860
3874
  };
3875
+ "open": {
3876
+ "alias": "open";
3877
+ "required": false;
3878
+ "isSignal": true;
3879
+ };
3861
3880
  "className": {
3862
3881
  "alias": "className";
3863
3882
  "required": false;
3864
3883
  "isSignal": true;
3865
3884
  };
3866
- }, {}, never, ["*"], true, never>;
3885
+ }, {
3886
+ "open": "openChange";
3887
+ }, never, ["*"], true, never>;
3867
3888
  }
3868
3889
  /**
3869
3890
  * ContextMenuItem — one item in a context menu
@@ -3913,6 +3934,124 @@ export declare class ContextualHelp {
3913
3934
  };
3914
3935
  }, {}, never, ["*"], true, never>;
3915
3936
  }
3937
+ /**
3938
+ * ConvertDiv — a group that converts a value from one unit into another, such as dollars into euros or miles into kilometres
3939
+ *
3940
+ * A headless part of ConvertDiv: a plain <div> with the base class and projected content; role="group" named by the required `label` input.
3941
+ */
3942
+ export declare class ConvertDiv {
3943
+ readonly className: import("@angular/core").InputSignal<string>;
3944
+ readonly label: import("@angular/core").InputSignal<string>;
3945
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConvertDiv, never>;
3946
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConvertDiv, "lily-convert-div", never, {
3947
+ "className": {
3948
+ "alias": "className";
3949
+ "required": false;
3950
+ "isSignal": true;
3951
+ };
3952
+ "label": {
3953
+ "alias": "label";
3954
+ "required": true;
3955
+ "isSignal": true;
3956
+ };
3957
+ }, {}, never, ["*"], true, never>;
3958
+ }
3959
+ /**
3960
+ * ConvertFromDiv — the source side of a conversion, holding the value and unit to convert from
3961
+ *
3962
+ * A headless part of ConvertDiv: a plain <div> with the base class and projected content.
3963
+ */
3964
+ export declare class ConvertFromDiv {
3965
+ readonly className: import("@angular/core").InputSignal<string>;
3966
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConvertFromDiv, never>;
3967
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConvertFromDiv, "lily-convert-from-div", never, {
3968
+ "className": {
3969
+ "alias": "className";
3970
+ "required": false;
3971
+ "isSignal": true;
3972
+ };
3973
+ }, {}, never, ["*"], true, never>;
3974
+ }
3975
+ /**
3976
+ * ConvertFromUnitDiv — the unit to convert from, such as a select box of currencies or lengths
3977
+ *
3978
+ * A headless part of ConvertDiv: a plain <div> with the base class and projected content.
3979
+ */
3980
+ export declare class ConvertFromUnitDiv {
3981
+ readonly className: import("@angular/core").InputSignal<string>;
3982
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConvertFromUnitDiv, never>;
3983
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConvertFromUnitDiv, "lily-convert-from-unit-div", never, {
3984
+ "className": {
3985
+ "alias": "className";
3986
+ "required": false;
3987
+ "isSignal": true;
3988
+ };
3989
+ }, {}, never, ["*"], true, never>;
3990
+ }
3991
+ /**
3992
+ * ConvertFromValueDiv — the value to convert from, such as a text input holding the number of dollars
3993
+ *
3994
+ * A headless part of ConvertDiv: a plain <div> with the base class and projected content.
3995
+ */
3996
+ export declare class ConvertFromValueDiv {
3997
+ readonly className: import("@angular/core").InputSignal<string>;
3998
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConvertFromValueDiv, never>;
3999
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConvertFromValueDiv, "lily-convert-from-value-div", never, {
4000
+ "className": {
4001
+ "alias": "className";
4002
+ "required": false;
4003
+ "isSignal": true;
4004
+ };
4005
+ }, {}, never, ["*"], true, never>;
4006
+ }
4007
+ /**
4008
+ * ConvertIntoDiv — the target side of a conversion, holding the value and unit to convert into
4009
+ *
4010
+ * A headless part of ConvertDiv: a plain <div> with the base class and projected content.
4011
+ */
4012
+ export declare class ConvertIntoDiv {
4013
+ readonly className: import("@angular/core").InputSignal<string>;
4014
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConvertIntoDiv, never>;
4015
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConvertIntoDiv, "lily-convert-into-div", never, {
4016
+ "className": {
4017
+ "alias": "className";
4018
+ "required": false;
4019
+ "isSignal": true;
4020
+ };
4021
+ }, {}, never, ["*"], true, never>;
4022
+ }
4023
+ /**
4024
+ * ConvertIntoUnitDiv — the unit to convert into, such as a select box of currencies or lengths
4025
+ *
4026
+ * A headless part of ConvertDiv: a plain <div> with the base class and projected content.
4027
+ */
4028
+ export declare class ConvertIntoUnitDiv {
4029
+ readonly className: import("@angular/core").InputSignal<string>;
4030
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConvertIntoUnitDiv, never>;
4031
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConvertIntoUnitDiv, "lily-convert-into-unit-div", never, {
4032
+ "className": {
4033
+ "alias": "className";
4034
+ "required": false;
4035
+ "isSignal": true;
4036
+ };
4037
+ }, {}, never, ["*"], true, never>;
4038
+ }
4039
+ /**
4040
+ * ConvertIntoValueDiv — the converted value, such as a text input showing the number of euros
4041
+ *
4042
+ * A headless part of ConvertDiv: a plain <div> with the base class and projected content.
4043
+ */
4044
+ export declare class ConvertIntoValueDiv {
4045
+ readonly className: import("@angular/core").InputSignal<string>;
4046
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConvertIntoValueDiv, never>;
4047
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConvertIntoValueDiv, "lily-convert-into-value-div", never, {
4048
+ "className": {
4049
+ "alias": "className";
4050
+ "required": false;
4051
+ "isSignal": true;
4052
+ };
4053
+ }, {}, never, ["*"], true, never>;
4054
+ }
3916
4055
  /**
3917
4056
  * CurrencyInput — a locale-aware currency input with automatic formatting, symbols, separators
3918
4057
  *
@@ -4742,7 +4881,15 @@ export declare class DeutschlandKrankenversichertennummerView {
4742
4881
  */
4743
4882
  export declare class Dial {
4744
4883
  readonly label: import("@angular/core").InputSignal<string>;
4884
+ /** Current value. Two-way bindable. */
4885
+ readonly value: import("@angular/core").ModelSignal<number>;
4886
+ readonly min: import("@angular/core").InputSignal<number>;
4887
+ readonly max: import("@angular/core").InputSignal<number>;
4888
+ readonly step: import("@angular/core").InputSignal<number>;
4889
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
4745
4890
  readonly className: import("@angular/core").InputSignal<string>;
4891
+ private clamp;
4892
+ protected onKeydown(event: KeyboardEvent): void;
4746
4893
  static ɵfac: i0.ɵɵFactoryDeclaration<Dial, never>;
4747
4894
  static ɵcmp: i0.ɵɵComponentDeclaration<Dial, "lily-dial", never, {
4748
4895
  "label": {
@@ -4750,12 +4897,39 @@ export declare class Dial {
4750
4897
  "required": false;
4751
4898
  "isSignal": true;
4752
4899
  };
4900
+ "value": {
4901
+ "alias": "value";
4902
+ "required": false;
4903
+ "isSignal": true;
4904
+ };
4905
+ "min": {
4906
+ "alias": "min";
4907
+ "required": false;
4908
+ "isSignal": true;
4909
+ };
4910
+ "max": {
4911
+ "alias": "max";
4912
+ "required": false;
4913
+ "isSignal": true;
4914
+ };
4915
+ "step": {
4916
+ "alias": "step";
4917
+ "required": false;
4918
+ "isSignal": true;
4919
+ };
4920
+ "disabled": {
4921
+ "alias": "disabled";
4922
+ "required": false;
4923
+ "isSignal": true;
4924
+ };
4753
4925
  "className": {
4754
4926
  "alias": "className";
4755
4927
  "required": false;
4756
4928
  "isSignal": true;
4757
4929
  };
4758
- }, {}, never, ["*"], true, never>;
4930
+ }, {
4931
+ "value": "valueChange";
4932
+ }, never, ["*"], true, never>;
4759
4933
  }
4760
4934
  /**
4761
4935
  * DialGroup — a group of dial components
@@ -4790,8 +4964,12 @@ export declare class DialGroup {
4790
4964
  */
4791
4965
  export declare class Dialog {
4792
4966
  readonly label: import("@angular/core").InputSignal<string>;
4793
- readonly open: import("@angular/core").InputSignal<boolean>;
4967
+ /** Whether the dialog is visible. Two-way bindable; Escape sets it to false. */
4968
+ readonly open: import("@angular/core").ModelSignal<boolean>;
4969
+ /** Whether the dialog is modal (`aria-modal`). */
4970
+ readonly modal: import("@angular/core").InputSignal<boolean>;
4794
4971
  readonly className: import("@angular/core").InputSignal<string>;
4972
+ protected onKeydown(event: KeyboardEvent): void;
4795
4973
  static ɵfac: i0.ɵɵFactoryDeclaration<Dialog, never>;
4796
4974
  static ɵcmp: i0.ɵɵComponentDeclaration<Dialog, "lily-dialog", never, {
4797
4975
  "label": {
@@ -4804,12 +4982,19 @@ export declare class Dialog {
4804
4982
  "required": false;
4805
4983
  "isSignal": true;
4806
4984
  };
4985
+ "modal": {
4986
+ "alias": "modal";
4987
+ "required": false;
4988
+ "isSignal": true;
4989
+ };
4807
4990
  "className": {
4808
4991
  "alias": "className";
4809
4992
  "required": false;
4810
4993
  "isSignal": true;
4811
4994
  };
4812
- }, {}, never, ["*"], true, never>;
4995
+ }, {
4996
+ "open": "openChange";
4997
+ }, never, ["*"], true, never>;
4813
4998
  }
4814
4999
  /**
4815
5000
  * Diff — a side-by-side comparison of two items
@@ -5073,7 +5258,12 @@ export declare class Draft {
5073
5258
  */
5074
5259
  export declare class Drawer {
5075
5260
  readonly label: import("@angular/core").InputSignal<string>;
5261
+ /** Whether the panel is shown. Two-way bindable; Escape sets it to false. */
5262
+ readonly open: import("@angular/core").ModelSignal<boolean>;
5263
+ /** Edge the panel attaches to; exposed as `data-side`. */
5264
+ readonly side: import("@angular/core").InputSignal<"left" | "right" | "top" | "bottom">;
5076
5265
  readonly className: import("@angular/core").InputSignal<string>;
5266
+ protected onKeydown(event: KeyboardEvent): void;
5077
5267
  static ɵfac: i0.ɵɵFactoryDeclaration<Drawer, never>;
5078
5268
  static ɵcmp: i0.ɵɵComponentDeclaration<Drawer, "lily-drawer", never, {
5079
5269
  "label": {
@@ -5081,12 +5271,24 @@ export declare class Drawer {
5081
5271
  "required": false;
5082
5272
  "isSignal": true;
5083
5273
  };
5274
+ "open": {
5275
+ "alias": "open";
5276
+ "required": false;
5277
+ "isSignal": true;
5278
+ };
5279
+ "side": {
5280
+ "alias": "side";
5281
+ "required": false;
5282
+ "isSignal": true;
5283
+ };
5084
5284
  "className": {
5085
5285
  "alias": "className";
5086
5286
  "required": false;
5087
5287
  "isSignal": true;
5088
5288
  };
5089
- }, {}, never, ["*"], true, never>;
5289
+ }, {
5290
+ "open": "openChange";
5291
+ }, never, ["*"], true, never>;
5090
5292
  }
5091
5293
  /**
5092
5294
  * DropdownMenu — a menu that opens below a trigger button
@@ -5097,7 +5299,13 @@ export declare class Drawer {
5097
5299
  */
5098
5300
  export declare class DropdownMenu {
5099
5301
  readonly label: import("@angular/core").InputSignal<string>;
5302
+ /** Whether the menu is open. Two-way bindable; Escape sets it to false. */
5303
+ readonly open: import("@angular/core").ModelSignal<boolean>;
5100
5304
  readonly className: import("@angular/core").InputSignal<string>;
5305
+ private readonly menu;
5306
+ constructor();
5307
+ /** Roving focus over the `role="menuitem"` descendants (WAI-ARIA APG menu pattern). */
5308
+ protected onKeydown(event: KeyboardEvent): void;
5101
5309
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownMenu, never>;
5102
5310
  static ɵcmp: i0.ɵɵComponentDeclaration<DropdownMenu, "lily-dropdown-menu", never, {
5103
5311
  "label": {
@@ -5105,12 +5313,19 @@ export declare class DropdownMenu {
5105
5313
  "required": false;
5106
5314
  "isSignal": true;
5107
5315
  };
5316
+ "open": {
5317
+ "alias": "open";
5318
+ "required": false;
5319
+ "isSignal": true;
5320
+ };
5108
5321
  "className": {
5109
5322
  "alias": "className";
5110
5323
  "required": false;
5111
5324
  "isSignal": true;
5112
5325
  };
5113
- }, {}, never, ["*"], true, never>;
5326
+ }, {
5327
+ "open": "openChange";
5328
+ }, never, ["*"], true, never>;
5114
5329
  }
5115
5330
  /**
5116
5331
  * Editable — an inline-editable text element that toggles between view and edit modes
@@ -5121,7 +5336,16 @@ export declare class DropdownMenu {
5121
5336
  */
5122
5337
  export declare class Editable {
5123
5338
  readonly label: import("@angular/core").InputSignal<string>;
5339
+ /** The committed value. Two-way bindable. */
5340
+ readonly value: import("@angular/core").ModelSignal<string>;
5341
+ /** Whether the text field is showing. Two-way bindable. */
5342
+ readonly editing: import("@angular/core").ModelSignal<boolean>;
5343
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
5124
5344
  readonly className: import("@angular/core").InputSignal<string>;
5345
+ protected readonly draft: import("@angular/core").WritableSignal<string>;
5346
+ protected startEditing(): void;
5347
+ protected onDisplayKeydown(event: KeyboardEvent): void;
5348
+ protected onInputKeydown(event: KeyboardEvent): void;
5125
5349
  static ɵfac: i0.ɵɵFactoryDeclaration<Editable, never>;
5126
5350
  static ɵcmp: i0.ɵɵComponentDeclaration<Editable, "lily-editable", never, {
5127
5351
  "label": {
@@ -5129,12 +5353,30 @@ export declare class Editable {
5129
5353
  "required": false;
5130
5354
  "isSignal": true;
5131
5355
  };
5356
+ "value": {
5357
+ "alias": "value";
5358
+ "required": false;
5359
+ "isSignal": true;
5360
+ };
5361
+ "editing": {
5362
+ "alias": "editing";
5363
+ "required": false;
5364
+ "isSignal": true;
5365
+ };
5366
+ "disabled": {
5367
+ "alias": "disabled";
5368
+ "required": false;
5369
+ "isSignal": true;
5370
+ };
5132
5371
  "className": {
5133
5372
  "alias": "className";
5134
5373
  "required": false;
5135
5374
  "isSignal": true;
5136
5375
  };
5137
- }, {}, never, ["*"], true, never>;
5376
+ }, {
5377
+ "value": "valueChange";
5378
+ "editing": "editingChange";
5379
+ }, never, never, true, never>;
5138
5380
  }
5139
5381
  /**
5140
5382
  * EditableForm — a form wrapper for inline editing of content
@@ -5145,7 +5387,15 @@ export declare class Editable {
5145
5387
  */
5146
5388
  export declare class EditableForm {
5147
5389
  readonly label: import("@angular/core").InputSignal<string>;
5390
+ /** Whether the form is showing. Two-way bindable; submit and Escape set it to false. */
5391
+ readonly editing: import("@angular/core").ModelSignal<boolean>;
5148
5392
  readonly className: import("@angular/core").InputSignal<string>;
5393
+ /** Emitted after the form is submitted (the native submit is prevented). */
5394
+ readonly submitted: import("@angular/core").OutputEmitterRef<SubmitEvent>;
5395
+ /** Emitted when Escape cancels editing. */
5396
+ readonly cancelled: import("@angular/core").OutputEmitterRef<void>;
5397
+ protected onSubmit(event: Event): void;
5398
+ protected onKeydown(event: KeyboardEvent): void;
5149
5399
  static ɵfac: i0.ɵɵFactoryDeclaration<EditableForm, never>;
5150
5400
  static ɵcmp: i0.ɵɵComponentDeclaration<EditableForm, "lily-editable-form", never, {
5151
5401
  "label": {
@@ -5153,12 +5403,21 @@ export declare class EditableForm {
5153
5403
  "required": false;
5154
5404
  "isSignal": true;
5155
5405
  };
5406
+ "editing": {
5407
+ "alias": "editing";
5408
+ "required": false;
5409
+ "isSignal": true;
5410
+ };
5156
5411
  "className": {
5157
5412
  "alias": "className";
5158
5413
  "required": false;
5159
5414
  "isSignal": true;
5160
5415
  };
5161
- }, {}, never, ["*"], true, never>;
5416
+ }, {
5417
+ "editing": "editingChange";
5418
+ "submitted": "submitted";
5419
+ "cancelled": "cancelled";
5420
+ }, never, ["*"], true, never>;
5162
5421
  }
5163
5422
  /**
5164
5423
  * EestiIsikukoodInput — an input for entering Estonia's Isikukood (IK)
@@ -7417,6 +7676,60 @@ export declare class HeatmapChart {
7417
7676
  };
7418
7677
  }, {}, never, ["*", "[dataTable]"], true, never>;
7419
7678
  }
7679
+ /**
7680
+ * HeatmapChartWithYearOfDays — a headless wrapper for a grid chart where cell colour encodes the value.
7681
+ *
7682
+ * Mirrors the Svelte canonical: the consumer supplies the inline <svg> as
7683
+ * projected content; nothing is drawn here. The graphic is a role="img"
7684
+ * wrapper named by `label` (`describedBy` is its aria-describedby). An
7685
+ * element projected with the `dataTable` attribute (`<table dataTable>`)
7686
+ * is rendered in `.heatmap-chart-with-year-of-days-data-table`, a SIBLING of the image wrapper:
7687
+ * role="img" makes descendants presentational, so a table inside it would
7688
+ * be invisible to assistive technology.
7689
+ * Keyboard: none on the graphic; the table follows native table behaviour.
7690
+ * Deviations from Svelte: no rest-props spread (Angular cannot spread onto
7691
+ * an inner element); the data-table wrapper is always rendered (Angular
7692
+ * cannot detect projected content), empty when nothing is projected.
7693
+ */
7694
+ export declare class HeatmapChartWithYearOfDays {
7695
+ /** Accessible name for the chart. */
7696
+ readonly label: import("@angular/core").InputSignal<string>;
7697
+ /** The calendar year shown (data-year). */
7698
+ readonly year: import("@angular/core").InputSignal<number>;
7699
+ /** First weekday row: 0 = Sunday … 6 = Saturday (data-week-start). No default: it is locale-dependent. */
7700
+ readonly weekStart: import("@angular/core").InputSignal<number>;
7701
+ /** Id of a description (aria-describedby on the image wrapper). */
7702
+ readonly describedBy: import("@angular/core").InputSignal<string>;
7703
+ readonly className: import("@angular/core").InputSignal<string>;
7704
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeatmapChartWithYearOfDays, never>;
7705
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeatmapChartWithYearOfDays, "lily-heatmap-chart-with-year-of-days", never, {
7706
+ "label": {
7707
+ "alias": "label";
7708
+ "required": true;
7709
+ "isSignal": true;
7710
+ };
7711
+ "year": {
7712
+ "alias": "year";
7713
+ "required": true;
7714
+ "isSignal": true;
7715
+ };
7716
+ "weekStart": {
7717
+ "alias": "weekStart";
7718
+ "required": true;
7719
+ "isSignal": true;
7720
+ };
7721
+ "describedBy": {
7722
+ "alias": "describedBy";
7723
+ "required": false;
7724
+ "isSignal": true;
7725
+ };
7726
+ "className": {
7727
+ "alias": "className";
7728
+ "required": false;
7729
+ "isSignal": true;
7730
+ };
7731
+ }, {}, never, ["*", "[dataTable]"], true, never>;
7732
+ }
7420
7733
  /**
7421
7734
  * Hero — a large box or image with a title and description
7422
7735
  *
@@ -7547,7 +7860,10 @@ export declare class Hint {
7547
7860
  */
7548
7861
  export declare class HorizontalScroller {
7549
7862
  readonly label: import("@angular/core").InputSignal<string>;
7863
+ /** Pixels scrolled by ArrowLeft / ArrowRight. */
7864
+ readonly step: import("@angular/core").InputSignal<number>;
7550
7865
  readonly className: import("@angular/core").InputSignal<string>;
7866
+ protected onKeydown(event: KeyboardEvent): void;
7551
7867
  static ɵfac: i0.ɵɵFactoryDeclaration<HorizontalScroller, never>;
7552
7868
  static ɵcmp: i0.ɵɵComponentDeclaration<HorizontalScroller, "lily-horizontal-scroller", never, {
7553
7869
  "label": {
@@ -7555,6 +7871,11 @@ export declare class HorizontalScroller {
7555
7871
  "required": false;
7556
7872
  "isSignal": true;
7557
7873
  };
7874
+ "step": {
7875
+ "alias": "step";
7876
+ "required": false;
7877
+ "isSignal": true;
7878
+ };
7558
7879
  "className": {
7559
7880
  "alias": "className";
7560
7881
  "required": false;
@@ -10104,6 +10425,8 @@ export declare class MentionsInput {
10104
10425
  export declare class Menu {
10105
10426
  readonly label: import("@angular/core").InputSignal<string>;
10106
10427
  readonly className: import("@angular/core").InputSignal<string>;
10428
+ /** Roving focus over the `role="menuitem"` descendants (WAI-ARIA APG menu pattern). */
10429
+ protected onKeydown(event: KeyboardEvent): void;
10107
10430
  static ɵfac: i0.ɵɵFactoryDeclaration<Menu, never>;
10108
10431
  static ɵcmp: i0.ɵɵComponentDeclaration<Menu, "lily-menu", never, {
10109
10432
  "label": {
@@ -10128,6 +10451,8 @@ export declare class Menu {
10128
10451
  export declare class MenuBar {
10129
10452
  readonly label: import("@angular/core").InputSignal<string>;
10130
10453
  readonly className: import("@angular/core").InputSignal<string>;
10454
+ /** Roving focus left/right over the `role="menuitem"` descendants. */
10455
+ protected onKeydown(event: KeyboardEvent): void;
10131
10456
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuBar, never>;
10132
10457
  static ɵcmp: i0.ɵɵComponentDeclaration<MenuBar, "lily-menu-bar", never, {
10133
10458
  "label": {
@@ -10340,6 +10665,85 @@ export declare class MexicoClaveUnicaDeRegistroDePoblacionView {
10340
10665
  };
10341
10666
  }, {}, never, never, true, never>;
10342
10667
  }
10668
+ /**
10669
+ * Middle truncation: shorten a string to fit a width by cutting out the middle, keeping the start and the end ("report-fi…q3.pdf").
10670
+ * Pure and framework-neutral: the caller supplies `measure`, so the module reads no DOM and is tested without a browser.
10671
+ *
10672
+ * Works on grapheme clusters (Intl.Segmenter, falling back to code points), so it never splits a surrogate pair, a combining
10673
+ * sequence or an emoji. The width search is binary, so it measures O(log n) candidate strings.
10674
+ *
10675
+ * Strategies:
10676
+ * "even" the start and the end share what fits, the end taking the extra cluster when the count is odd.
10677
+ * "fixed-end" exactly `end` clusters are kept at the end; the start takes all the remaining room.
10678
+ * "min-end" an even split, but at least `end` clusters are kept at the end (a file extension, a domain suffix).
10679
+ */
10680
+ export type TruncationStrategy = "even" | "fixed-end" | "min-end";
10681
+ export interface TruncateMiddleOptions {
10682
+ /** The ellipsis string. Required: the module has no default text (internationalisation). */
10683
+ ellipsis: string;
10684
+ /** The width available to the whole result, in the unit `measure` returns. */
10685
+ maxWidth: number;
10686
+ /** Width of a string in the same unit as `maxWidth`. */
10687
+ measure: (text: string) => number;
10688
+ strategy?: TruncationStrategy;
10689
+ /** Clusters kept at the end for "fixed-end" and "min-end". Ignored by "even". */
10690
+ end?: number;
10691
+ }
10692
+ /**
10693
+ * MiddleTruncation — a string shortened in the middle to fit its width, keeping the start and the end.
10694
+ *
10695
+ * Mirrors the Svelte canonical: the width is measured in the browser (canvas text metrics in the element's own font)
10696
+ * and re-measured when the container resizes; until then, and on the server, the full text is shown. The shortened string
10697
+ * is aria-hidden and the whole text sits in `.middle-truncation-full`, which the consumer visually hides, so assistive
10698
+ * technology, find-in-page and copy get the real text.
10699
+ *
10700
+ * Inputs: `text` (required), `ellipsis` (required, no default), `strategy` ("even" | "fixed-end" | "min-end"), `end`, `className`.
10701
+ * Keyboard: none.
10702
+ * Deviation from Svelte: no rest-props spread (Angular cannot spread onto an inner element).
10703
+ */
10704
+ export declare class MiddleTruncation {
10705
+ readonly className: import("@angular/core").InputSignal<string>;
10706
+ /** The full text. */
10707
+ readonly text: import("@angular/core").InputSignal<string>;
10708
+ /** The cut marker; no default. */
10709
+ readonly ellipsis: import("@angular/core").InputSignal<string>;
10710
+ /** How the room is shared between start and end. */
10711
+ readonly strategy: import("@angular/core").InputSignal<TruncationStrategy>;
10712
+ /** Characters kept at the end for "fixed-end" and "min-end". */
10713
+ readonly end: import("@angular/core").InputSignal<number | undefined>;
10714
+ private readonly root;
10715
+ protected readonly shown: import("@angular/core").WritableSignal<string | null>;
10716
+ private context;
10717
+ constructor();
10718
+ static ɵfac: i0.ɵɵFactoryDeclaration<MiddleTruncation, never>;
10719
+ static ɵcmp: i0.ɵɵComponentDeclaration<MiddleTruncation, "lily-middle-truncation", never, {
10720
+ "className": {
10721
+ "alias": "className";
10722
+ "required": false;
10723
+ "isSignal": true;
10724
+ };
10725
+ "text": {
10726
+ "alias": "text";
10727
+ "required": true;
10728
+ "isSignal": true;
10729
+ };
10730
+ "ellipsis": {
10731
+ "alias": "ellipsis";
10732
+ "required": true;
10733
+ "isSignal": true;
10734
+ };
10735
+ "strategy": {
10736
+ "alias": "strategy";
10737
+ "required": false;
10738
+ "isSignal": true;
10739
+ };
10740
+ "end": {
10741
+ "alias": "end";
10742
+ "required": false;
10743
+ "isSignal": true;
10744
+ };
10745
+ }, {}, never, never, true, never>;
10746
+ }
10343
10747
  /**
10344
10748
  * MisrAlRaqmAlQawmiInput — an input for entering Egypt's الرقم القومي (National Number)
10345
10749
  *
@@ -12136,9 +12540,25 @@ export declare class PilipinasPhilhealthIdentificationNumberView {
12136
12540
  * kebab-case class hook `pin-input-div` and the consumer-provided `className`.
12137
12541
  * Ships zero CSS; the consumer styles via the class hook.
12138
12542
  */
12139
- export declare class PinInputDiv {
12543
+ export declare class PinInputDiv implements OnInit {
12140
12544
  readonly label: import("@angular/core").InputSignal<string>;
12545
+ readonly length: import("@angular/core").InputSignal<number>;
12546
+ /** Accessible name of one box, e.g. `(n, total) => ...`. Falls back to `label`. */
12547
+ readonly digitLabel: import("@angular/core").InputSignal<((position: number, length: number) => string) | undefined>;
12548
+ /** The digits entered so far, as one string. Two-way bindable. */
12549
+ readonly value: import("@angular/core").ModelSignal<string>;
12550
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
12141
12551
  readonly className: import("@angular/core").InputSignal<string>;
12552
+ protected readonly digits: import("@angular/core").WritableSignal<string[]>;
12553
+ protected readonly indexes: import("@angular/core").Signal<number[]>;
12554
+ private readonly inputs;
12555
+ private initialDigits;
12556
+ private readonly host;
12557
+ constructor();
12558
+ ngOnInit(): void;
12559
+ protected digitName(index: number): string | null;
12560
+ protected onInput(index: number, event: Event): void;
12561
+ protected onKeydown(index: number, event: KeyboardEvent): void;
12142
12562
  static ɵfac: i0.ɵɵFactoryDeclaration<PinInputDiv, never>;
12143
12563
  static ɵcmp: i0.ɵɵComponentDeclaration<PinInputDiv, "lily-pin-input-div", never, {
12144
12564
  "label": {
@@ -12146,12 +12566,34 @@ export declare class PinInputDiv {
12146
12566
  "required": false;
12147
12567
  "isSignal": true;
12148
12568
  };
12569
+ "length": {
12570
+ "alias": "length";
12571
+ "required": false;
12572
+ "isSignal": true;
12573
+ };
12574
+ "digitLabel": {
12575
+ "alias": "digitLabel";
12576
+ "required": false;
12577
+ "isSignal": true;
12578
+ };
12579
+ "value": {
12580
+ "alias": "value";
12581
+ "required": false;
12582
+ "isSignal": true;
12583
+ };
12584
+ "disabled": {
12585
+ "alias": "disabled";
12586
+ "required": false;
12587
+ "isSignal": true;
12588
+ };
12149
12589
  "className": {
12150
12590
  "alias": "className";
12151
12591
  "required": false;
12152
12592
  "isSignal": true;
12153
12593
  };
12154
- }, {}, never, ["*"], true, never>;
12594
+ }, {
12595
+ "value": "valueChange";
12596
+ }, never, never, true, never>;
12155
12597
  }
12156
12598
  /**
12157
12599
  * Place — a place component that contains other place-related information
@@ -14334,7 +14776,12 @@ export declare class SharePage {
14334
14776
  */
14335
14777
  export declare class Sheet {
14336
14778
  readonly label: import("@angular/core").InputSignal<string>;
14779
+ /** Whether the panel is shown. Two-way bindable; Escape sets it to false. */
14780
+ readonly open: import("@angular/core").ModelSignal<boolean>;
14781
+ /** Edge the panel attaches to; exposed as `data-side`. */
14782
+ readonly side: import("@angular/core").InputSignal<"left" | "right" | "top" | "bottom">;
14337
14783
  readonly className: import("@angular/core").InputSignal<string>;
14784
+ protected onKeydown(event: KeyboardEvent): void;
14338
14785
  static ɵfac: i0.ɵɵFactoryDeclaration<Sheet, never>;
14339
14786
  static ɵcmp: i0.ɵɵComponentDeclaration<Sheet, "lily-sheet", never, {
14340
14787
  "label": {
@@ -14342,12 +14789,24 @@ export declare class Sheet {
14342
14789
  "required": false;
14343
14790
  "isSignal": true;
14344
14791
  };
14792
+ "open": {
14793
+ "alias": "open";
14794
+ "required": false;
14795
+ "isSignal": true;
14796
+ };
14797
+ "side": {
14798
+ "alias": "side";
14799
+ "required": false;
14800
+ "isSignal": true;
14801
+ };
14345
14802
  "className": {
14346
14803
  "alias": "className";
14347
14804
  "required": false;
14348
14805
  "isSignal": true;
14349
14806
  };
14350
- }, {}, never, ["*"], true, never>;
14807
+ }, {
14808
+ "open": "openChange";
14809
+ }, never, ["*"], true, never>;
14351
14810
  }
14352
14811
  /**
14353
14812
  * ShowMore — a content region clamped to a shorter height with a button that reveals the rest
@@ -14587,7 +15046,10 @@ export declare class SkipLink {
14587
15046
  */
14588
15047
  export declare class SlideOutDrawer {
14589
15048
  readonly label: import("@angular/core").InputSignal<string>;
15049
+ /** Whether the panel is shown. Two-way bindable; Escape sets it to false. */
15050
+ readonly open: import("@angular/core").ModelSignal<boolean>;
14590
15051
  readonly className: import("@angular/core").InputSignal<string>;
15052
+ protected onKeydown(event: KeyboardEvent): void;
14591
15053
  static ɵfac: i0.ɵɵFactoryDeclaration<SlideOutDrawer, never>;
14592
15054
  static ɵcmp: i0.ɵɵComponentDeclaration<SlideOutDrawer, "lily-slide-out-drawer", never, {
14593
15055
  "label": {
@@ -14595,12 +15057,19 @@ export declare class SlideOutDrawer {
14595
15057
  "required": false;
14596
15058
  "isSignal": true;
14597
15059
  };
15060
+ "open": {
15061
+ "alias": "open";
15062
+ "required": false;
15063
+ "isSignal": true;
15064
+ };
14598
15065
  "className": {
14599
15066
  "alias": "className";
14600
15067
  "required": false;
14601
15068
  "isSignal": true;
14602
15069
  };
14603
- }, {}, never, ["*"], true, never>;
15070
+ }, {
15071
+ "open": "openChange";
15072
+ }, never, ["*"], true, never>;
14604
15073
  }
14605
15074
  /**
14606
15075
  * Slider — a draggable control for selecting a value along a track
@@ -15666,10 +16135,16 @@ export declare class SverigePersonnummerView {
15666
16135
  * Ships zero CSS; the consumer styles via the class hook.
15667
16136
  */
15668
16137
  export declare class SwitchButton {
15669
- /** Optional aria-label override. */
15670
16138
  readonly label: import("@angular/core").InputSignal<string>;
15671
- /** Extra CSS classes appended to the base class. */
16139
+ /** Whether the control is on. Two-way bindable. */
16140
+ readonly checked: import("@angular/core").ModelSignal<boolean>;
16141
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
15672
16142
  readonly className: import("@angular/core").InputSignal<string>;
16143
+ /**
16144
+ * Space and Enter activate a native <button> through `click`, so no key handler is
16145
+ * needed (and none can double-toggle).
16146
+ */
16147
+ protected toggle(): void;
15673
16148
  static ɵfac: i0.ɵɵFactoryDeclaration<SwitchButton, never>;
15674
16149
  static ɵcmp: i0.ɵɵComponentDeclaration<SwitchButton, "lily-switch-button", never, {
15675
16150
  "label": {
@@ -15677,12 +16152,24 @@ export declare class SwitchButton {
15677
16152
  "required": false;
15678
16153
  "isSignal": true;
15679
16154
  };
16155
+ "checked": {
16156
+ "alias": "checked";
16157
+ "required": false;
16158
+ "isSignal": true;
16159
+ };
16160
+ "disabled": {
16161
+ "alias": "disabled";
16162
+ "required": false;
16163
+ "isSignal": true;
16164
+ };
15680
16165
  "className": {
15681
16166
  "alias": "className";
15682
16167
  "required": false;
15683
16168
  "isSignal": true;
15684
16169
  };
15685
- }, {}, never, ["*"], true, never>;
16170
+ }, {
16171
+ "checked": "checkedChange";
16172
+ }, never, ["*"], true, never>;
15686
16173
  }
15687
16174
  /**
15688
16175
  * TabBar — a group of tabs for switching between content panels
@@ -15694,6 +16181,8 @@ export declare class SwitchButton {
15694
16181
  export declare class TabBar {
15695
16182
  readonly label: import("@angular/core").InputSignal<string>;
15696
16183
  readonly className: import("@angular/core").InputSignal<string>;
16184
+ /** Roving focus over the `role="tab"` descendants (left/right, wrapping; Home/End). */
16185
+ protected onKeydown(event: KeyboardEvent): void;
15697
16186
  static ɵfac: i0.ɵɵFactoryDeclaration<TabBar, never>;
15698
16187
  static ɵcmp: i0.ɵɵComponentDeclaration<TabBar, "lily-tab-bar", never, {
15699
16188
  "label": {
@@ -15718,6 +16207,10 @@ export declare class TabBar {
15718
16207
  export declare class TabBarButton {
15719
16208
  /** Optional aria-label override. */
15720
16209
  readonly label: import("@angular/core").InputSignal<string>;
16210
+ /** Whether this tab is the selected one (roving tabindex: only it is tabbable). */
16211
+ readonly selected: import("@angular/core").InputSignal<boolean>;
16212
+ /** Id of the tab panel this tab controls. */
16213
+ readonly controls: import("@angular/core").InputSignal<string>;
15721
16214
  /** Extra CSS classes appended to the base class. */
15722
16215
  readonly className: import("@angular/core").InputSignal<string>;
15723
16216
  static ɵfac: i0.ɵɵFactoryDeclaration<TabBarButton, never>;
@@ -15727,6 +16220,16 @@ export declare class TabBarButton {
15727
16220
  "required": false;
15728
16221
  "isSignal": true;
15729
16222
  };
16223
+ "selected": {
16224
+ "alias": "selected";
16225
+ "required": false;
16226
+ "isSignal": true;
16227
+ };
16228
+ "controls": {
16229
+ "alias": "controls";
16230
+ "required": false;
16231
+ "isSignal": true;
16232
+ };
15730
16233
  "className": {
15731
16234
  "alias": "className";
15732
16235
  "required": false;
@@ -16040,6 +16543,8 @@ export declare class TagInput {
16040
16543
  export declare class TaskBar {
16041
16544
  readonly label: import("@angular/core").InputSignal<string>;
16042
16545
  readonly className: import("@angular/core").InputSignal<string>;
16546
+ /** Roving focus over buttons and tabindex descendants (left/right, wrapping; Home/End). */
16547
+ protected onKeydown(event: KeyboardEvent): void;
16043
16548
  static ɵfac: i0.ɵɵFactoryDeclaration<TaskBar, never>;
16044
16549
  static ɵcmp: i0.ɵɵComponentDeclaration<TaskBar, "lily-task-bar", never, {
16045
16550
  "label": {
@@ -16542,6 +17047,12 @@ export declare class Tile {
16542
17047
  export declare class TileMap {
16543
17048
  readonly label: import("@angular/core").InputSignal<string>;
16544
17049
  readonly className: import("@angular/core").InputSignal<string>;
17050
+ /**
17051
+ * Arrow keys move focus between `[data-tile]` descendants (left/right by order, up/down to the
17052
+ * nearest tile in the row above or below); Enter / Space fire a bubbling `tile-activate` event
17053
+ * on the focused tile; Escape blurs it.
17054
+ */
17055
+ protected onKeydown(event: KeyboardEvent): void;
16545
17056
  static ɵfac: i0.ɵɵFactoryDeclaration<TileMap, never>;
16546
17057
  static ɵcmp: i0.ɵɵComponentDeclaration<TileMap, "lily-tile-map", never, {
16547
17058
  "label": {
@@ -16813,10 +17324,16 @@ export declare class Toast {
16813
17324
  * Ships zero CSS; the consumer styles via the class hook.
16814
17325
  */
16815
17326
  export declare class ToggleButton {
16816
- /** Optional aria-label override. */
16817
17327
  readonly label: import("@angular/core").InputSignal<string>;
16818
- /** Extra CSS classes appended to the base class. */
17328
+ /** Whether the control is on. Two-way bindable. */
17329
+ readonly pressed: import("@angular/core").ModelSignal<boolean>;
17330
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
16819
17331
  readonly className: import("@angular/core").InputSignal<string>;
17332
+ /**
17333
+ * Space and Enter activate a native <button> through `click`, so no key handler is
17334
+ * needed (and none can double-toggle).
17335
+ */
17336
+ protected toggle(): void;
16820
17337
  static ɵfac: i0.ɵɵFactoryDeclaration<ToggleButton, never>;
16821
17338
  static ɵcmp: i0.ɵɵComponentDeclaration<ToggleButton, "lily-toggle-button", never, {
16822
17339
  "label": {
@@ -16824,12 +17341,24 @@ export declare class ToggleButton {
16824
17341
  "required": false;
16825
17342
  "isSignal": true;
16826
17343
  };
17344
+ "pressed": {
17345
+ "alias": "pressed";
17346
+ "required": false;
17347
+ "isSignal": true;
17348
+ };
17349
+ "disabled": {
17350
+ "alias": "disabled";
17351
+ "required": false;
17352
+ "isSignal": true;
17353
+ };
16827
17354
  "className": {
16828
17355
  "alias": "className";
16829
17356
  "required": false;
16830
17357
  "isSignal": true;
16831
17358
  };
16832
- }, {}, never, ["*"], true, never>;
17359
+ }, {
17360
+ "pressed": "pressedChange";
17361
+ }, never, ["*"], true, never>;
16833
17362
  }
16834
17363
  /**
16835
17364
  * ToggleGroup — a group of toggle buttons for selecting options
@@ -16865,6 +17394,8 @@ export declare class ToggleGroup {
16865
17394
  export declare class ToolBar {
16866
17395
  readonly label: import("@angular/core").InputSignal<string>;
16867
17396
  readonly className: import("@angular/core").InputSignal<string>;
17397
+ /** Roving focus over buttons and tabindex descendants (left/right, wrapping; Home/End). */
17398
+ protected onKeydown(event: KeyboardEvent): void;
16868
17399
  static ɵfac: i0.ɵɵFactoryDeclaration<ToolBar, never>;
16869
17400
  static ɵcmp: i0.ɵɵComponentDeclaration<ToolBar, "lily-tool-bar", never, {
16870
17401
  "label": {
@@ -17085,7 +17616,10 @@ export declare class Tooltip {
17085
17616
  */
17086
17617
  export declare class Tour {
17087
17618
  readonly label: import("@angular/core").InputSignal<string>;
17619
+ /** Whether the tour is showing. Two-way bindable; Escape sets it to false. */
17620
+ readonly active: import("@angular/core").ModelSignal<boolean>;
17088
17621
  readonly className: import("@angular/core").InputSignal<string>;
17622
+ protected onKeydown(event: KeyboardEvent): void;
17089
17623
  static ɵfac: i0.ɵɵFactoryDeclaration<Tour, never>;
17090
17624
  static ɵcmp: i0.ɵɵComponentDeclaration<Tour, "lily-tour", never, {
17091
17625
  "label": {
@@ -17093,12 +17627,19 @@ export declare class Tour {
17093
17627
  "required": false;
17094
17628
  "isSignal": true;
17095
17629
  };
17630
+ "active": {
17631
+ "alias": "active";
17632
+ "required": false;
17633
+ "isSignal": true;
17634
+ };
17096
17635
  "className": {
17097
17636
  "alias": "className";
17098
17637
  "required": false;
17099
17638
  "isSignal": true;
17100
17639
  };
17101
- }, {}, never, ["*"], true, never>;
17640
+ }, {
17641
+ "active": "activeChange";
17642
+ }, never, ["*"], true, never>;
17102
17643
  }
17103
17644
  /**
17104
17645
  * TourList — an ordered list of tour guide steps
@@ -17109,7 +17650,10 @@ export declare class Tour {
17109
17650
  */
17110
17651
  export declare class TourList {
17111
17652
  readonly label: import("@angular/core").InputSignal<string>;
17653
+ /** Whether the tour is showing. Two-way bindable; Escape sets it to false. */
17654
+ readonly active: import("@angular/core").ModelSignal<boolean>;
17112
17655
  readonly className: import("@angular/core").InputSignal<string>;
17656
+ protected onKeydown(event: KeyboardEvent): void;
17113
17657
  static ɵfac: i0.ɵɵFactoryDeclaration<TourList, never>;
17114
17658
  static ɵcmp: i0.ɵɵComponentDeclaration<TourList, "lily-tour-list", never, {
17115
17659
  "label": {
@@ -17117,12 +17661,19 @@ export declare class TourList {
17117
17661
  "required": false;
17118
17662
  "isSignal": true;
17119
17663
  };
17664
+ "active": {
17665
+ "alias": "active";
17666
+ "required": false;
17667
+ "isSignal": true;
17668
+ };
17120
17669
  "className": {
17121
17670
  "alias": "className";
17122
17671
  "required": false;
17123
17672
  "isSignal": true;
17124
17673
  };
17125
- }, {}, never, ["*"], true, never>;
17674
+ }, {
17675
+ "active": "activeChange";
17676
+ }, never, ["*"], true, never>;
17126
17677
  }
17127
17678
  /**
17128
17679
  * TourListItem — one step in a tour guide list
@@ -17211,6 +17762,8 @@ export declare class TreeLink {
17211
17762
  export declare class TreeList {
17212
17763
  readonly label: import("@angular/core").InputSignal<string>;
17213
17764
  readonly className: import("@angular/core").InputSignal<string>;
17765
+ /** Focus moves over the `role="treeitem"` descendants (up/down, wrapping; Home/End). */
17766
+ protected onKeydown(event: KeyboardEvent): void;
17214
17767
  static ɵfac: i0.ɵɵFactoryDeclaration<TreeList, never>;
17215
17768
  static ɵcmp: i0.ɵɵComponentDeclaration<TreeList, "lily-tree-list", never, {
17216
17769
  "label": {
@@ -17239,6 +17792,9 @@ export declare class TreeList {
17239
17792
  */
17240
17793
  export declare class TreeListItem {
17241
17794
  readonly className: import("@angular/core").InputSignal<string>;
17795
+ /** Expanded state, two-way bindable. Leave undefined for a leaf (no aria-expanded). */
17796
+ readonly expanded: import("@angular/core").ModelSignal<boolean | undefined>;
17797
+ protected onKeydown(event: KeyboardEvent): void;
17242
17798
  static ɵfac: i0.ɵɵFactoryDeclaration<TreeListItem, never>;
17243
17799
  static ɵcmp: i0.ɵɵComponentDeclaration<TreeListItem, "li[lily-tree-list-item]", never, {
17244
17800
  "className": {
@@ -17246,7 +17802,14 @@ export declare class TreeListItem {
17246
17802
  "required": false;
17247
17803
  "isSignal": true;
17248
17804
  };
17249
- }, {}, never, ["*"], true, never>;
17805
+ "expanded": {
17806
+ "alias": "expanded";
17807
+ "required": false;
17808
+ "isSignal": true;
17809
+ };
17810
+ }, {
17811
+ "expanded": "expandedChange";
17812
+ }, never, ["*"], true, never>;
17250
17813
  }
17251
17814
  /**
17252
17815
  * TreeMenu — a hierarchical tree menu with expandable branches
@@ -18061,6 +18624,110 @@ export declare class WeekInput {
18061
18624
  "value": "valueChange";
18062
18625
  }, never, never, true, never>;
18063
18626
  }
18627
+ /**
18628
+ * Keyboard model for a wheel picker: a single-select listbox where the selection follows the cursor (APG listbox, "selection
18629
+ * follows focus"), so moving the cursor IS choosing. Pure and framework-neutral, tested without a browser.
18630
+ *
18631
+ * Disabled options are skipped by every move. Arrows wrap only when `loop` is set; Home, End, PageUp and PageDown never wrap.
18632
+ */
18633
+ export interface WheelOption {
18634
+ value: string;
18635
+ label: string;
18636
+ disabled?: boolean;
18637
+ }
18638
+ export type WheelMoveKey = "ArrowUp" | "ArrowDown" | "Home" | "End" | "PageUp" | "PageDown";
18639
+ export interface WheelMoveOptions {
18640
+ /** Arrow keys wrap from the last enabled option to the first and back. Default false. */
18641
+ loop?: boolean;
18642
+ /** Enabled options PageUp / PageDown move by. Default 5. */
18643
+ pageSize?: number;
18644
+ }
18645
+ export interface WheelTypeahead {
18646
+ prefix: string;
18647
+ at: number;
18648
+ }
18649
+ /**
18650
+ * WheelPicker — a vertical single-select listbox where the selection follows the cursor.
18651
+ *
18652
+ * Mirrors the Svelte canonical: moving with the arrow keys, typing, or clicking an option chooses it. The component owns
18653
+ * the roles and the keys; the wheel LOOK (scroll snapping, fading) is the consumer's CSS. `value` is a two-way `model`
18654
+ * (`[(value)]`); the listbox is `.wheel-picker-list` (`role="listbox"`, vertical, `aria-activedescendant`), each option
18655
+ * `.wheel-picker-option` (`role="option"`, `aria-selected`, `aria-disabled`). Keyboard (APG listbox, selection follows
18656
+ * focus): ArrowDown / ArrowUp, Home / End, PageDown / PageUp, type-ahead over the labels; disabled options are skipped.
18657
+ *
18658
+ * Inputs: `label` (required), `options` (required), `value` (model), `loop`, `pageSize`, `disabled`, `name`, `className`.
18659
+ * Deviation from Svelte: no rest-props spread (Angular cannot spread onto an inner element).
18660
+ */
18661
+ export declare class WheelPicker {
18662
+ readonly className: import("@angular/core").InputSignal<string>;
18663
+ /** Accessible name. */
18664
+ readonly label: import("@angular/core").InputSignal<string>;
18665
+ /** The choices. */
18666
+ readonly options: import("@angular/core").InputSignal<WheelOption[]>;
18667
+ /** The selected option's value; two-way. */
18668
+ readonly value: import("@angular/core").ModelSignal<string>;
18669
+ /** Arrow keys wrap at the ends. */
18670
+ readonly loop: import("@angular/core").InputSignal<boolean>;
18671
+ /** Enabled options PageUp / PageDown move by. */
18672
+ readonly pageSize: import("@angular/core").InputSignal<number>;
18673
+ /** Ignores keys and clicks. */
18674
+ readonly disabled: import("@angular/core").InputSignal<boolean>;
18675
+ /** Form field name for a hidden input. */
18676
+ readonly name: import("@angular/core").InputSignal<string | undefined>;
18677
+ protected readonly uid: string;
18678
+ private readonly list;
18679
+ private typeahead;
18680
+ protected selectedIndex(): number;
18681
+ constructor();
18682
+ private select;
18683
+ protected onKeydown(event: KeyboardEvent): void;
18684
+ protected onClick(event: MouseEvent): void;
18685
+ static ɵfac: i0.ɵɵFactoryDeclaration<WheelPicker, never>;
18686
+ static ɵcmp: i0.ɵɵComponentDeclaration<WheelPicker, "lily-wheel-picker", never, {
18687
+ "className": {
18688
+ "alias": "className";
18689
+ "required": false;
18690
+ "isSignal": true;
18691
+ };
18692
+ "label": {
18693
+ "alias": "label";
18694
+ "required": true;
18695
+ "isSignal": true;
18696
+ };
18697
+ "options": {
18698
+ "alias": "options";
18699
+ "required": true;
18700
+ "isSignal": true;
18701
+ };
18702
+ "value": {
18703
+ "alias": "value";
18704
+ "required": false;
18705
+ "isSignal": true;
18706
+ };
18707
+ "loop": {
18708
+ "alias": "loop";
18709
+ "required": false;
18710
+ "isSignal": true;
18711
+ };
18712
+ "pageSize": {
18713
+ "alias": "pageSize";
18714
+ "required": false;
18715
+ "isSignal": true;
18716
+ };
18717
+ "disabled": {
18718
+ "alias": "disabled";
18719
+ "required": false;
18720
+ "isSignal": true;
18721
+ };
18722
+ "name": {
18723
+ "alias": "name";
18724
+ "required": false;
18725
+ "isSignal": true;
18726
+ };
18727
+ }, {
18728
+ "value": "valueChange";
18729
+ }, never, never, true, never>;
18730
+ }
18064
18731
  /**
18065
18732
  * YisraelTeudatZehutInput — an input for entering Israel's Teudat Zehut (תעודת זהות)
18066
18733
  *