@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
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { booleanAttribute, inject, DestroyRef, signal, model, input, output, computed, effect, untracked, Directive, ElementRef, numberAttribute, afterNextRender, NgModule } from '@angular/core';
2
+ import { booleanAttribute, inject, DestroyRef, signal, model, input, output, computed, effect, untracked, Directive, ElementRef, isDevMode, numberAttribute, afterNextRender, NgModule } from '@angular/core';
3
3
  import * as i1 from '@radix-ng/primitives/popper';
4
4
  import { RdxPopper, RdxPopperContentWrapper, RdxPopperArrow, RdxPopperContent, provideRdxPopperContentConfig, RdxPopperAnchor } from '@radix-ng/primitives/popper';
5
5
  import { createContext, useTransitionStatus, injectId, useScrollLock, useGraceArea } from '@radix-ng/primitives/core';
@@ -9,9 +9,8 @@ import { RdxDismissableLayer, provideRdxDismissableLayerConfig } from '@radix-ng
9
9
  import * as i3 from '@radix-ng/primitives/focus-scope';
10
10
  import { RdxFocusScope, provideRdxFocusScopeConfig } from '@radix-ng/primitives/focus-scope';
11
11
  import * as i1$1 from '@radix-ng/primitives/portal';
12
- import { RdxPortal } from '@radix-ng/primitives/portal';
13
- import * as i1$2 from '@radix-ng/primitives/presence';
14
- import { provideRdxPresenceContext, RdxPresenceDirective } from '@radix-ng/primitives/presence';
12
+ import { RdxPortalPresence } from '@radix-ng/primitives/portal';
13
+ import { provideRdxPresenceContext } from '@radix-ng/primitives/presence';
15
14
 
16
15
  const transformModal = (value) => value === 'trap-focus' ? value : booleanAttribute(value);
17
16
  const context = () => contextFor(inject(RdxPopoverRoot));
@@ -555,62 +554,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
555
554
  }], ctorParameters: () => [] });
556
555
 
557
556
  /**
558
- * Moves the popover to a different part of the DOM.
557
+ * Structural directive that teleports the popover content into a container (default `document.body`)
558
+ * while the popover is open, and keeps it mounted until any CSS exit `@keyframes` finishes.
559
+ *
560
+ * Apply it with the `*` microsyntax on the positioner — `<div *rdxPopoverPortal rdxPopoverPositioner>`
561
+ * — or as an explicit `<ng-template rdxPopoverPortal>`. For a custom container use the explicit form
562
+ * with `[container]`.
559
563
  */
560
564
  class RdxPopoverPortal {
561
- constructor() {
562
- this.rootContext = injectRdxPopoverRootContext();
563
- /**
564
- * Optional container to portal the content into. Defaults to `document.body`.
565
- */
566
- this.container = input(...(ngDevMode ? [undefined, { debugName: "container" }] : /* istanbul ignore next */ []));
567
- }
568
565
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverPortal, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
569
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxPopoverPortal, isStandalone: true, selector: "[rdxPopoverPortal]", inputs: { container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-closed": "rootContext.isOpen() ? undefined : \"\"", "attr.data-open": "rootContext.isOpen() ? \"\" : undefined", "attr.data-state": "rootContext.isOpen() ? \"open\" : \"closed\"" } }, hostDirectives: [{ directive: i1$1.RdxPortal, inputs: ["container", "container"] }], ngImport: i0 }); }
566
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxPopoverPortal, isStandalone: true, selector: "ng-template[rdxPopoverPortal]", providers: [provideRdxPresenceContext(() => ({ present: injectRdxPopoverRootContext().isOpen }))], exportAs: ["rdxPopoverPortal"], hostDirectives: [{ directive: i1$1.RdxPortalPresence, inputs: ["container", "container"] }], ngImport: i0 }); }
570
567
  }
571
568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverPortal, decorators: [{
572
569
  type: Directive,
573
570
  args: [{
574
- selector: '[rdxPopoverPortal]',
575
- hostDirectives: [
576
- {
577
- directive: RdxPortal,
578
- inputs: ['container']
579
- }
580
- ],
581
- host: {
582
- '[attr.data-closed]': 'rootContext.isOpen() ? undefined : ""',
583
- '[attr.data-open]': 'rootContext.isOpen() ? "" : undefined',
584
- '[attr.data-state]': 'rootContext.isOpen() ? "open" : "closed"'
585
- }
571
+ selector: 'ng-template[rdxPopoverPortal]',
572
+ exportAs: 'rdxPopoverPortal',
573
+ hostDirectives: [{ directive: RdxPortalPresence, inputs: ['container'] }],
574
+ providers: [provideRdxPresenceContext(() => ({ present: injectRdxPopoverRootContext().isOpen }))]
586
575
  }]
587
- }], propDecorators: { container: [{ type: i0.Input, args: [{ isSignal: true, alias: "container", required: false }] }] } });
588
-
576
+ }] });
589
577
  /**
590
- * Mounts the portal while the popover is open and waits for CSS exit keyframes before unmounting.
578
+ * Dev-mode guard: `rdxPopoverPortal` used to be an attribute directive on a `<div>`. It is now
579
+ * structural, so the old `<div rdxPopoverPortal>` markup would silently stop portaling — fail loudly
580
+ * instead.
591
581
  */
592
- class RdxPopoverPortalPresence {
593
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverPortalPresence, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
594
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxPopoverPortalPresence, isStandalone: true, selector: "ng-template[rdxPopoverPortalPresence]", providers: [
595
- provideRdxPresenceContext(() => {
596
- const context = injectRdxPopoverRootContext();
597
- return { present: context.isOpen };
598
- })
599
- ], hostDirectives: [{ directive: i1$2.RdxPresenceDirective }], ngImport: i0 }); }
582
+ class RdxPopoverPortalMisuseGuard {
583
+ constructor() {
584
+ if (isDevMode()) {
585
+ throw new Error('[rdxPopoverPortal] is now a structural directive. ' +
586
+ 'Use `*rdxPopoverPortal` on the positioner element or `<ng-template rdxPopoverPortal>`. ' +
587
+ 'rdxPopoverPortalPresence has been removed. See https://radix-ng.com/components/popover.md');
588
+ }
589
+ }
590
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverPortalMisuseGuard, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
591
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxPopoverPortalMisuseGuard, isStandalone: true, selector: "[rdxPopoverPortal]:not(ng-template)", ngImport: i0 }); }
600
592
  }
601
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverPortalPresence, decorators: [{
593
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverPortalMisuseGuard, decorators: [{
602
594
  type: Directive,
603
595
  args: [{
604
- selector: 'ng-template[rdxPopoverPortalPresence]',
605
- hostDirectives: [RdxPresenceDirective],
606
- providers: [
607
- provideRdxPresenceContext(() => {
608
- const context = injectRdxPopoverRootContext();
609
- return { present: context.isOpen };
610
- })
611
- ]
596
+ selector: '[rdxPopoverPortal]:not(ng-template)'
612
597
  }]
613
- }] });
598
+ }], ctorParameters: () => [] });
614
599
 
615
600
  /**
616
601
  * Positions the popover against its trigger.
@@ -1070,8 +1055,8 @@ function createRdxPopoverHandle() {
1070
1055
  const popoverImports = [
1071
1056
  RdxPopoverRoot,
1072
1057
  RdxPopoverTrigger,
1073
- RdxPopoverPortalPresence,
1074
1058
  RdxPopoverPortal,
1059
+ RdxPopoverPortalMisuseGuard,
1075
1060
  RdxPopoverBackdrop,
1076
1061
  RdxPopoverPositioner,
1077
1062
  RdxPopoverPopup,
@@ -1085,8 +1070,8 @@ class RdxPopoverModule {
1085
1070
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1086
1071
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: RdxPopoverModule, imports: [RdxPopoverRoot,
1087
1072
  RdxPopoverTrigger,
1088
- RdxPopoverPortalPresence,
1089
1073
  RdxPopoverPortal,
1074
+ RdxPopoverPortalMisuseGuard,
1090
1075
  RdxPopoverBackdrop,
1091
1076
  RdxPopoverPositioner,
1092
1077
  RdxPopoverPopup,
@@ -1096,8 +1081,8 @@ class RdxPopoverModule {
1096
1081
  RdxPopoverClose,
1097
1082
  RdxPopoverViewport], exports: [RdxPopoverRoot,
1098
1083
  RdxPopoverTrigger,
1099
- RdxPopoverPortalPresence,
1100
1084
  RdxPopoverPortal,
1085
+ RdxPopoverPortalMisuseGuard,
1101
1086
  RdxPopoverBackdrop,
1102
1087
  RdxPopoverPositioner,
1103
1088
  RdxPopoverPopup,
@@ -1120,5 +1105,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1120
1105
  * Generated bundle index. Do not edit.
1121
1106
  */
1122
1107
 
1123
- export { RdxPopoverArrow, RdxPopoverBackdrop, RdxPopoverClose, RdxPopoverDescription, RdxPopoverHandle, RdxPopoverModule, RdxPopoverPopup, RdxPopoverPortal, RdxPopoverPortalPresence, RdxPopoverPositioner, RdxPopoverRoot, RdxPopoverTitle, RdxPopoverTrigger, RdxPopoverViewport, createRdxPopoverHandle, injectRdxPopoverRootContext, popoverImports, provideRdxPopoverRootContext };
1108
+ export { RdxPopoverArrow, RdxPopoverBackdrop, RdxPopoverClose, RdxPopoverDescription, RdxPopoverHandle, RdxPopoverModule, RdxPopoverPopup, RdxPopoverPortal, RdxPopoverPortalMisuseGuard, RdxPopoverPositioner, RdxPopoverRoot, RdxPopoverTitle, RdxPopoverTrigger, RdxPopoverViewport, createRdxPopoverHandle, injectRdxPopoverRootContext, popoverImports, provideRdxPopoverRootContext };
1124
1109
  //# sourceMappingURL=radix-ng-primitives-popover.mjs.map