@radix-ng/primitives 1.0.10 → 1.1.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.
Files changed (65) hide show
  1. package/README.md +26 -5
  2. package/fesm2022/radix-ng-primitives-autocomplete.mjs +88 -21
  3. package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-checkbox.mjs +199 -129
  5. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-combobox.mjs +203 -52
  7. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-composite.mjs +221 -36
  9. package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-core.mjs +352 -24
  11. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-date-field.mjs +11 -5
  13. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-field.mjs +127 -23
  15. package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-form.mjs +35 -4
  17. package/fesm2022/radix-ng-primitives-form.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-input.mjs +87 -15
  19. package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
  20. package/fesm2022/radix-ng-primitives-menu.mjs +34 -7
  21. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-number-field.mjs +38 -7
  23. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-popper.mjs +80 -11
  25. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-radio.mjs +49 -2
  27. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-scroll-area.mjs +6 -3
  29. package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-select.mjs +70 -14
  31. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-signal-forms.mjs +27 -11
  33. package/fesm2022/radix-ng-primitives-signal-forms.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-slider.mjs +17 -2
  35. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-switch.mjs +60 -7
  37. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-time-field.mjs +12 -6
  39. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-toggle-group.mjs +25 -3
  41. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  42. package/package.json +8 -3
  43. package/types/radix-ng-primitives-autocomplete.d.ts +16 -2
  44. package/types/radix-ng-primitives-checkbox.d.ts +66 -44
  45. package/types/radix-ng-primitives-combobox.d.ts +74 -3
  46. package/types/radix-ng-primitives-composite.d.ts +48 -2
  47. package/types/radix-ng-primitives-core.d.ts +212 -96
  48. package/types/radix-ng-primitives-date-field.d.ts +7 -4
  49. package/types/radix-ng-primitives-field.d.ts +55 -8
  50. package/types/radix-ng-primitives-form.d.ts +9 -0
  51. package/types/radix-ng-primitives-input.d.ts +10 -2
  52. package/types/radix-ng-primitives-menu.d.ts +45 -4
  53. package/types/radix-ng-primitives-navigation-menu.d.ts +2 -2
  54. package/types/radix-ng-primitives-number-field.d.ts +12 -5
  55. package/types/radix-ng-primitives-popover.d.ts +2 -2
  56. package/types/radix-ng-primitives-popper.d.ts +60 -15
  57. package/types/radix-ng-primitives-preview-card.d.ts +2 -2
  58. package/types/radix-ng-primitives-radio.d.ts +6 -1
  59. package/types/radix-ng-primitives-select.d.ts +25 -4
  60. package/types/radix-ng-primitives-signal-forms.d.ts +22 -8
  61. package/types/radix-ng-primitives-slider.d.ts +2 -1
  62. package/types/radix-ng-primitives-switch.d.ts +19 -3
  63. package/types/radix-ng-primitives-time-field.d.ts +9 -6
  64. package/types/radix-ng-primitives-toggle-group.d.ts +5 -1
  65. package/types/radix-ng-primitives-tooltip.d.ts +2 -2
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { FieldTree } from '@angular/forms/signals';
3
+ import { BooleanInput } from '@radix-ng/primitives/core';
3
4
 
4
5
  /**
5
6
  * Bridges an Angular **Signal Forms** field into an enclosing `rdxFieldRoot` — with **no duplicate
@@ -16,9 +17,9 @@ import { FieldTree } from '@angular/forms/signals';
16
17
  *
17
18
  * It owns no model and runs no validation — Signal Forms remains the source of truth. It only registers
18
19
  * an {@link RdxFieldState} provider on the ancestor Field context so the field's `invalid` / `disabled` /
19
- * `required` / `dirty` / `touched` data-attributes and the error *content* (`rdxFieldError.messages()`)
20
- * read authoritative Signal Forms state. `filled` / `focused` stay on Field's DOM heuristic (partial
21
- * ownership — the seam supports it).
20
+ * `required` / `dirty` / `touched` data-attributes, tri-state pending validity, and the error *content*
21
+ * (`rdxFieldError.messages()`) read authoritative Signal Forms state. `filled` / `focused` stay on
22
+ * Field's DOM heuristic (partial ownership — the seam supports it).
22
23
  *
23
24
  * It reports the **actual** Signal Forms state only; the `Field` decides *when* to display it from its
24
25
  * `validationMode` (default `'onBlur'` — neutral until the field is touched or the form submitted). So an
@@ -51,9 +52,13 @@ declare class RdxSignalField {
51
52
  *
52
53
  * Registers an {@link RdxFormState} provider so the Form's aggregate `data-invalid` / `data-dirty` /
53
54
  * `data-touched` / `data-submitting` attributes and the submit guard read authoritative Signal Forms
54
- * state. This adapter owns only client-side state and `name`-routing; server errors stay a separate
55
- * eager channel applied through `rdxFormRoot[errors]`, and Signal Forms' own `submit()` owns the
56
- * submit lifecycle.
55
+ * state. By default this adapter owns only client-side state and `name`-routing; server errors stay a
56
+ * separate eager channel applied through `rdxFormRoot[errors]`. Add `rdxSignalSubmit` to delegate native
57
+ * submission to Signal Forms' own `submit()` lifecycle instead of `rdxFormRoot.onFormSubmit`:
58
+ *
59
+ * ```html
60
+ * <form rdxFormRoot [rdxSignalForm]="loginForm" rdxSignalSubmit>…</form>
61
+ * ```
57
62
  *
58
63
  * `errorsFor(name)` routes a field's errors to a `rdxFieldRoot` by its `name`, walking the `FieldTree`
59
64
  * so dotted paths into nested object/array fields resolve too (`address.street`, `items.0.name`). A
@@ -62,13 +67,22 @@ declare class RdxSignalField {
62
67
  * a field carries both, `rdxFieldError.messages()` deduplicates by text so the shared message is not
63
68
  * shown twice.
64
69
  *
65
- * See ADR 0018.
70
+ * See ADR 0018 and ADR 0020.
66
71
  *
67
72
  * @group Components
68
73
  */
69
74
  declare class RdxSignalForm {
70
75
  /** The Signal Forms root field (from `form(...)`) whose aggregate state drives the enclosing Form. */
71
76
  readonly form: i0.InputSignal<FieldTree<unknown>>;
77
+ /**
78
+ * Delegate native submission to Angular Signal Forms' `submit()` lifecycle. Opt-in so adding the
79
+ * state adapter to an existing 1.x form cannot silently replace its `(onFormSubmit)` side effects.
80
+ * The bound `form()` must define `submission.action`; Angular reports a descriptive error otherwise.
81
+ *
82
+ * @group Props
83
+ * @defaultValue false
84
+ */
85
+ readonly signalSubmit: i0.InputSignalWithTransform<boolean, BooleanInput>;
72
86
  private readonly formContext;
73
87
  constructor();
74
88
  /**
@@ -84,7 +98,7 @@ declare class RdxSignalForm {
84
98
  /** The current Signal Forms root field state (a `FieldTree` is callable). */
85
99
  private state;
86
100
  static ɵfac: i0.ɵɵFactoryDeclaration<RdxSignalForm, never>;
87
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxSignalForm, "form[rdxFormRoot][rdxSignalForm]", ["rdxSignalForm"], { "form": { "alias": "rdxSignalForm"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
101
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxSignalForm, "form[rdxFormRoot][rdxSignalForm]", ["rdxSignalForm"], { "form": { "alias": "rdxSignalForm"; "required": true; "isSignal": true; }; "signalSubmit": { "alias": "rdxSignalSubmit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
88
102
  }
89
103
 
90
104
  declare const _importsSignalForms: (typeof RdxSignalField | typeof RdxSignalForm)[];
@@ -189,7 +189,7 @@ declare class RdxSliderRoot extends RdxFormUiControlBase {
189
189
  readonly format: _angular_core.InputSignal<Intl.NumberFormatOptions | undefined>;
190
190
  /** Locale used for value formatting. */
191
191
  readonly locale: _angular_core.InputSignal<string | undefined>;
192
- /** Name of the hidden inputs rendered by each thumb, for form submission. */
192
+ /** Name of the native range input rendered by each thumb, for form submission. */
193
193
  readonly name: _angular_core.InputSignal<string | undefined>;
194
194
  /** Id of the form the slider belongs to. */
195
195
  readonly form: _angular_core.InputSignal<string | undefined>;
@@ -231,6 +231,7 @@ declare class RdxSliderRoot extends RdxFormUiControlBase {
231
231
  lastChangeEvent: Event | undefined;
232
232
  /** @ignore */
233
233
  readonly isDisabled: Signal<boolean>;
234
+ private readonly nativeFormControl;
234
235
  /** @ignore */
235
236
  readonly inset: Signal<boolean>;
236
237
  /** @ignore */
@@ -11,6 +11,8 @@ import { RdxCancelableChangeEventDetails, RdxFormUiControlBase, RdxFormCheckboxC
11
11
  */
12
12
  declare class RdxSwitchInput {
13
13
  protected readonly rootContext: _radix_ng_primitives_switch.RdxSwitchContext;
14
+ private readonly input;
15
+ constructor();
14
16
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSwitchInput, never>;
15
17
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSwitchInput, "input[rdxSwitchInput]", ["rdxSwitchInput"], {}, {}, never, never, true, never>;
16
18
  }
@@ -58,8 +60,10 @@ declare class RdxSwitchRoot extends RdxFormUiControlBase implements RdxFormCheck
58
60
  * @default false
59
61
  */
60
62
  readonly required: _angular_core.InputSignalWithTransform<boolean, BooleanInput>;
61
- /** Name of the hidden form input rendered by `[rdxSwitchInput]`. */
63
+ /** Native form field name. */
62
64
  readonly name: _angular_core.InputSignal<string | undefined>;
65
+ /** Associates the switch with an external form by id. */
66
+ readonly form: _angular_core.InputSignal<string | undefined>;
63
67
  /**
64
68
  * Value submitted with the form when the switch is on.
65
69
  *
@@ -71,6 +75,11 @@ declare class RdxSwitchRoot extends RdxFormUiControlBase implements RdxFormCheck
71
75
  * @default 'on'
72
76
  */
73
77
  readonly submitValue: _angular_core.InputSignal<string>;
78
+ /**
79
+ * Value submitted while the switch is off. When omitted, the off state contributes no entry,
80
+ * matching native checkbox behavior.
81
+ */
82
+ readonly uncheckedValue: _angular_core.InputSignal<string | undefined>;
74
83
  readonly ariaLabelledBy: _angular_core.InputSignal<string | undefined>;
75
84
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
76
85
  /** Event handler called when the checked state of the switch changes. */
@@ -79,6 +88,8 @@ declare class RdxSwitchRoot extends RdxFormUiControlBase implements RdxFormCheck
79
88
  readonly checkedState: _angular_core.Signal<boolean>;
80
89
  /** @ignore */
81
90
  protected readonly isDisabled: _angular_core.Signal<boolean>;
91
+ private readonly nativeInput;
92
+ private readonly nativeInputOwnsValue;
82
93
  /** @ignore */
83
94
  readonly invalidState: _angular_core.Signal<boolean>;
84
95
  /** @ignore */
@@ -95,8 +106,10 @@ declare class RdxSwitchRoot extends RdxFormUiControlBase implements RdxFormCheck
95
106
  markAsTouched(): void;
96
107
  /** @ignore Toggles the checked state unless disabled or read-only. */
97
108
  toggle(event?: Event): void;
109
+ /** @ignore Register the optional native checkbox so it owns checked-value serialization. */
110
+ registerNativeInput(input: HTMLInputElement): () => void;
98
111
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSwitchRoot, never>;
99
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSwitchRoot, "button[rdxSwitchRoot]", ["rdxSwitchRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "defaultChecked": { "alias": "defaultChecked"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "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; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "submitValue": { "alias": "value"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "onCheckedChange": "onCheckedChange"; }, never, never, true, [{ directive: typeof i1.RdxControlValueAccessor; inputs: { "value": "checked"; "disabled": "disabled"; }; outputs: {}; }]>;
112
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSwitchRoot, "button[rdxSwitchRoot]", ["rdxSwitchRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "defaultChecked": { "alias": "defaultChecked"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "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; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "submitValue": { "alias": "value"; "required": false; "isSignal": true; }; "uncheckedValue": { "alias": "uncheckedValue"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "onCheckedChange": "onCheckedChange"; }, never, never, true, [{ directive: typeof i1.RdxControlValueAccessor; inputs: { "value": "checked"; "disabled": "disabled"; }; outputs: {}; }]>;
100
113
  }
101
114
 
102
115
  /**
@@ -119,12 +132,15 @@ interface RdxSwitchContext {
119
132
  readonly readonly: Signal<boolean>;
120
133
  /** Whether the switch must be on to submit the owning form. */
121
134
  readonly required: Signal<boolean>;
122
- /** Name of the hidden form input. */
135
+ /** Native form field name. */
123
136
  readonly name: Signal<string | undefined>;
137
+ /** Optional id of an external owning form. */
138
+ readonly form: Signal<string | undefined>;
124
139
  /** Value submitted with the form when the switch is on. */
125
140
  readonly value: Signal<string>;
126
141
  readonly ariaLabel: Signal<string | undefined>;
127
142
  readonly ariaLabelledBy: Signal<string | undefined>;
143
+ registerNativeInput(input: HTMLInputElement): () => void;
128
144
  markAsTouched(): void;
129
145
  }
130
146
  declare const injectSwitchContext: i1.InjectContext<RdxSwitchContext>;
@@ -4,11 +4,12 @@ import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
4
4
  import { RdxFormUiControlBase, RdxFormValueControl, TimeValue, HourCycle, Granularity, Direction, BooleanInput, DateStep, Formatter, SegmentValueObj, SegmentPart } from '@radix-ng/primitives/core';
5
5
  import * as _internationalized_date from '@internationalized/date';
6
6
 
7
- declare class RdxTimeFieldRootDirective extends RdxFormUiControlBase implements RdxFormValueControl<TimeValue | undefined> {
7
+ declare class RdxTimeFieldRootDirective extends RdxFormUiControlBase implements RdxFormValueControl<TimeValue | null> {
8
8
  /**
9
- * The controlled checked state of the calendar.
9
+ * The controlled time value. `null` represents an empty field and keeps the value addressable as
10
+ * an Angular Signal Forms child field (`undefined` denotes an absent optional path).
10
11
  */
11
- readonly value: _angular_core.ModelSignal<TimeValue | undefined>;
12
+ readonly value: _angular_core.ModelSignal<TimeValue | null>;
12
13
  /**
13
14
  * The hour cycle to use for formatting times. Defaults to the locale preference
14
15
  */
@@ -89,7 +90,7 @@ declare class RdxTimeFieldRootDirective extends RdxFormUiControlBase implements
89
90
  readonly inferredGranularity: Signal<Granularity>;
90
91
  readonly convertedMinValue: Signal<_internationalized_date.CalendarDateTime | _internationalized_date.ZonedDateTime | undefined>;
91
92
  readonly convertedMaxValue: Signal<_internationalized_date.CalendarDateTime | _internationalized_date.ZonedDateTime | undefined>;
92
- readonly convertedModelValue: _angular_core.WritableSignal<TimeValue | undefined>;
93
+ readonly convertedModelValue: _angular_core.WritableSignal<TimeValue | null>;
93
94
  readonly convertedPlaceholder: _angular_core.WritableSignal<TimeValue>;
94
95
  /**
95
96
  * The per-segment values. Writable so segment editing (via `useDateField`) can
@@ -121,6 +122,8 @@ declare class RdxTimeFieldRootDirective extends RdxFormUiControlBase implements
121
122
  private readonly userInteracted;
122
123
  /** @ignore Mark the field touched (model + `touch` output) for Signal Forms. Called on segment blur. */
123
124
  markAsTouched(): void;
125
+ /** Reset segment interaction so the form-owned value write remains pristine. */
126
+ reset(): void;
124
127
  /**
125
128
  * @ignore
126
129
  */
@@ -228,7 +231,7 @@ declare class RdxTimeFieldInputDirective {
228
231
 
229
232
  interface TimeFieldContextToken {
230
233
  locale: InputSignal<string>;
231
- value: ModelSignal<TimeValue | undefined>;
234
+ value: ModelSignal<TimeValue | null>;
232
235
  /** The controlled placeholder; may be `undefined`. Use `convertedPlaceholder` for segment math. */
233
236
  placeholder: Signal<TimeValue | undefined>;
234
237
  isInvalid: Signal<boolean>;
@@ -243,7 +246,7 @@ interface TimeFieldContextToken {
243
246
  segmentValues: WritableSignal<SegmentValueObj>;
244
247
  focusNext: () => void;
245
248
  setFocusedElement: (el: HTMLElement) => void;
246
- convertedModelValue: WritableSignal<TimeValue | undefined>;
249
+ convertedModelValue: WritableSignal<TimeValue | null>;
247
250
  convertedPlaceholder: WritableSignal<TimeValue>;
248
251
  step$: Signal<DateStep>;
249
252
  }
@@ -49,6 +49,10 @@ declare abstract class RdxToggleGroupBase extends RdxFormUiControlBase implement
49
49
  readonly value: _angular_core.ModelSignal<string[] | undefined>;
50
50
  /** The values pressed when the group is initially rendered (uncontrolled). */
51
51
  readonly defaultValue: _angular_core.InputSignal<string[] | undefined>;
52
+ /** Native form field name. Pressed values are submitted as repeated entries under this name. */
53
+ readonly name: _angular_core.InputSignal<string | undefined>;
54
+ /** Associates the group with an external form by id. */
55
+ readonly form: _angular_core.InputSignal<string | undefined>;
52
56
  /**
53
57
  * Whether multiple items can be pressed at the same time.
54
58
  *
@@ -94,7 +98,7 @@ declare abstract class RdxToggleGroupBase extends RdxFormUiControlBase implement
94
98
  /** @ignore */
95
99
  setDisabledState(isDisabled: boolean): void;
96
100
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxToggleGroupBase, never>;
97
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxToggleGroupBase, never, never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
101
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxToggleGroupBase, never, never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "onValueChange": "onValueChange"; }, never, never, true, never>;
98
102
  }
99
103
 
100
104
  /**
@@ -231,7 +231,7 @@ declare class RdxTooltip {
231
231
  declare class RdxTooltipArrow {
232
232
  protected readonly rootContext: _radix_ng_primitives_tooltip.RdxTooltipContext;
233
233
  private readonly wrapper;
234
- protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
234
+ protected readonly side: _angular_core.Signal<i1$1.SideOrLogical | undefined>;
235
235
  protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
236
236
  protected readonly uncentered: _angular_core.Signal<boolean>;
237
237
  protected readonly isVisuallyHidden: boolean;
@@ -245,7 +245,7 @@ declare class RdxTooltipArrow {
245
245
  declare class RdxTooltipPopup {
246
246
  protected readonly rootContext: _radix_ng_primitives_tooltip.RdxTooltipContext;
247
247
  private readonly wrapper;
248
- protected readonly side: _angular_core.Signal<"top" | "right" | "bottom" | "left" | undefined>;
248
+ protected readonly side: _angular_core.Signal<i1$1.SideOrLogical | undefined>;
249
249
  protected readonly align: _angular_core.Signal<"start" | "center" | "end" | undefined>;
250
250
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPopup, never>;
251
251
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPopup, "[rdxTooltipPopup]", never, {}, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }]>;