@radix-ng/primitives 0.44.0 → 0.51.0

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 (149) hide show
  1. package/collection/README.md +1 -0
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +41 -40
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +22 -22
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-arrow.mjs +6 -6
  7. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +6 -6
  9. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-avatar.mjs +22 -22
  11. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-calendar.mjs +104 -103
  13. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs +51 -41
  15. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs +28 -28
  17. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collection.mjs +89 -0
  19. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -0
  20. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  21. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-context-menu.mjs +36 -36
  23. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-core.mjs +33 -24
  25. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-cropper.mjs +54 -53
  27. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-date-field.mjs +48 -47
  29. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dialog.mjs +34 -34
  31. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +31 -33
  33. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +41 -43
  35. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-editable.mjs +20 -20
  37. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  39. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs +7 -7
  41. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-hover-card.mjs +69 -77
  43. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-label.mjs +7 -7
  45. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-menu.mjs +65 -70
  47. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  49. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +113 -105
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-number-field.mjs +48 -47
  53. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-pagination.mjs +51 -51
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +67 -71
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +61 -56
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +7 -7
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +4 -4
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-progress.mjs +16 -16
  65. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-radio.mjs +38 -37
  67. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-roving-focus.mjs +38 -34
  69. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-select.mjs +41 -43
  71. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select2.mjs +897 -0
  73. package/fesm2022/radix-ng-primitives-select2.mjs.map +1 -0
  74. package/fesm2022/radix-ng-primitives-separator.mjs +11 -17
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +88 -84
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +55 -53
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +22 -30
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +38 -38
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +63 -78
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +24 -24
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +11 -11
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +31 -29
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +69 -77
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-tooltip2.mjs +57 -62
  95. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +31 -31
  97. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  99. package/package.json +60 -51
  100. package/select2/README.md +3 -0
  101. package/{accordion/index.d.ts → types/radix-ng-primitives-accordion.d.ts} +61 -60
  102. package/{calendar/index.d.ts → types/radix-ng-primitives-calendar.d.ts} +1 -1
  103. package/{checkbox/index.d.ts → types/radix-ng-primitives-checkbox.d.ts} +33 -29
  104. package/{collapsible/index.d.ts → types/radix-ng-primitives-collapsible.d.ts} +20 -19
  105. package/types/radix-ng-primitives-collection.d.ts +40 -0
  106. package/{core/index.d.ts → types/radix-ng-primitives-core.d.ts} +6 -2
  107. package/{cropper/index.d.ts → types/radix-ng-primitives-cropper.d.ts} +4 -3
  108. package/{date-field/index.d.ts → types/radix-ng-primitives-date-field.d.ts} +4 -4
  109. package/{dialog/index.d.ts → types/radix-ng-primitives-dialog.d.ts} +2 -1
  110. package/{hover-card/index.d.ts → types/radix-ng-primitives-hover-card.d.ts} +3 -4
  111. package/{menu/index.d.ts → types/radix-ng-primitives-menu.d.ts} +1 -1
  112. package/{navigation-menu/index.d.ts → types/radix-ng-primitives-navigation-menu.d.ts} +47 -46
  113. package/{number-field/index.d.ts → types/radix-ng-primitives-number-field.d.ts} +13 -12
  114. package/{popover/index.d.ts → types/radix-ng-primitives-popover.d.ts} +3 -4
  115. package/{popper/index.d.ts → types/radix-ng-primitives-popper.d.ts} +1 -0
  116. package/{progress/index.d.ts → types/radix-ng-primitives-progress.d.ts} +2 -1
  117. package/{radio/index.d.ts → types/radix-ng-primitives-radio.d.ts} +1 -1
  118. package/{roving-focus/index.d.ts → types/radix-ng-primitives-roving-focus.d.ts} +8 -6
  119. package/types/radix-ng-primitives-select2.d.ts +511 -0
  120. package/{slider/index.d.ts → types/radix-ng-primitives-slider.d.ts} +4 -4
  121. package/{stepper/index.d.ts → types/radix-ng-primitives-stepper.d.ts} +17 -16
  122. package/{switch/index.d.ts → types/radix-ng-primitives-switch.d.ts} +3 -2
  123. package/{tabs/index.d.ts → types/radix-ng-primitives-tabs.d.ts} +7 -6
  124. package/{time-field/index.d.ts → types/radix-ng-primitives-time-field.d.ts} +4 -4
  125. package/{toggle-group/index.d.ts → types/radix-ng-primitives-toggle-group.d.ts} +12 -11
  126. package/{tooltip/index.d.ts → types/radix-ng-primitives-tooltip.d.ts} +3 -4
  127. package/{tooltip2/index.d.ts → types/radix-ng-primitives-tooltip2.d.ts} +4 -4
  128. /package/{alert-dialog/index.d.ts → types/radix-ng-primitives-alert-dialog.d.ts} +0 -0
  129. /package/{arrow/index.d.ts → types/radix-ng-primitives-arrow.d.ts} +0 -0
  130. /package/{aspect-ratio/index.d.ts → types/radix-ng-primitives-aspect-ratio.d.ts} +0 -0
  131. /package/{avatar/index.d.ts → types/radix-ng-primitives-avatar.d.ts} +0 -0
  132. /package/{config/index.d.ts → types/radix-ng-primitives-config.d.ts} +0 -0
  133. /package/{context-menu/index.d.ts → types/radix-ng-primitives-context-menu.d.ts} +0 -0
  134. /package/{dismissable-layer/index.d.ts → types/radix-ng-primitives-dismissable-layer.d.ts} +0 -0
  135. /package/{dropdown-menu/index.d.ts → types/radix-ng-primitives-dropdown-menu.d.ts} +0 -0
  136. /package/{editable/index.d.ts → types/radix-ng-primitives-editable.d.ts} +0 -0
  137. /package/{focus-guards/index.d.ts → types/radix-ng-primitives-focus-guards.d.ts} +0 -0
  138. /package/{focus-scope/index.d.ts → types/radix-ng-primitives-focus-scope.d.ts} +0 -0
  139. /package/{label/index.d.ts → types/radix-ng-primitives-label.d.ts} +0 -0
  140. /package/{menubar/index.d.ts → types/radix-ng-primitives-menubar.d.ts} +0 -0
  141. /package/{pagination/index.d.ts → types/radix-ng-primitives-pagination.d.ts} +0 -0
  142. /package/{portal/index.d.ts → types/radix-ng-primitives-portal.d.ts} +0 -0
  143. /package/{presence/index.d.ts → types/radix-ng-primitives-presence.d.ts} +0 -0
  144. /package/{select/index.d.ts → types/radix-ng-primitives-select.d.ts} +0 -0
  145. /package/{separator/index.d.ts → types/radix-ng-primitives-separator.d.ts} +0 -0
  146. /package/{toggle/index.d.ts → types/radix-ng-primitives-toggle.d.ts} +0 -0
  147. /package/{toolbar/index.d.ts → types/radix-ng-primitives-toolbar.d.ts} +0 -0
  148. /package/{visually-hidden/index.d.ts → types/radix-ng-primitives-visually-hidden.d.ts} +0 -0
  149. /package/{index.d.ts → types/radix-ng-primitives.d.ts} +0 -0
@@ -3,16 +3,16 @@ import { inject, ElementRef, Directive, contentChild, computed, DestroyRef, Inje
3
3
  import { RdxArrow } from '@radix-ng/primitives/arrow';
4
4
  import { isPlatformBrowser } from '@angular/common';
5
5
  import { computePosition, offset, shift, flip, size, arrow, hide, limitShift, autoUpdate } from '@floating-ui/dom';
6
- import { createContext, elementSize } from '@radix-ng/primitives/core';
6
+ import { createContext, elementSize, watch } from '@radix-ng/primitives/core';
7
7
 
8
8
  class RdxPopperAnchor {
9
9
  constructor() {
10
10
  this.elementRef = inject(ElementRef);
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperAnchor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: RdxPopperAnchor, isStandalone: true, selector: "[rdxPopperAnchor]", ngImport: i0 }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperAnchor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxPopperAnchor, isStandalone: true, selector: "[rdxPopperAnchor]", ngImport: i0 }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperAnchor, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperAnchor, decorators: [{
16
16
  type: Directive,
17
17
  args: [{
18
18
  selector: '[rdxPopperAnchor]'
@@ -23,15 +23,15 @@ class RdxPopper {
23
23
  constructor() {
24
24
  this.anchor = contentChild.required(RdxPopperAnchor);
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
27
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.3", type: RdxPopper, isStandalone: true, selector: "[rdxPopperRoot]", queries: [{ propertyName: "anchor", first: true, predicate: RdxPopperAnchor, descendants: true, isSignal: true }], ngImport: i0 }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
27
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.9", type: RdxPopper, isStandalone: true, selector: "[rdxPopperRoot]", queries: [{ propertyName: "anchor", first: true, predicate: RdxPopperAnchor, descendants: true, isSignal: true }], ngImport: i0 }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopper, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopper, decorators: [{
30
30
  type: Directive,
31
31
  args: [{
32
32
  selector: '[rdxPopperRoot]'
33
33
  }]
34
- }] });
34
+ }], propDecorators: { anchor: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RdxPopperAnchor), { isSignal: true }] }] } });
35
35
 
36
36
  class RdxPopperContent {
37
37
  constructor() {
@@ -42,12 +42,12 @@ class RdxPopperContent {
42
42
  */
43
43
  this.style = computed(() => ({
44
44
  animation: !this.popperContentWrapper.isPositioned() ? 'none' : undefined
45
- }), ...(ngDevMode ? [{ debugName: "style" }] : []));
45
+ }), ...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: RdxPopperContent, isStandalone: true, selector: "[rdxPopperContent]", host: { properties: { "attr.data-side": "popperContentWrapper.placedSide()", "attr.data-align": "popperContentWrapper.placedAlign()", "style": "style()" } }, ngImport: i0 }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxPopperContent, isStandalone: true, selector: "[rdxPopperContent]", host: { properties: { "attr.data-side": "popperContentWrapper.placedSide()", "attr.data-align": "popperContentWrapper.placedAlign()", "style": "style()" } }, ngImport: i0 }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperContent, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperContent, decorators: [{
51
51
  type: Directive,
52
52
  args: [{
53
53
  selector: '[rdxPopperContent]',
@@ -130,62 +130,62 @@ class RdxPopperContentWrapper {
130
130
  * The preferred side of the anchor to render against when open.
131
131
  * Will be reversed when collisions occur and avoidCollisions is enabled.
132
132
  */
133
- this.side = input('bottom', ...(ngDevMode ? [{ debugName: "side" }] : []));
133
+ this.side = input('bottom', ...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
134
134
  /**
135
135
  * Distance between the anchor and the popup in pixels.
136
136
  */
137
- this.sideOffset = input(0, ...(ngDevMode ? [{ debugName: "sideOffset", transform: numberAttribute }] : [{ transform: numberAttribute }]));
137
+ this.sideOffset = input(0, { ...(ngDevMode ? { debugName: "sideOffset" } : /* istanbul ignore next */ {}), transform: numberAttribute });
138
138
  /**
139
139
  * How to align the popup relative to the specified side. May change when collisions occur.
140
140
  */
141
- this.align = input('center', ...(ngDevMode ? [{ debugName: "align" }] : []));
141
+ this.align = input('center', ...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
142
142
  /** An offset in pixels from the `start` or `end` alignment options. */
143
- this.alignOffset = input(0, ...(ngDevMode ? [{ debugName: "alignOffset", transform: numberAttribute }] : [{ transform: numberAttribute }]));
143
+ this.alignOffset = input(0, { ...(ngDevMode ? { debugName: "alignOffset" } : /* istanbul ignore next */ {}), transform: numberAttribute });
144
144
  /**
145
145
  * Minimum distance to maintain between the arrow and the edges of the popup.
146
146
  * If your content has border-radius, this will prevent it from overflowing the corners.
147
147
  */
148
- this.arrowPadding = input(0, ...(ngDevMode ? [{ debugName: "arrowPadding", transform: numberAttribute }] : [{ transform: numberAttribute }]));
148
+ this.arrowPadding = input(0, { ...(ngDevMode ? { debugName: "arrowPadding" } : /* istanbul ignore next */ {}), transform: numberAttribute });
149
149
  /** When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges. */
150
- this.avoidCollisions = input(true, ...(ngDevMode ? [{ debugName: "avoidCollisions", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
150
+ this.avoidCollisions = input(true, { ...(ngDevMode ? { debugName: "avoidCollisions" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
151
151
  /**
152
152
  * The element used as the collision boundary.
153
153
  * By default this is the viewport, though you can provide additional element(s) to be included in this check.
154
154
  */
155
- this.collisionBoundary = input(...(ngDevMode ? [undefined, { debugName: "collisionBoundary" }] : []));
155
+ this.collisionBoundary = input(...(ngDevMode ? [undefined, { debugName: "collisionBoundary" }] : /* istanbul ignore next */ []));
156
156
  /**
157
157
  * The distance in pixels from the boundary edges where collision detection should occur.
158
158
  * Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.
159
159
  */
160
- this.collisionPadding = input(0, ...(ngDevMode ? [{ debugName: "collisionPadding" }] : []));
160
+ this.collisionPadding = input(0, ...(ngDevMode ? [{ debugName: "collisionPadding" }] : /* istanbul ignore next */ []));
161
161
  /**
162
162
  * The sticky behavior on the align axis. `partial` will keep the
163
163
  * content in the boundary as long as the trigger is at least partially
164
164
  * in the boundary whilst "always" will keep the content in the boundary
165
165
  * regardless.
166
166
  */
167
- this.sticky = input('partial', ...(ngDevMode ? [{ debugName: "sticky" }] : []));
167
+ this.sticky = input('partial', ...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
168
168
  /**
169
169
  * Whether to hide the content when the trigger becomes fully occluded.
170
170
  */
171
- this.hideWhenDetached = input(false, ...(ngDevMode ? [{ debugName: "hideWhenDetached", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
171
+ this.hideWhenDetached = input(false, { ...(ngDevMode ? { debugName: "hideWhenDetached" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
172
172
  /**
173
173
  * The type of CSS position property to use.
174
174
  */
175
- this.positionStrategy = input('fixed', ...(ngDevMode ? [{ debugName: "positionStrategy" }] : []));
175
+ this.positionStrategy = input('fixed', ...(ngDevMode ? [{ debugName: "positionStrategy" }] : /* istanbul ignore next */ []));
176
176
  /**
177
177
  * Strategy to update the position of the floating element on every animation frame.
178
178
  */
179
- this.updatePositionStrategy = input('always', ...(ngDevMode ? [{ debugName: "updatePositionStrategy" }] : []));
179
+ this.updatePositionStrategy = input('always', ...(ngDevMode ? [{ debugName: "updatePositionStrategy" }] : /* istanbul ignore next */ []));
180
180
  /**
181
181
  * Emits when the element is placed.
182
182
  */
183
183
  this.placed = output();
184
- this.arrow = contentChild(forwardRef(() => RdxPopperArrow), ...(ngDevMode ? [{ debugName: "arrow" }] : []));
185
- this.shouldHideArrow = computed(() => this.position.value()?.middlewareData['arrow']?.centerOffset !== 0, ...(ngDevMode ? [{ debugName: "shouldHideArrow" }] : []));
186
- this.arrowX = computed(() => this.position.value()?.middlewareData['arrow']?.x, ...(ngDevMode ? [{ debugName: "arrowX" }] : []));
187
- this.arrowY = computed(() => this.position.value()?.middlewareData['arrow']?.y, ...(ngDevMode ? [{ debugName: "arrowY" }] : []));
188
- this.desiredPlacement = computed(() => (this.side() + (this.align() !== 'center' ? '-' + this.align() : '')), ...(ngDevMode ? [{ debugName: "desiredPlacement" }] : []));
184
+ this.arrow = contentChild(forwardRef(() => RdxPopperArrow), ...(ngDevMode ? [{ debugName: "arrow" }] : /* istanbul ignore next */ []));
185
+ this.shouldHideArrow = computed(() => this.position.value()?.middlewareData['arrow']?.centerOffset !== 0, ...(ngDevMode ? [{ debugName: "shouldHideArrow" }] : /* istanbul ignore next */ []));
186
+ this.arrowX = computed(() => this.position.value()?.middlewareData['arrow']?.x, ...(ngDevMode ? [{ debugName: "arrowX" }] : /* istanbul ignore next */ []));
187
+ this.arrowY = computed(() => this.position.value()?.middlewareData['arrow']?.y, ...(ngDevMode ? [{ debugName: "arrowY" }] : /* istanbul ignore next */ []));
188
+ this.desiredPlacement = computed(() => (this.side() + (this.align() !== 'center' ? '-' + this.align() : '')), ...(ngDevMode ? [{ debugName: "desiredPlacement" }] : /* istanbul ignore next */ []));
189
189
  this.arrowSize = computed(() => {
190
190
  const arrowElementRef = this.arrow()?.elementRef;
191
191
  if (!arrowElementRef) {
@@ -198,7 +198,7 @@ class RdxPopperContentWrapper {
198
198
  elementRef: arrowElementRef,
199
199
  injector: this.injector
200
200
  });
201
- }, ...(ngDevMode ? [{ debugName: "arrowSize" }] : []));
201
+ }, ...(ngDevMode ? [{ debugName: "arrowSize" }] : /* istanbul ignore next */ []));
202
202
  this.boundary = computed(() => {
203
203
  const boundary = this.collisionBoundary();
204
204
  if (Array.isArray(boundary)) {
@@ -208,16 +208,15 @@ class RdxPopperContentWrapper {
208
208
  return [];
209
209
  }
210
210
  return [boundary.nativeElement];
211
- }, ...(ngDevMode ? [{ debugName: "boundary" }] : []));
212
- this.hasExplicitBoundaries = computed(() => this.boundary().length > 0, ...(ngDevMode ? [{ debugName: "hasExplicitBoundaries" }] : []));
211
+ }, ...(ngDevMode ? [{ debugName: "boundary" }] : /* istanbul ignore next */ []));
212
+ this.hasExplicitBoundaries = computed(() => this.boundary().length > 0, ...(ngDevMode ? [{ debugName: "hasExplicitBoundaries" }] : /* istanbul ignore next */ []));
213
213
  this.detectOverflowOptions = computed(() => ({
214
214
  padding: this.collisionPadding(),
215
215
  boundary: this.boundary().filter(isNotNull),
216
216
  // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
217
217
  altBoundary: this.hasExplicitBoundaries()
218
- }), ...(ngDevMode ? [{ debugName: "detectOverflowOptions" }] : []));
219
- this.position = resource({
220
- loader: () => computePosition(this.context.anchor().elementRef.nativeElement, this.elementRef.nativeElement, {
218
+ }), ...(ngDevMode ? [{ debugName: "detectOverflowOptions" }] : /* istanbul ignore next */ []));
219
+ this.position = resource({ ...(ngDevMode ? { debugName: "position" } : /* istanbul ignore next */ {}), loader: () => computePosition(this.context.anchor().elementRef.nativeElement, this.elementRef.nativeElement, {
221
220
  // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
222
221
  strategy: this.positionStrategy(),
223
222
  placement: this.desiredPlacement(),
@@ -260,12 +259,11 @@ class RdxPopperContentWrapper {
260
259
  ...this.detectOverflowOptions()
261
260
  })
262
261
  ]
263
- })
264
- });
262
+ }) });
265
263
  /**
266
264
  * Whether the panel is positioned.
267
265
  */
268
- this.isPositioned = computed(() => this.position.hasValue(), ...(ngDevMode ? [{ debugName: "isPositioned" }] : []));
266
+ this.isPositioned = computed(() => this.position.hasValue(), ...(ngDevMode ? [{ debugName: "isPositioned" }] : /* istanbul ignore next */ []));
269
267
  /**
270
268
  * The current placement of the panel.
271
269
  */
@@ -279,15 +277,15 @@ class RdxPopperContentWrapper {
279
277
  side: side,
280
278
  align: align
281
279
  };
282
- }, ...(ngDevMode ? [{ debugName: "placement" }] : []));
280
+ }, ...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
283
281
  /**
284
282
  * The side the panel is currently placed against.
285
283
  */
286
- this.placedSide = computed(() => this.placement()?.side, ...(ngDevMode ? [{ debugName: "placedSide" }] : []));
284
+ this.placedSide = computed(() => this.placement()?.side, ...(ngDevMode ? [{ debugName: "placedSide" }] : /* istanbul ignore next */ []));
287
285
  /**
288
286
  * The current alignment of the panel.
289
287
  */
290
- this.placedAlign = computed(() => this.placement()?.align, ...(ngDevMode ? [{ debugName: "placedAlign" }] : []));
288
+ this.placedAlign = computed(() => this.placement()?.align, ...(ngDevMode ? [{ debugName: "placedAlign" }] : /* istanbul ignore next */ []));
291
289
  this.contentElementRef = contentChild.required(RdxPopperContent, {
292
290
  read: ElementRef
293
291
  });
@@ -296,7 +294,7 @@ class RdxPopperContentWrapper {
296
294
  return 0;
297
295
  }
298
296
  return getComputedStyle(this.contentElementRef().nativeElement).zIndex;
299
- }, ...(ngDevMode ? [{ debugName: "contentZIndex" }] : []));
297
+ }, ...(ngDevMode ? [{ debugName: "contentZIndex" }] : /* istanbul ignore next */ []));
300
298
  this.style = computed(() => {
301
299
  const pos = this.position.value();
302
300
  const x = pos?.x;
@@ -323,7 +321,7 @@ class RdxPopperContentWrapper {
323
321
  pointerEvents: 'none'
324
322
  })
325
323
  };
326
- }, ...(ngDevMode ? [{ debugName: "style" }] : []));
324
+ }, ...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
327
325
  this.afterNextRender = afterNextRender(() => {
328
326
  this.position.reload();
329
327
  const cleanup = autoUpdate(this.context.anchor().elementRef.nativeElement, this.elementRef.nativeElement, () => this.position.reload(), {
@@ -333,11 +331,16 @@ class RdxPopperContentWrapper {
333
331
  cleanup();
334
332
  });
335
333
  });
334
+ watch([this.isPositioned], () => {
335
+ afterNextRender(() => {
336
+ this.placed.emit();
337
+ }, { injector: this.injector });
338
+ });
336
339
  }
337
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperContentWrapper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
338
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.3", type: RdxPopperContentWrapper, isStandalone: true, selector: "[rdxPopperContentWrapper]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null }, arrowPadding: { classPropertyName: "arrowPadding", publicName: "arrowPadding", isSignal: true, isRequired: false, transformFunction: null }, avoidCollisions: { classPropertyName: "avoidCollisions", publicName: "avoidCollisions", isSignal: true, isRequired: false, transformFunction: null }, collisionBoundary: { classPropertyName: "collisionBoundary", publicName: "collisionBoundary", isSignal: true, isRequired: false, transformFunction: null }, collisionPadding: { classPropertyName: "collisionPadding", publicName: "collisionPadding", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, hideWhenDetached: { classPropertyName: "hideWhenDetached", publicName: "hideWhenDetached", isSignal: true, isRequired: false, transformFunction: null }, positionStrategy: { classPropertyName: "positionStrategy", publicName: "positionStrategy", isSignal: true, isRequired: false, transformFunction: null }, updatePositionStrategy: { classPropertyName: "updatePositionStrategy", publicName: "updatePositionStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { placed: "placed" }, host: { attributes: { "data-radix-popper-content-wrapper": "" }, properties: { "style": "style()" } }, providers: [providePopperContentWrapperContext(context)], queries: [{ propertyName: "arrow", first: true, predicate: i0.forwardRef(() => RdxPopperArrow), descendants: true, isSignal: true }, { propertyName: "contentElementRef", first: true, predicate: RdxPopperContent, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
340
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperContentWrapper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
341
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.9", type: RdxPopperContentWrapper, isStandalone: true, selector: "[rdxPopperContentWrapper]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null }, sideOffset: { classPropertyName: "sideOffset", publicName: "sideOffset", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, alignOffset: { classPropertyName: "alignOffset", publicName: "alignOffset", isSignal: true, isRequired: false, transformFunction: null }, arrowPadding: { classPropertyName: "arrowPadding", publicName: "arrowPadding", isSignal: true, isRequired: false, transformFunction: null }, avoidCollisions: { classPropertyName: "avoidCollisions", publicName: "avoidCollisions", isSignal: true, isRequired: false, transformFunction: null }, collisionBoundary: { classPropertyName: "collisionBoundary", publicName: "collisionBoundary", isSignal: true, isRequired: false, transformFunction: null }, collisionPadding: { classPropertyName: "collisionPadding", publicName: "collisionPadding", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, hideWhenDetached: { classPropertyName: "hideWhenDetached", publicName: "hideWhenDetached", isSignal: true, isRequired: false, transformFunction: null }, positionStrategy: { classPropertyName: "positionStrategy", publicName: "positionStrategy", isSignal: true, isRequired: false, transformFunction: null }, updatePositionStrategy: { classPropertyName: "updatePositionStrategy", publicName: "updatePositionStrategy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { placed: "placed" }, host: { attributes: { "data-radix-popper-content-wrapper": "" }, properties: { "style": "style()" } }, providers: [providePopperContentWrapperContext(context)], queries: [{ propertyName: "arrow", first: true, predicate: i0.forwardRef(() => RdxPopperArrow), descendants: true, isSignal: true }, { propertyName: "contentElementRef", first: true, predicate: RdxPopperContent, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0 }); }
339
342
  }
340
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperContentWrapper, decorators: [{
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperContentWrapper, decorators: [{
341
344
  type: Directive,
342
345
  args: [{
343
346
  selector: '[rdxPopperContentWrapper]',
@@ -347,7 +350,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
347
350
  '[style]': 'style()'
348
351
  }
349
352
  }]
350
- }] });
353
+ }], ctorParameters: () => [], propDecorators: { side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }], sideOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "sideOffset", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], alignOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "alignOffset", required: false }] }], arrowPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "arrowPadding", required: false }] }], avoidCollisions: [{ type: i0.Input, args: [{ isSignal: true, alias: "avoidCollisions", required: false }] }], collisionBoundary: [{ type: i0.Input, args: [{ isSignal: true, alias: "collisionBoundary", required: false }] }], collisionPadding: [{ type: i0.Input, args: [{ isSignal: true, alias: "collisionPadding", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], hideWhenDetached: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideWhenDetached", required: false }] }], positionStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "positionStrategy", required: false }] }], updatePositionStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "updatePositionStrategy", required: false }] }], placed: [{ type: i0.Output, args: ["placed"] }], arrow: [{ type: i0.ContentChild, args: [forwardRef(() => RdxPopperArrow), { isSignal: true }] }], contentElementRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RdxPopperContent), { ...{
354
+ read: ElementRef
355
+ }, isSignal: true }] }] } });
351
356
 
352
357
  const OPPOSITE_SIDE = {
353
358
  top: 'bottom',
@@ -360,9 +365,9 @@ class RdxPopperArrow {
360
365
  this.popperContentContext = injectPopperContentWrapperContext();
361
366
  this.environmentInjector = inject(EnvironmentInjector);
362
367
  this.elementRef = inject(ElementRef);
363
- this.width = input(10, ...(ngDevMode ? [{ debugName: "width", transform: numberAttribute }] : [{ transform: numberAttribute }]));
364
- this.height = input(5, ...(ngDevMode ? [{ debugName: "height", transform: numberAttribute }] : [{ transform: numberAttribute }]));
365
- this.baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()], ...(ngDevMode ? [{ debugName: "baseSide" }] : []));
368
+ this.width = input(10, { ...(ngDevMode ? { debugName: "width" } : /* istanbul ignore next */ {}), transform: numberAttribute });
369
+ this.height = input(5, { ...(ngDevMode ? { debugName: "height" } : /* istanbul ignore next */ {}), transform: numberAttribute });
370
+ this.baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()], ...(ngDevMode ? [{ debugName: "baseSide" }] : /* istanbul ignore next */ []));
366
371
  this.style = computed(() => {
367
372
  return {
368
373
  position: 'absolute',
@@ -383,7 +388,7 @@ class RdxPopperArrow {
383
388
  }[this.popperContentContext.placedSide()],
384
389
  visibility: this.popperContentContext.shouldHideArrow() ? 'hidden' : undefined
385
390
  };
386
- }, ...(ngDevMode ? [{ debugName: "style" }] : []));
391
+ }, ...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
387
392
  this.onCleanup = effect((onCleanup) => {
388
393
  const component = createComponent(RdxArrow, {
389
394
  environmentInjector: this.environmentInjector,
@@ -393,12 +398,12 @@ class RdxPopperArrow {
393
398
  });
394
399
  component.changeDetectorRef.detectChanges();
395
400
  onCleanup(() => component.destroy());
396
- }, ...(ngDevMode ? [{ debugName: "onCleanup" }] : []));
401
+ }, ...(ngDevMode ? [{ debugName: "onCleanup" }] : /* istanbul ignore next */ []));
397
402
  }
398
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperArrow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
399
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: RdxPopperArrow, isStandalone: true, selector: "[rdxPopperArrow]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "style()" } }, ngImport: i0 }); }
403
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperArrow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
404
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxPopperArrow, isStandalone: true, selector: "[rdxPopperArrow]", inputs: { width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style": "style()" } }, ngImport: i0 }); }
400
405
  }
401
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPopperArrow, decorators: [{
406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPopperArrow, decorators: [{
402
407
  type: Directive,
403
408
  args: [{
404
409
  selector: '[rdxPopperArrow]',
@@ -406,7 +411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
406
411
  '[style]': 'style()'
407
412
  }
408
413
  }]
409
- }] });
414
+ }], propDecorators: { width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }] } });
410
415
 
411
416
  const popperImports = [RdxPopper, RdxPopperArrow, RdxPopperContentWrapper, RdxPopperContent, RdxPopperAnchor];
412
417