@vuu-ui/vuu-utils 3.1.0-beta.2 → 3.1.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/package.json +10 -8
  2. package/src/index.js +4 -4
  3. package/src/vendor/@dnd-kit/abstract/index.d.ts +1279 -0
  4. package/src/vendor/@dnd-kit/abstract/index.js +1472 -0
  5. package/src/vendor/@dnd-kit/abstract/index.js.map +1 -0
  6. package/src/vendor/@dnd-kit/abstract/modifiers.d.ts +134 -0
  7. package/src/vendor/@dnd-kit/abstract/modifiers.js +100 -0
  8. package/src/vendor/@dnd-kit/abstract/modifiers.js.map +1 -0
  9. package/src/vendor/@dnd-kit/abstract/package.json +60 -0
  10. package/src/vendor/@dnd-kit/collision/dist/index.d.ts +46 -0
  11. package/src/vendor/@dnd-kit/collision/dist/index.js +175 -0
  12. package/src/vendor/@dnd-kit/collision/package.json +42 -0
  13. package/src/vendor/@dnd-kit/dom/index.d.ts +298 -0
  14. package/src/vendor/@dnd-kit/dom/index.js +1977 -0
  15. package/src/vendor/@dnd-kit/dom/index.js.map +1 -0
  16. package/src/vendor/@dnd-kit/dom/modifiers.d.ts +26 -0
  17. package/src/vendor/@dnd-kit/dom/modifiers.js +117 -0
  18. package/src/vendor/@dnd-kit/dom/modifiers.js.map +1 -0
  19. package/src/vendor/@dnd-kit/dom/package.json +92 -0
  20. package/src/vendor/@dnd-kit/dom/plugins/debug.d.ts +8 -0
  21. package/src/vendor/@dnd-kit/dom/plugins/debug.js +125 -0
  22. package/src/vendor/@dnd-kit/dom/plugins/debug.js.map +1 -0
  23. package/src/vendor/@dnd-kit/dom/sortable.d.ts +125 -0
  24. package/src/vendor/@dnd-kit/dom/sortable.js +822 -0
  25. package/src/vendor/@dnd-kit/dom/sortable.js.map +1 -0
  26. package/src/vendor/@dnd-kit/dom/utilities.d.ts +215 -0
  27. package/src/vendor/@dnd-kit/dom/utilities.js +1361 -0
  28. package/src/vendor/@dnd-kit/dom/utilities.js.map +1 -0
  29. package/src/vendor/@dnd-kit/geometry/dist/index.d.ts +178 -0
  30. package/src/vendor/@dnd-kit/geometry/dist/index.js +347 -0
  31. package/src/vendor/@dnd-kit/geometry/package.json +31 -0
  32. package/src/vendor/@dnd-kit/react/hooks.d.ts +30 -0
  33. package/src/vendor/@dnd-kit/react/hooks.js +133 -0
  34. package/src/vendor/@dnd-kit/react/index.d.ts +84 -0
  35. package/src/vendor/@dnd-kit/react/index.js +617 -0
  36. package/src/vendor/@dnd-kit/react/package.json +80 -0
  37. package/src/vendor/@dnd-kit/react/sortable.d.ts +26 -0
  38. package/src/vendor/@dnd-kit/react/sortable.js +175 -0
  39. package/src/vendor/@dnd-kit/react/utilities.d.ts +7 -0
  40. package/src/vendor/@dnd-kit/react/utilities.js +18 -0
  41. package/src/vendor/@dnd-kit/state/dist/index.d.ts +54 -0
  42. package/src/vendor/@dnd-kit/state/dist/index.js +328 -0
  43. package/src/vendor/@dnd-kit/state/package.json +33 -0
  44. package/src/vendor/@preact/signals-core/dist/signals-core.js +1 -0
  45. package/src/vendor/@preact/signals-core/dist/signals-core.js.map +1 -0
  46. package/src/vendor/@preact/signals-core/package.json +4 -0
  47. package/src/vendor/tslib/CopyrightNotice.txt +15 -0
  48. package/src/vendor/tslib/LICENSE.txt +12 -0
  49. package/src/vendor/tslib/README.md +164 -0
  50. package/src/vendor/tslib/SECURITY.md +41 -0
  51. package/src/vendor/tslib/modules/index.d.ts +38 -0
  52. package/src/vendor/tslib/modules/index.js +70 -0
  53. package/src/vendor/tslib/modules/package.json +3 -0
  54. package/src/vendor/tslib/package.json +47 -0
  55. package/src/vendor/tslib/tslib.d.ts +460 -0
  56. package/src/vendor/tslib/tslib.es6.html +1 -0
  57. package/src/vendor/tslib/tslib.es6.js +402 -0
  58. package/src/vendor/tslib/tslib.es6.mjs +401 -0
  59. package/src/vendor/tslib/tslib.html +1 -0
  60. package/src/vendor/tslib/tslib.js +484 -0
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
10
+ var __typeError = (msg) => {
11
+ throw TypeError(msg);
12
+ };
13
+ var __pow = Math.pow;
14
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
+ var __spreadValues = (a, b) => {
16
+ for (var prop in b || (b = {}))
17
+ if (__hasOwnProp.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ if (__getOwnPropSymbols)
20
+ for (var prop of __getOwnPropSymbols(b)) {
21
+ if (__propIsEnum.call(b, prop))
22
+ __defNormalProp(a, prop, b[prop]);
23
+ }
24
+ return a;
25
+ };
26
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
27
+ var __export = (target, all) => {
28
+ for (var name in all)
29
+ __defProp(target, name, { get: all[name], enumerable: true });
30
+ };
31
+ var __copyProps = (to, from, except, desc) => {
32
+ if (from && typeof from === "object" || typeof from === "function") {
33
+ for (let key of __getOwnPropNames(from))
34
+ if (!__hasOwnProp.call(to, key) && key !== except)
35
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
36
+ }
37
+ return to;
38
+ };
39
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
40
+ var __decoratorStart = (base) => {
41
+ var _a2;
42
+ return [, , , __create((_a2 = base == null ? void 0 : base[__knownSymbol("metadata")]) != null ? _a2 : null)];
43
+ };
44
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
45
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
46
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
47
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
48
+ var __runInitializers = (array, flags, self, value) => {
49
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
50
+ return value;
51
+ };
52
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
53
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
54
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
55
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
56
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
57
+ return __privateGet(this, extra);
58
+ }, set [name](x) {
59
+ return __privateSet(this, extra, x);
60
+ } }, name));
61
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
62
+ for (var i = decorators.length - 1; i >= 0; i--) {
63
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
64
+ if (k) {
65
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
66
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
67
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
68
+ }
69
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
70
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
71
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
72
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
73
+ }
74
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
75
+ };
76
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
77
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
78
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
79
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
80
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
81
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
82
+
83
+ // src/index.ts
84
+ var src_exports = {};
85
+ __export(src_exports, {
86
+ Axes: () => Axes,
87
+ Axis: () => Axis,
88
+ Point: () => Point,
89
+ Position: () => Position,
90
+ Rectangle: () => Rectangle,
91
+ exceedsDistance: () => exceedsDistance
92
+ });
93
+ module.exports = __toCommonJS(src_exports);
94
+
95
+ // src/point/Point.ts
96
+ var Point = class _Point {
97
+ /**
98
+ * @param {number} Coordinate of the point on the horizontal axis
99
+ * @param {number} Coordinate of the point on the vertical axis
100
+ */
101
+ constructor(x, y) {
102
+ this.x = x;
103
+ this.y = y;
104
+ }
105
+ /**
106
+ * Returns the delta between this point and another point.
107
+ *
108
+ * @param {Point} a - A point
109
+ * @param {Point} b - Another point
110
+ */
111
+ static delta(a, b) {
112
+ return new _Point(a.x - b.x, a.y - b.y);
113
+ }
114
+ /**
115
+ * Returns the distance (hypotenuse) between this point and another point.
116
+ *
117
+ * @param {Point} a - A point
118
+ * @param {Point} b - Another point
119
+ */
120
+ static distance(a, b) {
121
+ return Math.hypot(a.x - b.x, a.y - b.y);
122
+ }
123
+ /**
124
+ * Returns true if both points are equal.
125
+ *
126
+ * @param {Point} a - A point
127
+ * @param {Point} b - Another point
128
+ */
129
+ static equals(a, b) {
130
+ return a.x === b.x && a.y === b.y;
131
+ }
132
+ static from({ x, y }) {
133
+ return new _Point(x, y);
134
+ }
135
+ };
136
+
137
+ // src/shapes/Rectangle.ts
138
+ var Rectangle = class _Rectangle {
139
+ constructor(left, top, width, height) {
140
+ this.left = left;
141
+ this.top = top;
142
+ this.width = width;
143
+ this.height = height;
144
+ this.scale = {
145
+ x: 1,
146
+ y: 1
147
+ };
148
+ }
149
+ get inverseScale() {
150
+ return {
151
+ x: 1 / this.scale.x,
152
+ y: 1 / this.scale.y
153
+ };
154
+ }
155
+ translate(x, y) {
156
+ const { top, left, width, height, scale } = this;
157
+ const newShape = new _Rectangle(left + x, top + y, width, height);
158
+ newShape.scale = __spreadValues({}, scale);
159
+ return newShape;
160
+ }
161
+ get boundingRectangle() {
162
+ const { width, height, left, top, right, bottom } = this;
163
+ return { width, height, left, top, right, bottom };
164
+ }
165
+ get center() {
166
+ const { left, top, right, bottom } = this;
167
+ return new Point((left + right) / 2, (top + bottom) / 2);
168
+ }
169
+ get area() {
170
+ const { width, height } = this;
171
+ return width * height;
172
+ }
173
+ equals(shape) {
174
+ if (!(shape instanceof _Rectangle)) {
175
+ return false;
176
+ }
177
+ const { left, top, width, height } = this;
178
+ return left === shape.left && top === shape.top && width === shape.width && height === shape.height;
179
+ }
180
+ containsPoint(point) {
181
+ const { top, left, bottom, right } = this;
182
+ return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;
183
+ }
184
+ intersectionArea(shape) {
185
+ if (shape instanceof _Rectangle) {
186
+ return rectangleRectangleIntersection(this, shape);
187
+ }
188
+ return 0;
189
+ }
190
+ intersectionRatio(shape) {
191
+ const { area } = this;
192
+ const intersectionArea = this.intersectionArea(shape);
193
+ const intersectionRatio = intersectionArea / (shape.area + area - intersectionArea);
194
+ return intersectionRatio;
195
+ }
196
+ get bottom() {
197
+ const { top, height } = this;
198
+ return top + height;
199
+ }
200
+ get right() {
201
+ const { left, width } = this;
202
+ return left + width;
203
+ }
204
+ get aspectRatio() {
205
+ const { width, height } = this;
206
+ return width / height;
207
+ }
208
+ get corners() {
209
+ return [
210
+ { x: this.left, y: this.top },
211
+ { x: this.right, y: this.top },
212
+ { x: this.left, y: this.bottom },
213
+ { x: this.right, y: this.bottom }
214
+ ];
215
+ }
216
+ static from({ top, left, width, height }) {
217
+ return new _Rectangle(left, top, width, height);
218
+ }
219
+ static delta(a, b, alignment = { x: "center", y: "center" }) {
220
+ const getCoordinate = (rect, axis) => {
221
+ const align = alignment[axis];
222
+ const start = axis === "x" ? rect.left : rect.top;
223
+ const size = axis === "x" ? rect.width : rect.height;
224
+ if (align == "start") return start;
225
+ if (align == "end") return start + size;
226
+ return start + size / 2;
227
+ };
228
+ return Point.delta(
229
+ { x: getCoordinate(a, "x"), y: getCoordinate(a, "y") },
230
+ { x: getCoordinate(b, "x"), y: getCoordinate(b, "y") }
231
+ );
232
+ }
233
+ static intersectionRatio(a, b) {
234
+ return _Rectangle.from(a).intersectionRatio(_Rectangle.from(b));
235
+ }
236
+ };
237
+ function rectangleRectangleIntersection(a, b) {
238
+ const top = Math.max(b.top, a.top);
239
+ const left = Math.max(b.left, a.left);
240
+ const right = Math.min(b.left + b.width, a.left + a.width);
241
+ const bottom = Math.min(b.top + b.height, a.top + a.height);
242
+ const width = right - left;
243
+ const height = bottom - top;
244
+ if (left < right && top < bottom) {
245
+ const intersectionArea = width * height;
246
+ return intersectionArea;
247
+ }
248
+ return 0;
249
+ }
250
+
251
+ // src/position/position.ts
252
+ var import_state = require("../../state/dist/index.js");
253
+ var _direction_dec, _delta_dec, _a, _timestamp, _init;
254
+ var Position = class extends (_a = import_state.ValueHistory, _delta_dec = [import_state.derived], _direction_dec = [import_state.derived], _a) {
255
+ constructor(initialValue) {
256
+ const point = Point.from(initialValue);
257
+ super(point, (a, b) => Point.equals(a, b));
258
+ __runInitializers(_init, 5, this);
259
+ __privateAdd(this, _timestamp, 0);
260
+ this.velocity = { x: 0, y: 0 };
261
+ }
262
+ get delta() {
263
+ return Point.delta(this.current, this.initial);
264
+ }
265
+ get direction() {
266
+ const { current, previous } = this;
267
+ if (!previous) return null;
268
+ const delta = {
269
+ x: current.x - previous.x,
270
+ y: current.y - previous.y
271
+ };
272
+ if (!delta.x && !delta.y) {
273
+ return null;
274
+ }
275
+ if (Math.abs(delta.x) > Math.abs(delta.y)) {
276
+ return delta.x > 0 ? "right" : "left";
277
+ }
278
+ return delta.y > 0 ? "down" : "up";
279
+ }
280
+ get current() {
281
+ return super.current;
282
+ }
283
+ set current(coordinates) {
284
+ const { current } = this;
285
+ const point = Point.from(coordinates);
286
+ const delta = {
287
+ x: point.x - current.x,
288
+ y: point.y - current.y
289
+ };
290
+ const timestamp = Date.now();
291
+ const timeDelta = timestamp - __privateGet(this, _timestamp);
292
+ const velocity = (delta2) => Math.round(delta2 / timeDelta * 100);
293
+ (0, import_state.batch)(() => {
294
+ __privateSet(this, _timestamp, timestamp);
295
+ this.velocity = {
296
+ x: velocity(delta.x),
297
+ y: velocity(delta.y)
298
+ };
299
+ super.current = point;
300
+ });
301
+ }
302
+ reset(coordinates = this.defaultValue) {
303
+ super.reset(Point.from(coordinates));
304
+ this.velocity = { x: 0, y: 0 };
305
+ }
306
+ };
307
+ _init = __decoratorStart(_a);
308
+ _timestamp = new WeakMap();
309
+ __decorateElement(_init, 2, "delta", _delta_dec, Position);
310
+ __decorateElement(_init, 2, "direction", _direction_dec, Position);
311
+ __decoratorMetadata(_init, Position);
312
+
313
+ // src/distance/distance.ts
314
+ function exceedsDistance({ x, y }, distance) {
315
+ const dx = Math.abs(x);
316
+ const dy = Math.abs(y);
317
+ if (typeof distance === "number") {
318
+ return Math.sqrt(__pow(dx, 2) + __pow(dy, 2)) > distance;
319
+ }
320
+ if ("x" in distance && "y" in distance) {
321
+ return dx > distance.x && dy > distance.y;
322
+ }
323
+ if ("x" in distance) {
324
+ return dx > distance.x;
325
+ }
326
+ if ("y" in distance) {
327
+ return dy > distance.y;
328
+ }
329
+ return false;
330
+ }
331
+
332
+ // src/types/axis.ts
333
+ var Axis = /* @__PURE__ */ ((Axis2) => {
334
+ Axis2["Horizontal"] = "x";
335
+ Axis2["Vertical"] = "y";
336
+ return Axis2;
337
+ })(Axis || {});
338
+ var Axes = Object.values(Axis);
339
+ // Annotate the CommonJS export names for ESM import in node:
340
+ 0 && (module.exports = {
341
+ Axes,
342
+ Axis,
343
+ Point,
344
+ Position,
345
+ Rectangle,
346
+ exceedsDistance
347
+ });
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "@dnd-kit/geometry",
3
+ "version": "0.1.21",
4
+ "main": "./dist/index.js",
5
+ "module": "./dist/index.mjs",
6
+ "types": "./dist/index.d.ts",
7
+ "sideEffects": false,
8
+ "license": "MIT",
9
+ "files": [
10
+ "dist/**"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsup src/index.ts --format esm,cjs --dts --external react",
14
+ "dev": "tsup src/index.ts --format esm,cjs --watch --dts --external react",
15
+ "lint": "TIMING=1 eslint src/**/*.ts* --fix",
16
+ "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
17
+ },
18
+ "dependencies": {
19
+ "@dnd-kit/state": "^0.1.21",
20
+ "tslib": "^2.6.2"
21
+ },
22
+ "devDependencies": {
23
+ "@dnd-kit/eslint-config": "*",
24
+ "eslint": "^8.38.0",
25
+ "tsup": "8.3.0",
26
+ "typescript": "^5.5.2"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public"
30
+ }
31
+ }
@@ -0,0 +1,30 @@
1
+ import * as react from 'react';
2
+ import { EffectCallback, DependencyList, useLayoutEffect, useEffect, RefObject, MutableRefObject } from 'react';
3
+
4
+ declare function useConstant<T = any>(initializer: () => T): T;
5
+
6
+ declare function useComputed<T = any>(compute: () => T, dependencies?: any[], sync?: boolean): {
7
+ readonly value: T;
8
+ };
9
+
10
+ /** Trigger a re-render when reading signal properties of an object. */
11
+ declare function useDeepSignal<T extends object | null | undefined>(target: T, synchronous?: (property: keyof T, oldValue: any, newValue: any) => boolean): T;
12
+
13
+ declare function useImmediateEffect(callback: EffectCallback, _?: DependencyList): void;
14
+
15
+ /**
16
+ * A hook that resolves to useEffect on the server and useLayoutEffect on the client
17
+ * @param callback {function} Callback function that is invoked when the dependencies of the hook change
18
+ */
19
+ declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
20
+
21
+ declare function useLatest<T>(value: T): react.RefObject<T | undefined>;
22
+
23
+ declare function useOnValueChange<T>(value: T, onChange: (value: T, oldValue: T) => void, effect?: typeof useEffect, compare?: (value1: any, value2: any) => boolean): void;
24
+
25
+ type Ref<T> = RefObject<T | null | undefined> | MutableRefObject<T>;
26
+ type RefOrValue<T> = T | Ref<T> | null | undefined;
27
+
28
+ declare function useOnElementChange(value: RefOrValue<Element>, onChange: (value: Element | undefined) => void): void;
29
+
30
+ export { useComputed, useConstant, useDeepSignal, useImmediateEffect, useIsomorphicLayoutEffect, useLatest, useOnElementChange, useOnValueChange };
@@ -0,0 +1,133 @@
1
+ import { useLayoutEffect, useEffect, useRef, useMemo, useState, useCallback } from 'react';
2
+ import { computed, effect, untracked } from '../state/dist/index.js';
3
+ import { flushSync } from 'react-dom';
4
+ import { currentValue } from './utilities.js';
5
+
6
+ function useConstant(initializer) {
7
+ const ref = useRef(null);
8
+ if (!ref.current) {
9
+ ref.current = initializer();
10
+ }
11
+ return ref.current;
12
+ }
13
+ var canUseDOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
14
+ var useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;
15
+ function useForceUpdate() {
16
+ const setState = useState(0)[1];
17
+ return useCallback(() => {
18
+ setState((value) => value + 1);
19
+ }, [setState]);
20
+ }
21
+
22
+ // src/hooks/useSignal.ts
23
+ function useSignal(signal, sync = false) {
24
+ const previous = useRef(signal.peek());
25
+ const read = useRef(false);
26
+ const forceUpdate = useForceUpdate();
27
+ useIsomorphicLayoutEffect(
28
+ () => effect(() => {
29
+ const previousValue = previous.current;
30
+ const currentValue2 = signal.value;
31
+ if (previousValue !== currentValue2) {
32
+ previous.current = currentValue2;
33
+ if (!read.current) return;
34
+ if (sync) {
35
+ flushSync(forceUpdate);
36
+ } else {
37
+ forceUpdate();
38
+ }
39
+ }
40
+ }),
41
+ [signal, sync, forceUpdate]
42
+ );
43
+ return {
44
+ get value() {
45
+ read.current = true;
46
+ return signal.peek();
47
+ }
48
+ };
49
+ }
50
+
51
+ // src/hooks/useComputed.ts
52
+ function useComputed(compute, dependencies = [], sync = false) {
53
+ const $compute = useRef(compute);
54
+ $compute.current = compute;
55
+ return useSignal(
56
+ useMemo(() => computed(() => $compute.current()), dependencies),
57
+ sync
58
+ );
59
+ }
60
+ function useDeepSignal(target, synchronous) {
61
+ const tracked = useRef(/* @__PURE__ */ new Map());
62
+ const forceUpdate = useForceUpdate();
63
+ useIsomorphicLayoutEffect(() => {
64
+ if (!target) {
65
+ tracked.current.clear();
66
+ return;
67
+ }
68
+ return effect(() => {
69
+ var _a;
70
+ let stale = false;
71
+ let sync = false;
72
+ for (const entry of tracked.current) {
73
+ const [key] = entry;
74
+ const value = untracked(() => entry[1]);
75
+ const latestValue = target[key];
76
+ if (value !== latestValue) {
77
+ stale = true;
78
+ tracked.current.set(key, latestValue);
79
+ sync = (_a = synchronous == null ? void 0 : synchronous(key, value, latestValue)) != null ? _a : false;
80
+ }
81
+ }
82
+ if (stale) {
83
+ sync ? flushSync(forceUpdate) : forceUpdate();
84
+ }
85
+ });
86
+ }, [target]);
87
+ return useMemo(
88
+ () => target ? new Proxy(target, {
89
+ get(target2, key) {
90
+ const value = target2[key];
91
+ tracked.current.set(key, value);
92
+ return value;
93
+ }
94
+ }) : target,
95
+ [target]
96
+ );
97
+ }
98
+
99
+ // src/hooks/useImmediateEffect.ts
100
+ function useImmediateEffect(callback, _) {
101
+ callback();
102
+ }
103
+ function useLatest(value) {
104
+ const valueRef = useRef(value);
105
+ useIsomorphicLayoutEffect(() => {
106
+ valueRef.current = value;
107
+ }, [value]);
108
+ return valueRef;
109
+ }
110
+ function useOnValueChange(value, onChange, effect3 = useEffect, compare = Object.is) {
111
+ const tracked = useRef(value);
112
+ effect3(() => {
113
+ const oldValue = tracked.current;
114
+ if (!compare(value, oldValue)) {
115
+ tracked.current = value;
116
+ onChange(value, oldValue);
117
+ }
118
+ }, [onChange, value]);
119
+ }
120
+ function useOnElementChange(value, onChange) {
121
+ const previous = useRef(currentValue(value));
122
+ useIsomorphicLayoutEffect(() => {
123
+ const current = currentValue(value);
124
+ if (current !== previous.current) {
125
+ previous.current = current;
126
+ onChange(current);
127
+ }
128
+ });
129
+ }
130
+
131
+ export { useComputed, useConstant, useDeepSignal, useImmediateEffect, useIsomorphicLayoutEffect, useLatest, useOnElementChange, useOnValueChange };
132
+ //# sourceMappingURL=hooks.js.map
133
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1,84 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PropsWithChildren, RefObject, MutableRefObject, ReactNode } from 'react';
3
+ import { Data, DragDropEvents, DragDropManager as DragDropManager$1 } from '@dnd-kit/abstract';
4
+ import { Draggable, Droppable, DragDropManager, DragDropManagerInput, DraggableInput, DroppableInput } from '@dnd-kit/dom';
5
+ export { DragDropManager, KeyboardSensor, PointerSensor } from '@dnd-kit/dom';
6
+ import { CleanupFunction } from '@dnd-kit/state';
7
+
8
+ type Events$1<T extends Data = Data, U extends Draggable<T> = Draggable<T>, V extends Droppable<T> = Droppable<T>, W extends DragDropManager<T, U, V> = DragDropManager<T, U, V>> = DragDropEvents<U, V, W>;
9
+ interface Props$1<T extends Data = Data, U extends Draggable<T> = Draggable<T>, V extends Droppable<T> = Droppable<T>, W extends DragDropManager<T, U, V> = DragDropManager<T, U, V>> extends DragDropManagerInput, PropsWithChildren {
10
+ manager?: W;
11
+ onBeforeDragStart?: Events$1<T, U, V, W>['beforedragstart'];
12
+ onCollision?: Events$1<T, U, V, W>['collision'];
13
+ onDragStart?: Events$1<T, U, V, W>['dragstart'];
14
+ onDragMove?: Events$1<T, U, V, W>['dragmove'];
15
+ onDragOver?: Events$1<T, U, V, W>['dragover'];
16
+ onDragEnd?: Events$1<T, U, V, W>['dragend'];
17
+ }
18
+ declare function DragDropProvider<T extends Data = Data, U extends Draggable<T> = Draggable<T>, V extends Droppable<T> = Droppable<T>, W extends DragDropManager<T, U, V> = DragDropManager<T, U, V>>({ children, onCollision, onBeforeDragStart, onDragStart, onDragMove, onDragOver, onDragEnd, ...input }: Props$1<T, U, V, W>): react_jsx_runtime.JSX.Element;
19
+
20
+ type Ref<T> = RefObject<T | null | undefined> | MutableRefObject<T>;
21
+ type RefOrValue<T> = T | Ref<T> | null | undefined;
22
+
23
+ interface UseDraggableInput<T extends Data = Data> extends Omit<DraggableInput<T>, 'handle' | 'element'> {
24
+ handle?: RefOrValue<Element>;
25
+ element?: RefOrValue<Element>;
26
+ }
27
+ declare function useDraggable<T extends Data = Data>(input: UseDraggableInput<T>): {
28
+ draggable: Draggable<T>;
29
+ readonly isDragging: boolean;
30
+ readonly isDropping: boolean;
31
+ readonly isDragSource: boolean;
32
+ handleRef: (element: Element | null) => void;
33
+ ref: (element: Element | null) => void;
34
+ };
35
+
36
+ interface Props<T extends Data, U extends Draggable<T>> {
37
+ className?: string;
38
+ children: ReactNode | ((source: U) => ReactNode);
39
+ style?: React.CSSProperties;
40
+ tag?: string;
41
+ disabled?: boolean | ((source: U | null) => boolean);
42
+ }
43
+ declare function DragOverlay<T extends Data, U extends Draggable<T>>({ children, className, style, tag, disabled, }: Props<T, U>): react_jsx_runtime.JSX.Element;
44
+
45
+ interface UseDroppableInput<T extends Data = Data> extends Omit<DroppableInput<T>, 'element'> {
46
+ element?: RefOrValue<Element>;
47
+ }
48
+ declare function useDroppable<T extends Data = Data>(input: UseDroppableInput<T>): {
49
+ droppable: Droppable<T>;
50
+ readonly isDropTarget: boolean;
51
+ ref: (element: Element | null) => void;
52
+ };
53
+
54
+ declare function useDragDropManager<T extends Data = Data, U extends Draggable<T> = Draggable<T>, V extends Droppable<T> = Droppable<T>, W extends DragDropManager<T, U, V> = DragDropManager<T, U, V>>(): W | null;
55
+
56
+ type DragDropEventMap = {
57
+ beforedragstart: 'onBeforeDragStart';
58
+ };
59
+ type EventHandlerName<T extends string> = T extends keyof DragDropEventMap ? DragDropEventMap[T] : T extends `drag${infer Second}${infer Rest}` ? `onDrag${Uppercase<Second>}${Rest}` : `on${Capitalize<T>}`;
60
+ /**
61
+ * Type for all possible event handlers
62
+ */
63
+ type Events<T extends Data, U extends Draggable<T>, V extends Droppable<T>, W extends DragDropManager<T, U, V>> = DragDropEvents<U, V, W>;
64
+ type EventHandlers<T extends Data = Data, U extends Draggable<T> = Draggable<T>, V extends Droppable<T> = Droppable<T>, W extends DragDropManager<T, U, V> = DragDropManager<T, U, V>> = {
65
+ [K in keyof Events<T, U, V, W> as EventHandlerName<K>]: Events<T, U, V, W>[K];
66
+ };
67
+ /**
68
+ * Hook to monitor drag and drop events anywhere within a DragDropProvider
69
+ * @param handlers Object containing event handlers for drag and drop events
70
+ */
71
+ declare function useDragDropMonitor<T extends Data = Data, U extends Draggable<T> = Draggable<T>, V extends Droppable<T> = Droppable<T>, W extends DragDropManager<T, U, V> = DragDropManager<T, U, V>>(handlers: Partial<EventHandlers<T, U, V, W>>): void;
72
+
73
+ declare function useDragOperation<T extends Data = Data, U extends Draggable<T> = Draggable<T>, V extends Droppable<T> = Droppable<T>, W extends DragDropManager<T, U, V> = DragDropManager<T, U, V>>(): {
74
+ readonly source: U | null | undefined;
75
+ readonly target: V | null | undefined;
76
+ };
77
+
78
+ interface Instance<T extends DragDropManager$1<any, any> = DragDropManager$1<any, any>> {
79
+ manager: T | undefined;
80
+ register(): CleanupFunction | void;
81
+ }
82
+ declare function useInstance<T extends Instance>(initializer: (manager: DragDropManager$1<any, any> | undefined) => T): T;
83
+
84
+ export { type EventHandlers as DragDropEventHandlers, type Events$1 as DragDropEvents, DragDropProvider, DragOverlay, type UseDraggableInput, type UseDroppableInput, useDragDropManager, useDragDropMonitor, useDragOperation, useDraggable, useDroppable, useInstance };