@radix-ng/primitives 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/radix-ng-primitives-accordion.mjs +35 -27
- package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-alert-dialog.mjs +34 -34
- package/fesm2022/radix-ng-primitives-arrow.mjs +3 -3
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +5 -4
- package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-autocomplete.mjs +175 -125
- package/fesm2022/radix-ng-primitives-autocomplete.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-avatar.mjs +25 -19
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-button.mjs +11 -7
- package/fesm2022/radix-ng-primitives-button.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-calendar.mjs +140 -90
- package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-checkbox.mjs +61 -40
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-collapsible.mjs +35 -24
- package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-combobox.mjs +278 -177
- package/fesm2022/radix-ng-primitives-combobox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-composite.mjs +50 -33
- package/fesm2022/radix-ng-primitives-composite.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-config.mjs +7 -5
- package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-context-menu.mjs +48 -22
- package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-core.mjs +44 -28
- package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-cropper.mjs +73 -45
- package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-date-field.mjs +70 -40
- package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dialog.mjs +93 -67
- package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-direction-provider.mjs +5 -4
- package/fesm2022/radix-ng-primitives-direction-provider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +20 -16
- package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-drawer.mjs +107 -81
- package/fesm2022/radix-ng-primitives-drawer.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-editable.mjs +53 -39
- package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-field.mjs +69 -42
- package/fesm2022/radix-ng-primitives-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-fieldset.mjs +8 -7
- package/fesm2022/radix-ng-primitives-fieldset.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs +77 -40
- package/fesm2022/radix-ng-primitives-floating-focus-manager.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
- package/fesm2022/radix-ng-primitives-focus-scope.mjs +7 -5
- package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-form.mjs +25 -16
- package/fesm2022/radix-ng-primitives-form.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-input.mjs +41 -22
- package/fesm2022/radix-ng-primitives-input.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-label.mjs +7 -5
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menu.mjs +274 -154
- package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-menubar.mjs +35 -17
- package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-meter.mjs +41 -30
- package/fesm2022/radix-ng-primitives-meter.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs +220 -183
- package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-number-field.mjs +87 -59
- package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-pagination.mjs +48 -38
- package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popover.mjs +150 -107
- package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-popper.mjs +79 -47
- package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-portal.mjs +20 -13
- package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-presence.mjs +3 -3
- package/fesm2022/radix-ng-primitives-preview-card.mjs +119 -74
- package/fesm2022/radix-ng-primitives-preview-card.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-progress.mjs +43 -31
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +58 -35
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-scroll-area.mjs +54 -38
- package/fesm2022/radix-ng-primitives-scroll-area.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-select.mjs +595 -102
- package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +7 -5
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-slider.mjs +101 -63
- package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-stepper.mjs +53 -39
- package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +23 -18
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tabs.mjs +72 -47
- package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-time-field.mjs +72 -41
- package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toast.mjs +75 -56
- package/fesm2022/radix-ng-primitives-toast.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle-group.mjs +29 -19
- package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +16 -11
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toolbar.mjs +38 -30
- package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-tooltip.mjs +118 -63
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +31 -20
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
- package/package.json +2 -2
- package/types/radix-ng-primitives-autocomplete.d.ts +3 -1
- package/types/radix-ng-primitives-combobox.d.ts +28 -9
- package/types/radix-ng-primitives-context-menu.d.ts +2 -0
- package/types/radix-ng-primitives-dialog.d.ts +6 -3
- package/types/radix-ng-primitives-floating-focus-manager.d.ts +11 -0
- package/types/radix-ng-primitives-menu.d.ts +47 -15
- package/types/radix-ng-primitives-menubar.d.ts +6 -1
- package/types/radix-ng-primitives-navigation-menu.d.ts +8 -6
- package/types/radix-ng-primitives-popover.d.ts +12 -4
- package/types/radix-ng-primitives-preview-card.d.ts +18 -5
- package/types/radix-ng-primitives-select.d.ts +186 -391
- package/types/radix-ng-primitives-tooltip.d.ts +17 -3
|
@@ -8,10 +8,10 @@ class RdxPopperAnchor {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.elementRef = inject(ElementRef);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperAnchor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: RdxPopperAnchor, isStandalone: true, selector: "[rdxPopperAnchor]", ngImport: i0 }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperAnchor, decorators: [{
|
|
15
15
|
type: Directive,
|
|
16
16
|
args: [{
|
|
17
17
|
selector: '[rdxPopperAnchor]'
|
|
@@ -20,13 +20,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
20
20
|
|
|
21
21
|
class RdxPopper {
|
|
22
22
|
constructor() {
|
|
23
|
-
this.anchor = contentChild(RdxPopperAnchor,
|
|
24
|
-
|
|
23
|
+
this.anchor = contentChild(RdxPopperAnchor, /* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [{ debugName: "anchor" }] : /* istanbul ignore next */ []));
|
|
25
|
+
this.anchorOverride = signal(undefined, /* @ts-ignore */
|
|
26
|
+
...(ngDevMode ? [{ debugName: "anchorOverride" }] : /* istanbul ignore next */ []));
|
|
25
27
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.2", type: RdxPopper, isStandalone: true, selector: "[rdxPopperRoot]", queries: [{ propertyName: "anchor", first: true, predicate: RdxPopperAnchor, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
28
30
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopper, decorators: [{
|
|
30
32
|
type: Directive,
|
|
31
33
|
args: [{
|
|
32
34
|
selector: '[rdxPopperRoot]'
|
|
@@ -128,12 +130,14 @@ class RdxPopperContentWrapper {
|
|
|
128
130
|
/**
|
|
129
131
|
* An element to position the popup against. Defaults to the popper anchor.
|
|
130
132
|
*/
|
|
131
|
-
this.anchor = input(
|
|
133
|
+
this.anchor = input(/* @ts-ignore */
|
|
134
|
+
...(ngDevMode ? [undefined, { debugName: "anchor" }] : /* istanbul ignore next */ []));
|
|
132
135
|
/**
|
|
133
136
|
* The preferred side of the anchor to render against when open.
|
|
134
137
|
* Will be reversed when collisions occur and avoidCollisions is enabled.
|
|
135
138
|
*/
|
|
136
|
-
this.side = input(this.config.side ?? 'bottom',
|
|
139
|
+
this.side = input(this.config.side ?? 'bottom', /* @ts-ignore */
|
|
140
|
+
...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
|
|
137
141
|
/**
|
|
138
142
|
* Distance between the anchor and the popup in pixels.
|
|
139
143
|
*/
|
|
@@ -141,7 +145,8 @@ class RdxPopperContentWrapper {
|
|
|
141
145
|
/**
|
|
142
146
|
* How to align the popup relative to the specified side. May change when collisions occur.
|
|
143
147
|
*/
|
|
144
|
-
this.align = input(this.config.align ?? 'center',
|
|
148
|
+
this.align = input(this.config.align ?? 'center', /* @ts-ignore */
|
|
149
|
+
...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
145
150
|
/** An offset in pixels from the `start` or `end` alignment options. */
|
|
146
151
|
this.alignOffset = input(this.config.alignOffset ?? 0, { ...(ngDevMode ? { debugName: "alignOffset" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
147
152
|
/**
|
|
@@ -155,19 +160,22 @@ class RdxPopperContentWrapper {
|
|
|
155
160
|
* The element used as the collision boundary.
|
|
156
161
|
* By default this is the viewport, though you can provide additional element(s) to be included in this check.
|
|
157
162
|
*/
|
|
158
|
-
this.collisionBoundary = input(
|
|
163
|
+
this.collisionBoundary = input(/* @ts-ignore */
|
|
164
|
+
...(ngDevMode ? [undefined, { debugName: "collisionBoundary" }] : /* istanbul ignore next */ []));
|
|
159
165
|
/**
|
|
160
166
|
* The distance in pixels from the boundary edges where collision detection should occur.
|
|
161
167
|
* Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.
|
|
162
168
|
*/
|
|
163
|
-
this.collisionPadding = input(this.config.collisionPadding ?? 0,
|
|
169
|
+
this.collisionPadding = input(this.config.collisionPadding ?? 0, /* @ts-ignore */
|
|
170
|
+
...(ngDevMode ? [{ debugName: "collisionPadding" }] : /* istanbul ignore next */ []));
|
|
164
171
|
/**
|
|
165
172
|
* The sticky behavior on the align axis. `partial` will keep the
|
|
166
173
|
* content in the boundary as long as the trigger is at least partially
|
|
167
174
|
* in the boundary whilst "always" will keep the content in the boundary
|
|
168
175
|
* regardless.
|
|
169
176
|
*/
|
|
170
|
-
this.sticky = input(this.config.sticky ?? 'partial',
|
|
177
|
+
this.sticky = input(this.config.sticky ?? 'partial', /* @ts-ignore */
|
|
178
|
+
...(ngDevMode ? [{ debugName: "sticky" }] : /* istanbul ignore next */ []));
|
|
171
179
|
/**
|
|
172
180
|
* Whether to hide the content when the trigger becomes fully occluded.
|
|
173
181
|
*/
|
|
@@ -175,29 +183,39 @@ class RdxPopperContentWrapper {
|
|
|
175
183
|
/**
|
|
176
184
|
* The type of CSS position property to use.
|
|
177
185
|
*/
|
|
178
|
-
this.positionStrategy = input(this.config.positionStrategy ?? 'fixed',
|
|
186
|
+
this.positionStrategy = input(this.config.positionStrategy ?? 'fixed', /* @ts-ignore */
|
|
187
|
+
...(ngDevMode ? [{ debugName: "positionStrategy" }] : /* istanbul ignore next */ []));
|
|
179
188
|
/**
|
|
180
189
|
* Strategy to update the position of the floating element on every animation frame.
|
|
181
190
|
*/
|
|
182
|
-
this.updatePositionStrategy = input(this.config.updatePositionStrategy ?? 'optimized',
|
|
191
|
+
this.updatePositionStrategy = input(this.config.updatePositionStrategy ?? 'optimized', /* @ts-ignore */
|
|
192
|
+
...(ngDevMode ? [{ debugName: "updatePositionStrategy" }] : /* istanbul ignore next */ []));
|
|
183
193
|
/**
|
|
184
194
|
* Emits when the element is placed.
|
|
185
195
|
*/
|
|
186
196
|
this.placed = output();
|
|
187
|
-
this.arrow = contentChild(forwardRef(() => RdxPopperArrow),
|
|
197
|
+
this.arrow = contentChild(forwardRef(() => RdxPopperArrow), /* @ts-ignore */
|
|
198
|
+
...(ngDevMode ? [{ debugName: "arrow" }] : /* istanbul ignore next */ []));
|
|
188
199
|
/**
|
|
189
200
|
* When `true`, the content is rendered click/hover-through (`pointer-events: none`). Used for
|
|
190
201
|
* cursor-following content (e.g. a tooltip tracking the pointer) that must never intercept the
|
|
191
202
|
* pointer and steal hover from its trigger.
|
|
192
203
|
*/
|
|
193
|
-
this.nonInteractive = signal(false,
|
|
194
|
-
|
|
204
|
+
this.nonInteractive = signal(false, /* @ts-ignore */
|
|
205
|
+
...(ngDevMode ? [{ debugName: "nonInteractive" }] : /* istanbul ignore next */ []));
|
|
206
|
+
this.shouldHideArrow = computed(() => this.position.value()?.middlewareData['arrow']?.centerOffset !== 0, /* @ts-ignore */
|
|
207
|
+
...(ngDevMode ? [{ debugName: "shouldHideArrow" }] : /* istanbul ignore next */ []));
|
|
195
208
|
/** Whether the arrow could not be centered on the anchor because the popup was shifted. */
|
|
196
|
-
this.arrowUncentered = computed(() => (this.position.value()?.middlewareData['arrow']?.centerOffset ?? 0) !== 0,
|
|
197
|
-
|
|
198
|
-
this.
|
|
199
|
-
|
|
200
|
-
this.
|
|
209
|
+
this.arrowUncentered = computed(() => (this.position.value()?.middlewareData['arrow']?.centerOffset ?? 0) !== 0, /* @ts-ignore */
|
|
210
|
+
...(ngDevMode ? [{ debugName: "arrowUncentered" }] : /* istanbul ignore next */ []));
|
|
211
|
+
this.arrowX = computed(() => this.position.value()?.middlewareData['arrow']?.x, /* @ts-ignore */
|
|
212
|
+
...(ngDevMode ? [{ debugName: "arrowX" }] : /* istanbul ignore next */ []));
|
|
213
|
+
this.arrowY = computed(() => this.position.value()?.middlewareData['arrow']?.y, /* @ts-ignore */
|
|
214
|
+
...(ngDevMode ? [{ debugName: "arrowY" }] : /* istanbul ignore next */ []));
|
|
215
|
+
this.anchorHidden = computed(() => this.position.value()?.middlewareData.hide?.referenceHidden === true, /* @ts-ignore */
|
|
216
|
+
...(ngDevMode ? [{ debugName: "anchorHidden" }] : /* istanbul ignore next */ []));
|
|
217
|
+
this.desiredPlacement = computed(() => (this.side() + (this.align() !== 'center' ? '-' + this.align() : '')), /* @ts-ignore */
|
|
218
|
+
...(ngDevMode ? [{ debugName: "desiredPlacement" }] : /* istanbul ignore next */ []));
|
|
201
219
|
this.arrowSize = computed(() => {
|
|
202
220
|
const arrowElementRef = this.arrow()?.elementRef;
|
|
203
221
|
if (!arrowElementRef) {
|
|
@@ -210,7 +228,8 @@ class RdxPopperContentWrapper {
|
|
|
210
228
|
elementRef: arrowElementRef,
|
|
211
229
|
injector: this.injector
|
|
212
230
|
});
|
|
213
|
-
},
|
|
231
|
+
}, /* @ts-ignore */
|
|
232
|
+
...(ngDevMode ? [{ debugName: "arrowSize" }] : /* istanbul ignore next */ []));
|
|
214
233
|
this.boundary = computed(() => {
|
|
215
234
|
const boundary = this.collisionBoundary();
|
|
216
235
|
if (Array.isArray(boundary)) {
|
|
@@ -220,14 +239,17 @@ class RdxPopperContentWrapper {
|
|
|
220
239
|
return [];
|
|
221
240
|
}
|
|
222
241
|
return [boundary.nativeElement];
|
|
223
|
-
},
|
|
224
|
-
|
|
242
|
+
}, /* @ts-ignore */
|
|
243
|
+
...(ngDevMode ? [{ debugName: "boundary" }] : /* istanbul ignore next */ []));
|
|
244
|
+
this.hasExplicitBoundaries = computed(() => this.boundary().length > 0, /* @ts-ignore */
|
|
245
|
+
...(ngDevMode ? [{ debugName: "hasExplicitBoundaries" }] : /* istanbul ignore next */ []));
|
|
225
246
|
this.detectOverflowOptions = computed(() => ({
|
|
226
247
|
padding: this.collisionPadding(),
|
|
227
248
|
boundary: this.boundary().filter(isNotNull),
|
|
228
249
|
// with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
|
|
229
250
|
altBoundary: this.hasExplicitBoundaries()
|
|
230
|
-
}),
|
|
251
|
+
}), /* @ts-ignore */
|
|
252
|
+
...(ngDevMode ? [{ debugName: "detectOverflowOptions" }] : /* istanbul ignore next */ []));
|
|
231
253
|
this.resolvedAnchor = computed(() => {
|
|
232
254
|
const anchor = this.anchor();
|
|
233
255
|
const resolvedAnchor = typeof anchor === 'function' ? anchor() : anchor;
|
|
@@ -238,7 +260,8 @@ class RdxPopperContentWrapper {
|
|
|
238
260
|
return resolvedAnchor;
|
|
239
261
|
}
|
|
240
262
|
return this.context.anchorOverride() ?? this.context.anchor()?.elementRef.nativeElement ?? null;
|
|
241
|
-
},
|
|
263
|
+
}, /* @ts-ignore */
|
|
264
|
+
...(ngDevMode ? [{ debugName: "resolvedAnchor" }] : /* istanbul ignore next */ []));
|
|
242
265
|
this.position = resource({ ...(ngDevMode ? { debugName: "position" } : /* istanbul ignore next */ {}), params: () => this.positionParams(),
|
|
243
266
|
loader: ({ params }) => {
|
|
244
267
|
if (!params.anchor) {
|
|
@@ -303,7 +326,8 @@ class RdxPopperContentWrapper {
|
|
|
303
326
|
/**
|
|
304
327
|
* Whether the panel is positioned.
|
|
305
328
|
*/
|
|
306
|
-
this.isPositioned = computed(() => !!this.position.value(),
|
|
329
|
+
this.isPositioned = computed(() => !!this.position.value(), /* @ts-ignore */
|
|
330
|
+
...(ngDevMode ? [{ debugName: "isPositioned" }] : /* istanbul ignore next */ []));
|
|
307
331
|
/**
|
|
308
332
|
* The current placement of the panel.
|
|
309
333
|
*/
|
|
@@ -317,15 +341,18 @@ class RdxPopperContentWrapper {
|
|
|
317
341
|
side: side,
|
|
318
342
|
align: align
|
|
319
343
|
};
|
|
320
|
-
},
|
|
344
|
+
}, /* @ts-ignore */
|
|
345
|
+
...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
|
|
321
346
|
/**
|
|
322
347
|
* The side the panel is currently placed against.
|
|
323
348
|
*/
|
|
324
|
-
this.placedSide = computed(() => this.placement()?.side,
|
|
349
|
+
this.placedSide = computed(() => this.placement()?.side, /* @ts-ignore */
|
|
350
|
+
...(ngDevMode ? [{ debugName: "placedSide" }] : /* istanbul ignore next */ []));
|
|
325
351
|
/**
|
|
326
352
|
* The current alignment of the panel.
|
|
327
353
|
*/
|
|
328
|
-
this.placedAlign = computed(() => this.placement()?.align,
|
|
354
|
+
this.placedAlign = computed(() => this.placement()?.align, /* @ts-ignore */
|
|
355
|
+
...(ngDevMode ? [{ debugName: "placedAlign" }] : /* istanbul ignore next */ []));
|
|
329
356
|
this.style = computed(() => {
|
|
330
357
|
const pos = this.resolvedPosition();
|
|
331
358
|
const x = pos?.x;
|
|
@@ -366,7 +393,8 @@ class RdxPopperContentWrapper {
|
|
|
366
393
|
pointerEvents: 'none'
|
|
367
394
|
})
|
|
368
395
|
};
|
|
369
|
-
},
|
|
396
|
+
}, /* @ts-ignore */
|
|
397
|
+
...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
|
|
370
398
|
this.afterRenderEffect = afterRenderEffect((onCleanup) => {
|
|
371
399
|
this.position.reload();
|
|
372
400
|
const anchor = this.resolvedAnchor();
|
|
@@ -387,10 +415,10 @@ class RdxPopperContentWrapper {
|
|
|
387
415
|
}, { injector: this.injector });
|
|
388
416
|
});
|
|
389
417
|
}
|
|
390
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
391
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
418
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperContentWrapper, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
419
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.2", type: RdxPopperContentWrapper, isStandalone: true, selector: "[rdxPopperContentWrapper]", inputs: { anchor: { classPropertyName: "anchor", publicName: "anchor", isSignal: true, isRequired: false, transformFunction: null }, 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: { "attr.data-side": "placedSide()", "attr.data-align": "placedAlign()", "attr.data-anchor-hidden": "anchorHidden() ? \"\" : undefined", "style": "style()" } }, providers: [providePopperContentWrapperContext(context)], queries: [{ propertyName: "arrow", first: true, predicate: i0.forwardRef(() => RdxPopperArrow), descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
392
420
|
}
|
|
393
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperContentWrapper, decorators: [{
|
|
394
422
|
type: Directive,
|
|
395
423
|
args: [{
|
|
396
424
|
selector: '[rdxPopperContentWrapper]',
|
|
@@ -457,7 +485,8 @@ class RdxPopperArrow {
|
|
|
457
485
|
this.elementRef = inject(ElementRef);
|
|
458
486
|
this.width = input(10, { ...(ngDevMode ? { debugName: "width" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
459
487
|
this.height = input(5, { ...(ngDevMode ? { debugName: "height" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
460
|
-
this.baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()],
|
|
488
|
+
this.baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()], /* @ts-ignore */
|
|
489
|
+
...(ngDevMode ? [{ debugName: "baseSide" }] : /* istanbul ignore next */ []));
|
|
461
490
|
this.style = computed(() => {
|
|
462
491
|
return {
|
|
463
492
|
position: 'absolute',
|
|
@@ -478,7 +507,8 @@ class RdxPopperArrow {
|
|
|
478
507
|
}[this.popperContentContext.placedSide()],
|
|
479
508
|
visibility: this.popperContentContext.shouldHideArrow() ? 'hidden' : undefined
|
|
480
509
|
};
|
|
481
|
-
},
|
|
510
|
+
}, /* @ts-ignore */
|
|
511
|
+
...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
|
|
482
512
|
this.onCleanup = effect((onCleanup) => {
|
|
483
513
|
const component = createComponent(RdxArrow, {
|
|
484
514
|
environmentInjector: this.environmentInjector,
|
|
@@ -488,12 +518,13 @@ class RdxPopperArrow {
|
|
|
488
518
|
});
|
|
489
519
|
component.changeDetectorRef.detectChanges();
|
|
490
520
|
onCleanup(() => component.destroy());
|
|
491
|
-
},
|
|
521
|
+
}, /* @ts-ignore */
|
|
522
|
+
...(ngDevMode ? [{ debugName: "onCleanup" }] : /* istanbul ignore next */ []));
|
|
492
523
|
}
|
|
493
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
494
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
524
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperArrow, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
525
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.2", 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: { attributes: { "aria-hidden": "true" }, properties: { "style": "style()" } }, ngImport: i0 }); }
|
|
495
526
|
}
|
|
496
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
527
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperArrow, decorators: [{
|
|
497
528
|
type: Directive,
|
|
498
529
|
args: [{
|
|
499
530
|
selector: '[rdxPopperArrow]',
|
|
@@ -520,12 +551,13 @@ class RdxPopperContent {
|
|
|
520
551
|
*/
|
|
521
552
|
this.style = computed(() => ({
|
|
522
553
|
animation: this.popperContentWrapper && !this.popperContentWrapper.isPositioned() ? 'none' : undefined
|
|
523
|
-
}),
|
|
554
|
+
}), /* @ts-ignore */
|
|
555
|
+
...(ngDevMode ? [{ debugName: "style" }] : /* istanbul ignore next */ []));
|
|
524
556
|
}
|
|
525
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
526
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
557
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
558
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.2", type: RdxPopperContent, isStandalone: true, selector: "[rdxPopperContent]", host: { properties: { "attr.data-side": "popperContentWrapper?.placedSide()", "attr.data-align": "popperContentWrapper?.placedAlign()", "style": "style()" } }, ngImport: i0 }); }
|
|
527
559
|
}
|
|
528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
560
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.2", ngImport: i0, type: RdxPopperContent, decorators: [{
|
|
529
561
|
type: Directive,
|
|
530
562
|
args: [{
|
|
531
563
|
selector: '[rdxPopperContent]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radix-ng-primitives-popper.mjs","sources":["../../../packages/primitives/popper/src/popper-anchor.ts","../../../packages/primitives/popper/src/popper.ts","../../../packages/primitives/popper/src/popper-content.config.ts","../../../packages/primitives/popper/src/utils.ts","../../../packages/primitives/popper/src/popper-content-wrapper.ts","../../../packages/primitives/popper/src/popper-arrow.ts","../../../packages/primitives/popper/src/popper-content.ts","../../../packages/primitives/popper/index.ts","../../../packages/primitives/popper/radix-ng-primitives-popper.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[rdxPopperAnchor]'\n})\nexport class RdxPopperAnchor {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { contentChild, Directive, signal } from '@angular/core';\nimport type { ReferenceElement } from '@floating-ui/dom';\nimport { RdxPopperAnchor } from './popper-anchor';\n\n@Directive({\n selector: '[rdxPopperRoot]'\n})\nexport class RdxPopper {\n readonly anchor = contentChild(RdxPopperAnchor);\n readonly anchorOverride = signal<ReferenceElement | undefined>(undefined);\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { Align, Side } from './utils';\n\n/**\n * Default positioning values for `RdxPopperContentWrapper`.\n *\n * Lets a composing primitive (e.g. tooltip) provide its own Base UI-aligned defaults without\n * changing the shared popper defaults that other consumers (e.g. popover) rely on. Any value left\n * `undefined` falls back to the wrapper's built-in default. Consumer template bindings always win.\n */\nexport interface RdxPopperContentConfig {\n side?: Side;\n align?: Align;\n sideOffset?: number;\n alignOffset?: number;\n arrowPadding?: number;\n avoidCollisions?: boolean;\n collisionPadding?: number | Partial<Record<Side, number>>;\n sticky?: 'partial' | 'always';\n hideWhenDetached?: boolean;\n positionStrategy?: 'fixed' | 'absolute';\n updatePositionStrategy?: 'optimized' | 'always';\n}\n\nexport const RdxPopperContentConfigToken = new InjectionToken<RdxPopperContentConfig>('RdxPopperContentConfig', {\n factory: () => ({})\n});\n\nexport function provideRdxPopperContentConfig(config: RdxPopperContentConfig): Provider {\n return { provide: RdxPopperContentConfigToken, useValue: config };\n}\n","import type { Middleware, Placement } from '@floating-ui/dom';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SIDE_OPTIONS = ['top', 'right', 'bottom', 'left'] as const;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ALIGN_OPTIONS = ['start', 'center', 'end'] as const;\n\nexport type Side = (typeof SIDE_OPTIONS)[number];\nexport type Align = (typeof ALIGN_OPTIONS)[number];\n\nexport function isNotNull<T>(value: T | null): value is T {\n return value !== null;\n}\n\nexport function transformOrigin(options: { arrowWidth: number; arrowHeight: number }): Middleware {\n return {\n name: 'transformOrigin',\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: '0%', center: '50%', end: '100%' }[placedAlign];\n\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n\n let x = '';\n let y = '';\n\n if (placedSide === 'bottom') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === 'top') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === 'right') {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === 'left') {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n };\n}\n\nexport function getSideAndAlignFromPlacement(placement: Placement) {\n const [side, align = 'center'] = placement.split('-');\n return [side as Side, align as Align] as const;\n}\n","import {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n linkedSignal,\n numberAttribute,\n output,\n Provider,\n resource,\n signal,\n Type\n} from '@angular/core';\nimport type { ComputePositionReturn, ReferenceElement, VirtualElement } from '@floating-ui/dom';\nimport {\n autoUpdate,\n computePosition,\n flip,\n arrow as floatingUIArrow,\n hide,\n limitShift,\n offset,\n Placement,\n shift,\n size\n} from '@floating-ui/dom';\nimport { BooleanInput, createContext, elementSize, NumberInput, watch } from '@radix-ng/primitives/core';\nimport { RdxPopper } from './popper';\nimport { RdxPopperArrow } from './popper-arrow';\nimport { RdxPopperContentConfigToken } from './popper-content.config';\nimport { Align, isNotNull, Side, transformOrigin } from './utils';\n\nexport type RdxPopperAnchorElement =\n | Element\n | ElementRef<Element>\n | VirtualElement\n | (() => Element | VirtualElement | null)\n | null\n | undefined;\n\ntype PopperPositionParams = {\n anchor: ReferenceElement | null;\n strategy: 'fixed' | 'absolute';\n placement: Placement;\n sideOffset: number;\n alignOffset: number;\n arrowHeight: number;\n arrowWidth: number;\n avoidCollisions: boolean;\n sticky: 'partial' | 'always';\n detectOverflowOptions: {\n padding: number | Partial<Record<Side, number>>;\n boundary: Element[];\n altBoundary: boolean;\n };\n arrow: RdxPopperArrow | undefined;\n arrowPadding: number;\n hideWhenDetached: boolean;\n};\n\nconst context = () => {\n const popperContentWrapper = inject(RdxPopperContentWrapper);\n\n return {\n placedSide: popperContentWrapper.placedSide,\n placedAlign: popperContentWrapper.placedAlign,\n arrowX: popperContentWrapper.arrowX,\n arrowY: popperContentWrapper.arrowY,\n shouldHideArrow: popperContentWrapper.shouldHideArrow,\n isPositioned: popperContentWrapper.isPositioned,\n anchorHidden: popperContentWrapper.anchorHidden\n };\n};\n\nexport type PopperContentWrapperContext = ReturnType<typeof context>;\n\nexport const [injectPopperContentWrapperContext, providePopperContentWrapperContext] =\n createContext<PopperContentWrapperContext>('PopperContentWrapperContext', 'utils/popper');\n\n@Directive({\n selector: '[rdxPopperContentWrapper]',\n providers: [providePopperContentWrapperContext(context)],\n host: {\n 'data-radix-popper-content-wrapper': '',\n // Placement state, emitted once for every positioner (ADR 0012). The popup\n // (`RdxPopperContent`) keeps its own `data-side`/`data-align` as popup-level styling hooks.\n '[attr.data-side]': 'placedSide()',\n '[attr.data-align]': 'placedAlign()',\n '[attr.data-anchor-hidden]': 'anchorHidden() ? \"\" : undefined',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperContentWrapper {\n private readonly elementRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n\n private readonly context = inject(RdxPopper);\n\n /** Optional positioning defaults provided by a composing primitive (e.g. tooltip). */\n private readonly config = inject(RdxPopperContentConfigToken);\n\n /**\n * An element to position the popup against. Defaults to the popper anchor.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the anchor to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n readonly side = input<Side>(this.config.side ?? 'bottom');\n\n /**\n * Distance between the anchor and the popup in pixels.\n */\n readonly sideOffset = input<number, NumberInput>(this.config.sideOffset ?? 0, { transform: numberAttribute });\n\n /**\n * How to align the popup relative to the specified side. May change when collisions occur.\n */\n readonly align = input<Align>(this.config.align ?? 'center');\n\n /** An offset in pixels from the `start` or `end` alignment options. */\n readonly alignOffset = input<number, NumberInput>(this.config.alignOffset ?? 0, { transform: numberAttribute });\n\n /**\n * Minimum distance to maintain between the arrow and the edges of the popup.\n * If your content has border-radius, this will prevent it from overflowing the corners.\n */\n readonly arrowPadding = input<number, NumberInput>(this.config.arrowPadding ?? 0, { transform: numberAttribute });\n\n /** When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges. */\n readonly avoidCollisions = input<boolean, BooleanInput>(this.config.avoidCollisions ?? true, {\n transform: booleanAttribute\n });\n\n /**\n * The element used as the collision boundary.\n * By default this is the viewport, though you can provide additional element(s) to be included in this check.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n * Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(this.config.collisionPadding ?? 0);\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n */\n readonly sticky = input<'partial' | 'always'>(this.config.sticky ?? 'partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(this.config.hideWhenDetached ?? false, {\n transform: booleanAttribute\n });\n\n /**\n * The type of CSS position property to use.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>(this.config.positionStrategy ?? 'fixed');\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>(this.config.updatePositionStrategy ?? 'optimized');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = output<void>();\n\n readonly arrow = contentChild(forwardRef(() => RdxPopperArrow));\n\n /**\n * When `true`, the content is rendered click/hover-through (`pointer-events: none`). Used for\n * cursor-following content (e.g. a tooltip tracking the pointer) that must never intercept the\n * pointer and steal hover from its trigger.\n */\n readonly nonInteractive = signal(false);\n\n readonly shouldHideArrow = computed(() => this.position.value()?.middlewareData['arrow']?.centerOffset !== 0);\n /** Whether the arrow could not be centered on the anchor because the popup was shifted. */\n readonly arrowUncentered = computed(\n () => (this.position.value()?.middlewareData['arrow']?.centerOffset ?? 0) !== 0\n );\n readonly arrowX = computed(() => this.position.value()?.middlewareData['arrow']?.x);\n readonly arrowY = computed(() => this.position.value()?.middlewareData['arrow']?.y);\n readonly anchorHidden = computed(() => this.position.value()?.middlewareData.hide?.referenceHidden === true);\n\n private readonly desiredPlacement = computed(\n () => (this.side() + (this.align() !== 'center' ? '-' + this.align() : '')) as Placement\n );\n\n private readonly arrowSize = computed(() => {\n const arrowElementRef = this.arrow()?.elementRef;\n\n if (!arrowElementRef) {\n return computed(() => ({\n height: 0,\n width: 0\n }));\n }\n\n return elementSize({\n elementRef: arrowElementRef,\n injector: this.injector\n });\n });\n\n private readonly boundary = computed(() => {\n const boundary = this.collisionBoundary();\n\n if (Array.isArray(boundary)) {\n return boundary.map((e) => e.nativeElement);\n }\n\n if (!boundary) {\n return [];\n }\n\n return [boundary.nativeElement];\n });\n\n private readonly hasExplicitBoundaries = computed(() => this.boundary().length > 0);\n\n private readonly detectOverflowOptions = computed(() => ({\n padding: this.collisionPadding(),\n boundary: this.boundary().filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: this.hasExplicitBoundaries()\n }));\n\n private readonly resolvedAnchor = computed<ReferenceElement | null>(() => {\n const anchor = this.anchor();\n const resolvedAnchor = typeof anchor === 'function' ? anchor() : anchor;\n\n if (resolvedAnchor instanceof ElementRef) {\n return resolvedAnchor.nativeElement;\n }\n\n if (resolvedAnchor) {\n return resolvedAnchor;\n }\n\n return this.context.anchorOverride() ?? this.context.anchor()?.elementRef.nativeElement ?? null;\n });\n\n private readonly position = resource<ComputePositionReturn | null, PopperPositionParams>({\n params: () => this.positionParams(),\n loader: ({ params }) => {\n if (!params.anchor) {\n return Promise.resolve(null);\n }\n\n return computePosition(params.anchor, this.elementRef.nativeElement, {\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: params.strategy,\n placement: params.placement,\n middleware: [\n offset({\n mainAxis: params.sideOffset + params.arrowHeight || 0,\n alignmentAxis: params.alignOffset\n }),\n params.avoidCollisions &&\n shift({\n mainAxis: true,\n crossAxis: false,\n limiter: params.sticky === 'partial' ? limitShift() : undefined,\n ...params.detectOverflowOptions\n }),\n params.avoidCollisions && flip({ ...params.detectOverflowOptions }),\n size({\n ...params.detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty('--radix-popper-available-width', `${availableWidth}px`);\n contentStyle.setProperty('--radix-popper-available-height', `${availableHeight}px`);\n contentStyle.setProperty('--radix-popper-anchor-width', `${anchorWidth}px`);\n contentStyle.setProperty('--radix-popper-anchor-height', `${anchorHeight}px`);\n }\n }),\n params.arrow &&\n floatingUIArrow({\n element: params.arrow.elementRef.nativeElement,\n padding: params.arrowPadding\n }),\n transformOrigin({\n arrowWidth: params.arrowWidth,\n arrowHeight: params.arrowHeight\n }),\n params.hideWhenDetached &&\n hide({\n strategy: 'referenceHidden',\n ...params.detectOverflowOptions\n })\n ]\n });\n }\n });\n\n private positionParams(): PopperPositionParams {\n return {\n anchor: this.resolvedAnchor(),\n strategy: this.positionStrategy(),\n placement: this.desiredPlacement(),\n sideOffset: this.sideOffset(),\n alignOffset: this.alignOffset(),\n arrowHeight: this.arrowSize()().height,\n arrowWidth: this.arrowSize()().width,\n avoidCollisions: this.avoidCollisions(),\n sticky: this.sticky(),\n detectOverflowOptions: this.detectOverflowOptions(),\n arrow: this.arrow(),\n arrowPadding: this.arrowPadding(),\n hideWhenDetached: this.hideWhenDetached()\n };\n }\n\n /**\n * The last successfully computed position, retained while a new one is being computed.\n *\n * The `position` resource resets `value()` to `undefined` whenever its params change (e.g. on\n * every pointer move while a tooltip tracks the cursor). Reading it directly would blank the\n * popup (`visibility: hidden` + off-screen transform) for the frames between a move and the next\n * resolved position — a visible flicker at high pointer-move rates. Holding the previous value\n * keeps the popup placed and visible until the new position is ready.\n */\n private readonly resolvedPosition = linkedSignal<\n ComputePositionReturn | undefined,\n ComputePositionReturn | undefined\n >({\n source: () => this.position.value() ?? undefined,\n computation: (value, previous) => value ?? previous?.value\n });\n\n /**\n * Whether the panel is positioned.\n */\n readonly isPositioned = computed(() => !!this.position.value());\n\n /**\n * The current placement of the panel.\n */\n readonly placement = computed(() => {\n const placement = this.position.value()?.placement;\n\n if (!placement) {\n return;\n }\n\n const [side, align = 'center'] = placement.split('-');\n\n return {\n side: side as Side,\n align: align as Align\n };\n });\n\n /**\n * The side the panel is currently placed against.\n */\n readonly placedSide = computed(() => this.placement()?.side);\n\n /**\n * The current alignment of the panel.\n */\n readonly placedAlign = computed(() => this.placement()?.align);\n\n protected readonly style = computed(() => {\n const pos = this.resolvedPosition();\n const x = pos?.x;\n const y = pos?.y;\n\n const ready = Number.isFinite(x) && Number.isFinite(y);\n\n return {\n position: this.positionStrategy(),\n transform: ready ? '' : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n // ADR 0012 §3: z-index belongs on the positioner (set it via a class/style on the\n // positioner element), Base UI-aligned. The wrapper no longer copies the popup's computed\n // z-index, so a positioner no longer requires an inner `RdxPopperContent` to exist.\n top: Number.isFinite(y) ? `${y}px` : '',\n left: Number.isFinite(x) ? `${x}px` : '',\n '--radix-popper-transform-origin': [\n pos?.middlewareData['transformOrigin']?.x,\n pos?.middlewareData['transformOrigin']?.y\n ].join(' '),\n '--radix-popper-content-wrapper-width': `${this.elementRef.nativeElement.offsetWidth}px`,\n '--radix-popper-content-wrapper-height': `${this.elementRef.nativeElement.offsetHeight}px`,\n\n // Unified Base UI-style variables (ADR 0012), emitted once for every positioner so\n // consumers learn a single dialect. They alias the engine-level `--radix-popper-*` values\n // (the `--anchor-*`/`--available-*` ones are set imperatively by the `size` middleware).\n '--anchor-width': 'var(--radix-popper-anchor-width)',\n '--anchor-height': 'var(--radix-popper-anchor-height)',\n '--available-width': 'var(--radix-popper-available-width)',\n '--available-height': 'var(--radix-popper-available-height)',\n '--positioner-width': 'var(--radix-popper-content-wrapper-width)',\n '--positioner-height': 'var(--radix-popper-content-wrapper-height)',\n '--transform-origin': 'var(--radix-popper-transform-origin)',\n\n visibility: ready ? 'visible' : 'hidden',\n pointerEvents: this.nonInteractive() || !ready ? 'none' : 'auto',\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(pos?.middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none'\n })\n };\n });\n\n private readonly afterRenderEffect = afterRenderEffect((onCleanup) => {\n this.position.reload();\n\n const anchor = this.resolvedAnchor();\n if (!anchor) {\n return;\n }\n\n const cleanup = autoUpdate(anchor, this.elementRef.nativeElement, () => this.position.reload(), {\n animationFrame: this.updatePositionStrategy() === 'always'\n });\n\n onCleanup(cleanup);\n });\n\n constructor() {\n watch([this.isPositioned], ([isPositioned]) => {\n if (!isPositioned) {\n return;\n }\n\n afterNextRender(\n () => {\n this.placed.emit();\n },\n { injector: this.injector }\n );\n });\n }\n}\n\n/**\n * Providers a \"thin\" positioner that `extends RdxPopperContentWrapper` must include. Angular\n * inherits a base directive's inputs/outputs/host bindings/queries but **not** its `providers`, so\n * the `useExisting` alias (lets the popup and arrow resolve the subclass through the\n * {@link RdxPopperContentWrapper} token) and the wrapper context provider (what\n * `injectPopperContentWrapperContext()` reads) are re-declared here in one place.\n *\n * Combine with {@link provideRdxPopperContentConfig} for per-primitive positioning defaults:\n *\n * ```ts\n * providers: [\n * ...provideRdxPopperContentWrapper(RdxComboboxPositioner),\n * provideRdxPopperContentConfig({ sideOffset: 4, align: 'start' })\n * ]\n * ```\n */\nexport function provideRdxPopperContentWrapper(positioner: Type<RdxPopperContentWrapper>): Provider[] {\n return [{ provide: RdxPopperContentWrapper, useExisting: positioner }, providePopperContentWrapperContext(context)];\n}\n\n/**\n * Deprecated per-primitive aliases of the unified popper variables (ADR 0012). Since the wrapper now\n * emits the unified `--anchor-*` / `--available-*` / `--transform-origin` set itself, a positioner no\n * longer hand-writes a re-namespacing `[style]` map; it spreads this helper into a host `[style]`\n * binding only to keep the legacy `--radix-<name>-content-*` / `--radix-<name>-trigger-*` names alive\n * for one release of consumer back-compat. Migrate to the unified set; these are removed next minor.\n *\n * @deprecated Use the unified `--anchor-*` / `--available-*` / `--transform-origin` variables.\n */\nexport function legacyPopperVars(name: string): Record<string, string> {\n return {\n [`--radix-${name}-content-transform-origin`]: 'var(--radix-popper-transform-origin)',\n [`--radix-${name}-content-available-width`]: 'var(--radix-popper-available-width)',\n [`--radix-${name}-content-available-height`]: 'var(--radix-popper-available-height)',\n [`--radix-${name}-trigger-width`]: 'var(--radix-popper-anchor-width)',\n [`--radix-${name}-trigger-height`]: 'var(--radix-popper-anchor-height)'\n };\n}\n","import {\n computed,\n createComponent,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n inject,\n input,\n inputBinding,\n numberAttribute\n} from '@angular/core';\nimport { RdxArrow } from '@radix-ng/primitives/arrow';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\nimport { Side } from './utils';\n\nconst OPPOSITE_SIDE: Record<Side, Side> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\n\n@Directive({\n selector: '[rdxPopperArrow]',\n host: {\n // The arrow is purely decorative — keep it out of the accessibility tree (Base UI does the same).\n 'aria-hidden': 'true',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperArrow {\n private readonly popperContentContext = injectPopperContentWrapperContext();\n\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly width = input(10, { transform: numberAttribute });\n\n readonly height = input(5, { transform: numberAttribute });\n\n baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()!]);\n\n protected readonly style = computed(() => {\n return {\n position: 'absolute',\n left: this.popperContentContext.arrowX() ? `${this.popperContentContext.arrowX()}px` : undefined,\n top: this.popperContentContext.arrowY() ? `${this.popperContentContext.arrowY()}px` : undefined,\n [this.baseSide()]: 0,\n transformOrigin: {\n top: '',\n right: '0 0',\n bottom: 'center 0',\n left: '100% 0'\n }[this.popperContentContext.placedSide()!],\n transform: {\n top: 'translateY(100%)',\n right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n bottom: `rotate(180deg)`,\n left: 'translateY(50%) rotate(-90deg) translateX(50%)'\n }[this.popperContentContext.placedSide()!],\n visibility: this.popperContentContext.shouldHideArrow() ? 'hidden' : undefined\n };\n });\n\n private onCleanup = effect((onCleanup) => {\n const component = createComponent(RdxArrow, {\n environmentInjector: this.environmentInjector,\n hostElement: this.elementRef.nativeElement,\n projectableNodes: [Array.from(this.elementRef.nativeElement.childNodes)],\n bindings: [inputBinding('width', () => this.width()), inputBinding('height', () => this.height())]\n });\n\n component.changeDetectorRef.detectChanges();\n\n onCleanup(() => component.destroy());\n });\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\n\n@Directive({\n selector: '[rdxPopperContent]',\n host: {\n '[attr.data-side]': 'popperContentWrapper?.placedSide()',\n '[attr.data-align]': 'popperContentWrapper?.placedAlign()',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperContent {\n /**\n * Optional so the directive can be composed onto a content part that is also used outside Popper\n * positioning (e.g. select's `item-aligned` mode, where there is no `RdxPopperContentWrapper`\n * ancestor). With no wrapper the `data-side` / `data-align` bindings and the animation guard\n * simply no-op.\n */\n protected readonly popperContentWrapper = injectPopperContentWrapperContext(true);\n\n /**\n * if the PopperContent hasn't been placed yet (not all measurements done)\n * we prevent animations so that users's animation don't kick in too early referring wrong sides\n */\n protected readonly style = computed(() => ({\n animation: this.popperContentWrapper && !this.popperContentWrapper.isPositioned() ? 'none' : undefined\n }));\n}\n","import { RdxPopper } from './src/popper';\nimport { RdxPopperAnchor } from './src/popper-anchor';\nimport { RdxPopperArrow } from './src/popper-arrow';\nimport { RdxPopperContent } from './src/popper-content';\nimport { RdxPopperContentWrapper } from './src/popper-content-wrapper';\n\nexport * from './src/popper';\nexport * from './src/popper-anchor';\nexport * from './src/popper-arrow';\nexport * from './src/popper-content';\nexport * from './src/popper-content-wrapper';\nexport * from './src/popper-content.config';\nexport * from './src/utils';\n\nexport const popperImports = [RdxPopper, RdxPopperArrow, RdxPopperContentWrapper, RdxPopperContent, RdxPopperAnchor];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["floatingUIArrow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"radix-ng-primitives-popper.mjs","sources":["../../../packages/primitives/popper/src/popper-anchor.ts","../../../packages/primitives/popper/src/popper.ts","../../../packages/primitives/popper/src/popper-content.config.ts","../../../packages/primitives/popper/src/utils.ts","../../../packages/primitives/popper/src/popper-content-wrapper.ts","../../../packages/primitives/popper/src/popper-arrow.ts","../../../packages/primitives/popper/src/popper-content.ts","../../../packages/primitives/popper/index.ts","../../../packages/primitives/popper/radix-ng-primitives-popper.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[rdxPopperAnchor]'\n})\nexport class RdxPopperAnchor {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { contentChild, Directive, signal } from '@angular/core';\nimport type { ReferenceElement } from '@floating-ui/dom';\nimport { RdxPopperAnchor } from './popper-anchor';\n\n@Directive({\n selector: '[rdxPopperRoot]'\n})\nexport class RdxPopper {\n readonly anchor = contentChild(RdxPopperAnchor);\n readonly anchorOverride = signal<ReferenceElement | undefined>(undefined);\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { Align, Side } from './utils';\n\n/**\n * Default positioning values for `RdxPopperContentWrapper`.\n *\n * Lets a composing primitive (e.g. tooltip) provide its own Base UI-aligned defaults without\n * changing the shared popper defaults that other consumers (e.g. popover) rely on. Any value left\n * `undefined` falls back to the wrapper's built-in default. Consumer template bindings always win.\n */\nexport interface RdxPopperContentConfig {\n side?: Side;\n align?: Align;\n sideOffset?: number;\n alignOffset?: number;\n arrowPadding?: number;\n avoidCollisions?: boolean;\n collisionPadding?: number | Partial<Record<Side, number>>;\n sticky?: 'partial' | 'always';\n hideWhenDetached?: boolean;\n positionStrategy?: 'fixed' | 'absolute';\n updatePositionStrategy?: 'optimized' | 'always';\n}\n\nexport const RdxPopperContentConfigToken = new InjectionToken<RdxPopperContentConfig>('RdxPopperContentConfig', {\n factory: () => ({})\n});\n\nexport function provideRdxPopperContentConfig(config: RdxPopperContentConfig): Provider {\n return { provide: RdxPopperContentConfigToken, useValue: config };\n}\n","import type { Middleware, Placement } from '@floating-ui/dom';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SIDE_OPTIONS = ['top', 'right', 'bottom', 'left'] as const;\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst ALIGN_OPTIONS = ['start', 'center', 'end'] as const;\n\nexport type Side = (typeof SIDE_OPTIONS)[number];\nexport type Align = (typeof ALIGN_OPTIONS)[number];\n\nexport function isNotNull<T>(value: T | null): value is T {\n return value !== null;\n}\n\nexport function transformOrigin(options: { arrowWidth: number; arrowHeight: number }): Middleware {\n return {\n name: 'transformOrigin',\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: '0%', center: '50%', end: '100%' }[placedAlign];\n\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n\n let x = '';\n let y = '';\n\n if (placedSide === 'bottom') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n } else if (placedSide === 'top') {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n } else if (placedSide === 'right') {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n } else if (placedSide === 'left') {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n }\n };\n}\n\nexport function getSideAndAlignFromPlacement(placement: Placement) {\n const [side, align = 'center'] = placement.split('-');\n return [side as Side, align as Align] as const;\n}\n","import {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n computed,\n contentChild,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n linkedSignal,\n numberAttribute,\n output,\n Provider,\n resource,\n signal,\n Type\n} from '@angular/core';\nimport type { ComputePositionReturn, ReferenceElement, VirtualElement } from '@floating-ui/dom';\nimport {\n autoUpdate,\n computePosition,\n flip,\n arrow as floatingUIArrow,\n hide,\n limitShift,\n offset,\n Placement,\n shift,\n size\n} from '@floating-ui/dom';\nimport { BooleanInput, createContext, elementSize, NumberInput, watch } from '@radix-ng/primitives/core';\nimport { RdxPopper } from './popper';\nimport { RdxPopperArrow } from './popper-arrow';\nimport { RdxPopperContentConfigToken } from './popper-content.config';\nimport { Align, isNotNull, Side, transformOrigin } from './utils';\n\nexport type RdxPopperAnchorElement =\n | Element\n | ElementRef<Element>\n | VirtualElement\n | (() => Element | VirtualElement | null)\n | null\n | undefined;\n\ntype PopperPositionParams = {\n anchor: ReferenceElement | null;\n strategy: 'fixed' | 'absolute';\n placement: Placement;\n sideOffset: number;\n alignOffset: number;\n arrowHeight: number;\n arrowWidth: number;\n avoidCollisions: boolean;\n sticky: 'partial' | 'always';\n detectOverflowOptions: {\n padding: number | Partial<Record<Side, number>>;\n boundary: Element[];\n altBoundary: boolean;\n };\n arrow: RdxPopperArrow | undefined;\n arrowPadding: number;\n hideWhenDetached: boolean;\n};\n\nconst context = () => {\n const popperContentWrapper = inject(RdxPopperContentWrapper);\n\n return {\n placedSide: popperContentWrapper.placedSide,\n placedAlign: popperContentWrapper.placedAlign,\n arrowX: popperContentWrapper.arrowX,\n arrowY: popperContentWrapper.arrowY,\n shouldHideArrow: popperContentWrapper.shouldHideArrow,\n isPositioned: popperContentWrapper.isPositioned,\n anchorHidden: popperContentWrapper.anchorHidden\n };\n};\n\nexport type PopperContentWrapperContext = ReturnType<typeof context>;\n\nexport const [injectPopperContentWrapperContext, providePopperContentWrapperContext] =\n createContext<PopperContentWrapperContext>('PopperContentWrapperContext', 'utils/popper');\n\n@Directive({\n selector: '[rdxPopperContentWrapper]',\n providers: [providePopperContentWrapperContext(context)],\n host: {\n 'data-radix-popper-content-wrapper': '',\n // Placement state, emitted once for every positioner (ADR 0012). The popup\n // (`RdxPopperContent`) keeps its own `data-side`/`data-align` as popup-level styling hooks.\n '[attr.data-side]': 'placedSide()',\n '[attr.data-align]': 'placedAlign()',\n '[attr.data-anchor-hidden]': 'anchorHidden() ? \"\" : undefined',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperContentWrapper {\n private readonly elementRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n\n private readonly context = inject(RdxPopper);\n\n /** Optional positioning defaults provided by a composing primitive (e.g. tooltip). */\n private readonly config = inject(RdxPopperContentConfigToken);\n\n /**\n * An element to position the popup against. Defaults to the popper anchor.\n */\n readonly anchor = input<RdxPopperAnchorElement>();\n\n /**\n * The preferred side of the anchor to render against when open.\n * Will be reversed when collisions occur and avoidCollisions is enabled.\n */\n readonly side = input<Side>(this.config.side ?? 'bottom');\n\n /**\n * Distance between the anchor and the popup in pixels.\n */\n readonly sideOffset = input<number, NumberInput>(this.config.sideOffset ?? 0, { transform: numberAttribute });\n\n /**\n * How to align the popup relative to the specified side. May change when collisions occur.\n */\n readonly align = input<Align>(this.config.align ?? 'center');\n\n /** An offset in pixels from the `start` or `end` alignment options. */\n readonly alignOffset = input<number, NumberInput>(this.config.alignOffset ?? 0, { transform: numberAttribute });\n\n /**\n * Minimum distance to maintain between the arrow and the edges of the popup.\n * If your content has border-radius, this will prevent it from overflowing the corners.\n */\n readonly arrowPadding = input<number, NumberInput>(this.config.arrowPadding ?? 0, { transform: numberAttribute });\n\n /** When `true`, overrides the `side` and `align` preferences to prevent collisions with boundary edges. */\n readonly avoidCollisions = input<boolean, BooleanInput>(this.config.avoidCollisions ?? true, {\n transform: booleanAttribute\n });\n\n /**\n * The element used as the collision boundary.\n * By default this is the viewport, though you can provide additional element(s) to be included in this check.\n */\n readonly collisionBoundary = input<ElementRef<HTMLElement> | ElementRef<HTMLElement>[]>();\n /**\n * The distance in pixels from the boundary edges where collision detection should occur.\n * Accepts a number (same for all sides), or a partial padding object, for example: `{ top: 20, left: 20 }`.\n */\n readonly collisionPadding = input<number | Partial<Record<Side, number>>>(this.config.collisionPadding ?? 0);\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n */\n readonly sticky = input<'partial' | 'always'>(this.config.sticky ?? 'partial');\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n */\n readonly hideWhenDetached = input<boolean, BooleanInput>(this.config.hideWhenDetached ?? false, {\n transform: booleanAttribute\n });\n\n /**\n * The type of CSS position property to use.\n */\n readonly positionStrategy = input<'fixed' | 'absolute'>(this.config.positionStrategy ?? 'fixed');\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n */\n readonly updatePositionStrategy = input<'optimized' | 'always'>(this.config.updatePositionStrategy ?? 'optimized');\n\n /**\n * Emits when the element is placed.\n */\n readonly placed = output<void>();\n\n readonly arrow = contentChild(forwardRef(() => RdxPopperArrow));\n\n /**\n * When `true`, the content is rendered click/hover-through (`pointer-events: none`). Used for\n * cursor-following content (e.g. a tooltip tracking the pointer) that must never intercept the\n * pointer and steal hover from its trigger.\n */\n readonly nonInteractive = signal(false);\n\n readonly shouldHideArrow = computed(() => this.position.value()?.middlewareData['arrow']?.centerOffset !== 0);\n /** Whether the arrow could not be centered on the anchor because the popup was shifted. */\n readonly arrowUncentered = computed(\n () => (this.position.value()?.middlewareData['arrow']?.centerOffset ?? 0) !== 0\n );\n readonly arrowX = computed(() => this.position.value()?.middlewareData['arrow']?.x);\n readonly arrowY = computed(() => this.position.value()?.middlewareData['arrow']?.y);\n readonly anchorHidden = computed(() => this.position.value()?.middlewareData.hide?.referenceHidden === true);\n\n private readonly desiredPlacement = computed(\n () => (this.side() + (this.align() !== 'center' ? '-' + this.align() : '')) as Placement\n );\n\n private readonly arrowSize = computed(() => {\n const arrowElementRef = this.arrow()?.elementRef;\n\n if (!arrowElementRef) {\n return computed(() => ({\n height: 0,\n width: 0\n }));\n }\n\n return elementSize({\n elementRef: arrowElementRef,\n injector: this.injector\n });\n });\n\n private readonly boundary = computed(() => {\n const boundary = this.collisionBoundary();\n\n if (Array.isArray(boundary)) {\n return boundary.map((e) => e.nativeElement);\n }\n\n if (!boundary) {\n return [];\n }\n\n return [boundary.nativeElement];\n });\n\n private readonly hasExplicitBoundaries = computed(() => this.boundary().length > 0);\n\n private readonly detectOverflowOptions = computed(() => ({\n padding: this.collisionPadding(),\n boundary: this.boundary().filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: this.hasExplicitBoundaries()\n }));\n\n private readonly resolvedAnchor = computed<ReferenceElement | null>(() => {\n const anchor = this.anchor();\n const resolvedAnchor = typeof anchor === 'function' ? anchor() : anchor;\n\n if (resolvedAnchor instanceof ElementRef) {\n return resolvedAnchor.nativeElement;\n }\n\n if (resolvedAnchor) {\n return resolvedAnchor;\n }\n\n return this.context.anchorOverride() ?? this.context.anchor()?.elementRef.nativeElement ?? null;\n });\n\n private readonly position = resource<ComputePositionReturn | null, PopperPositionParams>({\n params: () => this.positionParams(),\n loader: ({ params }) => {\n if (!params.anchor) {\n return Promise.resolve(null);\n }\n\n return computePosition(params.anchor, this.elementRef.nativeElement, {\n // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n strategy: params.strategy,\n placement: params.placement,\n middleware: [\n offset({\n mainAxis: params.sideOffset + params.arrowHeight || 0,\n alignmentAxis: params.alignOffset\n }),\n params.avoidCollisions &&\n shift({\n mainAxis: true,\n crossAxis: false,\n limiter: params.sticky === 'partial' ? limitShift() : undefined,\n ...params.detectOverflowOptions\n }),\n params.avoidCollisions && flip({ ...params.detectOverflowOptions }),\n size({\n ...params.detectOverflowOptions,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n const contentStyle = elements.floating.style;\n contentStyle.setProperty('--radix-popper-available-width', `${availableWidth}px`);\n contentStyle.setProperty('--radix-popper-available-height', `${availableHeight}px`);\n contentStyle.setProperty('--radix-popper-anchor-width', `${anchorWidth}px`);\n contentStyle.setProperty('--radix-popper-anchor-height', `${anchorHeight}px`);\n }\n }),\n params.arrow &&\n floatingUIArrow({\n element: params.arrow.elementRef.nativeElement,\n padding: params.arrowPadding\n }),\n transformOrigin({\n arrowWidth: params.arrowWidth,\n arrowHeight: params.arrowHeight\n }),\n params.hideWhenDetached &&\n hide({\n strategy: 'referenceHidden',\n ...params.detectOverflowOptions\n })\n ]\n });\n }\n });\n\n private positionParams(): PopperPositionParams {\n return {\n anchor: this.resolvedAnchor(),\n strategy: this.positionStrategy(),\n placement: this.desiredPlacement(),\n sideOffset: this.sideOffset(),\n alignOffset: this.alignOffset(),\n arrowHeight: this.arrowSize()().height,\n arrowWidth: this.arrowSize()().width,\n avoidCollisions: this.avoidCollisions(),\n sticky: this.sticky(),\n detectOverflowOptions: this.detectOverflowOptions(),\n arrow: this.arrow(),\n arrowPadding: this.arrowPadding(),\n hideWhenDetached: this.hideWhenDetached()\n };\n }\n\n /**\n * The last successfully computed position, retained while a new one is being computed.\n *\n * The `position` resource resets `value()` to `undefined` whenever its params change (e.g. on\n * every pointer move while a tooltip tracks the cursor). Reading it directly would blank the\n * popup (`visibility: hidden` + off-screen transform) for the frames between a move and the next\n * resolved position — a visible flicker at high pointer-move rates. Holding the previous value\n * keeps the popup placed and visible until the new position is ready.\n */\n private readonly resolvedPosition = linkedSignal<\n ComputePositionReturn | undefined,\n ComputePositionReturn | undefined\n >({\n source: () => this.position.value() ?? undefined,\n computation: (value, previous) => value ?? previous?.value\n });\n\n /**\n * Whether the panel is positioned.\n */\n readonly isPositioned = computed(() => !!this.position.value());\n\n /**\n * The current placement of the panel.\n */\n readonly placement = computed(() => {\n const placement = this.position.value()?.placement;\n\n if (!placement) {\n return;\n }\n\n const [side, align = 'center'] = placement.split('-');\n\n return {\n side: side as Side,\n align: align as Align\n };\n });\n\n /**\n * The side the panel is currently placed against.\n */\n readonly placedSide = computed(() => this.placement()?.side);\n\n /**\n * The current alignment of the panel.\n */\n readonly placedAlign = computed(() => this.placement()?.align);\n\n protected readonly style = computed(() => {\n const pos = this.resolvedPosition();\n const x = pos?.x;\n const y = pos?.y;\n\n const ready = Number.isFinite(x) && Number.isFinite(y);\n\n return {\n position: this.positionStrategy(),\n transform: ready ? '' : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n // ADR 0012 §3: z-index belongs on the positioner (set it via a class/style on the\n // positioner element), Base UI-aligned. The wrapper no longer copies the popup's computed\n // z-index, so a positioner no longer requires an inner `RdxPopperContent` to exist.\n top: Number.isFinite(y) ? `${y}px` : '',\n left: Number.isFinite(x) ? `${x}px` : '',\n '--radix-popper-transform-origin': [\n pos?.middlewareData['transformOrigin']?.x,\n pos?.middlewareData['transformOrigin']?.y\n ].join(' '),\n '--radix-popper-content-wrapper-width': `${this.elementRef.nativeElement.offsetWidth}px`,\n '--radix-popper-content-wrapper-height': `${this.elementRef.nativeElement.offsetHeight}px`,\n\n // Unified Base UI-style variables (ADR 0012), emitted once for every positioner so\n // consumers learn a single dialect. They alias the engine-level `--radix-popper-*` values\n // (the `--anchor-*`/`--available-*` ones are set imperatively by the `size` middleware).\n '--anchor-width': 'var(--radix-popper-anchor-width)',\n '--anchor-height': 'var(--radix-popper-anchor-height)',\n '--available-width': 'var(--radix-popper-available-width)',\n '--available-height': 'var(--radix-popper-available-height)',\n '--positioner-width': 'var(--radix-popper-content-wrapper-width)',\n '--positioner-height': 'var(--radix-popper-content-wrapper-height)',\n '--transform-origin': 'var(--radix-popper-transform-origin)',\n\n visibility: ready ? 'visible' : 'hidden',\n pointerEvents: this.nonInteractive() || !ready ? 'none' : 'auto',\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(pos?.middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none'\n })\n };\n });\n\n private readonly afterRenderEffect = afterRenderEffect((onCleanup) => {\n this.position.reload();\n\n const anchor = this.resolvedAnchor();\n if (!anchor) {\n return;\n }\n\n const cleanup = autoUpdate(anchor, this.elementRef.nativeElement, () => this.position.reload(), {\n animationFrame: this.updatePositionStrategy() === 'always'\n });\n\n onCleanup(cleanup);\n });\n\n constructor() {\n watch([this.isPositioned], ([isPositioned]) => {\n if (!isPositioned) {\n return;\n }\n\n afterNextRender(\n () => {\n this.placed.emit();\n },\n { injector: this.injector }\n );\n });\n }\n}\n\n/**\n * Providers a \"thin\" positioner that `extends RdxPopperContentWrapper` must include. Angular\n * inherits a base directive's inputs/outputs/host bindings/queries but **not** its `providers`, so\n * the `useExisting` alias (lets the popup and arrow resolve the subclass through the\n * {@link RdxPopperContentWrapper} token) and the wrapper context provider (what\n * `injectPopperContentWrapperContext()` reads) are re-declared here in one place.\n *\n * Combine with {@link provideRdxPopperContentConfig} for per-primitive positioning defaults:\n *\n * ```ts\n * providers: [\n * ...provideRdxPopperContentWrapper(RdxComboboxPositioner),\n * provideRdxPopperContentConfig({ sideOffset: 4, align: 'start' })\n * ]\n * ```\n */\nexport function provideRdxPopperContentWrapper(positioner: Type<RdxPopperContentWrapper>): Provider[] {\n return [{ provide: RdxPopperContentWrapper, useExisting: positioner }, providePopperContentWrapperContext(context)];\n}\n\n/**\n * Deprecated per-primitive aliases of the unified popper variables (ADR 0012). Since the wrapper now\n * emits the unified `--anchor-*` / `--available-*` / `--transform-origin` set itself, a positioner no\n * longer hand-writes a re-namespacing `[style]` map; it spreads this helper into a host `[style]`\n * binding only to keep the legacy `--radix-<name>-content-*` / `--radix-<name>-trigger-*` names alive\n * for one release of consumer back-compat. Migrate to the unified set; these are removed next minor.\n *\n * @deprecated Use the unified `--anchor-*` / `--available-*` / `--transform-origin` variables.\n */\nexport function legacyPopperVars(name: string): Record<string, string> {\n return {\n [`--radix-${name}-content-transform-origin`]: 'var(--radix-popper-transform-origin)',\n [`--radix-${name}-content-available-width`]: 'var(--radix-popper-available-width)',\n [`--radix-${name}-content-available-height`]: 'var(--radix-popper-available-height)',\n [`--radix-${name}-trigger-width`]: 'var(--radix-popper-anchor-width)',\n [`--radix-${name}-trigger-height`]: 'var(--radix-popper-anchor-height)'\n };\n}\n","import {\n computed,\n createComponent,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n inject,\n input,\n inputBinding,\n numberAttribute\n} from '@angular/core';\nimport { RdxArrow } from '@radix-ng/primitives/arrow';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\nimport { Side } from './utils';\n\nconst OPPOSITE_SIDE: Record<Side, Side> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right'\n};\n\n@Directive({\n selector: '[rdxPopperArrow]',\n host: {\n // The arrow is purely decorative — keep it out of the accessibility tree (Base UI does the same).\n 'aria-hidden': 'true',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperArrow {\n private readonly popperContentContext = injectPopperContentWrapperContext();\n\n private readonly environmentInjector = inject(EnvironmentInjector);\n\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly width = input(10, { transform: numberAttribute });\n\n readonly height = input(5, { transform: numberAttribute });\n\n baseSide = computed(() => OPPOSITE_SIDE[this.popperContentContext.placedSide()!]);\n\n protected readonly style = computed(() => {\n return {\n position: 'absolute',\n left: this.popperContentContext.arrowX() ? `${this.popperContentContext.arrowX()}px` : undefined,\n top: this.popperContentContext.arrowY() ? `${this.popperContentContext.arrowY()}px` : undefined,\n [this.baseSide()]: 0,\n transformOrigin: {\n top: '',\n right: '0 0',\n bottom: 'center 0',\n left: '100% 0'\n }[this.popperContentContext.placedSide()!],\n transform: {\n top: 'translateY(100%)',\n right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n bottom: `rotate(180deg)`,\n left: 'translateY(50%) rotate(-90deg) translateX(50%)'\n }[this.popperContentContext.placedSide()!],\n visibility: this.popperContentContext.shouldHideArrow() ? 'hidden' : undefined\n };\n });\n\n private onCleanup = effect((onCleanup) => {\n const component = createComponent(RdxArrow, {\n environmentInjector: this.environmentInjector,\n hostElement: this.elementRef.nativeElement,\n projectableNodes: [Array.from(this.elementRef.nativeElement.childNodes)],\n bindings: [inputBinding('width', () => this.width()), inputBinding('height', () => this.height())]\n });\n\n component.changeDetectorRef.detectChanges();\n\n onCleanup(() => component.destroy());\n });\n}\n","import { computed, Directive } from '@angular/core';\nimport { injectPopperContentWrapperContext } from './popper-content-wrapper';\n\n@Directive({\n selector: '[rdxPopperContent]',\n host: {\n '[attr.data-side]': 'popperContentWrapper?.placedSide()',\n '[attr.data-align]': 'popperContentWrapper?.placedAlign()',\n '[style]': 'style()'\n }\n})\nexport class RdxPopperContent {\n /**\n * Optional so the directive can be composed onto a content part that is also used outside Popper\n * positioning (e.g. select's `item-aligned` mode, where there is no `RdxPopperContentWrapper`\n * ancestor). With no wrapper the `data-side` / `data-align` bindings and the animation guard\n * simply no-op.\n */\n protected readonly popperContentWrapper = injectPopperContentWrapperContext(true);\n\n /**\n * if the PopperContent hasn't been placed yet (not all measurements done)\n * we prevent animations so that users's animation don't kick in too early referring wrong sides\n */\n protected readonly style = computed(() => ({\n animation: this.popperContentWrapper && !this.popperContentWrapper.isPositioned() ? 'none' : undefined\n }));\n}\n","import { RdxPopper } from './src/popper';\nimport { RdxPopperAnchor } from './src/popper-anchor';\nimport { RdxPopperArrow } from './src/popper-arrow';\nimport { RdxPopperContent } from './src/popper-content';\nimport { RdxPopperContentWrapper } from './src/popper-content-wrapper';\n\nexport * from './src/popper';\nexport * from './src/popper-anchor';\nexport * from './src/popper-arrow';\nexport * from './src/popper-content';\nexport * from './src/popper-content-wrapper';\nexport * from './src/popper-content.config';\nexport * from './src/utils';\n\nexport const popperImports = [RdxPopper, RdxPopperArrow, RdxPopperContentWrapper, RdxPopperContent, RdxPopperAnchor];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["floatingUIArrow"],"mappings":"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"}
|