@radix-ng/primitives 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/fesm2022/radix-ng-primitives-accordion.mjs +35 -27
  2. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +34 -34
  4. package/fesm2022/radix-ng-primitives-arrow.mjs +3 -3
  5. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +5 -4
  6. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  7. package/fesm2022/radix-ng-primitives-autocomplete.mjs +175 -125
  8. package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
  9. package/fesm2022/radix-ng-primitives-avatar.mjs +25 -19
  10. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  11. package/fesm2022/radix-ng-primitives-button.mjs +11 -7
  12. package/fesm2022/radix-ng-primitives-button.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-calendar.mjs +140 -90
  14. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-checkbox.mjs +61 -40
  16. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-collapsible.mjs +35 -24
  18. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-combobox.mjs +278 -177
  20. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-composite.mjs +50 -33
  22. package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-config.mjs +7 -5
  24. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  25. package/fesm2022/radix-ng-primitives-context-menu.mjs +48 -22
  26. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-core.mjs +44 -28
  28. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-cropper.mjs +73 -45
  30. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  31. package/fesm2022/radix-ng-primitives-date-field.mjs +70 -40
  32. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  33. package/fesm2022/radix-ng-primitives-dialog.mjs +93 -67
  34. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  35. package/fesm2022/radix-ng-primitives-direction-provider.mjs +5 -4
  36. package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -1
  37. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +20 -16
  38. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  39. package/fesm2022/radix-ng-primitives-drawer.mjs +107 -81
  40. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  41. package/fesm2022/radix-ng-primitives-editable.mjs +53 -39
  42. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  43. package/fesm2022/radix-ng-primitives-field.mjs +69 -42
  44. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  45. package/fesm2022/radix-ng-primitives-fieldset.mjs +8 -7
  46. package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -1
  47. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +77 -40
  48. package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -1
  49. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  50. package/fesm2022/radix-ng-primitives-focus-scope.mjs +7 -5
  51. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-form.mjs +25 -16
  53. package/fesm2022/radix-ng-primitives-form.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-input.mjs +41 -22
  55. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-label.mjs +7 -5
  57. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-menu.mjs +274 -154
  59. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-menubar.mjs +35 -17
  61. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-meter.mjs +41 -30
  63. package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +220 -183
  65. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-number-field.mjs +87 -59
  67. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-pagination.mjs +48 -38
  69. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-popover.mjs +150 -107
  71. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-popper.mjs +79 -47
  73. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  74. package/fesm2022/radix-ng-primitives-portal.mjs +20 -13
  75. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-presence.mjs +3 -3
  77. package/fesm2022/radix-ng-primitives-preview-card.mjs +119 -74
  78. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  79. package/fesm2022/radix-ng-primitives-progress.mjs +43 -31
  80. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  81. package/fesm2022/radix-ng-primitives-radio.mjs +58 -35
  82. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  83. package/fesm2022/radix-ng-primitives-scroll-area.mjs +54 -38
  84. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  85. package/fesm2022/radix-ng-primitives-select.mjs +595 -102
  86. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  87. package/fesm2022/radix-ng-primitives-separator.mjs +7 -5
  88. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  89. package/fesm2022/radix-ng-primitives-slider.mjs +101 -63
  90. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  91. package/fesm2022/radix-ng-primitives-stepper.mjs +53 -39
  92. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  93. package/fesm2022/radix-ng-primitives-switch.mjs +23 -18
  94. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  95. package/fesm2022/radix-ng-primitives-tabs.mjs +72 -47
  96. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  97. package/fesm2022/radix-ng-primitives-time-field.mjs +72 -41
  98. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  99. package/fesm2022/radix-ng-primitives-toast.mjs +75 -56
  100. package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
  101. package/fesm2022/radix-ng-primitives-toggle-group.mjs +29 -19
  102. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  103. package/fesm2022/radix-ng-primitives-toggle.mjs +16 -11
  104. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  105. package/fesm2022/radix-ng-primitives-toolbar.mjs +38 -30
  106. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  107. package/fesm2022/radix-ng-primitives-tooltip.mjs +118 -63
  108. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  109. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +31 -20
  110. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  111. package/package.json +2 -2
  112. package/types/radix-ng-primitives-autocomplete.d.ts +3 -1
  113. package/types/radix-ng-primitives-combobox.d.ts +28 -9
  114. package/types/radix-ng-primitives-context-menu.d.ts +2 -0
  115. package/types/radix-ng-primitives-dialog.d.ts +6 -3
  116. package/types/radix-ng-primitives-floating-focus-manager.d.ts +11 -0
  117. package/types/radix-ng-primitives-menu.d.ts +47 -15
  118. package/types/radix-ng-primitives-menubar.d.ts +6 -1
  119. package/types/radix-ng-primitives-navigation-menu.d.ts +8 -6
  120. package/types/radix-ng-primitives-popover.d.ts +12 -4
  121. package/types/radix-ng-primitives-preview-card.d.ts +18 -5
  122. package/types/radix-ng-primitives-select.d.ts +186 -391
  123. package/types/radix-ng-primitives-tooltip.d.ts +17 -3
@@ -1,18 +1,16 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, OutputRef, Signal, ElementRef } from '@angular/core';
2
+ import { Signal, ElementRef, InjectionToken, OutputRef, WritableSignal } from '@angular/core';
3
3
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
4
- import { AcceptableValue, RdxCancelableChangeEventDetails, RdxFloatingRootContext, Direction, ItemValueComparator } from '@radix-ng/primitives/core';
4
+ import { AcceptableValue, RdxCancelableChangeEventDetails, RdxFloatingRootContext, Direction, ItemValueComparator, RdxTransitionStatus } from '@radix-ng/primitives/core';
5
5
  import * as _radix_ng_primitives_select from '@radix-ng/primitives/select';
6
- import * as _radix_ng_primitives_floating_focus_manager from '@radix-ng/primitives/floating-focus-manager';
7
- import { RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager';
8
6
  import * as i1 from '@radix-ng/primitives/composite';
9
7
  import { RdxCompositeItemRegistration } from '@radix-ng/primitives/composite';
10
8
  import { RdxOutsidePressDomEvent } from '@radix-ng/primitives/dismissable-layer';
11
9
  import * as i1$1 from '@radix-ng/primitives/popper';
12
10
  import { RdxPopperContentWrapper } from '@radix-ng/primitives/popper';
13
- import * as _radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager from '@radix-ng/primitives/types/radix-ng-primitives-floating-focus-manager';
11
+ import * as i2 from '@radix-ng/primitives/floating-focus-manager';
12
+ import { RdxInteractionType } from '@radix-ng/primitives/floating-focus-manager';
14
13
  import * as _radix_ng_primitives_types_radix_ng_primitives_core from '@radix-ng/primitives/types/radix-ng-primitives-core';
15
- import * as _radix_ng_primitives_types_radix_ng_primitives_composite from '@radix-ng/primitives/types/radix-ng-primitives-composite';
16
14
  import * as i1$2 from '@radix-ng/primitives/portal';
17
15
 
18
16
  declare class RdxSelectGroupLabel {
@@ -27,37 +25,7 @@ declare class RdxSelectGroupLabel {
27
25
  * @group Components
28
26
  */
29
27
  declare class RdxSelectBackdrop {
30
- protected readonly rootContext: {
31
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
32
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
33
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
34
- x: number;
35
- y: number;
36
- } | null>;
37
- contentId: string;
38
- dir: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_core.Direction>;
39
- value: _angular_core.ModelSignal<_radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue | _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue[] | undefined>;
40
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
41
- isItemEqualToValue: _angular_core.InputSignal<_radix_ng_primitives_types_radix_ng_primitives_core.ItemValueComparator<_radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue> | undefined>;
42
- itemToStringLabel: _angular_core.InputSignal<((value: _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue) => string) | undefined>;
43
- open: _angular_core.ModelSignal<boolean>;
44
- openedByTouch: _angular_core.WritableSignal<boolean>;
45
- openMethod: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
46
- openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
47
- closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
48
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
49
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
50
- isEmptyModelValue: _angular_core.Signal<boolean>;
51
- transitionStatus: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_core.RdxTransitionStatus>;
52
- registerTransitionElement: (element: HTMLElement) => () => void;
53
- optionsSet: _angular_core.WritableSignal<Set<_radix_ng_primitives_select.SelectOption>>;
54
- onOptionAdd: (option: any) => void;
55
- onOptionRemove: (option: any) => void;
56
- onValueChange: (value: _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue, reason?: _radix_ng_primitives_select.RdxSelectValueChangeReason, event?: Event) => boolean;
57
- onTriggerChange: (node: any) => void;
58
- onValueElementChange: (node: any) => void;
59
- onOpenChange: (value: boolean, reason?: _radix_ng_primitives_select.RdxSelectOpenChangeReason, event?: Event) => boolean;
60
- };
28
+ protected readonly rootContext: _radix_ng_primitives_select.RdxSelectRootContext;
61
29
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectBackdrop, never>;
62
30
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectBackdrop, "[rdxSelectBackdrop]", ["rdxSelectBackdrop"], {}, {}, never, never, true, never>;
63
31
  }
@@ -78,44 +46,31 @@ declare class RdxSelectIcon {
78
46
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectIcon, "[rdxSelectIcon]", ["rdxSelectIcon"], {}, {}, never, never, true, never>;
79
47
  }
80
48
 
81
- declare const context$2: () => {
82
- value: _angular_core.InputSignal<any>;
83
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
84
- isSelected: _angular_core.Signal<boolean>;
85
- textId: string;
86
- onItemTextChange: (node: any) => void;
87
- };
88
- type RdxSelectItemContext = ReturnType<typeof context$2>;
89
- declare const injectSelectItemContext: _radix_ng_primitives_core.InjectContext<{
90
- value: _angular_core.InputSignal<any>;
91
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
92
- isSelected: _angular_core.Signal<boolean>;
49
+ interface RdxSelectItemContext {
50
+ value: Signal<AcceptableValue | undefined>;
51
+ disabled: Signal<boolean>;
52
+ isSelected: Signal<boolean>;
93
53
  textId: string;
94
- onItemTextChange: (node: any) => void;
95
- }>;
96
- declare const provideSelectItemContext: (useFactory: () => {
97
- value: _angular_core.InputSignal<any>;
98
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
99
- isSelected: _angular_core.Signal<boolean>;
100
- textId: string;
101
- onItemTextChange: (node: any) => void;
102
- }) => _angular_core.Provider;
54
+ onItemTextChange: (node: HTMLElement) => void;
55
+ }
56
+ declare const injectSelectItemContext: _radix_ng_primitives_core.InjectContext<RdxSelectItemContext>;
57
+ declare const provideSelectItemContext: (useFactory: () => RdxSelectItemContext) => _angular_core.Provider;
103
58
  type SelectEvent = CustomEvent<{
104
59
  originalEvent: PointerEvent | KeyboardEvent;
105
- value?: any;
60
+ value?: AcceptableValue;
106
61
  }>;
107
62
  declare class RdxSelectItem {
108
63
  private readonly rootContext;
109
64
  private readonly contentContext;
110
65
  private readonly listItem;
111
66
  private readonly currentElement;
112
- readonly value: _angular_core.InputSignal<any>;
67
+ readonly value: _angular_core.InputSignal<AcceptableValue | undefined>;
113
68
  readonly textValue: _angular_core.InputSignal<string>;
114
69
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
115
70
  readonly textValue$: _angular_core.WritableSignal<string>;
116
- readonly isSelected: _angular_core.Signal<boolean>;
71
+ readonly isSelected: Signal<boolean>;
117
72
  /** Highlighted via the highlight model (keyboard / hover), not DOM focus. */
118
- readonly isHighlighted: _angular_core.Signal<boolean>;
73
+ readonly isHighlighted: Signal<boolean>;
119
74
  /** Item id, referenced by the popup's `aria-activedescendant`. */
120
75
  readonly id: string;
121
76
  readonly textId: string;
@@ -130,93 +85,10 @@ declare class RdxSelectItem {
130
85
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectItem, "[rdxSelectItem]", ["rdxSelectItem"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "textValue": { "alias": "textValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RdxCompositeListItem; inputs: {}; outputs: {}; }]>;
131
86
  }
132
87
 
133
- declare class RdxSelectItemIndicator {
134
- readonly itemContext: {
135
- value: _angular_core.InputSignal<any>;
136
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
137
- isSelected: _angular_core.Signal<boolean>;
138
- textId: string;
139
- onItemTextChange: (node: any) => void;
140
- };
141
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectItemIndicator, never>;
142
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectItemIndicator, "[rdxSelectItemIndicator]", never, {}, {}, never, never, true, never>;
143
- }
144
-
145
- declare class RdxSelectItemText {
146
- private readonly elementRef;
147
- readonly rootContext: {
148
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
149
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
150
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
151
- x: number;
152
- y: number;
153
- } | null>;
154
- contentId: string;
155
- dir: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_core.Direction>;
156
- value: _angular_core.ModelSignal<_radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue | _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue[] | undefined>;
157
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
158
- isItemEqualToValue: _angular_core.InputSignal<_radix_ng_primitives_types_radix_ng_primitives_core.ItemValueComparator<_radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue> | undefined>;
159
- itemToStringLabel: _angular_core.InputSignal<((value: _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue) => string) | undefined>;
160
- open: _angular_core.ModelSignal<boolean>;
161
- openedByTouch: _angular_core.WritableSignal<boolean>;
162
- openMethod: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
163
- openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
164
- closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
165
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
166
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
167
- isEmptyModelValue: _angular_core.Signal<boolean>;
168
- transitionStatus: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_core.RdxTransitionStatus>;
169
- registerTransitionElement: (element: HTMLElement) => () => void;
170
- optionsSet: _angular_core.WritableSignal<Set<_radix_ng_primitives_select.SelectOption>>;
171
- onOptionAdd: (option: any) => void;
172
- onOptionRemove: (option: any) => void;
173
- onValueChange: (value: _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue, reason?: _radix_ng_primitives_select.RdxSelectValueChangeReason, event?: Event) => boolean;
174
- onTriggerChange: (node: any) => void;
175
- onValueElementChange: (node: any) => void;
176
- onOpenChange: (value: boolean, reason?: _radix_ng_primitives_select.RdxSelectOpenChangeReason, event?: Event) => boolean;
177
- };
178
- readonly contentContext: {
179
- content: _angular_core.WritableSignal<HTMLElement | null>;
180
- viewport: _angular_core.WritableSignal<HTMLElement | undefined>;
181
- isPositioned: _angular_core.WritableSignal<boolean>;
182
- selectedItem: _angular_core.WritableSignal<HTMLElement | undefined>;
183
- selectedItemText: _angular_core.WritableSignal<HTMLElement | undefined>;
184
- items: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_composite.RdxCompositeItemRegistration<_radix_ng_primitives_select.RdxSelectItemMetadata>[]>;
185
- highlightedItem: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_composite.RdxCompositeItemRegistration<_radix_ng_primitives_select.RdxSelectItemMetadata> | null>;
186
- isHighlighted: (element: HTMLElement) => boolean;
187
- highlightItem: (element: HTMLElement) => void;
188
- isKeyboardActive: () => boolean;
189
- setKeyboardActive: (value: boolean) => void;
190
- onViewportChange: (node: any) => void;
191
- onItemLeave: () => void;
192
- itemRefCallback: (node: any, value: any, disabled: boolean) => void;
193
- itemTextRefCallback: (node: any, value: any, disabled: any) => void;
194
- };
195
- readonly itemContext: {
196
- value: _angular_core.InputSignal<any>;
197
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
198
- isSelected: _angular_core.Signal<boolean>;
199
- textId: string;
200
- onItemTextChange: (node: any) => void;
201
- };
202
- readonly optionProps: _angular_core.Signal<{
203
- value: any;
204
- disabled: boolean;
205
- textContent: any;
206
- }>;
207
- constructor();
208
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectItemText, never>;
209
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectItemText, "[rdxSelectItemText]", never, {}, {}, never, never, true, never>;
210
- }
211
-
212
- declare class RdxSelectList {
213
- private readonly contentContext;
214
- private readonly elementRef;
215
- private readonly prevScrollTopRef;
216
- constructor();
217
- handleScroll(event: Event): void;
218
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectList, never>;
219
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectList, "[rdxSelectList]", never, {}, {}, never, never, true, never>;
88
+ declare class RdxSelectItemAlignedPositionContent {
89
+ readonly currentElementRef: ElementRef<any>;
90
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectItemAlignedPositionContent, never>;
91
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectItemAlignedPositionContent, "[rdxSelectItemAlignedPositionContent]", never, {}, {}, never, never, true, never>;
220
92
  }
221
93
 
222
94
  declare const OPEN_KEYS: string[];
@@ -224,70 +96,37 @@ declare const SELECTION_KEYS: string[];
224
96
  declare const CONTENT_MARGIN = 10;
225
97
  interface RdxSelectItemMetadata {
226
98
  [key: string]: unknown;
227
- value: any;
99
+ value: AcceptableValue | undefined;
228
100
  disabled: boolean;
229
101
  textValue?: string;
230
102
  }
231
- declare function valueComparator<T>(value: T | T[] | undefined, currentValue: T, comparator?: string | ((a: T, b: T) => boolean)): boolean;
103
+ declare function valueComparator<T>(value: T | T[] | undefined, currentValue: T | undefined, comparator?: string | ((a: T, b: T) => boolean)): boolean;
232
104
  declare function compare<T>(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)): boolean;
233
105
  declare function shouldShowPlaceholder(value?: AcceptableValue | AcceptableValue[]): boolean;
234
106
  declare function focusFirst(candidates: HTMLElement[]): void;
235
107
 
236
108
  type RdxSelectCompositeItem = RdxCompositeItemRegistration<RdxSelectItemMetadata>;
237
- declare const context$1: () => {
238
- content: _angular_core.WritableSignal<HTMLElement | null>;
239
- viewport: _angular_core.WritableSignal<HTMLElement | undefined>;
240
- isPositioned: _angular_core.WritableSignal<boolean>;
241
- selectedItem: _angular_core.WritableSignal<HTMLElement | undefined>;
242
- selectedItemText: _angular_core.WritableSignal<HTMLElement | undefined>;
243
- items: Signal<RdxSelectCompositeItem[]>;
244
- highlightedItem: Signal<RdxSelectCompositeItem | null>;
245
- isHighlighted: (element: HTMLElement) => boolean;
246
- highlightItem: (element: HTMLElement) => void;
247
- isKeyboardActive: () => boolean;
248
- setKeyboardActive: (value: boolean) => void;
249
- onViewportChange: (node: any) => void;
250
- onItemLeave: () => void;
251
- itemRefCallback: (node: any, value: any, disabled: boolean) => void;
252
- itemTextRefCallback: (node: any, value: any, disabled: any) => void;
253
- };
254
- type RdxSelectPopupContext = ReturnType<typeof context$1>;
255
- declare const injectSelectPopupContext: _radix_ng_primitives_core.InjectContext<{
256
- content: _angular_core.WritableSignal<HTMLElement | null>;
257
- viewport: _angular_core.WritableSignal<HTMLElement | undefined>;
258
- isPositioned: _angular_core.WritableSignal<boolean>;
259
- selectedItem: _angular_core.WritableSignal<HTMLElement | undefined>;
260
- selectedItemText: _angular_core.WritableSignal<HTMLElement | undefined>;
261
- items: Signal<RdxSelectCompositeItem[]>;
262
- highlightedItem: Signal<RdxSelectCompositeItem | null>;
263
- isHighlighted: (element: HTMLElement) => boolean;
264
- highlightItem: (element: HTMLElement) => void;
265
- isKeyboardActive: () => boolean;
266
- setKeyboardActive: (value: boolean) => void;
267
- onViewportChange: (node: any) => void;
268
- onItemLeave: () => void;
269
- itemRefCallback: (node: any, value: any, disabled: boolean) => void;
270
- itemTextRefCallback: (node: any, value: any, disabled: any) => void;
271
- }>;
272
- declare const provideSelectPopupContext: (useFactory: () => {
273
- content: _angular_core.WritableSignal<HTMLElement | null>;
274
- viewport: _angular_core.WritableSignal<HTMLElement | undefined>;
275
- isPositioned: _angular_core.WritableSignal<boolean>;
276
- selectedItem: _angular_core.WritableSignal<HTMLElement | undefined>;
277
- selectedItemText: _angular_core.WritableSignal<HTMLElement | undefined>;
109
+ interface RdxSelectPopupContext {
110
+ content: Signal<HTMLElement | null>;
111
+ viewport: Signal<HTMLElement | undefined>;
112
+ isPositioned: Signal<boolean>;
113
+ selectedItem: Signal<HTMLElement | undefined>;
114
+ selectedItemText: Signal<HTMLElement | undefined>;
278
115
  items: Signal<RdxSelectCompositeItem[]>;
279
116
  highlightedItem: Signal<RdxSelectCompositeItem | null>;
280
117
  isHighlighted: (element: HTMLElement) => boolean;
281
118
  highlightItem: (element: HTMLElement) => void;
282
119
  isKeyboardActive: () => boolean;
283
120
  setKeyboardActive: (value: boolean) => void;
284
- onViewportChange: (node: any) => void;
121
+ onViewportChange: (node: HTMLElement | undefined) => void;
285
122
  onItemLeave: () => void;
286
- itemRefCallback: (node: any, value: any, disabled: boolean) => void;
287
- itemTextRefCallback: (node: any, value: any, disabled: any) => void;
288
- }) => _angular_core.Provider;
123
+ itemRefCallback: (node: HTMLElement, value: AcceptableValue | undefined, disabled: boolean) => void;
124
+ itemTextRefCallback: (node: HTMLElement, value: AcceptableValue | undefined, disabled: boolean) => void;
125
+ }
126
+ declare const injectSelectPopupContext: _radix_ng_primitives_core.InjectContext<RdxSelectPopupContext>;
127
+ declare const provideSelectPopupContext: (useFactory: () => RdxSelectPopupContext) => _angular_core.Provider;
289
128
  interface RdxPositionerImpl {
290
- placed: OutputRef<any>;
129
+ placed: OutputRef<void>;
291
130
  /**
292
131
  * Whether **item-aligned** positioning is currently active (Base UI `alignItemWithTriggerActive`).
293
132
  * `true` only for the item-aligned positioner while open **and not touch-opened** — a touch open
@@ -316,37 +155,7 @@ declare class RdxSelectPopup {
316
155
  private readonly currentElement;
317
156
  private readonly compositeList;
318
157
  private readonly injector;
319
- readonly rootContext: {
320
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
321
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
322
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
323
- x: number;
324
- y: number;
325
- } | null>;
326
- contentId: string;
327
- dir: Signal<_radix_ng_primitives_core.Direction>;
328
- value: _angular_core.ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
329
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
330
- isItemEqualToValue: _angular_core.InputSignal<_radix_ng_primitives_core.ItemValueComparator<AcceptableValue> | undefined>;
331
- itemToStringLabel: _angular_core.InputSignal<((value: AcceptableValue) => string) | undefined>;
332
- open: _angular_core.ModelSignal<boolean>;
333
- openedByTouch: _angular_core.WritableSignal<boolean>;
334
- openMethod: Signal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
335
- openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
336
- closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
337
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
338
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
339
- isEmptyModelValue: Signal<boolean>;
340
- transitionStatus: Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
341
- registerTransitionElement: (element: HTMLElement) => () => void;
342
- optionsSet: _angular_core.WritableSignal<Set<_radix_ng_primitives_select.SelectOption>>;
343
- onOptionAdd: (option: any) => void;
344
- onOptionRemove: (option: any) => void;
345
- onValueChange: (value: AcceptableValue, reason?: _radix_ng_primitives_select.RdxSelectValueChangeReason, event?: Event) => boolean;
346
- onTriggerChange: (node: any) => void;
347
- onValueElementChange: (node: any) => void;
348
- onOpenChange: (value: boolean, reason?: _radix_ng_primitives_select.RdxSelectOpenChangeReason, event?: Event) => boolean;
349
- };
158
+ readonly rootContext: _radix_ng_primitives_select.RdxSelectRootContext;
350
159
  /**
351
160
  * The collected items (DOM order). Exposed so the `item-aligned` positioner — now the popup's
352
161
  * **ancestor** — can read them without injecting the composite list (which the popup provides as
@@ -366,6 +175,8 @@ declare class RdxSelectPopup {
366
175
  readonly isPositioned: _angular_core.WritableSignal<boolean>;
367
176
  private keyboardActive;
368
177
  private hasHighlightedOpen;
178
+ private typeaheadSearch;
179
+ private typeaheadTimer?;
369
180
  /**
370
181
  * Event handler called when the escape key is down.
371
182
  * Can be prevented.
@@ -391,8 +202,72 @@ declare class RdxSelectPopup {
391
202
  setKeyboardActive(value: boolean): void;
392
203
  isKeyboardActive(): boolean;
393
204
  handleKeyDown(event: Event): void;
205
+ /** Accumulates printable keys for 1s and moves the highlight to the next item whose text matches. */
206
+ private handleTypeahead;
207
+ private itemText;
394
208
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPopup, never>;
395
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPopup, "[rdxSelectPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof _radix_ng_primitives_floating_focus_manager.RdxFloatingFocusManager; inputs: { "returnFocus": "finalFocus"; }; outputs: {}; }, { directive: typeof _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxCompositeList; inputs: {}; outputs: {}; }]>;
209
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPopup, "[rdxSelectPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }, { directive: typeof i2.RdxFloatingFocusManager; inputs: { "returnFocus": "finalFocus"; }; outputs: {}; }, { directive: typeof _radix_ng_primitives_core.RdxFloatingNodeRegistration; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxCompositeList; inputs: {}; outputs: {}; }]>;
210
+ }
211
+
212
+ declare class RdxSelectItemAlignedPosition implements RdxPositionerImpl {
213
+ private readonly currentElement;
214
+ private readonly rootContext;
215
+ /**
216
+ * The popup is now a **descendant** (item-aligned-position is the outer positioner), so read the
217
+ * viewport / selected-item measurements off the popup instance instead of injecting its context.
218
+ */
219
+ readonly popup: _angular_core.Signal<RdxSelectPopup>;
220
+ readonly placed: _angular_core.OutputEmitterRef<void>;
221
+ /**
222
+ * Whether item-aligned positioning is active (Base UI `alignItemWithTriggerActive`): open **and not**
223
+ * touch-opened. A touch open falls back to a plain anchored dropdown ({@link positionBelowTrigger}).
224
+ * Read by the popup's scroll-lock policy — an active item-aligned popup locks even when `modal=false`.
225
+ */
226
+ readonly alignItemWithTriggerActive: _angular_core.Signal<boolean>;
227
+ readonly contentZIndex: _angular_core.WritableSignal<string>;
228
+ readonly shouldExpandOnScrollRef: _angular_core.WritableSignal<boolean>;
229
+ readonly contentWrapperElement: _angular_core.WritableSignal<HTMLElement | undefined>;
230
+ readonly contentElement: _angular_core.Signal<RdxSelectItemAlignedPositionContent>;
231
+ constructor();
232
+ position(): void;
233
+ /**
234
+ * Touch fallback (Base UI disables item-alignment on touch): position the popup as a plain anchored
235
+ * dropdown just below the trigger, clamped to the viewport, with no item alignment or pre-scroll.
236
+ */
237
+ private positionBelowTrigger;
238
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectItemAlignedPosition, never>;
239
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectItemAlignedPosition, "[rdxSelectItemAlignedPosition]", never, {}, { "placed": "placed"; }, ["popup", "contentElement"], never, true, never>;
240
+ }
241
+
242
+ declare class RdxSelectItemIndicator {
243
+ readonly itemContext: _radix_ng_primitives_select.RdxSelectItemContext;
244
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectItemIndicator, never>;
245
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectItemIndicator, "[rdxSelectItemIndicator]", never, {}, {}, never, never, true, never>;
246
+ }
247
+
248
+ declare class RdxSelectItemText {
249
+ private readonly elementRef;
250
+ readonly rootContext: _radix_ng_primitives_select.RdxSelectRootContext;
251
+ readonly contentContext: _radix_ng_primitives_select.RdxSelectPopupContext;
252
+ readonly itemContext: _radix_ng_primitives_select.RdxSelectItemContext;
253
+ readonly optionProps: _angular_core.Signal<{
254
+ value: _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue | undefined;
255
+ disabled: boolean;
256
+ textContent: any;
257
+ }>;
258
+ constructor();
259
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectItemText, never>;
260
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectItemText, "[rdxSelectItemText]", never, {}, {}, never, never, true, never>;
261
+ }
262
+
263
+ declare class RdxSelectList {
264
+ private readonly contentContext;
265
+ private readonly elementRef;
266
+ private readonly prevScrollTopRef;
267
+ constructor();
268
+ handleScroll(event: Event): void;
269
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectList, never>;
270
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectList, "[rdxSelectList]", never, {}, {}, never, never, true, never>;
396
271
  }
397
272
 
398
273
  /**
@@ -438,7 +313,7 @@ declare class RdxSelectPositioner extends RdxPopperContentWrapper implements Rdx
438
313
  }
439
314
 
440
315
  interface SelectOption {
441
- value: any;
316
+ value: AcceptableValue | undefined;
442
317
  disabled?: boolean;
443
318
  textContent: string;
444
319
  }
@@ -452,119 +327,68 @@ interface RdxSelectOpenChangeEvent {
452
327
  }
453
328
  type RdxSelectValueChangeEventDetails = RdxCancelableChangeEventDetails<RdxSelectValueChangeReason>;
454
329
  interface RdxSelectValueChangeEvent {
455
- value: AcceptableValue | AcceptableValue[];
330
+ value: AcceptableValue | AcceptableValue[] | undefined;
456
331
  eventDetails: RdxSelectValueChangeEventDetails;
457
332
  }
458
- declare const context: () => {
459
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
460
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
461
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
462
- x: number;
463
- y: number;
464
- } | null>;
465
- contentId: string;
466
- dir: Signal<Direction>;
467
- value: _angular_core.ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
468
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
469
- isItemEqualToValue: _angular_core.InputSignal<ItemValueComparator<AcceptableValue> | undefined>;
470
- itemToStringLabel: _angular_core.InputSignal<((value: AcceptableValue) => string) | undefined>;
471
- open: _angular_core.ModelSignal<boolean>;
472
- openedByTouch: _angular_core.WritableSignal<boolean>;
473
- openMethod: Signal<RdxInteractionType>;
474
- openInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
475
- closeInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
476
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
477
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
478
- isEmptyModelValue: Signal<boolean>;
479
- transitionStatus: Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
480
- registerTransitionElement: (element: HTMLElement) => () => void;
481
- optionsSet: _angular_core.WritableSignal<Set<SelectOption>>;
482
- onOptionAdd: (option: any) => void;
483
- onOptionRemove: (option: any) => void;
484
- onValueChange: (value: AcceptableValue, reason?: RdxSelectValueChangeReason, event?: Event) => boolean;
485
- onTriggerChange: (node: any) => void;
486
- onValueElementChange: (node: any) => void;
487
- onOpenChange: (value: boolean, reason?: RdxSelectOpenChangeReason, event?: Event) => boolean;
488
- };
489
- type RdxSelectRootContext = ReturnType<typeof context>;
490
- declare const injectSelectRootContext: _radix_ng_primitives_core.InjectContext<{
491
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
492
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
493
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
494
- x: number;
495
- y: number;
496
- } | null>;
497
- contentId: string;
498
- dir: Signal<Direction>;
499
- value: _angular_core.ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
500
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
501
- isItemEqualToValue: _angular_core.InputSignal<ItemValueComparator<AcceptableValue> | undefined>;
502
- itemToStringLabel: _angular_core.InputSignal<((value: AcceptableValue) => string) | undefined>;
503
- open: _angular_core.ModelSignal<boolean>;
504
- openedByTouch: _angular_core.WritableSignal<boolean>;
505
- openMethod: Signal<RdxInteractionType>;
506
- openInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
507
- closeInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
508
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
509
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
510
- isEmptyModelValue: Signal<boolean>;
511
- transitionStatus: Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
512
- registerTransitionElement: (element: HTMLElement) => () => void;
513
- optionsSet: _angular_core.WritableSignal<Set<SelectOption>>;
514
- onOptionAdd: (option: any) => void;
515
- onOptionRemove: (option: any) => void;
516
- onValueChange: (value: AcceptableValue, reason?: RdxSelectValueChangeReason, event?: Event) => boolean;
517
- onTriggerChange: (node: any) => void;
518
- onValueElementChange: (node: any) => void;
519
- onOpenChange: (value: boolean, reason?: RdxSelectOpenChangeReason, event?: Event) => boolean;
520
- }>;
521
- declare const provideSelectRootContext: (useFactory: () => {
522
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
523
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
524
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
333
+ interface RdxSelectRootContext {
334
+ triggerElement: WritableSignal<HTMLElement | null>;
335
+ valueElement: WritableSignal<HTMLElement | null>;
336
+ triggerPointerDownPosRef: WritableSignal<{
525
337
  x: number;
526
338
  y: number;
527
339
  } | null>;
528
340
  contentId: string;
529
341
  dir: Signal<Direction>;
530
- value: _angular_core.ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
531
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
532
- isItemEqualToValue: _angular_core.InputSignal<ItemValueComparator<AcceptableValue> | undefined>;
533
- itemToStringLabel: _angular_core.InputSignal<((value: AcceptableValue) => string) | undefined>;
534
- open: _angular_core.ModelSignal<boolean>;
535
- openedByTouch: _angular_core.WritableSignal<boolean>;
536
- openMethod: Signal<RdxInteractionType>;
537
- openInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
538
- closeInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
539
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
540
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
342
+ value: Signal<AcceptableValue | AcceptableValue[] | undefined>;
343
+ multiple: Signal<boolean>;
344
+ isItemEqualToValue: Signal<ItemValueComparator<AcceptableValue> | undefined>;
345
+ itemToStringLabel: Signal<((value: AcceptableValue) => string) | undefined>;
346
+ open: Signal<boolean>;
347
+ openedByTouch: Signal<boolean>;
348
+ openMethod: Signal<RdxSelectOpenMethod>;
349
+ openInteractionType: Signal<RdxInteractionType>;
350
+ closeInteractionType: Signal<RdxInteractionType>;
351
+ disabled: Signal<boolean>;
352
+ readOnly: Signal<boolean>;
353
+ required: Signal<boolean>;
354
+ modal: Signal<boolean>;
541
355
  isEmptyModelValue: Signal<boolean>;
542
- transitionStatus: Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
356
+ transitionStatus: Signal<RdxTransitionStatus>;
543
357
  registerTransitionElement: (element: HTMLElement) => () => void;
544
- optionsSet: _angular_core.WritableSignal<Set<SelectOption>>;
545
- onOptionAdd: (option: any) => void;
546
- onOptionRemove: (option: any) => void;
547
- onValueChange: (value: AcceptableValue, reason?: RdxSelectValueChangeReason, event?: Event) => boolean;
548
- onTriggerChange: (node: any) => void;
549
- onValueElementChange: (node: any) => void;
358
+ optionsSet: Signal<Set<SelectOption>>;
359
+ onOptionAdd: (option: () => SelectOption) => void;
360
+ onOptionRemove: (option: () => SelectOption) => void;
361
+ onValueChange: (value: AcceptableValue | undefined, reason?: RdxSelectValueChangeReason, event?: Event) => boolean;
362
+ onTriggerChange: (node: ElementRef<HTMLElement>) => void;
363
+ onValueElementChange: (node: HTMLElement) => void;
550
364
  onOpenChange: (value: boolean, reason?: RdxSelectOpenChangeReason, event?: Event) => boolean;
551
- }) => _angular_core.Provider;
365
+ }
366
+ declare const injectSelectRootContext: _radix_ng_primitives_core.InjectContext<RdxSelectRootContext>;
367
+ declare const provideSelectRootContext: (useFactory: () => RdxSelectRootContext) => _angular_core.Provider;
552
368
  declare class RdxSelectRoot {
553
369
  readonly contentId: string;
554
370
  readonly open: _angular_core.ModelSignal<boolean>;
555
371
  /** Whether the current open was initiated by **touch** (ADR 0016 §3 — gates the anchored scroll lock). */
556
- readonly openedByTouch: _angular_core.WritableSignal<boolean>;
372
+ readonly openedByTouch: WritableSignal<boolean>;
557
373
  /** How the select was opened. Base UI names this state `openMethod`. */
558
- readonly openInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
374
+ readonly openInteractionType: WritableSignal<RdxInteractionType>;
559
375
  /** How the select was closed. */
560
- readonly closeInteractionType: _angular_core.WritableSignal<RdxInteractionType>;
376
+ readonly closeInteractionType: WritableSignal<RdxInteractionType>;
561
377
  /** Public Base UI-aligned alias for the open interaction type. */
562
378
  readonly openMethod: Signal<RdxSelectOpenMethod>;
563
379
  /** Per-popup floating root context (ADR 0015) — `open` / `triggers` / reference for the dismissal engine. */
564
380
  readonly floatingContext: RdxFloatingRootContext;
565
381
  readonly value: _angular_core.ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
382
+ /** Initial value for the uncontrolled case. Applied once on init; `value`/`[(value)]` take over after. */
383
+ readonly defaultValue: _angular_core.InputSignal<AcceptableValue | AcceptableValue[] | undefined>;
384
+ /** Whether the select is initially open (uncontrolled). Applied once on init. */
385
+ readonly defaultOpen: _angular_core.InputSignalWithTransform<boolean, unknown>;
566
386
  readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
567
387
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
388
+ /** When `true`, the value cannot be changed by the user (the popup can still be opened to view it). */
389
+ readonly readOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
390
+ /** Marks the control as required — reflected on the trigger as `aria-required` / `data-required`. */
391
+ readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
568
392
  /** Whether the popup is modal: locks page scroll and makes outside content inert while open. */
569
393
  readonly modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
570
394
  readonly dirInput: _angular_core.InputSignal<Direction | undefined>;
@@ -581,24 +405,54 @@ declare class RdxSelectRoot {
581
405
  readonly onOpenChangeComplete: _angular_core.OutputEmitterRef<boolean>;
582
406
  private readonly transition;
583
407
  /** Open/close transition phase, for `data-starting-style` / `data-ending-style`. */
584
- readonly transitionStatus: Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
408
+ readonly transitionStatus: Signal<RdxTransitionStatus>;
585
409
  /** Registers the popup element whose animation determines transition completion. */
586
410
  readonly registerTransitionElement: (element: HTMLElement) => () => void;
587
411
  readonly isEmptyModelValue: Signal<boolean>;
412
+ private hasAppliedDefaultValue;
413
+ private hasAppliedDefaultOpen;
588
414
  constructor();
589
- readonly optionsSet: _angular_core.WritableSignal<Set<SelectOption>>;
415
+ readonly optionsSet: WritableSignal<Set<SelectOption>>;
590
416
  readonly nativeSelectKey: Signal<string>;
591
- readonly triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
592
- readonly valueElement: _angular_core.WritableSignal<HTMLElement | null>;
593
- readonly triggerPointerDownPosRef: _angular_core.WritableSignal<{
417
+ readonly triggerElement: WritableSignal<HTMLElement | null>;
418
+ readonly valueElement: WritableSignal<HTMLElement | null>;
419
+ readonly triggerPointerDownPosRef: WritableSignal<{
594
420
  x: number;
595
421
  y: number;
596
422
  } | null>;
597
423
  getOption(value: SelectOption['value']): SelectOption | undefined;
598
- setValue(value: AcceptableValue, reason?: RdxSelectValueChangeReason, event?: Event): boolean;
424
+ setValue(value: AcceptableValue | undefined, reason?: RdxSelectValueChangeReason, event?: Event): boolean;
599
425
  setOpen(open: boolean, reason?: RdxSelectOpenChangeReason, event?: Event): boolean;
600
426
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectRoot, never>;
601
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectRoot, "[rdxSelectRoot]", ["rdxSelectRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToStringLabel": { "alias": "itemToStringLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "value": "valueChange"; "onOpenChange": "onOpenChange"; "onValueChange": "onValueChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1$1.RdxPopper; inputs: {}; outputs: {}; }]>;
427
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectRoot, "[rdxSelectRoot]", ["rdxSelectRoot"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "modal": { "alias": "modal"; "required": false; "isSignal": true; }; "dirInput": { "alias": "dir"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToStringLabel": { "alias": "itemToStringLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "value": "valueChange"; "onOpenChange": "onOpenChange"; "onValueChange": "onValueChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1$1.RdxPopper; inputs: {}; outputs: {}; }]>;
428
+ }
429
+
430
+ declare class RdxSelectScrollButtonBase {
431
+ private readonly contentContext;
432
+ readonly autoScrollTimerRef: _angular_core.WritableSignal<number | null>;
433
+ readonly autoScroll: _angular_core.OutputEmitterRef<void>;
434
+ constructor();
435
+ clearAutoScrollTimer(): void;
436
+ handlePointerDown(): void;
437
+ handlePointerMove(): void;
438
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectScrollButtonBase, never>;
439
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectScrollButtonBase, "[rdxSelectScrollButtonBase]", never, {}, { "autoScroll": "autoScroll"; }, never, never, true, never>;
440
+ }
441
+
442
+ declare class RdxSelectScrollDownButton {
443
+ private readonly contentContext;
444
+ readonly canScrollDown: _angular_core.WritableSignal<boolean>;
445
+ constructor();
446
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectScrollDownButton, never>;
447
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectScrollDownButton, "[rdxSelectScrollDownButton]", never, {}, {}, never, never, true, [{ directive: typeof RdxSelectScrollButtonBase; inputs: {}; outputs: {}; }]>;
448
+ }
449
+
450
+ declare class RdxSelectScrollUpButton {
451
+ private readonly contentContext;
452
+ readonly canScrollUp: _angular_core.WritableSignal<boolean>;
453
+ constructor();
454
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectScrollUpButton, never>;
455
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectScrollUpButton, "[rdxSelectScrollUpButton]", never, {}, {}, never, never, true, [{ directive: typeof RdxSelectScrollButtonBase; inputs: {}; outputs: {}; }]>;
602
456
  }
603
457
 
604
458
  /**
@@ -612,46 +466,17 @@ declare class RdxSelectSeparator {
612
466
  }
613
467
 
614
468
  declare class RdxSelectTrigger {
615
- readonly rootContext: {
616
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
617
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
618
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
619
- x: number;
620
- y: number;
621
- } | null>;
622
- contentId: string;
623
- dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
624
- value: _angular_core.ModelSignal<_radix_ng_primitives_core.AcceptableValue | _radix_ng_primitives_core.AcceptableValue[] | undefined>;
625
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
626
- isItemEqualToValue: _angular_core.InputSignal<_radix_ng_primitives_core.ItemValueComparator<_radix_ng_primitives_core.AcceptableValue> | undefined>;
627
- itemToStringLabel: _angular_core.InputSignal<((value: _radix_ng_primitives_core.AcceptableValue) => string) | undefined>;
628
- open: _angular_core.ModelSignal<boolean>;
629
- openedByTouch: _angular_core.WritableSignal<boolean>;
630
- openMethod: _angular_core.Signal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
631
- openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
632
- closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
633
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
634
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
635
- isEmptyModelValue: _angular_core.Signal<boolean>;
636
- transitionStatus: _angular_core.Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
637
- registerTransitionElement: (element: HTMLElement) => () => void;
638
- optionsSet: _angular_core.WritableSignal<Set<_radix_ng_primitives_select.SelectOption>>;
639
- onOptionAdd: (option: any) => void;
640
- onOptionRemove: (option: any) => void;
641
- onValueChange: (value: _radix_ng_primitives_core.AcceptableValue, reason?: _radix_ng_primitives_select.RdxSelectValueChangeReason, event?: Event) => boolean;
642
- onTriggerChange: (node: any) => void;
643
- onValueElementChange: (node: any) => void;
644
- onOpenChange: (value: boolean, reason?: _radix_ng_primitives_select.RdxSelectOpenChangeReason, event?: Event) => boolean;
645
- };
469
+ readonly rootContext: _radix_ng_primitives_select.RdxSelectRootContext;
646
470
  readonly elementRef: ElementRef<HTMLElement>;
647
471
  private readonly fieldRootContext;
648
472
  /** The trigger id; Field labels and descriptions reference it for accessible relationships. */
649
473
  readonly id: _angular_core.InputSignal<string>;
650
474
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
651
475
  readonly isDisabled: _angular_core.Signal<boolean>;
652
- protected readonly triggerInteraction: _radix_ng_primitives_floating_focus_manager.RdxTriggerInteraction;
476
+ protected readonly triggerInteraction: i2.RdxTriggerInteraction;
653
477
  protected readonly invalidState: _angular_core.Signal<boolean>;
654
478
  protected readonly requiredState: _angular_core.Signal<boolean>;
479
+ protected readonly readOnlyState: _angular_core.Signal<boolean>;
655
480
  protected readonly filledState: _angular_core.Signal<boolean>;
656
481
  protected readonly focusedState: _angular_core.Signal<boolean>;
657
482
  protected readonly describedBy: _angular_core.Signal<string | undefined>;
@@ -670,37 +495,7 @@ declare class RdxSelectTrigger {
670
495
  }
671
496
 
672
497
  declare class RdxSelectValue {
673
- readonly rootContext: {
674
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
675
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
676
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
677
- x: number;
678
- y: number;
679
- } | null>;
680
- contentId: string;
681
- dir: _angular_core.Signal<_radix_ng_primitives_core.Direction>;
682
- value: _angular_core.ModelSignal<AcceptableValue | AcceptableValue[] | undefined>;
683
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
684
- isItemEqualToValue: _angular_core.InputSignal<_radix_ng_primitives_core.ItemValueComparator<AcceptableValue> | undefined>;
685
- itemToStringLabel: _angular_core.InputSignal<((value: AcceptableValue) => string) | undefined>;
686
- open: _angular_core.ModelSignal<boolean>;
687
- openedByTouch: _angular_core.WritableSignal<boolean>;
688
- openMethod: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
689
- openInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
690
- closeInteractionType: _angular_core.WritableSignal<_radix_ng_primitives_types_radix_ng_primitives_floating_focus_manager.RdxInteractionType>;
691
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
692
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
693
- isEmptyModelValue: _angular_core.Signal<boolean>;
694
- transitionStatus: _angular_core.Signal<_radix_ng_primitives_core.RdxTransitionStatus>;
695
- registerTransitionElement: (element: HTMLElement) => () => void;
696
- optionsSet: _angular_core.WritableSignal<Set<_radix_ng_primitives_select.SelectOption>>;
697
- onOptionAdd: (option: any) => void;
698
- onOptionRemove: (option: any) => void;
699
- onValueChange: (value: AcceptableValue, reason?: _radix_ng_primitives_select.RdxSelectValueChangeReason, event?: Event) => boolean;
700
- onTriggerChange: (node: any) => void;
701
- onValueElementChange: (node: any) => void;
702
- onOpenChange: (value: boolean, reason?: _radix_ng_primitives_select.RdxSelectOpenChangeReason, event?: Event) => boolean;
703
- };
498
+ readonly rootContext: _radix_ng_primitives_select.RdxSelectRootContext;
704
499
  readonly elementRef: ElementRef<HTMLElement>;
705
500
  readonly placeholder: _angular_core.InputSignal<string | undefined>;
706
501
  readonly slotText: _angular_core.Signal<string | undefined>;
@@ -712,5 +507,5 @@ declare class RdxSelectValue {
712
507
 
713
508
  declare const _importsSelect: (typeof RdxSelectGroupLabel)[];
714
509
 
715
- export { CONTENT_MARGIN, OPEN_KEYS, RDX_SELECT_POSITIONER_TOKEN, RdxSelectBackdrop, RdxSelectGroup, RdxSelectGroupLabel, RdxSelectIcon, RdxSelectItem, RdxSelectItemIndicator, RdxSelectItemText, RdxSelectList, RdxSelectPopup, RdxSelectPortal, RdxSelectPortalMisuseGuard, RdxSelectPositioner, RdxSelectRoot, RdxSelectSeparator, RdxSelectTrigger, RdxSelectValue, SELECTION_KEYS, _importsSelect, compare, focusFirst, injectSelectItemContext, injectSelectPopupContext, injectSelectRootContext, provideSelectItemContext, provideSelectPopupContext, provideSelectRootContext, shouldShowPlaceholder, valueComparator };
510
+ export { CONTENT_MARGIN, OPEN_KEYS, RDX_SELECT_POSITIONER_TOKEN, RdxSelectBackdrop, RdxSelectGroup, RdxSelectGroupLabel, RdxSelectIcon, RdxSelectItem, RdxSelectItemAlignedPosition, RdxSelectItemAlignedPositionContent, RdxSelectItemIndicator, RdxSelectItemText, RdxSelectList, RdxSelectPopup, RdxSelectPortal, RdxSelectPortalMisuseGuard, RdxSelectPositioner, RdxSelectRoot, RdxSelectScrollButtonBase, RdxSelectScrollDownButton, RdxSelectScrollUpButton, RdxSelectSeparator, RdxSelectTrigger, RdxSelectValue, SELECTION_KEYS, _importsSelect, compare, focusFirst, injectSelectItemContext, injectSelectPopupContext, injectSelectRootContext, provideSelectItemContext, provideSelectPopupContext, provideSelectRootContext, shouldShowPlaceholder, valueComparator };
716
511
  export type { RdxPositionerImpl, RdxSelectItemContext, RdxSelectItemMetadata, RdxSelectOpenChangeEvent, RdxSelectOpenChangeEventDetails, RdxSelectOpenChangeReason, RdxSelectOpenMethod, RdxSelectPopupContext, RdxSelectRootContext, RdxSelectValueChangeEvent, RdxSelectValueChangeEventDetails, RdxSelectValueChangeReason, SelectEvent, SelectOption };