@tarsis/toolkit 0.6.5 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/Container-BVX2MW1U.cjs +138 -0
  2. package/dist/Container-BirkN1fA.js +119 -0
  3. package/dist/SelectBase-BC6WKZVF.cjs +448 -0
  4. package/dist/SelectBase-DPcXvMTa.js +399 -0
  5. package/dist/Slot-SOe-b2n6.cjs +77 -0
  6. package/dist/Slot-z71j7q57.js +65 -0
  7. package/dist/animation-BFpILbqb.js +102 -0
  8. package/dist/animation-BauloIgQ.cjs +119 -0
  9. package/dist/assets-BMqH4phf.cjs +52 -0
  10. package/dist/assets-huTvlamy.js +29 -0
  11. package/dist/audio/fail.mp3 +0 -0
  12. package/dist/audio/fail.ogg +0 -0
  13. package/dist/audio/hover.mp3 +0 -0
  14. package/dist/audio/hover.ogg +0 -0
  15. package/dist/audio/lock/fail.mp3 +0 -0
  16. package/dist/audio/lock/fail.ogg +0 -0
  17. package/dist/audio/lock/hover.mp3 +0 -0
  18. package/dist/audio/lock/hover.ogg +0 -0
  19. package/dist/audio/lock/prev-next.mp3 +0 -0
  20. package/dist/audio/lock/prev-next.ogg +0 -0
  21. package/dist/audio/lock/select.mp3 +0 -0
  22. package/dist/audio/lock/select.ogg +0 -0
  23. package/dist/audio/lock/success.mp3 +0 -0
  24. package/dist/audio/lock/success.ogg +0 -0
  25. package/dist/audio/prev-next.mp3 +0 -0
  26. package/dist/audio/prev-next.ogg +0 -0
  27. package/dist/audio/select.mp3 +0 -0
  28. package/dist/audio/select.ogg +0 -0
  29. package/dist/audio/success.mp3 +0 -0
  30. package/dist/audio/success.ogg +0 -0
  31. package/dist/chunk-CKQMccvm.cjs +28 -0
  32. package/dist/fonts/orbitron/orbitron-black.fnt +426 -0
  33. package/dist/fonts/orbitron/orbitron-black.png +0 -0
  34. package/dist/fonts/orbitron-black.fnt +426 -0
  35. package/dist/fonts/orbitron-black.png +0 -0
  36. package/dist/gl-B0NhVYRl.cjs +177 -0
  37. package/dist/gl-BipoEx9s.js +171 -0
  38. package/dist/hooks.cjs +661 -24
  39. package/dist/hooks.d.ts +72 -0
  40. package/dist/hooks.js +635 -1
  41. package/dist/index.cjs +26708 -384
  42. package/dist/index.d.ts +913 -27
  43. package/dist/index.js +26282 -3
  44. package/dist/layout.cjs +5 -0
  45. package/dist/layout.d.ts +45 -0
  46. package/dist/layout.js +2 -0
  47. package/dist/primitives.cjs +13 -0
  48. package/dist/primitives.d.ts +178 -0
  49. package/dist/primitives.js +3 -0
  50. package/dist/server.cjs +25 -0
  51. package/dist/server.d.ts +70 -0
  52. package/dist/server.js +2 -0
  53. package/dist/styles.css +3872 -2798
  54. package/dist/tokens-B2AxRYyF.js +434 -0
  55. package/dist/tokens-DlMougUi.cjs +469 -0
  56. package/dist/tokens.cjs +12 -0
  57. package/dist/tokens.d.ts +435 -0
  58. package/dist/tokens.js +3 -0
  59. package/dist/useMergeRefs-BM2-gSLn.js +16 -0
  60. package/dist/useMergeRefs-C_l6omwU.cjs +28 -0
  61. package/dist/utils-BGgmkNY4.cjs +330 -0
  62. package/dist/utils-Dw5El_3G.js +222 -0
  63. package/dist/utils.cjs +44 -38
  64. package/dist/utils.d.ts +75 -0
  65. package/dist/utils.js +3 -1
  66. package/dist/values-BTw18-W5.js +138 -0
  67. package/dist/values-BqSJ0h9o.cjs +275 -0
  68. package/package.json +88 -36
  69. package/dist/gl-Bp3e3vph.js +0 -3258
  70. package/dist/gl-Duf2UKsB.cjs +0 -3262
  71. package/dist/index-BcIzOPR7.cjs +0 -116866
  72. package/dist/index-BjG_vCX_.js +0 -3910
  73. package/dist/index-ZBjz1bHI.cjs +0 -3912
  74. package/dist/index-ss50SEnC.js +0 -116503
  75. package/dist/svg-BT_esDTZ.cjs +0 -236
  76. package/dist/svg-CQLdTbLk.js +0 -205
  77. package/dist/useWindowReady-6kIdYolB.cjs +0 -9317
  78. package/dist/useWindowReady-tUs-ONyG.js +0 -9224
@@ -0,0 +1,330 @@
1
+ require("./chunk-CKQMccvm.cjs");
2
+ const require_animation = require("./animation-BauloIgQ.cjs");
3
+ let react = require("react");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ //#region src/utils/collections/BoundedMap.ts
6
+ /**
7
+ * LRU map with optional TTL. Evicts least-recently-used entries
8
+ * when maxSize is exceeded, and expired entries on access.
9
+ */
10
+ function createBoundedMap(options) {
11
+ const store = /* @__PURE__ */ new Map();
12
+ const maxSize = options.maxSize;
13
+ const ttlMs = options.ttlMs ?? null;
14
+ function evictExpired() {
15
+ if (ttlMs === null) return;
16
+ const now = Date.now();
17
+ for (const [key, entry] of store) if (entry.expiresAt !== null && entry.expiresAt <= now) store.delete(key);
18
+ }
19
+ function evictOverflow() {
20
+ while (store.size > maxSize) {
21
+ const oldestKey = store.keys().next().value;
22
+ if (oldestKey === void 0) break;
23
+ store.delete(oldestKey);
24
+ }
25
+ }
26
+ return {
27
+ get(key) {
28
+ const entry = store.get(key);
29
+ if (!entry) return void 0;
30
+ if (entry.expiresAt !== null && entry.expiresAt <= Date.now()) {
31
+ store.delete(key);
32
+ return;
33
+ }
34
+ store.delete(key);
35
+ store.set(key, entry);
36
+ return entry.value;
37
+ },
38
+ has(key) {
39
+ return this.get(key) !== void 0;
40
+ },
41
+ set(key, value) {
42
+ const expiresAt = ttlMs === null ? null : Date.now() + ttlMs;
43
+ if (store.has(key)) store.delete(key);
44
+ store.set(key, {
45
+ value,
46
+ expiresAt
47
+ });
48
+ evictExpired();
49
+ evictOverflow();
50
+ },
51
+ delete(key) {
52
+ return store.delete(key);
53
+ },
54
+ clear() {
55
+ store.clear();
56
+ },
57
+ get size() {
58
+ evictExpired();
59
+ return store.size;
60
+ }
61
+ };
62
+ }
63
+ //#endregion
64
+ //#region src/utils/ui/chain.tsx
65
+ var chain = (...elements) => {
66
+ return elements.map((element, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: element }), index !== elements.length - 1 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: " • " })] }, index));
67
+ };
68
+ //#endregion
69
+ //#region src/utils/error.ts
70
+ /**
71
+ * Normalises unknown thrown values into proper Error instances.
72
+ * Preserves original Error objects; wraps strings and unknowns.
73
+ */
74
+ function normalizeError(err) {
75
+ if (err instanceof Error) return err;
76
+ if (typeof err === "string") return new Error(err);
77
+ return /* @__PURE__ */ new Error("Unknown error");
78
+ }
79
+ //#endregion
80
+ //#region src/utils/format.ts
81
+ /**
82
+ * Formats seconds into MM:SS display string.
83
+ */
84
+ function formatDuration(totalSeconds) {
85
+ return `${Math.floor(totalSeconds / 60)}:${(totalSeconds % 60).toString().padStart(2, "0")}`;
86
+ }
87
+ /**
88
+ * Formats milliseconds into MM:SS.ms display string.
89
+ * Useful for timers and stopwatches.
90
+ */
91
+ function formatTime(totalMs) {
92
+ const totalSeconds = Math.floor(totalMs / 1e3);
93
+ const minutes = Math.floor(totalSeconds / 60);
94
+ const seconds = totalSeconds % 60;
95
+ const ms = Math.floor(totalMs % 1e3 / 10);
96
+ return `${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}.${ms.toString().padStart(2, "0")}`;
97
+ }
98
+ //#endregion
99
+ //#region src/utils/math.ts
100
+ /**
101
+ * Math utility functions for animations and interactions
102
+ */
103
+ function distance(x1, x2, y1, y2) {
104
+ const a = x1 - x2;
105
+ const b = y1 - y2;
106
+ return Math.hypot(a, b);
107
+ }
108
+ function lineEq(y2, y1, x2, x1, currentVal) {
109
+ const m = (y2 - y1) / (x2 - x1);
110
+ const b = y1 - m * x1;
111
+ return m * currentVal + b;
112
+ }
113
+ function lerp(a, b, n) {
114
+ return (1 - n) * a + n * b;
115
+ }
116
+ //#endregion
117
+ //#region src/utils/presence.ts
118
+ /**
119
+ * Create standardized enter/exit motion variants using toolkit tokens.
120
+ * Returns `{ initial, animate, exit }` for framer-motion / motion.
121
+ */
122
+ var createPresenceVariants = (enter, exit, duration = require_animation.animationDuration.medium, easingCurve = require_animation.easing.easeOutCubic) => ({
123
+ initial: exit,
124
+ animate: {
125
+ ...enter,
126
+ transition: {
127
+ duration,
128
+ ease: easingCurve
129
+ }
130
+ },
131
+ exit: {
132
+ ...exit,
133
+ transition: {
134
+ duration,
135
+ ease: easingCurve
136
+ }
137
+ }
138
+ });
139
+ var fadePresence = createPresenceVariants({ opacity: 1 }, { opacity: 0 }, require_animation.animationDuration.fast);
140
+ var slideUpPresence = createPresenceVariants({
141
+ opacity: 1,
142
+ y: 0
143
+ }, {
144
+ opacity: 0,
145
+ y: 8
146
+ });
147
+ var scalePresence = createPresenceVariants({
148
+ opacity: 1,
149
+ scale: 1
150
+ }, {
151
+ opacity: 0,
152
+ scale: .95
153
+ }, require_animation.animationDuration.short);
154
+ var slideDownPresence = createPresenceVariants({
155
+ opacity: 1,
156
+ y: 0
157
+ }, {
158
+ opacity: 0,
159
+ y: -8
160
+ });
161
+ //#endregion
162
+ //#region src/utils/promise.ts
163
+ function delay(ms) {
164
+ return new Promise((resolve) => {
165
+ setTimeout(() => {
166
+ resolve(void 0);
167
+ }, ms);
168
+ });
169
+ }
170
+ var wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
171
+ //#endregion
172
+ //#region src/utils/svg.ts
173
+ function getPath(x, smoothing) {
174
+ const points = [
175
+ [2, 2],
176
+ [12 - x, 12 + x],
177
+ [22, 22]
178
+ ];
179
+ const calculateControlPoint = (current, previous, next, reverse) => {
180
+ const p = previous || current;
181
+ const n = next || current;
182
+ const o = {
183
+ length: Math.sqrt(Math.pow(n[0] - p[0], 2) + Math.pow(n[1] - p[1], 2)),
184
+ angle: Math.atan2(n[1] - p[1], n[0] - p[0])
185
+ };
186
+ const angle = o.angle + (reverse ? Math.PI : 0);
187
+ const length = o.length * smoothing;
188
+ return [current[0] + Math.cos(angle) * length, current[1] + Math.sin(angle) * length];
189
+ };
190
+ return points.reduce((acc, point, i, a) => {
191
+ if (i === 0) return `M ${point[0]},${point[1]}`;
192
+ const previous = a[i - 1];
193
+ const cp1 = calculateControlPoint(previous, a[i - 2], point, false);
194
+ const cp2 = calculateControlPoint(point, previous, a[i + 1], true);
195
+ return `${acc} C ${cp1[0]},${cp1[1]} ${cp2[0]},${cp2[1]} ${point[0]},${point[1]}`;
196
+ }, "");
197
+ }
198
+ //#endregion
199
+ //#region src/utils/viewTransition.ts
200
+ /**
201
+ * Wrapper around the View Transitions API.
202
+ * Uses `document.startViewTransition` when available (Chrome 111+, Safari 18+),
203
+ * falls back to calling the callback directly on unsupported browsers.
204
+ */
205
+ var startViewTransition = (callback) => {
206
+ const doc = document;
207
+ if (typeof doc.startViewTransition === "function") return doc.startViewTransition(callback);
208
+ const result = callback();
209
+ const resolved = result instanceof Promise ? result : Promise.resolve();
210
+ return {
211
+ finished: resolved,
212
+ ready: Promise.resolve(),
213
+ updateCallbackDone: resolved
214
+ };
215
+ };
216
+ /**
217
+ * Check if the View Transitions API is supported in the current browser.
218
+ */
219
+ var supportsViewTransitions = () => {
220
+ return typeof document.startViewTransition === "function";
221
+ };
222
+ //#endregion
223
+ Object.defineProperty(exports, "chain", {
224
+ enumerable: true,
225
+ get: function() {
226
+ return chain;
227
+ }
228
+ });
229
+ Object.defineProperty(exports, "createBoundedMap", {
230
+ enumerable: true,
231
+ get: function() {
232
+ return createBoundedMap;
233
+ }
234
+ });
235
+ Object.defineProperty(exports, "createPresenceVariants", {
236
+ enumerable: true,
237
+ get: function() {
238
+ return createPresenceVariants;
239
+ }
240
+ });
241
+ Object.defineProperty(exports, "delay", {
242
+ enumerable: true,
243
+ get: function() {
244
+ return delay;
245
+ }
246
+ });
247
+ Object.defineProperty(exports, "distance", {
248
+ enumerable: true,
249
+ get: function() {
250
+ return distance;
251
+ }
252
+ });
253
+ Object.defineProperty(exports, "fadePresence", {
254
+ enumerable: true,
255
+ get: function() {
256
+ return fadePresence;
257
+ }
258
+ });
259
+ Object.defineProperty(exports, "formatDuration", {
260
+ enumerable: true,
261
+ get: function() {
262
+ return formatDuration;
263
+ }
264
+ });
265
+ Object.defineProperty(exports, "formatTime", {
266
+ enumerable: true,
267
+ get: function() {
268
+ return formatTime;
269
+ }
270
+ });
271
+ Object.defineProperty(exports, "getPath", {
272
+ enumerable: true,
273
+ get: function() {
274
+ return getPath;
275
+ }
276
+ });
277
+ Object.defineProperty(exports, "lerp", {
278
+ enumerable: true,
279
+ get: function() {
280
+ return lerp;
281
+ }
282
+ });
283
+ Object.defineProperty(exports, "lineEq", {
284
+ enumerable: true,
285
+ get: function() {
286
+ return lineEq;
287
+ }
288
+ });
289
+ Object.defineProperty(exports, "normalizeError", {
290
+ enumerable: true,
291
+ get: function() {
292
+ return normalizeError;
293
+ }
294
+ });
295
+ Object.defineProperty(exports, "scalePresence", {
296
+ enumerable: true,
297
+ get: function() {
298
+ return scalePresence;
299
+ }
300
+ });
301
+ Object.defineProperty(exports, "slideDownPresence", {
302
+ enumerable: true,
303
+ get: function() {
304
+ return slideDownPresence;
305
+ }
306
+ });
307
+ Object.defineProperty(exports, "slideUpPresence", {
308
+ enumerable: true,
309
+ get: function() {
310
+ return slideUpPresence;
311
+ }
312
+ });
313
+ Object.defineProperty(exports, "startViewTransition", {
314
+ enumerable: true,
315
+ get: function() {
316
+ return startViewTransition;
317
+ }
318
+ });
319
+ Object.defineProperty(exports, "supportsViewTransitions", {
320
+ enumerable: true,
321
+ get: function() {
322
+ return supportsViewTransitions;
323
+ }
324
+ });
325
+ Object.defineProperty(exports, "wait", {
326
+ enumerable: true,
327
+ get: function() {
328
+ return wait;
329
+ }
330
+ });
@@ -0,0 +1,222 @@
1
+ import { n as easing, t as animationDuration } from "./animation-BFpILbqb.js";
2
+ import { Fragment } from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/utils/collections/BoundedMap.ts
5
+ /**
6
+ * LRU map with optional TTL. Evicts least-recently-used entries
7
+ * when maxSize is exceeded, and expired entries on access.
8
+ */
9
+ function createBoundedMap(options) {
10
+ const store = /* @__PURE__ */ new Map();
11
+ const maxSize = options.maxSize;
12
+ const ttlMs = options.ttlMs ?? null;
13
+ function evictExpired() {
14
+ if (ttlMs === null) return;
15
+ const now = Date.now();
16
+ for (const [key, entry] of store) if (entry.expiresAt !== null && entry.expiresAt <= now) store.delete(key);
17
+ }
18
+ function evictOverflow() {
19
+ while (store.size > maxSize) {
20
+ const oldestKey = store.keys().next().value;
21
+ if (oldestKey === void 0) break;
22
+ store.delete(oldestKey);
23
+ }
24
+ }
25
+ return {
26
+ get(key) {
27
+ const entry = store.get(key);
28
+ if (!entry) return void 0;
29
+ if (entry.expiresAt !== null && entry.expiresAt <= Date.now()) {
30
+ store.delete(key);
31
+ return;
32
+ }
33
+ store.delete(key);
34
+ store.set(key, entry);
35
+ return entry.value;
36
+ },
37
+ has(key) {
38
+ return this.get(key) !== void 0;
39
+ },
40
+ set(key, value) {
41
+ const expiresAt = ttlMs === null ? null : Date.now() + ttlMs;
42
+ if (store.has(key)) store.delete(key);
43
+ store.set(key, {
44
+ value,
45
+ expiresAt
46
+ });
47
+ evictExpired();
48
+ evictOverflow();
49
+ },
50
+ delete(key) {
51
+ return store.delete(key);
52
+ },
53
+ clear() {
54
+ store.clear();
55
+ },
56
+ get size() {
57
+ evictExpired();
58
+ return store.size;
59
+ }
60
+ };
61
+ }
62
+ //#endregion
63
+ //#region src/utils/ui/chain.tsx
64
+ var chain = (...elements) => {
65
+ return elements.map((element, index) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", { children: element }), index !== elements.length - 1 && /* @__PURE__ */ jsx("span", { children: " • " })] }, index));
66
+ };
67
+ //#endregion
68
+ //#region src/utils/error.ts
69
+ /**
70
+ * Normalises unknown thrown values into proper Error instances.
71
+ * Preserves original Error objects; wraps strings and unknowns.
72
+ */
73
+ function normalizeError(err) {
74
+ if (err instanceof Error) return err;
75
+ if (typeof err === "string") return new Error(err);
76
+ return /* @__PURE__ */ new Error("Unknown error");
77
+ }
78
+ //#endregion
79
+ //#region src/utils/format.ts
80
+ /**
81
+ * Formats seconds into MM:SS display string.
82
+ */
83
+ function formatDuration(totalSeconds) {
84
+ return `${Math.floor(totalSeconds / 60)}:${(totalSeconds % 60).toString().padStart(2, "0")}`;
85
+ }
86
+ /**
87
+ * Formats milliseconds into MM:SS.ms display string.
88
+ * Useful for timers and stopwatches.
89
+ */
90
+ function formatTime(totalMs) {
91
+ const totalSeconds = Math.floor(totalMs / 1e3);
92
+ const minutes = Math.floor(totalSeconds / 60);
93
+ const seconds = totalSeconds % 60;
94
+ const ms = Math.floor(totalMs % 1e3 / 10);
95
+ return `${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}.${ms.toString().padStart(2, "0")}`;
96
+ }
97
+ //#endregion
98
+ //#region src/utils/math.ts
99
+ /**
100
+ * Math utility functions for animations and interactions
101
+ */
102
+ function distance(x1, x2, y1, y2) {
103
+ const a = x1 - x2;
104
+ const b = y1 - y2;
105
+ return Math.hypot(a, b);
106
+ }
107
+ function lineEq(y2, y1, x2, x1, currentVal) {
108
+ const m = (y2 - y1) / (x2 - x1);
109
+ const b = y1 - m * x1;
110
+ return m * currentVal + b;
111
+ }
112
+ function lerp(a, b, n) {
113
+ return (1 - n) * a + n * b;
114
+ }
115
+ //#endregion
116
+ //#region src/utils/presence.ts
117
+ /**
118
+ * Create standardized enter/exit motion variants using toolkit tokens.
119
+ * Returns `{ initial, animate, exit }` for framer-motion / motion.
120
+ */
121
+ var createPresenceVariants = (enter, exit, duration = animationDuration.medium, easingCurve = easing.easeOutCubic) => ({
122
+ initial: exit,
123
+ animate: {
124
+ ...enter,
125
+ transition: {
126
+ duration,
127
+ ease: easingCurve
128
+ }
129
+ },
130
+ exit: {
131
+ ...exit,
132
+ transition: {
133
+ duration,
134
+ ease: easingCurve
135
+ }
136
+ }
137
+ });
138
+ var fadePresence = createPresenceVariants({ opacity: 1 }, { opacity: 0 }, animationDuration.fast);
139
+ var slideUpPresence = createPresenceVariants({
140
+ opacity: 1,
141
+ y: 0
142
+ }, {
143
+ opacity: 0,
144
+ y: 8
145
+ });
146
+ var scalePresence = createPresenceVariants({
147
+ opacity: 1,
148
+ scale: 1
149
+ }, {
150
+ opacity: 0,
151
+ scale: .95
152
+ }, animationDuration.short);
153
+ var slideDownPresence = createPresenceVariants({
154
+ opacity: 1,
155
+ y: 0
156
+ }, {
157
+ opacity: 0,
158
+ y: -8
159
+ });
160
+ //#endregion
161
+ //#region src/utils/promise.ts
162
+ function delay(ms) {
163
+ return new Promise((resolve) => {
164
+ setTimeout(() => {
165
+ resolve(void 0);
166
+ }, ms);
167
+ });
168
+ }
169
+ var wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
170
+ //#endregion
171
+ //#region src/utils/svg.ts
172
+ function getPath(x, smoothing) {
173
+ const points = [
174
+ [2, 2],
175
+ [12 - x, 12 + x],
176
+ [22, 22]
177
+ ];
178
+ const calculateControlPoint = (current, previous, next, reverse) => {
179
+ const p = previous || current;
180
+ const n = next || current;
181
+ const o = {
182
+ length: Math.sqrt(Math.pow(n[0] - p[0], 2) + Math.pow(n[1] - p[1], 2)),
183
+ angle: Math.atan2(n[1] - p[1], n[0] - p[0])
184
+ };
185
+ const angle = o.angle + (reverse ? Math.PI : 0);
186
+ const length = o.length * smoothing;
187
+ return [current[0] + Math.cos(angle) * length, current[1] + Math.sin(angle) * length];
188
+ };
189
+ return points.reduce((acc, point, i, a) => {
190
+ if (i === 0) return `M ${point[0]},${point[1]}`;
191
+ const previous = a[i - 1];
192
+ const cp1 = calculateControlPoint(previous, a[i - 2], point, false);
193
+ const cp2 = calculateControlPoint(point, previous, a[i + 1], true);
194
+ return `${acc} C ${cp1[0]},${cp1[1]} ${cp2[0]},${cp2[1]} ${point[0]},${point[1]}`;
195
+ }, "");
196
+ }
197
+ //#endregion
198
+ //#region src/utils/viewTransition.ts
199
+ /**
200
+ * Wrapper around the View Transitions API.
201
+ * Uses `document.startViewTransition` when available (Chrome 111+, Safari 18+),
202
+ * falls back to calling the callback directly on unsupported browsers.
203
+ */
204
+ var startViewTransition = (callback) => {
205
+ const doc = document;
206
+ if (typeof doc.startViewTransition === "function") return doc.startViewTransition(callback);
207
+ const result = callback();
208
+ const resolved = result instanceof Promise ? result : Promise.resolve();
209
+ return {
210
+ finished: resolved,
211
+ ready: Promise.resolve(),
212
+ updateCallbackDone: resolved
213
+ };
214
+ };
215
+ /**
216
+ * Check if the View Transitions API is supported in the current browser.
217
+ */
218
+ var supportsViewTransitions = () => {
219
+ return typeof document.startViewTransition === "function";
220
+ };
221
+ //#endregion
222
+ export { chain as _, wait as a, scalePresence as c, distance as d, lerp as f, normalizeError as g, formatTime as h, delay as i, slideDownPresence as l, formatDuration as m, supportsViewTransitions as n, createPresenceVariants as o, lineEq as p, getPath as r, fadePresence as s, startViewTransition as t, slideUpPresence as u, createBoundedMap as v };
package/dist/utils.cjs CHANGED
@@ -1,38 +1,44 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
-
5
- const svg = require('./svg-BT_esDTZ.cjs');
6
-
7
-
8
-
9
- exports.BaseLogger = svg.BaseLogger;
10
- exports.animationLogger = svg.animationLogger;
11
- exports.apiLogger = svg.apiLogger;
12
- exports.chain = svg.chain;
13
- exports.clearSession = svg.clearSession;
14
- exports.componentLogger = svg.componentLogger;
15
- exports.delay = svg.delay;
16
- exports.distance = svg.distance;
17
- exports.eventLogger = svg.eventLogger;
18
- exports.getCurrentLogLevel = svg.getCurrentLogLevel;
19
- exports.getPath = svg.getPath;
20
- exports.hookLogger = svg.hookLogger;
21
- exports.is = svg.is;
22
- exports.isDebugEnabled = svg.isDebugEnabled;
23
- exports.isNonNullable = svg.isNonNullable;
24
- exports.keys = svg.keys;
25
- exports.lerp = svg.lerp;
26
- exports.lineEq = svg.lineEq;
27
- exports.logger = svg.logger;
28
- exports.move = svg.move;
29
- exports.noop = svg.noop;
30
- exports.notReachable = svg.notReachable;
31
- exports.setLogLevel = svg.setLogLevel;
32
- exports.setRequestId = svg.setRequestId;
33
- exports.setSessionId = svg.setSessionId;
34
- exports.storageLogger = svg.storageLogger;
35
- exports.times = svg.times;
36
- exports.utilsLogger = svg.utilsLogger;
37
- exports.values = svg.values;
38
- exports.wait = svg.wait;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_values = require("./values-BqSJ0h9o.cjs");
3
+ const require_utils = require("./utils-BGgmkNY4.cjs");
4
+ exports.BaseLogger = require_values.BaseLogger;
5
+ exports.animationLogger = require_values.animationLogger;
6
+ exports.apiLogger = require_values.apiLogger;
7
+ exports.chain = require_utils.chain;
8
+ exports.clearSession = require_values.clearSession;
9
+ exports.componentLogger = require_values.componentLogger;
10
+ exports.createBoundedMap = require_utils.createBoundedMap;
11
+ exports.createPresenceVariants = require_utils.createPresenceVariants;
12
+ exports.delay = require_utils.delay;
13
+ exports.distance = require_utils.distance;
14
+ exports.eventLogger = require_values.eventLogger;
15
+ exports.fadePresence = require_utils.fadePresence;
16
+ exports.formatDuration = require_utils.formatDuration;
17
+ exports.formatTime = require_utils.formatTime;
18
+ exports.getCurrentLogLevel = require_values.getCurrentLogLevel;
19
+ exports.getPath = require_utils.getPath;
20
+ exports.hookLogger = require_values.hookLogger;
21
+ exports.is = require_values.is;
22
+ exports.isDebugEnabled = require_values.isDebugEnabled;
23
+ exports.isNonNullable = require_values.isNonNullable;
24
+ exports.keys = require_values.keys;
25
+ exports.lerp = require_utils.lerp;
26
+ exports.lineEq = require_utils.lineEq;
27
+ exports.logger = require_values.logger;
28
+ exports.move = require_values.move;
29
+ exports.noop = require_values.noop;
30
+ exports.normalizeError = require_utils.normalizeError;
31
+ exports.notReachable = require_values.notReachable;
32
+ exports.scalePresence = require_utils.scalePresence;
33
+ exports.setLogLevel = require_values.setLogLevel;
34
+ exports.setRequestId = require_values.setRequestId;
35
+ exports.setSessionId = require_values.setSessionId;
36
+ exports.slideDownPresence = require_utils.slideDownPresence;
37
+ exports.slideUpPresence = require_utils.slideUpPresence;
38
+ exports.startViewTransition = require_utils.startViewTransition;
39
+ exports.storageLogger = require_values.storageLogger;
40
+ exports.supportsViewTransitions = require_utils.supportsViewTransitions;
41
+ exports.times = require_values.times;
42
+ exports.utilsLogger = require_values.utilsLogger;
43
+ exports.values = require_values.values;
44
+ exports.wait = require_utils.wait;