@vielzeug/orbit 1.1.4 → 2.0.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.
- package/README.md +18 -58
- package/dist/auto-update.cjs +1 -1
- package/dist/auto-update.cjs.map +1 -1
- package/dist/auto-update.d.ts.map +1 -1
- package/dist/auto-update.js +1 -1
- package/dist/auto-update.js.map +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/devtools.cjs +1 -1
- package/dist/devtools.cjs.map +1 -1
- package/dist/devtools.d.ts +7 -7
- package/dist/devtools.d.ts.map +1 -1
- package/dist/devtools.js +1 -1
- package/dist/devtools.js.map +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.cjs.map +1 -1
- package/dist/float.d.ts +18 -65
- package/dist/float.d.ts.map +1 -1
- package/dist/float.js +1 -1
- package/dist/float.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/inline.cjs +1 -1
- package/dist/inline.cjs.map +1 -1
- package/dist/inline.d.ts +3 -2
- package/dist/inline.d.ts.map +1 -1
- package/dist/inline.js +1 -1
- package/dist/inline.js.map +1 -1
- package/dist/middleware/arrow.cjs +1 -1
- package/dist/middleware/arrow.cjs.map +1 -1
- package/dist/middleware/arrow.d.ts +2 -2
- package/dist/middleware/arrow.d.ts.map +1 -1
- package/dist/middleware/arrow.js +1 -1
- package/dist/middleware/arrow.js.map +1 -1
- package/dist/middleware/auto-placement.cjs +1 -1
- package/dist/middleware/auto-placement.cjs.map +1 -1
- package/dist/middleware/auto-placement.d.ts.map +1 -1
- package/dist/middleware/auto-placement.js +1 -1
- package/dist/middleware/auto-placement.js.map +1 -1
- package/dist/middleware/flip.cjs +1 -1
- package/dist/middleware/flip.cjs.map +1 -1
- package/dist/middleware/flip.d.ts +2 -2
- package/dist/middleware/flip.d.ts.map +1 -1
- package/dist/middleware/flip.js +1 -1
- package/dist/middleware/flip.js.map +1 -1
- package/dist/middleware/hide.cjs +1 -1
- package/dist/middleware/hide.cjs.map +1 -1
- package/dist/middleware/hide.d.ts +2 -2
- package/dist/middleware/hide.d.ts.map +1 -1
- package/dist/middleware/hide.js +1 -1
- package/dist/middleware/hide.js.map +1 -1
- package/dist/middleware/offset.cjs +1 -1
- package/dist/middleware/offset.cjs.map +1 -1
- package/dist/middleware/offset.js +1 -1
- package/dist/middleware/offset.js.map +1 -1
- package/dist/middleware/shift.cjs +1 -1
- package/dist/middleware/shift.cjs.map +1 -1
- package/dist/middleware/shift.d.ts +2 -2
- package/dist/middleware/shift.d.ts.map +1 -1
- package/dist/middleware/shift.js +1 -1
- package/dist/middleware/shift.js.map +1 -1
- package/dist/middleware/size.cjs +1 -1
- package/dist/middleware/size.cjs.map +1 -1
- package/dist/middleware/size.d.ts +6 -5
- package/dist/middleware/size.d.ts.map +1 -1
- package/dist/middleware/size.js +1 -1
- package/dist/middleware/size.js.map +1 -1
- package/dist/orbit.cjs +1 -1
- package/dist/orbit.cjs.map +1 -1
- package/dist/orbit.iife.js +1 -1
- package/dist/orbit.iife.js.map +1 -1
- package/dist/orbit.js +1 -1
- package/dist/orbit.js.map +1 -1
- package/dist/presets.cjs.map +1 -1
- package/dist/presets.d.ts +9 -5
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js.map +1 -1
- package/dist/reactive.cjs +1 -1
- package/dist/reactive.cjs.map +1 -1
- package/dist/reactive.d.ts +6 -43
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +1 -1
- package/dist/reactive.js.map +1 -1
- package/dist/types.d.ts +2 -29
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.ts +1 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/package.json +23 -15
- package/dist/compose.cjs +0 -2
- package/dist/compose.cjs.map +0 -1
- package/dist/compose.d.ts +0 -25
- package/dist/compose.d.ts.map +0 -1
- package/dist/compose.js +0 -2
- package/dist/compose.js.map +0 -1
- package/dist/ssr.cjs +0 -2
- package/dist/ssr.cjs.map +0 -1
- package/dist/ssr.d.ts +0 -41
- package/dist/ssr.d.ts.map +0 -1
- package/dist/ssr.js +0 -2
- package/dist/ssr.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -100,11 +100,6 @@ export interface MiddlewareResult {
|
|
|
100
100
|
reset?: MiddlewareReset;
|
|
101
101
|
}
|
|
102
102
|
export type Middleware = (state: MiddlewareState) => MiddlewareResult | void;
|
|
103
|
-
/**
|
|
104
|
-
* A middleware branded with the key it writes to `middlewareData`.
|
|
105
|
-
* Built-in middleware return this type. Custom middleware can cast to it if needed.
|
|
106
|
-
*/
|
|
107
|
-
export type TypedMiddleware<K extends string, D> = Middleware & {};
|
|
108
103
|
export interface ComputePositionResult {
|
|
109
104
|
x: number;
|
|
110
105
|
y: number;
|
|
@@ -112,8 +107,8 @@ export interface ComputePositionResult {
|
|
|
112
107
|
middlewareData: MiddlewareData;
|
|
113
108
|
}
|
|
114
109
|
export interface ComputePositionOptions {
|
|
115
|
-
/** Middleware pipeline to run
|
|
116
|
-
middleware?:
|
|
110
|
+
/** Middleware pipeline to run in the supplied order. */
|
|
111
|
+
middleware?: readonly Middleware[];
|
|
117
112
|
/** Initial placement. Defaults to `'bottom'`. */
|
|
118
113
|
placement?: Placement;
|
|
119
114
|
/**
|
|
@@ -135,28 +130,6 @@ export interface ComputePositionOptions {
|
|
|
135
130
|
*/
|
|
136
131
|
padding?: Padding;
|
|
137
132
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Handle returned by `float()`.
|
|
140
|
-
*
|
|
141
|
-
* - `dispose()` — removes all event listeners and observers. Always call this on teardown.
|
|
142
|
-
* - `update()` — manually trigger a position recalculation.
|
|
143
|
-
* - `getPosition()` — returns the most recently computed position.
|
|
144
|
-
* - When `autoUpdate: false`, the position is computed synchronously during `float()`, so
|
|
145
|
-
* `getPosition()` is **never `null`** immediately after `float()` returns.
|
|
146
|
-
* - When using the `autoUpdate` loop (default), `getPosition()` returns `null` only before
|
|
147
|
-
* the very first update fires, which happens synchronously on construction.
|
|
148
|
-
* - Always returns `null` in SSR environments (via `@vielzeug/orbit/ssr`).
|
|
149
|
-
*/
|
|
150
|
-
export interface FloatHandle {
|
|
151
|
-
/** `AbortSignal` aborted when `dispose()` is called. Use to tie external lifetimes to this handle. */
|
|
152
|
-
readonly disposalSignal: AbortSignal;
|
|
153
|
-
dispose(): void;
|
|
154
|
-
/** `true` after `dispose()` has been called. */
|
|
155
|
-
readonly disposed: boolean;
|
|
156
|
-
getPosition(): ComputePositionResult | null;
|
|
157
|
-
update(): void;
|
|
158
|
-
[Symbol.dispose](): void;
|
|
159
|
-
}
|
|
160
133
|
export interface DetectOverflowOptions {
|
|
161
134
|
/** Boundary element or rect. Defaults to the visual viewport. */
|
|
162
135
|
boundary?: Element | Rect;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
function e(e,t,n){return Math.min(Math.max(e,t),n)}var t={bottom:`top`,left:`right`,right:`left`,top:`bottom`};function n(e){return e.split(`-`)[0]}function r(e){return e.split(`-`)[1]??null}function i(e,t){return t?`${e}-${t}`:e}function a({height:e,width:t,x:n,y:r}){return{height:e,width:t,x:n,y:r}}function o(e=0){return typeof e==`number`?{bottom:e,left:e,right:e,top:e}:{bottom:e.bottom??0,left:e.left??0,right:e.right??0,top:e.top??0}}function s(e){return typeof Element<`u`&&e instanceof Element}function c(e){return e.assignedSlot?e.assignedSlot:e.parentElement??(e.getRootNode()instanceof ShadowRoot?e.getRootNode().host:null)}function l(e,t,n,r){return e===`start`?t:e===`end`?t+n-r:t+(n-r)/2}function u(e,t,i){let a=n(e),o=r(e);switch(a){case`bottom`:return{x:l(o,t.x,t.width,i.width),y:t.y+t.height};case`left`:return{x:t.x-i.width,y:l(o,t.y,t.height,i.height)};case`right`:return{x:t.x+t.width,y:l(o,t.y,t.height,i.height)};case`top`:return{x:l(o,t.x,t.width,i.width),y:t.y-i.height}}}exports.OPPOSITE=t,exports.baseCoords=u,exports.clamp=e,exports.flatTreeParent=c,exports.getAlignment=r,exports.getSide=n,exports.isElement=s,exports.toRect=a,exports.toSideObject=o,exports.withPlacement=i;
|
|
2
2
|
//# sourceMappingURL=utils.cjs.map
|
package/dist/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { Alignment, Padding, Placement, Rect, Side, SideObject } from './types';\n\nexport function clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\nexport const OPPOSITE: Record<Side, Side> = { bottom: 'top', left: 'right', right: 'left', top: 'bottom' };\n\n/** Returns the primary side of a placement (`'top' | 'bottom' | 'left' | 'right'`). */\nexport function getSide(p: Placement): Side {\n return p.split('-')[0] as Side;\n}\n\n/** Returns the alignment of a placement (`'start' | 'end'`), or `null` for center placements. */\nexport function getAlignment(p: Placement): Alignment | null {\n return (p.split('-')[1] as Alignment) ?? null;\n}\n\n/** @internal */\nexport function withPlacement(side: Side, align: Alignment | null): Placement {\n return (align ? `${side}-${align}` : side) as Placement;\n}\n\n/** @internal */\nexport function toRect({ height, width, x, y }: DOMRect | Rect): Rect {\n return { height, width, x, y };\n}\n\n/** @internal */\nexport function toSideObject(padding: Padding = 0): SideObject {\n if (typeof padding === 'number') {\n return { bottom: padding, left: padding, right: padding, top: padding };\n }\n\n return {\n bottom: padding.bottom ?? 0,\n left: padding.left ?? 0,\n right: padding.right ?? 0,\n top: padding.top ?? 0,\n };\n}\n\n/** @internal */\nexport function isElement(value: unknown): value is Element {\n return typeof Element !== 'undefined' && value instanceof Element;\n}\n\n/**\n * Returns `node`'s parent in the flat (rendering) tree — the tree CSS layout, paint, and\n * containing-block rules actually walk, which is *not* the same as light-DOM `parentElement`:\n *\n * - If `node` is itself distributed into a `<slot>` (`node.assignedSlot` is set), its rendered\n * parent is that `<slot>`, which lives inside the shadow tree that projects it — not wherever\n * `node.parentElement` points in the light DOM. Skipping this check would walk straight past\n * the shadow host and out into *its* light-DOM ancestors, missing every ancestor between the\n * `<slot>` and the shadow root (a dialog's `.panel`, say) entirely.\n * - Otherwise, falls back to `parentElement`, or — once that's exhausted at a shadow root\n * boundary — the shadow root's host, so the walk continues past shadow boundaries instead of\n * stopping there.\n *\n * `null` once it reaches a true root.\n * @internal\n */\nexport function flatTreeParent(node: Element): Element | null {\n if (node.assignedSlot) return node.assignedSlot;\n\n return (\n node.parentElement ?? (node.getRootNode() instanceof ShadowRoot ? (node.getRootNode() as ShadowRoot).host : null)\n );\n}\n\n// ── Geometry ──────────────────────────────────────────────────────────────────\n\nfunction alignedOffset(align: Alignment | null, refStart: number, refSize: number, floatSize: number): number {\n if (align === 'start') return refStart;\n\n if (align === 'end') return refStart + refSize - floatSize;\n\n return refStart + (refSize - floatSize) / 2;\n}\n\n/**\n * Computes the base (un-shifted) x/y coordinates for a floating element\n * given the placement and the reference/floating rects.\n * @internal\n */\nexport function baseCoords(placement: Placement, ref: Rect, float: Rect): { x: number; y: number } {\n const side = getSide(placement);\n const align = getAlignment(placement);\n\n switch (side) {\n case 'bottom':\n return { x: alignedOffset(align, ref.x, ref.width, float.width), y: ref.y + ref.height };\n case 'left':\n return { x: ref.x - float.width, y: alignedOffset(align, ref.y, ref.height, float.height) };\n case 'right':\n return { x: ref.x + ref.width, y: alignedOffset(align, ref.y, ref.height, float.height) };\n case 'top':\n return { x: alignedOffset(align, ref.x, ref.width, float.width), y: ref.y - float.height };\n }\n}\n"],"mappings":"AAEA,SAAgB,EAAM,EAAe,EAAa,EAAqB,CACrE,OAAO,KAAK,IAAI,KAAK,IAAI,EAAO,CAAG,EAAG,CAAG,CAC3C,CAEA,IAAa,EAA+B,CAAE,OAAQ,MAAO,KAAM,QAAS,MAAO,OAAQ,IAAK,QAAS,EAGzG,SAAgB,EAAQ,EAAoB,CAC1C,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,EACtB,CAGA,SAAgB,EAAa,EAAgC,CAC3D,OAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,IAAoB,IAC3C,CAGA,SAAgB,EAAc,EAAY,EAAoC,CAC5E,OAAQ,EAAQ,GAAG,EAAK,GAAG,IAAU,CACvC,CAGA,SAAgB,EAAO,CAAE,SAAQ,QAAO,IAAG,KAA2B,CACpE,MAAO,CAAE,SAAQ,QAAO,IAAG,GAAE,CAC/B,CAGA,SAAgB,EAAa,EAAmB,EAAe,CAK7D,OAJI,OAAO,GAAY,SACd,CAAE,OAAQ,EAAS,KAAM,EAAS,MAAO,EAAS,IAAK,CAAQ,EAGjE,CACL,OAAQ,EAAQ,QAAU,EAC1B,KAAM,EAAQ,MAAQ,EACtB,MAAO,EAAQ,OAAS,EACxB,IAAK,EAAQ,KAAO,CACtB,CACF,CAGA,SAAgB,EAAU,EAAkC,CAC1D,OAAO,OAAO,QAAY,KAAe,aAAiB,OAC5D,CAkBA,SAAgB,EAAe,EAA+B,CAG5D,OAFI,EAAK,aAAqB,EAAK,aAGjC,EAAK,gBAAkB,EAAK,YAAY,YAAa,WAAc,EAAK,YAAY,CAAC,CAAgB,KAAO,KAEhH,CAIA,SAAS,EAAc,EAAyB,EAAkB,EAAiB,EAA2B,CAK5G,OAJI,IAAU,QAAgB,EAE1B,IAAU,MAAc,EAAW,EAAU,EAE1C,GAAY,EAAU,GAAa,CAC5C,CAOA,SAAgB,EAAW,EAAsB,EAAW,EAAuC,CACjG,IAAM,EAAO,EAAQ,CAAS,EACxB,EAAQ,EAAa,CAAS,EAEpC,OAAQ,EAAR,CACE,IAAK,SACH,MAAO,CAAE,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,MAAO,EAAM,KAAK,EAAG,EAAG,EAAI,EAAI,EAAI,MAAO,EACzF,IAAK,OACH,MAAO,CAAE,EAAG,EAAI,EAAI,EAAM,MAAO,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,OAAQ,EAAM,MAAM,CAAE,EAC5F,IAAK,QACH,MAAO,CAAE,EAAG,EAAI,EAAI,EAAI,MAAO,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,OAAQ,EAAM,MAAM,CAAE,EAC1F,IAAK,MACH,MAAO,CAAE,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,MAAO,EAAM,KAAK,EAAG,EAAG,EAAI,EAAI,EAAM,MAAO,CAC7F,CACF"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { clamp } from '@vielzeug/arsenal/math';
|
|
2
1
|
import type { Alignment, Placement, Side } from './types';
|
|
3
|
-
export
|
|
2
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
4
3
|
export declare const OPPOSITE: Record<Side, Side>;
|
|
5
4
|
/** Returns the primary side of a placement (`'top' | 'bottom' | 'left' | 'right'`). */
|
|
6
5
|
export declare function getSide(p: Placement): Side;
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAW,SAAS,EAAQ,IAAI,EAAc,MAAM,SAAS,CAAC;AAErF,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAkE,CAAC;AAE3G,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,CAE1C;AAED,iGAAiG;AACjG,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAE3D"}
|
package/dist/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
function e(e,t,n){return Math.min(Math.max(e,t),n)}var t={bottom:`top`,left:`right`,right:`left`,top:`bottom`};function n(e){return e.split(`-`)[0]}function r(e){return e.split(`-`)[1]??null}function i(e,t){return t?`${e}-${t}`:e}function a({height:e,width:t,x:n,y:r}){return{height:e,width:t,x:n,y:r}}function o(e=0){return typeof e==`number`?{bottom:e,left:e,right:e,top:e}:{bottom:e.bottom??0,left:e.left??0,right:e.right??0,top:e.top??0}}function s(e){return typeof Element<`u`&&e instanceof Element}function c(e){return e.assignedSlot?e.assignedSlot:e.parentElement??(e.getRootNode()instanceof ShadowRoot?e.getRootNode().host:null)}function l(e,t,n,r){return e===`start`?t:e===`end`?t+n-r:t+(n-r)/2}function u(e,t,i){let a=n(e),o=r(e);switch(a){case`bottom`:return{x:l(o,t.x,t.width,i.width),y:t.y+t.height};case`left`:return{x:t.x-i.width,y:l(o,t.y,t.height,i.height)};case`right`:return{x:t.x+t.width,y:l(o,t.y,t.height,i.height)};case`top`:return{x:l(o,t.x,t.width,i.width),y:t.y-i.height}}}export{t as OPPOSITE,u as baseCoords,e as clamp,c as flatTreeParent,r as getAlignment,n as getSide,s as isElement,a as toRect,o as toSideObject,i as withPlacement};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"utils.js","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { Alignment, Padding, Placement, Rect, Side, SideObject } from './types';\n\nexport function clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n\nexport const OPPOSITE: Record<Side, Side> = { bottom: 'top', left: 'right', right: 'left', top: 'bottom' };\n\n/** Returns the primary side of a placement (`'top' | 'bottom' | 'left' | 'right'`). */\nexport function getSide(p: Placement): Side {\n return p.split('-')[0] as Side;\n}\n\n/** Returns the alignment of a placement (`'start' | 'end'`), or `null` for center placements. */\nexport function getAlignment(p: Placement): Alignment | null {\n return (p.split('-')[1] as Alignment) ?? null;\n}\n\n/** @internal */\nexport function withPlacement(side: Side, align: Alignment | null): Placement {\n return (align ? `${side}-${align}` : side) as Placement;\n}\n\n/** @internal */\nexport function toRect({ height, width, x, y }: DOMRect | Rect): Rect {\n return { height, width, x, y };\n}\n\n/** @internal */\nexport function toSideObject(padding: Padding = 0): SideObject {\n if (typeof padding === 'number') {\n return { bottom: padding, left: padding, right: padding, top: padding };\n }\n\n return {\n bottom: padding.bottom ?? 0,\n left: padding.left ?? 0,\n right: padding.right ?? 0,\n top: padding.top ?? 0,\n };\n}\n\n/** @internal */\nexport function isElement(value: unknown): value is Element {\n return typeof Element !== 'undefined' && value instanceof Element;\n}\n\n/**\n * Returns `node`'s parent in the flat (rendering) tree — the tree CSS layout, paint, and\n * containing-block rules actually walk, which is *not* the same as light-DOM `parentElement`:\n *\n * - If `node` is itself distributed into a `<slot>` (`node.assignedSlot` is set), its rendered\n * parent is that `<slot>`, which lives inside the shadow tree that projects it — not wherever\n * `node.parentElement` points in the light DOM. Skipping this check would walk straight past\n * the shadow host and out into *its* light-DOM ancestors, missing every ancestor between the\n * `<slot>` and the shadow root (a dialog's `.panel`, say) entirely.\n * - Otherwise, falls back to `parentElement`, or — once that's exhausted at a shadow root\n * boundary — the shadow root's host, so the walk continues past shadow boundaries instead of\n * stopping there.\n *\n * `null` once it reaches a true root.\n * @internal\n */\nexport function flatTreeParent(node: Element): Element | null {\n if (node.assignedSlot) return node.assignedSlot;\n\n return (\n node.parentElement ?? (node.getRootNode() instanceof ShadowRoot ? (node.getRootNode() as ShadowRoot).host : null)\n );\n}\n\n// ── Geometry ──────────────────────────────────────────────────────────────────\n\nfunction alignedOffset(align: Alignment | null, refStart: number, refSize: number, floatSize: number): number {\n if (align === 'start') return refStart;\n\n if (align === 'end') return refStart + refSize - floatSize;\n\n return refStart + (refSize - floatSize) / 2;\n}\n\n/**\n * Computes the base (un-shifted) x/y coordinates for a floating element\n * given the placement and the reference/floating rects.\n * @internal\n */\nexport function baseCoords(placement: Placement, ref: Rect, float: Rect): { x: number; y: number } {\n const side = getSide(placement);\n const align = getAlignment(placement);\n\n switch (side) {\n case 'bottom':\n return { x: alignedOffset(align, ref.x, ref.width, float.width), y: ref.y + ref.height };\n case 'left':\n return { x: ref.x - float.width, y: alignedOffset(align, ref.y, ref.height, float.height) };\n case 'right':\n return { x: ref.x + ref.width, y: alignedOffset(align, ref.y, ref.height, float.height) };\n case 'top':\n return { x: alignedOffset(align, ref.x, ref.width, float.width), y: ref.y - float.height };\n }\n}\n"],"mappings":"AAEA,SAAgB,EAAM,EAAe,EAAa,EAAqB,CACrE,OAAO,KAAK,IAAI,KAAK,IAAI,EAAO,CAAG,EAAG,CAAG,CAC3C,CAEA,IAAa,EAA+B,CAAE,OAAQ,MAAO,KAAM,QAAS,MAAO,OAAQ,IAAK,QAAS,EAGzG,SAAgB,EAAQ,EAAoB,CAC1C,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,EACtB,CAGA,SAAgB,EAAa,EAAgC,CAC3D,OAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,IAAoB,IAC3C,CAGA,SAAgB,EAAc,EAAY,EAAoC,CAC5E,OAAQ,EAAQ,GAAG,EAAK,GAAG,IAAU,CACvC,CAGA,SAAgB,EAAO,CAAE,SAAQ,QAAO,IAAG,KAA2B,CACpE,MAAO,CAAE,SAAQ,QAAO,IAAG,GAAE,CAC/B,CAGA,SAAgB,EAAa,EAAmB,EAAe,CAK7D,OAJI,OAAO,GAAY,SACd,CAAE,OAAQ,EAAS,KAAM,EAAS,MAAO,EAAS,IAAK,CAAQ,EAGjE,CACL,OAAQ,EAAQ,QAAU,EAC1B,KAAM,EAAQ,MAAQ,EACtB,MAAO,EAAQ,OAAS,EACxB,IAAK,EAAQ,KAAO,CACtB,CACF,CAGA,SAAgB,EAAU,EAAkC,CAC1D,OAAO,OAAO,QAAY,KAAe,aAAiB,OAC5D,CAkBA,SAAgB,EAAe,EAA+B,CAG5D,OAFI,EAAK,aAAqB,EAAK,aAGjC,EAAK,gBAAkB,EAAK,YAAY,YAAa,WAAc,EAAK,YAAY,CAAC,CAAgB,KAAO,KAEhH,CAIA,SAAS,EAAc,EAAyB,EAAkB,EAAiB,EAA2B,CAK5G,OAJI,IAAU,QAAgB,EAE1B,IAAU,MAAc,EAAW,EAAU,EAE1C,GAAY,EAAU,GAAa,CAC5C,CAOA,SAAgB,EAAW,EAAsB,EAAW,EAAuC,CACjG,IAAM,EAAO,EAAQ,CAAS,EACxB,EAAQ,EAAa,CAAS,EAEpC,OAAQ,EAAR,CACE,IAAK,SACH,MAAO,CAAE,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,MAAO,EAAM,KAAK,EAAG,EAAG,EAAI,EAAI,EAAI,MAAO,EACzF,IAAK,OACH,MAAO,CAAE,EAAG,EAAI,EAAI,EAAM,MAAO,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,OAAQ,EAAM,MAAM,CAAE,EAC5F,IAAK,QACH,MAAO,CAAE,EAAG,EAAI,EAAI,EAAI,MAAO,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,OAAQ,EAAM,MAAM,CAAE,EAC1F,IAAK,MACH,MAAO,CAAE,EAAG,EAAc,EAAO,EAAI,EAAG,EAAI,MAAO,EAAM,KAAK,EAAG,EAAG,EAAI,EAAI,EAAM,MAAO,CAC7F,CACF"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vielzeug/orbit",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Dependency-free floating UI positioning with lifecycle-owned geometry and middleware",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
@@ -11,34 +11,24 @@
|
|
|
11
11
|
"types": "dist/index.d.ts",
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"source": "./src/index.ts",
|
|
15
14
|
"types": "./dist/index.d.ts",
|
|
16
15
|
"import": "./dist/index.js",
|
|
17
16
|
"require": "./dist/index.cjs"
|
|
18
17
|
},
|
|
19
18
|
"./devtools": {
|
|
20
|
-
"source": "./src/devtools.ts",
|
|
21
19
|
"types": "./dist/devtools.d.ts",
|
|
22
20
|
"import": "./dist/devtools.js",
|
|
23
21
|
"require": "./dist/devtools.cjs"
|
|
24
22
|
},
|
|
25
23
|
"./presets": {
|
|
26
|
-
"source": "./src/presets.ts",
|
|
27
24
|
"types": "./dist/presets.d.ts",
|
|
28
25
|
"import": "./dist/presets.js",
|
|
29
26
|
"require": "./dist/presets.cjs"
|
|
30
27
|
},
|
|
31
28
|
"./reactive": {
|
|
32
|
-
"source": "./src/reactive.ts",
|
|
33
29
|
"types": "./dist/reactive.d.ts",
|
|
34
30
|
"import": "./dist/reactive.js",
|
|
35
31
|
"require": "./dist/reactive.cjs"
|
|
36
|
-
},
|
|
37
|
-
"./ssr": {
|
|
38
|
-
"source": "./src/ssr.ts",
|
|
39
|
-
"types": "./dist/ssr.d.ts",
|
|
40
|
-
"import": "./dist/ssr.js",
|
|
41
|
-
"require": "./dist/ssr.cjs"
|
|
42
32
|
}
|
|
43
33
|
},
|
|
44
34
|
"scripts": {
|
|
@@ -57,14 +47,32 @@
|
|
|
57
47
|
"engines": {
|
|
58
48
|
"node": ">=22"
|
|
59
49
|
},
|
|
60
|
-
"
|
|
61
|
-
"@vielzeug/
|
|
62
|
-
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"@vielzeug/ripple": "^2.0.1"
|
|
52
|
+
},
|
|
53
|
+
"peerDependenciesMeta": {
|
|
54
|
+
"@vielzeug/ripple": {
|
|
55
|
+
"optional": true
|
|
56
|
+
}
|
|
63
57
|
},
|
|
64
58
|
"devDependencies": {
|
|
65
59
|
"@types/node": "^26.1.2",
|
|
60
|
+
"@vielzeug/ripple": "2.0.1",
|
|
66
61
|
"typescript": "^6.0.3",
|
|
67
62
|
"vite": "^8.2.0",
|
|
68
63
|
"vitest": "^4.1.10"
|
|
64
|
+
},
|
|
65
|
+
"typesVersions": {
|
|
66
|
+
"*": {
|
|
67
|
+
"devtools": [
|
|
68
|
+
"dist/devtools.d.ts"
|
|
69
|
+
],
|
|
70
|
+
"presets": [
|
|
71
|
+
"dist/presets.d.ts"
|
|
72
|
+
],
|
|
73
|
+
"reactive": [
|
|
74
|
+
"dist/reactive.d.ts"
|
|
75
|
+
]
|
|
76
|
+
}
|
|
69
77
|
}
|
|
70
78
|
}
|
package/dist/compose.cjs
DELETED
package/dist/compose.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose.cjs","names":[],"sources":["../src/compose.ts"],"sourcesContent":["import type { Middleware } from './types';\n\ntype Falsy = false | null | undefined;\n\n/**\n * Filters out falsy middleware entries (`null`, `undefined`, `false`) and returns a clean array.\n *\n * Middleware ordering validation runs automatically inside `computePosition()` in development —\n * you do not need `compose()` to get ordering warnings. Use it purely for its falsy-filter\n * ergonomics when conditionally including middleware.\n *\n * @example\n * ```ts\n * import { compose, offset, flip, shift, arrow } from '@vielzeug/orbit';\n *\n * const middleware = compose(\n * offset(8),\n * flip(),\n * shift({ padding: 6 }),\n * hasArrow && arrow({ element: arrowEl }),\n * );\n * float(trigger, tooltip, { middleware });\n * ```\n */\nexport function compose(...middleware: Array<Middleware | Falsy>): Middleware[] {\n return middleware.filter(Boolean) as Middleware[];\n}\n"],"mappings":"AAwBA,SAAgB,EAAQ,GAAG,EAAqD,CAC9E,OAAO,EAAW,OAAO,OAAO,CAClC"}
|
package/dist/compose.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Middleware } from './types';
|
|
2
|
-
type Falsy = false | null | undefined;
|
|
3
|
-
/**
|
|
4
|
-
* Filters out falsy middleware entries (`null`, `undefined`, `false`) and returns a clean array.
|
|
5
|
-
*
|
|
6
|
-
* Middleware ordering validation runs automatically inside `computePosition()` in development —
|
|
7
|
-
* you do not need `compose()` to get ordering warnings. Use it purely for its falsy-filter
|
|
8
|
-
* ergonomics when conditionally including middleware.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```ts
|
|
12
|
-
* import { compose, offset, flip, shift, arrow } from '@vielzeug/orbit';
|
|
13
|
-
*
|
|
14
|
-
* const middleware = compose(
|
|
15
|
-
* offset(8),
|
|
16
|
-
* flip(),
|
|
17
|
-
* shift({ padding: 6 }),
|
|
18
|
-
* hasArrow && arrow({ element: arrowEl }),
|
|
19
|
-
* );
|
|
20
|
-
* float(trigger, tooltip, { middleware });
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export declare function compose(...middleware: Array<Middleware | Falsy>): Middleware[];
|
|
24
|
-
export {};
|
|
25
|
-
//# sourceMappingURL=compose.d.ts.map
|
package/dist/compose.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,UAAU,EAAE,CAE9E"}
|
package/dist/compose.js
DELETED
package/dist/compose.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","names":[],"sources":["../src/compose.ts"],"sourcesContent":["import type { Middleware } from './types';\n\ntype Falsy = false | null | undefined;\n\n/**\n * Filters out falsy middleware entries (`null`, `undefined`, `false`) and returns a clean array.\n *\n * Middleware ordering validation runs automatically inside `computePosition()` in development —\n * you do not need `compose()` to get ordering warnings. Use it purely for its falsy-filter\n * ergonomics when conditionally including middleware.\n *\n * @example\n * ```ts\n * import { compose, offset, flip, shift, arrow } from '@vielzeug/orbit';\n *\n * const middleware = compose(\n * offset(8),\n * flip(),\n * shift({ padding: 6 }),\n * hasArrow && arrow({ element: arrowEl }),\n * );\n * float(trigger, tooltip, { middleware });\n * ```\n */\nexport function compose(...middleware: Array<Middleware | Falsy>): Middleware[] {\n return middleware.filter(Boolean) as Middleware[];\n}\n"],"mappings":"AAwBA,SAAgB,EAAQ,GAAG,EAAqD,CAC9E,OAAO,EAAW,OAAO,OAAO,CAClC"}
|
package/dist/ssr.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./float.cjs");var t=()=>{},n=(e=`bottom`)=>({middlewareData:{},placement:e,x:0,y:0});function r(e,t,r={}){return Promise.resolve(n(r.placement))}function i(e,t,r={}){return Promise.resolve(n(r.placement))}function a(e,t,r={}){return n(r.placement)}function o(e,n,r,i){return t}function s(n,r,i){return e.makeHandle(t,()=>null,t)}exports.autoUpdate=o,exports.computePosition=a,exports.computePositionAsync=i,exports.computePositionRaf=r,exports.float=s;
|
|
2
|
-
//# sourceMappingURL=ssr.cjs.map
|
package/dist/ssr.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.cjs","names":[],"sources":["../src/ssr.ts"],"sourcesContent":["/**\n * @vielzeug/orbit/ssr — no-op stubs for server-side rendering.\n *\n * Import this sub-path in SSR environments (Node.js, Deno, Bun) instead of the\n * main entry to avoid `getBoundingClientRect`, `window`, and `document` references\n * that are unavailable server-side.\n *\n * ```ts\n * // vite.config.ts (or equivalent)\n * resolve: {\n * alias: {\n * '@vielzeug/orbit': process.env.SSR ? '@vielzeug/orbit/ssr' : '@vielzeug/orbit',\n * },\n * }\n * ```\n */\n\nimport type { AutoUpdateOptions } from './auto-update';\nimport type { FloatOptions } from './float';\nimport type { ComputePositionOptions, ComputePositionResult, FloatHandle, ReferenceElement } from './types';\n\nimport { makeHandle } from './float';\n\nconst NOOP: () => void = () => {};\n\nconst NULL_RESULT = (placement: ComputePositionOptions['placement'] = 'bottom'): ComputePositionResult => ({\n middlewareData: {},\n placement,\n x: 0,\n y: 0,\n});\n\n/**\n * No-op stub. Resolves immediately with zero-coordinate result.\n */\nexport function computePositionRaf(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n options: ComputePositionOptions = {},\n): Promise<ComputePositionResult> {\n return Promise.resolve(NULL_RESULT(options.placement));\n}\n\n/**\n * No-op stub. Resolves immediately with zero-coordinate result.\n */\nexport function computePositionAsync(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n options: ComputePositionOptions = {},\n): Promise<ComputePositionResult> {\n return Promise.resolve(NULL_RESULT(options.placement));\n}\n\n/**\n * No-op stub. Returns zero-coordinate result with the requested placement.\n */\nexport function computePosition(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n options: ComputePositionOptions = {},\n): ComputePositionResult {\n return NULL_RESULT(options.placement);\n}\n\n/**\n * No-op stub. Returns a no-op cleanup function.\n */\nexport function autoUpdate(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n _update: () => void,\n _options?: AutoUpdateOptions,\n): () => void {\n return NOOP;\n}\n\n/**\n * No-op stub. Returns a FloatHandle with no-op methods. `getPosition()` always returns `null`\n * (position is never computed in an SSR environment).\n */\nexport function float(_reference: ReferenceElement, _floating: HTMLElement, _options?: FloatOptions): FloatHandle {\n return makeHandle(NOOP, () => null, NOOP);\n}\n"],"mappings":"kGAuBA,IAAM,MAAyB,CAAC,EAE1B,GAAe,EAAiD,YAAqC,CACzG,eAAgB,CAAC,EACjB,YACA,EAAG,EACH,EAAG,CACL,GAKA,SAAgB,EACd,EACA,EACA,EAAkC,CAAC,EACH,CAChC,OAAO,QAAQ,QAAQ,EAAY,EAAQ,SAAS,CAAC,CACvD,CAKA,SAAgB,EACd,EACA,EACA,EAAkC,CAAC,EACH,CAChC,OAAO,QAAQ,QAAQ,EAAY,EAAQ,SAAS,CAAC,CACvD,CAKA,SAAgB,EACd,EACA,EACA,EAAkC,CAAC,EACZ,CACvB,OAAO,EAAY,EAAQ,SAAS,CACtC,CAKA,SAAgB,EACd,EACA,EACA,EACA,EACY,CACZ,OAAO,CACT,CAMA,SAAgB,EAAM,EAA8B,EAAwB,EAAsC,CAChH,OAAO,EAAA,WAAW,MAAY,KAAM,CAAI,CAC1C"}
|
package/dist/ssr.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vielzeug/orbit/ssr — no-op stubs for server-side rendering.
|
|
3
|
-
*
|
|
4
|
-
* Import this sub-path in SSR environments (Node.js, Deno, Bun) instead of the
|
|
5
|
-
* main entry to avoid `getBoundingClientRect`, `window`, and `document` references
|
|
6
|
-
* that are unavailable server-side.
|
|
7
|
-
*
|
|
8
|
-
* ```ts
|
|
9
|
-
* // vite.config.ts (or equivalent)
|
|
10
|
-
* resolve: {
|
|
11
|
-
* alias: {
|
|
12
|
-
* '@vielzeug/orbit': process.env.SSR ? '@vielzeug/orbit/ssr' : '@vielzeug/orbit',
|
|
13
|
-
* },
|
|
14
|
-
* }
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
import type { AutoUpdateOptions } from './auto-update';
|
|
18
|
-
import type { FloatOptions } from './float';
|
|
19
|
-
import type { ComputePositionOptions, ComputePositionResult, FloatHandle, ReferenceElement } from './types';
|
|
20
|
-
/**
|
|
21
|
-
* No-op stub. Resolves immediately with zero-coordinate result.
|
|
22
|
-
*/
|
|
23
|
-
export declare function computePositionRaf(_reference: ReferenceElement, _floating: HTMLElement, options?: ComputePositionOptions): Promise<ComputePositionResult>;
|
|
24
|
-
/**
|
|
25
|
-
* No-op stub. Resolves immediately with zero-coordinate result.
|
|
26
|
-
*/
|
|
27
|
-
export declare function computePositionAsync(_reference: ReferenceElement, _floating: HTMLElement, options?: ComputePositionOptions): Promise<ComputePositionResult>;
|
|
28
|
-
/**
|
|
29
|
-
* No-op stub. Returns zero-coordinate result with the requested placement.
|
|
30
|
-
*/
|
|
31
|
-
export declare function computePosition(_reference: ReferenceElement, _floating: HTMLElement, options?: ComputePositionOptions): ComputePositionResult;
|
|
32
|
-
/**
|
|
33
|
-
* No-op stub. Returns a no-op cleanup function.
|
|
34
|
-
*/
|
|
35
|
-
export declare function autoUpdate(_reference: ReferenceElement, _floating: HTMLElement, _update: () => void, _options?: AutoUpdateOptions): () => void;
|
|
36
|
-
/**
|
|
37
|
-
* No-op stub. Returns a FloatHandle with no-op methods. `getPosition()` always returns `null`
|
|
38
|
-
* (position is never computed in an SSR environment).
|
|
39
|
-
*/
|
|
40
|
-
export declare function float(_reference: ReferenceElement, _floating: HTMLElement, _options?: FloatOptions): FloatHandle;
|
|
41
|
-
//# sourceMappingURL=ssr.d.ts.map
|
package/dist/ssr.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../src/ssr.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAa5G;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAEvB;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,MAAM,IAAI,EACnB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,MAAM,IAAI,CAEZ;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,WAAW,CAEhH"}
|
package/dist/ssr.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{makeHandle as e}from"./float.js";var t=()=>{},n=(e=`bottom`)=>({middlewareData:{},placement:e,x:0,y:0});function r(e,t,r={}){return Promise.resolve(n(r.placement))}function i(e,t,r={}){return Promise.resolve(n(r.placement))}function a(e,t,r={}){return n(r.placement)}function o(e,n,r,i){return t}function s(n,r,i){return e(t,()=>null,t)}export{o as autoUpdate,a as computePosition,i as computePositionAsync,r as computePositionRaf,s as float};
|
|
2
|
-
//# sourceMappingURL=ssr.js.map
|
package/dist/ssr.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.js","names":[],"sources":["../src/ssr.ts"],"sourcesContent":["/**\n * @vielzeug/orbit/ssr — no-op stubs for server-side rendering.\n *\n * Import this sub-path in SSR environments (Node.js, Deno, Bun) instead of the\n * main entry to avoid `getBoundingClientRect`, `window`, and `document` references\n * that are unavailable server-side.\n *\n * ```ts\n * // vite.config.ts (or equivalent)\n * resolve: {\n * alias: {\n * '@vielzeug/orbit': process.env.SSR ? '@vielzeug/orbit/ssr' : '@vielzeug/orbit',\n * },\n * }\n * ```\n */\n\nimport type { AutoUpdateOptions } from './auto-update';\nimport type { FloatOptions } from './float';\nimport type { ComputePositionOptions, ComputePositionResult, FloatHandle, ReferenceElement } from './types';\n\nimport { makeHandle } from './float';\n\nconst NOOP: () => void = () => {};\n\nconst NULL_RESULT = (placement: ComputePositionOptions['placement'] = 'bottom'): ComputePositionResult => ({\n middlewareData: {},\n placement,\n x: 0,\n y: 0,\n});\n\n/**\n * No-op stub. Resolves immediately with zero-coordinate result.\n */\nexport function computePositionRaf(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n options: ComputePositionOptions = {},\n): Promise<ComputePositionResult> {\n return Promise.resolve(NULL_RESULT(options.placement));\n}\n\n/**\n * No-op stub. Resolves immediately with zero-coordinate result.\n */\nexport function computePositionAsync(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n options: ComputePositionOptions = {},\n): Promise<ComputePositionResult> {\n return Promise.resolve(NULL_RESULT(options.placement));\n}\n\n/**\n * No-op stub. Returns zero-coordinate result with the requested placement.\n */\nexport function computePosition(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n options: ComputePositionOptions = {},\n): ComputePositionResult {\n return NULL_RESULT(options.placement);\n}\n\n/**\n * No-op stub. Returns a no-op cleanup function.\n */\nexport function autoUpdate(\n _reference: ReferenceElement,\n _floating: HTMLElement,\n _update: () => void,\n _options?: AutoUpdateOptions,\n): () => void {\n return NOOP;\n}\n\n/**\n * No-op stub. Returns a FloatHandle with no-op methods. `getPosition()` always returns `null`\n * (position is never computed in an SSR environment).\n */\nexport function float(_reference: ReferenceElement, _floating: HTMLElement, _options?: FloatOptions): FloatHandle {\n return makeHandle(NOOP, () => null, NOOP);\n}\n"],"mappings":"wCAuBA,IAAM,MAAyB,CAAC,EAE1B,GAAe,EAAiD,YAAqC,CACzG,eAAgB,CAAC,EACjB,YACA,EAAG,EACH,EAAG,CACL,GAKA,SAAgB,EACd,EACA,EACA,EAAkC,CAAC,EACH,CAChC,OAAO,QAAQ,QAAQ,EAAY,EAAQ,SAAS,CAAC,CACvD,CAKA,SAAgB,EACd,EACA,EACA,EAAkC,CAAC,EACH,CAChC,OAAO,QAAQ,QAAQ,EAAY,EAAQ,SAAS,CAAC,CACvD,CAKA,SAAgB,EACd,EACA,EACA,EAAkC,CAAC,EACZ,CACvB,OAAO,EAAY,EAAQ,SAAS,CACtC,CAKA,SAAgB,EACd,EACA,EACA,EACA,EACY,CACZ,OAAO,CACT,CAMA,SAAgB,EAAM,EAA8B,EAAwB,EAAsC,CAChH,OAAO,EAAW,MAAY,KAAM,CAAI,CAC1C"}
|