@radix-ng/primitives 1.0.0-beta.2 → 1.0.0-beta.3

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 (45) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +76 -6
  3. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +30 -24
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  5. package/fesm2022/radix-ng-primitives-autocomplete.mjs +1786 -0
  6. package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -0
  7. package/fesm2022/radix-ng-primitives-combobox.mjs +107 -47
  8. package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
  9. package/fesm2022/radix-ng-primitives-dialog.mjs +43 -45
  10. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  11. package/fesm2022/radix-ng-primitives-drawer.mjs +153 -63
  12. package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
  13. package/fesm2022/radix-ng-primitives-menu.mjs +40 -20
  14. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  15. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +38 -54
  16. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  17. package/fesm2022/radix-ng-primitives-popover.mjs +35 -50
  18. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  19. package/fesm2022/radix-ng-primitives-popper.mjs +11 -5
  20. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  21. package/fesm2022/radix-ng-primitives-portal.mjs +107 -17
  22. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  23. package/fesm2022/radix-ng-primitives-presence.mjs +262 -79
  24. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  25. package/fesm2022/radix-ng-primitives-preview-card.mjs +36 -50
  26. package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
  27. package/fesm2022/radix-ng-primitives-select.mjs +106 -92
  28. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  29. package/fesm2022/radix-ng-primitives-tooltip.mjs +37 -40
  30. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  31. package/package.json +5 -1
  32. package/types/radix-ng-primitives-alert-dialog.d.ts +17 -11
  33. package/types/radix-ng-primitives-autocomplete.d.ts +596 -0
  34. package/types/radix-ng-primitives-combobox.d.ts +61 -16
  35. package/types/radix-ng-primitives-dialog.d.ts +32 -25
  36. package/types/radix-ng-primitives-drawer.d.ts +49 -22
  37. package/types/radix-ng-primitives-menu.d.ts +19 -10
  38. package/types/radix-ng-primitives-navigation-menu.d.ts +24 -26
  39. package/types/radix-ng-primitives-popover.d.ts +23 -23
  40. package/types/radix-ng-primitives-popper.d.ts +7 -1
  41. package/types/radix-ng-primitives-portal.d.ts +53 -8
  42. package/types/radix-ng-primitives-presence.d.ts +98 -17
  43. package/types/radix-ng-primitives-preview-card.d.ts +24 -23
  44. package/types/radix-ng-primitives-select.d.ts +52 -55
  45. package/types/radix-ng-primitives-tooltip.d.ts +26 -19
@@ -5,14 +5,12 @@ import { AcceptableValue, Direction, ItemValueComparator } from '@radix-ng/primi
5
5
  import * as _radix_ng_primitives_select from '@radix-ng/primitives/select';
6
6
  import * as i1 from '@radix-ng/primitives/collection';
7
7
  import { RdxCollectionItem } from '@radix-ng/primitives/collection';
8
- import * as i1$1 from '@radix-ng/primitives/focus-scope';
9
- import * as i2 from '@radix-ng/primitives/dismissable-layer';
8
+ import * as i1$1 from '@radix-ng/primitives/popper';
9
+ import * as i2 from '@radix-ng/primitives/focus-scope';
10
+ import * as i3 from '@radix-ng/primitives/dismissable-layer';
10
11
  import * as _radix_ng_primitives_types_radix_ng_primitives_core from '@radix-ng/primitives/types/radix-ng-primitives-core';
11
12
  import * as _radix_ng_primitives_types_radix_ng_primitives_collection from '@radix-ng/primitives/types/radix-ng-primitives-collection';
12
13
  import * as i1$2 from '@radix-ng/primitives/portal';
13
- import { RdxPortalContainer } from '@radix-ng/primitives/portal';
14
- import * as i1$3 from '@radix-ng/primitives/presence';
15
- import * as i1$4 from '@radix-ng/primitives/popper';
16
14
 
17
15
  declare class RdxSelectGroupLabel {
18
16
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectGroupLabel, never>;
@@ -263,8 +261,14 @@ interface RdxPositionerImpl {
263
261
  declare const RDX_SELECT_POSITIONER_TOKEN: InjectionToken<RdxPositionerImpl>;
264
262
  /**
265
263
  * The popup listbox. Holds DOM focus while open and navigates with the highlight model
266
- * (`aria-activedescendant`) — items are not individually focusable. (Renamed to `RdxSelectPopup` in a
267
- * later step; selector kept here during the navigation migration.)
264
+ * (`aria-activedescendant`) — items are not individually focusable.
265
+ *
266
+ * Since ADR 0010 §6 the popup is the **inner** element (the positioner is its ancestor): it carries
267
+ * `role="listbox"`, the `contentId`, and — via the composed {@link RdxPopperContent} — the
268
+ * `data-side` / `data-align` attributes and the until-positioned animation guard previously held by
269
+ * the deleted `rdxSelectPositionerContent`. `RdxPopperContent` also makes the popup the element the
270
+ * `RdxPopperContentWrapper` ancestor reads its content z-index from. In item-aligned mode there is no
271
+ * wrapper, so `RdxPopperContent` no-ops.
268
272
  *
269
273
  * @group Components
270
274
  */
@@ -300,7 +304,17 @@ declare class RdxSelectPopup {
300
304
  onValueElementChange: (node: any) => void;
301
305
  onOpenChange: (value: any) => void;
302
306
  };
303
- /** Highlight-model navigation over the collected items (DOM order). */
307
+ /**
308
+ * The collected items (DOM order). Exposed so the `item-aligned` positioner — now the popup's
309
+ * **ancestor** — can read them without injecting {@link RdxCollectionProvider} (which the popup
310
+ * provides as a descendant, so an upward `inject` would not find it).
311
+ */
312
+ readonly items: _angular_core.Signal<readonly RdxCollectionItem<any>[]>;
313
+ /**
314
+ * Highlight-model navigation over the collected items (DOM order). `loop` is disabled so arrow
315
+ * navigation stops at the first / last item instead of wrapping around — matching native
316
+ * `<select>` behavior.
317
+ */
304
318
  readonly highlight: _radix_ng_primitives_core.ListHighlight<RdxCollectionItem<unknown>>;
305
319
  readonly selectedItem: _angular_core.WritableSignal<HTMLElement | undefined>;
306
320
  readonly selectedItemText: _angular_core.WritableSignal<HTMLElement | undefined>;
@@ -319,7 +333,12 @@ declare class RdxSelectPopup {
319
333
  */
320
334
  readonly pointerDownOutside: OutputRef<PointerEvent>;
321
335
  readonly content: _angular_core.WritableSignal<HTMLElement | null>;
322
- set positioner(port: RdxPositionerImpl | undefined);
336
+ /**
337
+ * The positioner — now an **ancestor** element — provides {@link RDX_SELECT_POSITIONER_TOKEN}
338
+ * (Popper or item-aligned). We react to its `placed` to highlight and scroll the selected item
339
+ * into view and flag the popup as positioned.
340
+ */
341
+ private readonly positioner;
323
342
  constructor();
324
343
  /** Highlights the selected item (or the first enabled one) when the popup opens. */
325
344
  highlightSelectedItem(): void;
@@ -328,21 +347,31 @@ declare class RdxSelectPopup {
328
347
  isKeyboardActive(): boolean;
329
348
  handleKeyDown(event: Event): void;
330
349
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPopup, never>;
331
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPopup, "[rdxSelectPopup]", never, {}, { "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, ["positioner"], never, true, [{ directive: typeof i1$1.RdxFocusScope; inputs: {}; outputs: {}; }, { directive: typeof i2.RdxDismissableLayer; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxCollectionProvider; inputs: {}; outputs: {}; }]>;
350
+ 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.RdxFocusScope; inputs: {}; outputs: {}; }, { directive: typeof i3.RdxDismissableLayer; inputs: {}; outputs: {}; }, { directive: typeof i1.RdxCollectionProvider; inputs: {}; outputs: {}; }]>;
332
351
  }
333
352
 
353
+ /**
354
+ * Structural directive that teleports the select popup into a container (default `document.body`)
355
+ * while the select is open, and keeps it mounted until any CSS exit `@keyframes` finishes.
356
+ *
357
+ * Apply it with the `*` microsyntax on the popup — `<div *rdxSelectPortal rdxSelectPopup>` — or as an
358
+ * explicit `<ng-template rdxSelectPortal>`. For a custom container use the explicit form with
359
+ * `[container]`. Unlike the previous attribute portal it no longer parks an empty wrapper `<div>` in
360
+ * `document.body` while the select is closed.
361
+ */
334
362
  declare class RdxSelectPortal {
335
- /**
336
- * Optional container to portal the content into. Defaults to `document.body` when not set.
337
- */
338
- readonly container: _angular_core.InputSignal<RdxPortalContainer | undefined>;
339
363
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPortal, never>;
340
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPortal, "[rdxSelectPortal]", never, { "container": { "alias": "container"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$2.RdxPortal; inputs: { "container": "container"; }; outputs: {}; }]>;
364
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPortal, "ng-template[rdxSelectPortal]", ["rdxSelectPortal"], {}, {}, never, never, true, [{ directive: typeof i1$2.RdxPortalPresence; inputs: { "container": "container"; }; outputs: {}; }]>;
341
365
  }
342
-
343
- declare class RdxSelectPortalPresence {
344
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPortalPresence, never>;
345
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPortalPresence, "ng-template[rdxSelectPortalPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1$3.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
366
+ /**
367
+ * Dev-mode guard: `rdxSelectPortal` used to be an attribute directive on a `<div>`. It is now
368
+ * structural, so the old `<div rdxSelectPortal>` markup would silently stop portaling — fail loudly
369
+ * instead.
370
+ */
371
+ declare class RdxSelectPortalMisuseGuard {
372
+ constructor();
373
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPortalMisuseGuard, never>;
374
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPortalMisuseGuard, "[rdxSelectPortal]:not(ng-template)", never, {}, {}, never, never, true, never>;
346
375
  }
347
376
 
348
377
  declare class RdxSelectPositioner implements RdxPositionerImpl {
@@ -401,39 +430,7 @@ declare class RdxSelectPositioner implements RdxPositionerImpl {
401
430
  */
402
431
  readonly placed: _angular_core.OutputRef<void>;
403
432
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPositioner, never>;
404
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPositioner, "[rdxSelectPositioner]", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionBoundary": { "alias": "collisionBoundary"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "updatePositionStrategy": { "alias": "updatePositionStrategy"; "required": false; "isSignal": true; }; }, { "placed": "placed"; }, never, never, true, [{ directive: typeof i1$4.RdxPopperContentWrapper; inputs: { "side": "side"; "sideOffset": "sideOffset"; "align": "align"; "alignOffset": "alignOffset"; "arrowPadding": "arrowPadding"; "avoidCollisions": "avoidCollisions"; "collisionBoundary": "collisionBoundary"; "collisionPadding": "collisionPadding"; "sticky": "sticky"; "hideWhenDetached": "hideWhenDetached"; "updatePositionStrategy": "updatePositionStrategy"; }; outputs: {}; }]>;
405
- }
406
-
407
- declare class RdxSelectPositionerContent {
408
- protected rootContext: {
409
- triggerElement: _angular_core.WritableSignal<HTMLElement | null>;
410
- valueElement: _angular_core.WritableSignal<HTMLElement | null>;
411
- triggerPointerDownPosRef: _angular_core.WritableSignal<{
412
- x: number;
413
- y: number;
414
- } | null>;
415
- contentId: string;
416
- dir: _angular_core.InputSignal<_radix_ng_primitives_types_radix_ng_primitives_core.Direction>;
417
- value: _angular_core.ModelSignal<_radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue | _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue[] | undefined>;
418
- multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
419
- isItemEqualToValue: _angular_core.InputSignal<_radix_ng_primitives_types_radix_ng_primitives_core.ItemValueComparator<_radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue> | undefined>;
420
- itemToStringLabel: _angular_core.InputSignal<((value: _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue) => string) | undefined>;
421
- open: _angular_core.ModelSignal<boolean>;
422
- disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
423
- modal: _angular_core.InputSignalWithTransform<boolean, unknown>;
424
- isEmptyModelValue: _angular_core.Signal<boolean>;
425
- transitionStatus: _angular_core.Signal<_radix_ng_primitives_types_radix_ng_primitives_core.RdxTransitionStatus>;
426
- registerTransitionElement: (element: HTMLElement) => () => void;
427
- optionsSet: _angular_core.WritableSignal<Set<_radix_ng_primitives_select.SelectOption>>;
428
- onOptionAdd: (option: any) => void;
429
- onOptionRemove: (option: any) => void;
430
- onValueChange: (value: _radix_ng_primitives_types_radix_ng_primitives_core.AcceptableValue) => void;
431
- onTriggerChange: (node: any) => void;
432
- onValueElementChange: (node: any) => void;
433
- onOpenChange: (value: any) => void;
434
- };
435
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectPositionerContent, never>;
436
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPositionerContent, "[rdxSelectPositionerContent]", never, {}, {}, never, never, true, [{ directive: typeof i1$4.RdxPopperContent; inputs: {}; outputs: {}; }]>;
433
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectPositioner, "[rdxSelectPositioner]", never, { "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionBoundary": { "alias": "collisionBoundary"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "updatePositionStrategy": { "alias": "updatePositionStrategy"; "required": false; "isSignal": true; }; }, { "placed": "placed"; }, never, never, true, [{ directive: typeof i1$1.RdxPopperContentWrapper; inputs: { "side": "side"; "sideOffset": "sideOffset"; "align": "align"; "alignOffset": "alignOffset"; "arrowPadding": "arrowPadding"; "avoidCollisions": "avoidCollisions"; "collisionBoundary": "collisionBoundary"; "collisionPadding": "collisionPadding"; "sticky": "sticky"; "hideWhenDetached": "hideWhenDetached"; "updatePositionStrategy": "updatePositionStrategy"; }; outputs: {}; }]>;
437
434
  }
438
435
 
439
436
  interface SelectOption {
@@ -555,7 +552,7 @@ declare class RdxSelectRoot {
555
552
  getOption(value: SelectOption['value']): SelectOption | undefined;
556
553
  handleValueChange(value: AcceptableValue): void;
557
554
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectRoot, never>;
558
- 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; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToStringLabel": { "alias": "itemToStringLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "value": "valueChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1$4.RdxPopper; inputs: {}; outputs: {}; }]>;
555
+ 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; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "isItemEqualToValue": { "alias": "isItemEqualToValue"; "required": false; "isSignal": true; }; "itemToStringLabel": { "alias": "itemToStringLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "value": "valueChange"; "onOpenChangeComplete": "onOpenChangeComplete"; }, never, never, true, [{ directive: typeof i1$1.RdxPopper; inputs: {}; outputs: {}; }]>;
559
556
  }
560
557
 
561
558
  /**
@@ -618,7 +615,7 @@ declare class RdxSelectTrigger {
618
615
  onBlur(): void;
619
616
  protected readonly dataAttr: (value: boolean) => "" | undefined;
620
617
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxSelectTrigger, never>;
621
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectTrigger, "button[rdxSelectTrigger]", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$4.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
618
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxSelectTrigger, "button[rdxSelectTrigger]", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
622
619
  }
623
620
 
624
621
  declare class RdxSelectValue {
@@ -668,5 +665,5 @@ declare function focusFirst(candidates: HTMLElement[]): void;
668
665
 
669
666
  declare const _importsSelect: (typeof RdxSelectGroupLabel)[];
670
667
 
671
- export { CONTENT_MARGIN, OPEN_KEYS, RDX_SELECT_POSITIONER_TOKEN, RdxSelectBackdrop, RdxSelectGroup, RdxSelectGroupLabel, RdxSelectIcon, RdxSelectItem, RdxSelectItemIndicator, RdxSelectItemText, RdxSelectList, RdxSelectPopup, RdxSelectPortal, RdxSelectPortalPresence, RdxSelectPositioner, RdxSelectPositionerContent, RdxSelectRoot, RdxSelectSeparator, RdxSelectTrigger, RdxSelectValue, SELECTION_KEYS, _importsSelect, compare, focusFirst, injectSelectItemContext, injectSelectPopupContext, injectSelectRootContext, provideSelectItemContext, provideSelectPopupContext, provideSelectRootContext, shouldShowPlaceholder, valueComparator };
668
+ 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 };
672
669
  export type { RdxPositionerImpl, RdxSelectItemContext, RdxSelectPopupContext, RdxSelectRootContext, SelectEvent, SelectOption };
@@ -1,18 +1,34 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { InjectionToken, Provider, Signal, ElementRef } from '@angular/core';
3
- import * as i1 from '@radix-ng/primitives/presence';
3
+ import * as i1 from '@radix-ng/primitives/portal';
4
4
  import * as _radix_ng_primitives_core from '@radix-ng/primitives/core';
5
5
  import { BooleanInput, NumberInput } from '@radix-ng/primitives/core';
6
6
  import * as i1$1 from '@radix-ng/primitives/popper';
7
7
  import { RdxPopperContentWrapper, RdxPopperAnchorElement } from '@radix-ng/primitives/popper';
8
8
  import * as _radix_ng_primitives_tooltip from '@radix-ng/primitives/tooltip';
9
- import * as i1$2 from '@radix-ng/primitives/portal';
10
- import { RdxPortalContainer } from '@radix-ng/primitives/portal';
11
- import * as i1$3 from '@radix-ng/primitives/dismissable-layer';
9
+ import * as i1$2 from '@radix-ng/primitives/dismissable-layer';
12
10
 
13
- declare class RdxTooltipPortalPresence {
14
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPortalPresence, never>;
15
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPortalPresence, "ng-template[rdxTooltipPortalPresence]", never, {}, {}, never, never, true, [{ directive: typeof i1.RdxPresenceDirective; inputs: {}; outputs: {}; }]>;
11
+ /**
12
+ * Structural directive that teleports the tooltip content into a container (default `document.body`)
13
+ * while the tooltip is open, and keeps it mounted until any CSS exit `@keyframes` finishes.
14
+ *
15
+ * Apply it with the `*` microsyntax on the positioner — `<div *rdxTooltipPortal rdxTooltipPositioner>`
16
+ * — or as an explicit `<ng-template rdxTooltipPortal>`. For a custom container use the explicit form
17
+ * with `[container]`.
18
+ */
19
+ declare class RdxTooltipPortal {
20
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPortal, never>;
21
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPortal, "ng-template[rdxTooltipPortal]", ["rdxTooltipPortal"], {}, {}, never, never, true, [{ directive: typeof i1.RdxPortalPresence; inputs: { "container": "container"; }; outputs: {}; }]>;
22
+ }
23
+ /**
24
+ * Dev-mode guard: `rdxTooltipPortal` used to be an attribute directive on a `<div>`. It is now
25
+ * structural, so the old `<div rdxTooltipPortal>` markup would silently stop portaling — fail loudly
26
+ * instead.
27
+ */
28
+ declare class RdxTooltipPortalMisuseGuard {
29
+ constructor();
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPortalMisuseGuard, never>;
31
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPortalMisuseGuard, "[rdxTooltipPortal]:not(ng-template)", never, {}, {}, never, never, true, never>;
16
32
  }
17
33
 
18
34
  declare class RdxTooltipHandle<Payload = unknown> {
@@ -198,15 +214,6 @@ declare class RdxTooltipPopup {
198
214
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPopup, "[rdxTooltipPopup]", never, {}, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperContent; inputs: {}; outputs: {}; }]>;
199
215
  }
200
216
 
201
- /**
202
- * Moves the tooltip to a different part of the DOM.
203
- */
204
- declare class RdxTooltipPortal {
205
- readonly container: _angular_core.InputSignal<RdxPortalContainer>;
206
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPortal, never>;
207
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPortal, "[rdxTooltipPortal]", never, { "container": { "alias": "container"; "required": true; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$2.RdxPortal; inputs: { "container": "container"; }; outputs: {}; }]>;
208
- }
209
-
210
217
  /**
211
218
  * Positions the tooltip popup against its trigger (or a custom anchor).
212
219
  */
@@ -286,7 +293,7 @@ declare class RdxTooltipPositioner {
286
293
  private readonly afterNextRender;
287
294
  constructor();
288
295
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<RdxTooltipPositioner, never>;
289
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPositioner, "[rdxTooltipPositioner]", never, { "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionBoundary": { "alias": "collisionBoundary"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "positionStrategy": { "alias": "positionStrategy"; "required": false; "isSignal": true; }; "updatePositionStrategy": { "alias": "updatePositionStrategy"; "required": false; "isSignal": true; }; }, { "placed": "placed"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, never, never, true, [{ directive: typeof i1$3.RdxDismissableLayer; inputs: {}; outputs: {}; }, { directive: typeof i1$1.RdxPopperContentWrapper; inputs: { "anchor": "anchor"; "side": "side"; "sideOffset": "sideOffset"; "align": "align"; "alignOffset": "alignOffset"; "arrowPadding": "arrowPadding"; "avoidCollisions": "avoidCollisions"; "collisionBoundary": "collisionBoundary"; "collisionPadding": "collisionPadding"; "sticky": "sticky"; "hideWhenDetached": "hideWhenDetached"; "positionStrategy": "positionStrategy"; "updatePositionStrategy": "updatePositionStrategy"; }; outputs: {}; }]>;
296
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipPositioner, "[rdxTooltipPositioner]", never, { "anchor": { "alias": "anchor"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; "sideOffset": { "alias": "sideOffset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "alignOffset": { "alias": "alignOffset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "avoidCollisions": { "alias": "avoidCollisions"; "required": false; "isSignal": true; }; "collisionBoundary": { "alias": "collisionBoundary"; "required": false; "isSignal": true; }; "collisionPadding": { "alias": "collisionPadding"; "required": false; "isSignal": true; }; "sticky": { "alias": "sticky"; "required": false; "isSignal": true; }; "hideWhenDetached": { "alias": "hideWhenDetached"; "required": false; "isSignal": true; }; "positionStrategy": { "alias": "positionStrategy"; "required": false; "isSignal": true; }; "updatePositionStrategy": { "alias": "updatePositionStrategy"; "required": false; "isSignal": true; }; }, { "placed": "placed"; "escapeKeyDown": "escapeKeyDown"; "pointerDownOutside": "pointerDownOutside"; }, never, never, true, [{ directive: typeof i1$2.RdxDismissableLayer; inputs: {}; outputs: {}; }, { directive: typeof i1$1.RdxPopperContentWrapper; inputs: { "anchor": "anchor"; "side": "side"; "sideOffset": "sideOffset"; "align": "align"; "alignOffset": "alignOffset"; "arrowPadding": "arrowPadding"; "avoidCollisions": "avoidCollisions"; "collisionBoundary": "collisionBoundary"; "collisionPadding": "collisionPadding"; "sticky": "sticky"; "hideWhenDetached": "hideWhenDetached"; "positionStrategy": "positionStrategy"; "updatePositionStrategy": "updatePositionStrategy"; }; outputs: {}; }]>;
290
297
  }
291
298
 
292
299
  type TooltipInstantController = {
@@ -390,7 +397,7 @@ declare class RdxTooltipTrigger {
390
397
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RdxTooltipTrigger, "[rdxTooltipTrigger]", never, { "handle": { "alias": "handle"; "required": false; "isSignal": true; }; "payload": { "alias": "payload"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "closeOnClick": { "alias": "closeOnClick"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "closeDelay": { "alias": "closeDelay"; "required": false; "isSignal": true; }; "userOnPointerDown": { "alias": "rdxOnPointerDown"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1$1.RdxPopperAnchor; inputs: {}; outputs: {}; }]>;
391
398
  }
392
399
 
393
- declare const tooltipImports: (typeof RdxTooltipPortalPresence)[];
400
+ declare const tooltipImports: (typeof RdxTooltipPortal)[];
394
401
 
395
- export { RdxTooltip, RdxTooltipArrow, RdxTooltipDefaultsToken, RdxTooltipHandle, RdxTooltipPopup, RdxTooltipPortal, RdxTooltipPortalPresence, RdxTooltipPositioner, RdxTooltipProvider, RdxTooltipTrigger, createRdxTooltipHandle, defaultTooltipConfig, injectRdxTooltipConfig, injectRdxTooltipContext, injectRdxTooltipProviderContext, provideRdxTooltipConfig, provideRdxTooltipContext, provideRdxTooltipProviderContext, tooltipImports };
402
+ export { RdxTooltip, RdxTooltipArrow, RdxTooltipDefaultsToken, RdxTooltipHandle, RdxTooltipPopup, RdxTooltipPortal, RdxTooltipPortalMisuseGuard, RdxTooltipPositioner, RdxTooltipProvider, RdxTooltipTrigger, createRdxTooltipHandle, defaultTooltipConfig, injectRdxTooltipConfig, injectRdxTooltipContext, injectRdxTooltipProviderContext, provideRdxTooltipConfig, provideRdxTooltipContext, provideRdxTooltipProviderContext, tooltipImports };
396
403
  export type { RdxTooltipConfig, RdxTooltipContext, RdxTooltipProviderContext, RdxTrackCursorAxis };