react-grab 0.0.47 → 0.0.49

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/dist/index.js CHANGED
@@ -1,8 +1,3 @@
1
- import { delegateEvents, render, createComponent, memo, template, effect, style, insert, setStyleProperty, use } from 'solid-js/web';
2
- import { createRoot, createSignal, createMemo, createEffect, on, onCleanup, Show, For, onMount } from 'solid-js';
3
- import { isInstrumentationActive, getFiberFromHostInstance, traverseFiber, isCompositeFiber, getDisplayName, isFiber, getLatestFiber, isHostFiber } from 'bippy';
4
- import { getSource, isSourceFile, normalizeFileName } from 'bippy/source';
5
-
6
1
  /**
7
2
  * @license MIT
8
3
  *
@@ -12,6 +7,740 @@ import { getSource, isSourceFile, normalizeFileName } from 'bippy/source';
12
7
  * LICENSE file in the root directory of this source tree.
13
8
  */
14
9
 
10
+ var IS_DEV = false;
11
+ var equalFn = (a3, b3) => a3 === b3;
12
+ var $TRACK = Symbol("solid-track");
13
+ var signalOptions = {
14
+ equals: equalFn
15
+ };
16
+ var runEffects = runQueue;
17
+ var STALE = 1;
18
+ var PENDING = 2;
19
+ var UNOWNED = {
20
+ owned: null,
21
+ cleanups: null,
22
+ context: null,
23
+ owner: null
24
+ };
25
+ var Owner = null;
26
+ var Transition = null;
27
+ var ExternalSourceConfig = null;
28
+ var Listener = null;
29
+ var Updates = null;
30
+ var Effects = null;
31
+ var ExecCount = 0;
32
+ function createRoot(fn, detachedOwner) {
33
+ const listener = Listener, owner = Owner, unowned = fn.length === 0, current = detachedOwner === void 0 ? owner : detachedOwner, root = unowned ? UNOWNED : {
34
+ owned: null,
35
+ cleanups: null,
36
+ context: current ? current.context : null,
37
+ owner: current
38
+ }, updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));
39
+ Owner = root;
40
+ Listener = null;
41
+ try {
42
+ return runUpdates(updateFn, true);
43
+ } finally {
44
+ Listener = listener;
45
+ Owner = owner;
46
+ }
47
+ }
48
+ function createSignal(value, options) {
49
+ options = options ? Object.assign({}, signalOptions, options) : signalOptions;
50
+ const s3 = {
51
+ value,
52
+ observers: null,
53
+ observerSlots: null,
54
+ comparator: options.equals || void 0
55
+ };
56
+ const setter = (value2) => {
57
+ if (typeof value2 === "function") {
58
+ value2 = value2(s3.value);
59
+ }
60
+ return writeSignal(s3, value2);
61
+ };
62
+ return [readSignal.bind(s3), setter];
63
+ }
64
+ function createRenderEffect(fn, value, options) {
65
+ const c3 = createComputation(fn, value, false, STALE);
66
+ updateComputation(c3);
67
+ }
68
+ function createEffect(fn, value, options) {
69
+ runEffects = runUserEffects;
70
+ const c3 = createComputation(fn, value, false, STALE);
71
+ c3.user = true;
72
+ Effects ? Effects.push(c3) : updateComputation(c3);
73
+ }
74
+ function createMemo(fn, value, options) {
75
+ options = options ? Object.assign({}, signalOptions, options) : signalOptions;
76
+ const c3 = createComputation(fn, value, true, 0);
77
+ c3.observers = null;
78
+ c3.observerSlots = null;
79
+ c3.comparator = options.equals || void 0;
80
+ updateComputation(c3);
81
+ return readSignal.bind(c3);
82
+ }
83
+ function untrack(fn) {
84
+ if (Listener === null) return fn();
85
+ const listener = Listener;
86
+ Listener = null;
87
+ try {
88
+ if (ExternalSourceConfig) ;
89
+ return fn();
90
+ } finally {
91
+ Listener = listener;
92
+ }
93
+ }
94
+ function on(deps, fn, options) {
95
+ const isArray = Array.isArray(deps);
96
+ let prevInput;
97
+ return (prevValue) => {
98
+ let input;
99
+ if (isArray) {
100
+ input = Array(deps.length);
101
+ for (let i2 = 0; i2 < deps.length; i2++) input[i2] = deps[i2]();
102
+ } else input = deps();
103
+ const result = untrack(() => fn(input, prevInput, prevValue));
104
+ prevInput = input;
105
+ return result;
106
+ };
107
+ }
108
+ function onMount(fn) {
109
+ createEffect(() => untrack(fn));
110
+ }
111
+ function onCleanup(fn) {
112
+ if (Owner === null) ;
113
+ else if (Owner.cleanups === null) Owner.cleanups = [fn];
114
+ else Owner.cleanups.push(fn);
115
+ return fn;
116
+ }
117
+ function readSignal() {
118
+ if (this.sources && (this.state)) {
119
+ if ((this.state) === STALE) updateComputation(this);
120
+ else {
121
+ const updates = Updates;
122
+ Updates = null;
123
+ runUpdates(() => lookUpstream(this), false);
124
+ Updates = updates;
125
+ }
126
+ }
127
+ if (Listener) {
128
+ const sSlot = this.observers ? this.observers.length : 0;
129
+ if (!Listener.sources) {
130
+ Listener.sources = [this];
131
+ Listener.sourceSlots = [sSlot];
132
+ } else {
133
+ Listener.sources.push(this);
134
+ Listener.sourceSlots.push(sSlot);
135
+ }
136
+ if (!this.observers) {
137
+ this.observers = [Listener];
138
+ this.observerSlots = [Listener.sources.length - 1];
139
+ } else {
140
+ this.observers.push(Listener);
141
+ this.observerSlots.push(Listener.sources.length - 1);
142
+ }
143
+ }
144
+ return this.value;
145
+ }
146
+ function writeSignal(node, value, isComp) {
147
+ let current = node.value;
148
+ if (!node.comparator || !node.comparator(current, value)) {
149
+ node.value = value;
150
+ if (node.observers && node.observers.length) {
151
+ runUpdates(() => {
152
+ for (let i2 = 0; i2 < node.observers.length; i2 += 1) {
153
+ const o3 = node.observers[i2];
154
+ const TransitionRunning = Transition && Transition.running;
155
+ if (TransitionRunning && Transition.disposed.has(o3)) ;
156
+ if (TransitionRunning ? !o3.tState : !o3.state) {
157
+ if (o3.pure) Updates.push(o3);
158
+ else Effects.push(o3);
159
+ if (o3.observers) markDownstream(o3);
160
+ }
161
+ if (!TransitionRunning) o3.state = STALE;
162
+ }
163
+ if (Updates.length > 1e6) {
164
+ Updates = [];
165
+ if (IS_DEV) ;
166
+ throw new Error();
167
+ }
168
+ }, false);
169
+ }
170
+ }
171
+ return value;
172
+ }
173
+ function updateComputation(node) {
174
+ if (!node.fn) return;
175
+ cleanNode(node);
176
+ const time = ExecCount;
177
+ runComputation(node, node.value, time);
178
+ }
179
+ function runComputation(node, value, time) {
180
+ let nextValue;
181
+ const owner = Owner, listener = Listener;
182
+ Listener = Owner = node;
183
+ try {
184
+ nextValue = node.fn(value);
185
+ } catch (err) {
186
+ if (node.pure) {
187
+ {
188
+ node.state = STALE;
189
+ node.owned && node.owned.forEach(cleanNode);
190
+ node.owned = null;
191
+ }
192
+ }
193
+ node.updatedAt = time + 1;
194
+ return handleError(err);
195
+ } finally {
196
+ Listener = listener;
197
+ Owner = owner;
198
+ }
199
+ if (!node.updatedAt || node.updatedAt <= time) {
200
+ if (node.updatedAt != null && "observers" in node) {
201
+ writeSignal(node, nextValue);
202
+ } else node.value = nextValue;
203
+ node.updatedAt = time;
204
+ }
205
+ }
206
+ function createComputation(fn, init2, pure, state = STALE, options) {
207
+ const c3 = {
208
+ fn,
209
+ state,
210
+ updatedAt: null,
211
+ owned: null,
212
+ sources: null,
213
+ sourceSlots: null,
214
+ cleanups: null,
215
+ value: init2,
216
+ owner: Owner,
217
+ context: Owner ? Owner.context : null,
218
+ pure
219
+ };
220
+ if (Owner === null) ;
221
+ else if (Owner !== UNOWNED) {
222
+ {
223
+ if (!Owner.owned) Owner.owned = [c3];
224
+ else Owner.owned.push(c3);
225
+ }
226
+ }
227
+ return c3;
228
+ }
229
+ function runTop(node) {
230
+ if ((node.state) === 0) return;
231
+ if ((node.state) === PENDING) return lookUpstream(node);
232
+ if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);
233
+ const ancestors = [node];
234
+ while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {
235
+ if (node.state) ancestors.push(node);
236
+ }
237
+ for (let i2 = ancestors.length - 1; i2 >= 0; i2--) {
238
+ node = ancestors[i2];
239
+ if ((node.state) === STALE) {
240
+ updateComputation(node);
241
+ } else if ((node.state) === PENDING) {
242
+ const updates = Updates;
243
+ Updates = null;
244
+ runUpdates(() => lookUpstream(node, ancestors[0]), false);
245
+ Updates = updates;
246
+ }
247
+ }
248
+ }
249
+ function runUpdates(fn, init2) {
250
+ if (Updates) return fn();
251
+ let wait = false;
252
+ if (!init2) Updates = [];
253
+ if (Effects) wait = true;
254
+ else Effects = [];
255
+ ExecCount++;
256
+ try {
257
+ const res = fn();
258
+ completeUpdates(wait);
259
+ return res;
260
+ } catch (err) {
261
+ if (!wait) Effects = null;
262
+ Updates = null;
263
+ handleError(err);
264
+ }
265
+ }
266
+ function completeUpdates(wait) {
267
+ if (Updates) {
268
+ runQueue(Updates);
269
+ Updates = null;
270
+ }
271
+ if (wait) return;
272
+ const e2 = Effects;
273
+ Effects = null;
274
+ if (e2.length) runUpdates(() => runEffects(e2), false);
275
+ }
276
+ function runQueue(queue) {
277
+ for (let i2 = 0; i2 < queue.length; i2++) runTop(queue[i2]);
278
+ }
279
+ function runUserEffects(queue) {
280
+ let i2, userLength = 0;
281
+ for (i2 = 0; i2 < queue.length; i2++) {
282
+ const e2 = queue[i2];
283
+ if (!e2.user) runTop(e2);
284
+ else queue[userLength++] = e2;
285
+ }
286
+ for (i2 = 0; i2 < userLength; i2++) runTop(queue[i2]);
287
+ }
288
+ function lookUpstream(node, ignore) {
289
+ node.state = 0;
290
+ for (let i2 = 0; i2 < node.sources.length; i2 += 1) {
291
+ const source = node.sources[i2];
292
+ if (source.sources) {
293
+ const state = source.state;
294
+ if (state === STALE) {
295
+ if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);
296
+ } else if (state === PENDING) lookUpstream(source, ignore);
297
+ }
298
+ }
299
+ }
300
+ function markDownstream(node) {
301
+ for (let i2 = 0; i2 < node.observers.length; i2 += 1) {
302
+ const o3 = node.observers[i2];
303
+ if (!o3.state) {
304
+ o3.state = PENDING;
305
+ if (o3.pure) Updates.push(o3);
306
+ else Effects.push(o3);
307
+ o3.observers && markDownstream(o3);
308
+ }
309
+ }
310
+ }
311
+ function cleanNode(node) {
312
+ let i2;
313
+ if (node.sources) {
314
+ while (node.sources.length) {
315
+ const source = node.sources.pop(), index = node.sourceSlots.pop(), obs = source.observers;
316
+ if (obs && obs.length) {
317
+ const n2 = obs.pop(), s3 = source.observerSlots.pop();
318
+ if (index < obs.length) {
319
+ n2.sourceSlots[s3] = index;
320
+ obs[index] = n2;
321
+ source.observerSlots[index] = s3;
322
+ }
323
+ }
324
+ }
325
+ }
326
+ if (node.tOwned) {
327
+ for (i2 = node.tOwned.length - 1; i2 >= 0; i2--) cleanNode(node.tOwned[i2]);
328
+ delete node.tOwned;
329
+ }
330
+ if (node.owned) {
331
+ for (i2 = node.owned.length - 1; i2 >= 0; i2--) cleanNode(node.owned[i2]);
332
+ node.owned = null;
333
+ }
334
+ if (node.cleanups) {
335
+ for (i2 = node.cleanups.length - 1; i2 >= 0; i2--) node.cleanups[i2]();
336
+ node.cleanups = null;
337
+ }
338
+ node.state = 0;
339
+ }
340
+ function castError(err) {
341
+ if (err instanceof Error) return err;
342
+ return new Error(typeof err === "string" ? err : "Unknown error", {
343
+ cause: err
344
+ });
345
+ }
346
+ function handleError(err, owner = Owner) {
347
+ const error = castError(err);
348
+ throw error;
349
+ }
350
+ var FALLBACK = Symbol("fallback");
351
+ function dispose(d3) {
352
+ for (let i2 = 0; i2 < d3.length; i2++) d3[i2]();
353
+ }
354
+ function mapArray(list, mapFn, options = {}) {
355
+ let items = [], mapped = [], disposers = [], len = 0, indexes = mapFn.length > 1 ? [] : null;
356
+ onCleanup(() => dispose(disposers));
357
+ return () => {
358
+ let newItems = list() || [], newLen = newItems.length, i2, j2;
359
+ newItems[$TRACK];
360
+ return untrack(() => {
361
+ let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;
362
+ if (newLen === 0) {
363
+ if (len !== 0) {
364
+ dispose(disposers);
365
+ disposers = [];
366
+ items = [];
367
+ mapped = [];
368
+ len = 0;
369
+ indexes && (indexes = []);
370
+ }
371
+ if (options.fallback) {
372
+ items = [FALLBACK];
373
+ mapped[0] = createRoot((disposer) => {
374
+ disposers[0] = disposer;
375
+ return options.fallback();
376
+ });
377
+ len = 1;
378
+ }
379
+ } else if (len === 0) {
380
+ mapped = new Array(newLen);
381
+ for (j2 = 0; j2 < newLen; j2++) {
382
+ items[j2] = newItems[j2];
383
+ mapped[j2] = createRoot(mapper);
384
+ }
385
+ len = newLen;
386
+ } else {
387
+ temp = new Array(newLen);
388
+ tempdisposers = new Array(newLen);
389
+ indexes && (tempIndexes = new Array(newLen));
390
+ for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++) ;
391
+ for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {
392
+ temp[newEnd] = mapped[end];
393
+ tempdisposers[newEnd] = disposers[end];
394
+ indexes && (tempIndexes[newEnd] = indexes[end]);
395
+ }
396
+ newIndices = /* @__PURE__ */ new Map();
397
+ newIndicesNext = new Array(newEnd + 1);
398
+ for (j2 = newEnd; j2 >= start; j2--) {
399
+ item = newItems[j2];
400
+ i2 = newIndices.get(item);
401
+ newIndicesNext[j2] = i2 === void 0 ? -1 : i2;
402
+ newIndices.set(item, j2);
403
+ }
404
+ for (i2 = start; i2 <= end; i2++) {
405
+ item = items[i2];
406
+ j2 = newIndices.get(item);
407
+ if (j2 !== void 0 && j2 !== -1) {
408
+ temp[j2] = mapped[i2];
409
+ tempdisposers[j2] = disposers[i2];
410
+ indexes && (tempIndexes[j2] = indexes[i2]);
411
+ j2 = newIndicesNext[j2];
412
+ newIndices.set(item, j2);
413
+ } else disposers[i2]();
414
+ }
415
+ for (j2 = start; j2 < newLen; j2++) {
416
+ if (j2 in temp) {
417
+ mapped[j2] = temp[j2];
418
+ disposers[j2] = tempdisposers[j2];
419
+ if (indexes) {
420
+ indexes[j2] = tempIndexes[j2];
421
+ indexes[j2](j2);
422
+ }
423
+ } else mapped[j2] = createRoot(mapper);
424
+ }
425
+ mapped = mapped.slice(0, len = newLen);
426
+ items = newItems.slice(0);
427
+ }
428
+ return mapped;
429
+ });
430
+ function mapper(disposer) {
431
+ disposers[j2] = disposer;
432
+ if (indexes) {
433
+ const [s3, set] = createSignal(j2);
434
+ indexes[j2] = set;
435
+ return mapFn(newItems[j2], s3);
436
+ }
437
+ return mapFn(newItems[j2]);
438
+ }
439
+ };
440
+ }
441
+ function createComponent(Comp, props) {
442
+ return untrack(() => Comp(props || {}));
443
+ }
444
+ var narrowedError = (name) => `Stale read from <${name}>.`;
445
+ function For(props) {
446
+ const fallback = "fallback" in props && {
447
+ fallback: () => props.fallback
448
+ };
449
+ return createMemo(mapArray(() => props.each, props.children, fallback || void 0));
450
+ }
451
+ function Show(props) {
452
+ const keyed = props.keyed;
453
+ const conditionValue = createMemo(() => props.when, void 0, void 0);
454
+ const condition = keyed ? conditionValue : createMemo(conditionValue, void 0, {
455
+ equals: (a3, b3) => !a3 === !b3
456
+ });
457
+ return createMemo(() => {
458
+ const c3 = condition();
459
+ if (c3) {
460
+ const child = props.children;
461
+ const fn = typeof child === "function" && child.length > 0;
462
+ return fn ? untrack(() => child(keyed ? c3 : () => {
463
+ if (!untrack(condition)) throw narrowedError("Show");
464
+ return conditionValue();
465
+ })) : child;
466
+ }
467
+ return props.fallback;
468
+ }, void 0, void 0);
469
+ }
470
+ var memo = (fn) => createMemo(() => fn());
471
+ function reconcileArrays(parentNode, a3, b3) {
472
+ let bLength = b3.length, aEnd = a3.length, bEnd = bLength, aStart = 0, bStart = 0, after = a3[aEnd - 1].nextSibling, map = null;
473
+ while (aStart < aEnd || bStart < bEnd) {
474
+ if (a3[aStart] === b3[bStart]) {
475
+ aStart++;
476
+ bStart++;
477
+ continue;
478
+ }
479
+ while (a3[aEnd - 1] === b3[bEnd - 1]) {
480
+ aEnd--;
481
+ bEnd--;
482
+ }
483
+ if (aEnd === aStart) {
484
+ const node = bEnd < bLength ? bStart ? b3[bStart - 1].nextSibling : b3[bEnd - bStart] : after;
485
+ while (bStart < bEnd) parentNode.insertBefore(b3[bStart++], node);
486
+ } else if (bEnd === bStart) {
487
+ while (aStart < aEnd) {
488
+ if (!map || !map.has(a3[aStart])) a3[aStart].remove();
489
+ aStart++;
490
+ }
491
+ } else if (a3[aStart] === b3[bEnd - 1] && b3[bStart] === a3[aEnd - 1]) {
492
+ const node = a3[--aEnd].nextSibling;
493
+ parentNode.insertBefore(b3[bStart++], a3[aStart++].nextSibling);
494
+ parentNode.insertBefore(b3[--bEnd], node);
495
+ a3[aEnd] = b3[bEnd];
496
+ } else {
497
+ if (!map) {
498
+ map = /* @__PURE__ */ new Map();
499
+ let i2 = bStart;
500
+ while (i2 < bEnd) map.set(b3[i2], i2++);
501
+ }
502
+ const index = map.get(a3[aStart]);
503
+ if (index != null) {
504
+ if (bStart < index && index < bEnd) {
505
+ let i2 = aStart, sequence = 1, t2;
506
+ while (++i2 < aEnd && i2 < bEnd) {
507
+ if ((t2 = map.get(a3[i2])) == null || t2 !== index + sequence) break;
508
+ sequence++;
509
+ }
510
+ if (sequence > index - bStart) {
511
+ const node = a3[aStart];
512
+ while (bStart < index) parentNode.insertBefore(b3[bStart++], node);
513
+ } else parentNode.replaceChild(b3[bStart++], a3[aStart++]);
514
+ } else aStart++;
515
+ } else a3[aStart++].remove();
516
+ }
517
+ }
518
+ }
519
+ var $$EVENTS = "_$DX_DELEGATE";
520
+ function render(code, element, init2, options = {}) {
521
+ let disposer;
522
+ createRoot((dispose2) => {
523
+ disposer = dispose2;
524
+ element === document ? code() : insert(element, code(), element.firstChild ? null : void 0, init2);
525
+ }, options.owner);
526
+ return () => {
527
+ disposer();
528
+ element.textContent = "";
529
+ };
530
+ }
531
+ function template(html, isImportNode, isSVG, isMathML) {
532
+ let node;
533
+ const create = () => {
534
+ const t2 = document.createElement("template");
535
+ t2.innerHTML = html;
536
+ return t2.content.firstChild;
537
+ };
538
+ const fn = () => (node || (node = create())).cloneNode(true);
539
+ fn.cloneNode = fn;
540
+ return fn;
541
+ }
542
+ function delegateEvents(eventNames, document2 = window.document) {
543
+ const e2 = document2[$$EVENTS] || (document2[$$EVENTS] = /* @__PURE__ */ new Set());
544
+ for (let i2 = 0, l3 = eventNames.length; i2 < l3; i2++) {
545
+ const name = eventNames[i2];
546
+ if (!e2.has(name)) {
547
+ e2.add(name);
548
+ document2.addEventListener(name, eventHandler);
549
+ }
550
+ }
551
+ }
552
+ function setAttribute(node, name, value) {
553
+ node.removeAttribute(name);
554
+ }
555
+ function className(node, value) {
556
+ if (value == null) node.removeAttribute("class");
557
+ else node.className = value;
558
+ }
559
+ function style(node, value, prev) {
560
+ if (!value) return prev ? setAttribute(node, "style") : value;
561
+ const nodeStyle = node.style;
562
+ if (typeof value === "string") return nodeStyle.cssText = value;
563
+ typeof prev === "string" && (nodeStyle.cssText = prev = void 0);
564
+ prev || (prev = {});
565
+ value || (value = {});
566
+ let v2, s3;
567
+ for (s3 in prev) {
568
+ value[s3] == null && nodeStyle.removeProperty(s3);
569
+ delete prev[s3];
570
+ }
571
+ for (s3 in value) {
572
+ v2 = value[s3];
573
+ if (v2 !== prev[s3]) {
574
+ nodeStyle.setProperty(s3, v2);
575
+ prev[s3] = v2;
576
+ }
577
+ }
578
+ return prev;
579
+ }
580
+ function setStyleProperty(node, name, value) {
581
+ value != null ? node.style.setProperty(name, value) : node.style.removeProperty(name);
582
+ }
583
+ function use(fn, element, arg) {
584
+ return untrack(() => fn(element, arg));
585
+ }
586
+ function insert(parent, accessor, marker, initial) {
587
+ if (marker !== void 0 && !initial) initial = [];
588
+ if (typeof accessor !== "function") return insertExpression(parent, accessor, initial, marker);
589
+ createRenderEffect((current) => insertExpression(parent, accessor(), current, marker), initial);
590
+ }
591
+ function eventHandler(e2) {
592
+ let node = e2.target;
593
+ const key = `$$${e2.type}`;
594
+ const oriTarget = e2.target;
595
+ const oriCurrentTarget = e2.currentTarget;
596
+ const retarget = (value) => Object.defineProperty(e2, "target", {
597
+ configurable: true,
598
+ value
599
+ });
600
+ const handleNode = () => {
601
+ const handler = node[key];
602
+ if (handler && !node.disabled) {
603
+ const data = node[`${key}Data`];
604
+ data !== void 0 ? handler.call(node, data, e2) : handler.call(node, e2);
605
+ if (e2.cancelBubble) return;
606
+ }
607
+ node.host && typeof node.host !== "string" && !node.host._$host && node.contains(e2.target) && retarget(node.host);
608
+ return true;
609
+ };
610
+ const walkUpTree = () => {
611
+ while (handleNode() && (node = node._$host || node.parentNode || node.host)) ;
612
+ };
613
+ Object.defineProperty(e2, "currentTarget", {
614
+ configurable: true,
615
+ get() {
616
+ return node || document;
617
+ }
618
+ });
619
+ if (e2.composedPath) {
620
+ const path = e2.composedPath();
621
+ retarget(path[0]);
622
+ for (let i2 = 0; i2 < path.length - 2; i2++) {
623
+ node = path[i2];
624
+ if (!handleNode()) break;
625
+ if (node._$host) {
626
+ node = node._$host;
627
+ walkUpTree();
628
+ break;
629
+ }
630
+ if (node.parentNode === oriCurrentTarget) {
631
+ break;
632
+ }
633
+ }
634
+ } else walkUpTree();
635
+ retarget(oriTarget);
636
+ }
637
+ function insertExpression(parent, value, current, marker, unwrapArray) {
638
+ while (typeof current === "function") current = current();
639
+ if (value === current) return current;
640
+ const t2 = typeof value, multi = marker !== void 0;
641
+ parent = multi && current[0] && current[0].parentNode || parent;
642
+ if (t2 === "string" || t2 === "number") {
643
+ if (t2 === "number") {
644
+ value = value.toString();
645
+ if (value === current) return current;
646
+ }
647
+ if (multi) {
648
+ let node = current[0];
649
+ if (node && node.nodeType === 3) {
650
+ node.data !== value && (node.data = value);
651
+ } else node = document.createTextNode(value);
652
+ current = cleanChildren(parent, current, marker, node);
653
+ } else {
654
+ if (current !== "" && typeof current === "string") {
655
+ current = parent.firstChild.data = value;
656
+ } else current = parent.textContent = value;
657
+ }
658
+ } else if (value == null || t2 === "boolean") {
659
+ current = cleanChildren(parent, current, marker);
660
+ } else if (t2 === "function") {
661
+ createRenderEffect(() => {
662
+ let v2 = value();
663
+ while (typeof v2 === "function") v2 = v2();
664
+ current = insertExpression(parent, v2, current, marker);
665
+ });
666
+ return () => current;
667
+ } else if (Array.isArray(value)) {
668
+ const array = [];
669
+ const currentArray = current && Array.isArray(current);
670
+ if (normalizeIncomingArray(array, value, current, unwrapArray)) {
671
+ createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
672
+ return () => current;
673
+ }
674
+ if (array.length === 0) {
675
+ current = cleanChildren(parent, current, marker);
676
+ if (multi) return current;
677
+ } else if (currentArray) {
678
+ if (current.length === 0) {
679
+ appendNodes(parent, array, marker);
680
+ } else reconcileArrays(parent, current, array);
681
+ } else {
682
+ current && cleanChildren(parent);
683
+ appendNodes(parent, array);
684
+ }
685
+ current = array;
686
+ } else if (value.nodeType) {
687
+ if (Array.isArray(current)) {
688
+ if (multi) return current = cleanChildren(parent, current, marker, value);
689
+ cleanChildren(parent, current, null, value);
690
+ } else if (current == null || current === "" || !parent.firstChild) {
691
+ parent.appendChild(value);
692
+ } else parent.replaceChild(value, parent.firstChild);
693
+ current = value;
694
+ } else ;
695
+ return current;
696
+ }
697
+ function normalizeIncomingArray(normalized, array, current, unwrap) {
698
+ let dynamic = false;
699
+ for (let i2 = 0, len = array.length; i2 < len; i2++) {
700
+ let item = array[i2], prev = current && current[normalized.length], t2;
701
+ if (item == null || item === true || item === false) ;
702
+ else if ((t2 = typeof item) === "object" && item.nodeType) {
703
+ normalized.push(item);
704
+ } else if (Array.isArray(item)) {
705
+ dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
706
+ } else if (t2 === "function") {
707
+ if (unwrap) {
708
+ while (typeof item === "function") item = item();
709
+ dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;
710
+ } else {
711
+ normalized.push(item);
712
+ dynamic = true;
713
+ }
714
+ } else {
715
+ const value = String(item);
716
+ if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);
717
+ else normalized.push(document.createTextNode(value));
718
+ }
719
+ }
720
+ return dynamic;
721
+ }
722
+ function appendNodes(parent, array, marker = null) {
723
+ for (let i2 = 0, len = array.length; i2 < len; i2++) parent.insertBefore(array[i2], marker);
724
+ }
725
+ function cleanChildren(parent, current, marker, replacement) {
726
+ if (marker === void 0) return parent.textContent = "";
727
+ const node = replacement || document.createTextNode("");
728
+ if (current.length) {
729
+ let inserted = false;
730
+ for (let i2 = current.length - 1; i2 >= 0; i2--) {
731
+ const el = current[i2];
732
+ if (node !== el) {
733
+ const isParent = el.parentNode === parent;
734
+ if (!inserted && !i2) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);
735
+ else isParent && el.remove();
736
+ } else inserted = true;
737
+ }
738
+ } else parent.insertBefore(node, marker);
739
+ return [node];
740
+ }
741
+
742
+ // dist/styles.css
743
+ var styles_default = '/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-grab-pink:#b21c8e;--color-grab-pink-light:#fde7f7;--color-grab-pink-border:#f7c5ec;--color-grab-purple:#d239c0}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-2147483645{z-index:2147483645}.z-2147483646{z-index:2147483646}.z-\\[2147483645\\]{z-index:2147483645}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mr-1{margin-right:calc(var(--spacing)*1)}.ml-1{margin-left:calc(var(--spacing)*1)}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.h-2{height:calc(var(--spacing)*2)}.min-h-\\[18px\\]{min-height:18px}.w-2{width:calc(var(--spacing)*2)}.w-\\[240px\\]{width:240px}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-crosshair{cursor:crosshair}.resize{resize:both}.resize-y{resize:vertical}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-\\[3px\\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-grab-pink-border{border-color:var(--color-grab-pink-border)}.border-grab-purple{border-color:var(--color-grab-purple)}.border-grab-purple\\/40{border-color:#d239c066}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/40{border-color:color-mix(in oklab,var(--color-grab-purple)40%,transparent)}}.border-grab-purple\\/50{border-color:#d239c080}@supports (color:color-mix(in lab, red, red)){.border-grab-purple\\/50{border-color:color-mix(in oklab,var(--color-grab-purple)50%,transparent)}}.border-t-transparent{border-top-color:#0000}.bg-grab-pink-light{background-color:var(--color-grab-pink-light)}.bg-grab-pink\\/20{background-color:#b21c8e33}@supports (color:color-mix(in lab, red, red)){.bg-grab-pink\\/20{background-color:color-mix(in oklab,var(--color-grab-pink)20%,transparent)}}.bg-grab-purple\\/5{background-color:#d239c00d}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/5{background-color:color-mix(in oklab,var(--color-grab-purple)5%,transparent)}}.bg-grab-purple\\/8{background-color:#d239c014}@supports (color:color-mix(in lab, red, red)){.bg-grab-purple\\/8{background-color:color-mix(in oklab,var(--color-grab-purple)8%,transparent)}}.bg-white{background-color:var(--color-white)}.p-0\\.5{padding:calc(var(--spacing)*.5)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-\\[3px\\]{padding-inline:3px}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[9px\\]{font-size:9px}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-grab-pink{color:var(--color-grab-pink)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.opacity-60{opacity:.6}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[transform\\,width\\,height\\]{will-change:transform,width,height}.outline-none{--tw-outline-style:none;outline-style:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}';
15
744
 
16
745
  // src/utils/is-keyboard-event-triggered-by-input.ts
17
746
  var FORM_TAGS_AND_ROLES = [
@@ -64,7 +793,7 @@ var isKeyboardEventTriggeredByInput = (event) => {
64
793
 
65
794
  // src/utils/mount-root.ts
66
795
  var ATTRIBUTE_NAME = "data-react-grab";
67
- var mountRoot = () => {
796
+ var mountRoot = (cssText) => {
68
797
  const mountedHost = document.querySelector(`[${ATTRIBUTE_NAME}]`);
69
798
  if (mountedHost) {
70
799
  const mountedRoot = mountedHost.shadowRoot?.querySelector(
@@ -81,6 +810,11 @@ var mountRoot = () => {
81
810
  host.style.top = "0";
82
811
  host.style.left = "0";
83
812
  const shadowRoot = host.attachShadow({ mode: "open" });
813
+ {
814
+ const styleElement = document.createElement("style");
815
+ styleElement.textContent = cssText;
816
+ shadowRoot.appendChild(styleElement);
817
+ }
84
818
  const root = document.createElement("div");
85
819
  root.setAttribute(ATTRIBUTE_NAME, "true");
86
820
  shadowRoot.appendChild(root);
@@ -107,6 +841,2486 @@ var lerp = (start, end, factor) => {
107
841
  return start + (end - start) * factor;
108
842
  };
109
843
 
844
+ // ../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
845
+ function r(e2) {
846
+ var t2, f3, n2 = "";
847
+ if ("string" == typeof e2 || "number" == typeof e2) n2 += e2;
848
+ else if ("object" == typeof e2) if (Array.isArray(e2)) {
849
+ var o3 = e2.length;
850
+ for (t2 = 0; t2 < o3; t2++) e2[t2] && (f3 = r(e2[t2])) && (n2 && (n2 += " "), n2 += f3);
851
+ } else for (f3 in e2) e2[f3] && (n2 && (n2 += " "), n2 += f3);
852
+ return n2;
853
+ }
854
+ function clsx() {
855
+ for (var e2, t2, f3 = 0, n2 = "", o3 = arguments.length; f3 < o3; f3++) (e2 = arguments[f3]) && (t2 = r(e2)) && (n2 && (n2 += " "), n2 += t2);
856
+ return n2;
857
+ }
858
+
859
+ // ../../node_modules/.pnpm/tailwind-merge@2.6.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs
860
+ var CLASS_PART_SEPARATOR = "-";
861
+ var createClassGroupUtils = (config) => {
862
+ const classMap = createClassMap(config);
863
+ const {
864
+ conflictingClassGroups,
865
+ conflictingClassGroupModifiers
866
+ } = config;
867
+ const getClassGroupId = (className2) => {
868
+ const classParts = className2.split(CLASS_PART_SEPARATOR);
869
+ if (classParts[0] === "" && classParts.length !== 1) {
870
+ classParts.shift();
871
+ }
872
+ return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className2);
873
+ };
874
+ const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {
875
+ const conflicts = conflictingClassGroups[classGroupId] || [];
876
+ if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {
877
+ return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];
878
+ }
879
+ return conflicts;
880
+ };
881
+ return {
882
+ getClassGroupId,
883
+ getConflictingClassGroupIds
884
+ };
885
+ };
886
+ var getGroupRecursive = (classParts, classPartObject) => {
887
+ if (classParts.length === 0) {
888
+ return classPartObject.classGroupId;
889
+ }
890
+ const currentClassPart = classParts[0];
891
+ const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);
892
+ const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : void 0;
893
+ if (classGroupFromNextClassPart) {
894
+ return classGroupFromNextClassPart;
895
+ }
896
+ if (classPartObject.validators.length === 0) {
897
+ return void 0;
898
+ }
899
+ const classRest = classParts.join(CLASS_PART_SEPARATOR);
900
+ return classPartObject.validators.find(({
901
+ validator
902
+ }) => validator(classRest))?.classGroupId;
903
+ };
904
+ var arbitraryPropertyRegex = /^\[(.+)\]$/;
905
+ var getGroupIdForArbitraryProperty = (className2) => {
906
+ if (arbitraryPropertyRegex.test(className2)) {
907
+ const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className2)[1];
908
+ const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(":"));
909
+ if (property) {
910
+ return "arbitrary.." + property;
911
+ }
912
+ }
913
+ };
914
+ var createClassMap = (config) => {
915
+ const {
916
+ theme,
917
+ prefix
918
+ } = config;
919
+ const classMap = {
920
+ nextPart: /* @__PURE__ */ new Map(),
921
+ validators: []
922
+ };
923
+ const prefixedClassGroupEntries = getPrefixedClassGroupEntries(Object.entries(config.classGroups), prefix);
924
+ prefixedClassGroupEntries.forEach(([classGroupId, classGroup]) => {
925
+ processClassesRecursively(classGroup, classMap, classGroupId, theme);
926
+ });
927
+ return classMap;
928
+ };
929
+ var processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {
930
+ classGroup.forEach((classDefinition) => {
931
+ if (typeof classDefinition === "string") {
932
+ const classPartObjectToEdit = classDefinition === "" ? classPartObject : getPart(classPartObject, classDefinition);
933
+ classPartObjectToEdit.classGroupId = classGroupId;
934
+ return;
935
+ }
936
+ if (typeof classDefinition === "function") {
937
+ if (isThemeGetter(classDefinition)) {
938
+ processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);
939
+ return;
940
+ }
941
+ classPartObject.validators.push({
942
+ validator: classDefinition,
943
+ classGroupId
944
+ });
945
+ return;
946
+ }
947
+ Object.entries(classDefinition).forEach(([key, classGroup2]) => {
948
+ processClassesRecursively(classGroup2, getPart(classPartObject, key), classGroupId, theme);
949
+ });
950
+ });
951
+ };
952
+ var getPart = (classPartObject, path) => {
953
+ let currentClassPartObject = classPartObject;
954
+ path.split(CLASS_PART_SEPARATOR).forEach((pathPart) => {
955
+ if (!currentClassPartObject.nextPart.has(pathPart)) {
956
+ currentClassPartObject.nextPart.set(pathPart, {
957
+ nextPart: /* @__PURE__ */ new Map(),
958
+ validators: []
959
+ });
960
+ }
961
+ currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);
962
+ });
963
+ return currentClassPartObject;
964
+ };
965
+ var isThemeGetter = (func) => func.isThemeGetter;
966
+ var getPrefixedClassGroupEntries = (classGroupEntries, prefix) => {
967
+ if (!prefix) {
968
+ return classGroupEntries;
969
+ }
970
+ return classGroupEntries.map(([classGroupId, classGroup]) => {
971
+ const prefixedClassGroup = classGroup.map((classDefinition) => {
972
+ if (typeof classDefinition === "string") {
973
+ return prefix + classDefinition;
974
+ }
975
+ if (typeof classDefinition === "object") {
976
+ return Object.fromEntries(Object.entries(classDefinition).map(([key, value]) => [prefix + key, value]));
977
+ }
978
+ return classDefinition;
979
+ });
980
+ return [classGroupId, prefixedClassGroup];
981
+ });
982
+ };
983
+ var createLruCache = (maxCacheSize) => {
984
+ if (maxCacheSize < 1) {
985
+ return {
986
+ get: () => void 0,
987
+ set: () => {
988
+ }
989
+ };
990
+ }
991
+ let cacheSize = 0;
992
+ let cache = /* @__PURE__ */ new Map();
993
+ let previousCache = /* @__PURE__ */ new Map();
994
+ const update = (key, value) => {
995
+ cache.set(key, value);
996
+ cacheSize++;
997
+ if (cacheSize > maxCacheSize) {
998
+ cacheSize = 0;
999
+ previousCache = cache;
1000
+ cache = /* @__PURE__ */ new Map();
1001
+ }
1002
+ };
1003
+ return {
1004
+ get(key) {
1005
+ let value = cache.get(key);
1006
+ if (value !== void 0) {
1007
+ return value;
1008
+ }
1009
+ if ((value = previousCache.get(key)) !== void 0) {
1010
+ update(key, value);
1011
+ return value;
1012
+ }
1013
+ },
1014
+ set(key, value) {
1015
+ if (cache.has(key)) {
1016
+ cache.set(key, value);
1017
+ } else {
1018
+ update(key, value);
1019
+ }
1020
+ }
1021
+ };
1022
+ };
1023
+ var IMPORTANT_MODIFIER = "!";
1024
+ var createParseClassName = (config) => {
1025
+ const {
1026
+ separator,
1027
+ experimentalParseClassName
1028
+ } = config;
1029
+ const isSeparatorSingleCharacter = separator.length === 1;
1030
+ const firstSeparatorCharacter = separator[0];
1031
+ const separatorLength = separator.length;
1032
+ const parseClassName = (className2) => {
1033
+ const modifiers = [];
1034
+ let bracketDepth = 0;
1035
+ let modifierStart = 0;
1036
+ let postfixModifierPosition;
1037
+ for (let index = 0; index < className2.length; index++) {
1038
+ let currentCharacter = className2[index];
1039
+ if (bracketDepth === 0) {
1040
+ if (currentCharacter === firstSeparatorCharacter && (isSeparatorSingleCharacter || className2.slice(index, index + separatorLength) === separator)) {
1041
+ modifiers.push(className2.slice(modifierStart, index));
1042
+ modifierStart = index + separatorLength;
1043
+ continue;
1044
+ }
1045
+ if (currentCharacter === "/") {
1046
+ postfixModifierPosition = index;
1047
+ continue;
1048
+ }
1049
+ }
1050
+ if (currentCharacter === "[") {
1051
+ bracketDepth++;
1052
+ } else if (currentCharacter === "]") {
1053
+ bracketDepth--;
1054
+ }
1055
+ }
1056
+ const baseClassNameWithImportantModifier = modifiers.length === 0 ? className2 : className2.substring(modifierStart);
1057
+ const hasImportantModifier = baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER);
1058
+ const baseClassName = hasImportantModifier ? baseClassNameWithImportantModifier.substring(1) : baseClassNameWithImportantModifier;
1059
+ const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : void 0;
1060
+ return {
1061
+ modifiers,
1062
+ hasImportantModifier,
1063
+ baseClassName,
1064
+ maybePostfixModifierPosition
1065
+ };
1066
+ };
1067
+ if (experimentalParseClassName) {
1068
+ return (className2) => experimentalParseClassName({
1069
+ className: className2,
1070
+ parseClassName
1071
+ });
1072
+ }
1073
+ return parseClassName;
1074
+ };
1075
+ var sortModifiers = (modifiers) => {
1076
+ if (modifiers.length <= 1) {
1077
+ return modifiers;
1078
+ }
1079
+ const sortedModifiers = [];
1080
+ let unsortedModifiers = [];
1081
+ modifiers.forEach((modifier) => {
1082
+ const isArbitraryVariant = modifier[0] === "[";
1083
+ if (isArbitraryVariant) {
1084
+ sortedModifiers.push(...unsortedModifiers.sort(), modifier);
1085
+ unsortedModifiers = [];
1086
+ } else {
1087
+ unsortedModifiers.push(modifier);
1088
+ }
1089
+ });
1090
+ sortedModifiers.push(...unsortedModifiers.sort());
1091
+ return sortedModifiers;
1092
+ };
1093
+ var createConfigUtils = (config) => ({
1094
+ cache: createLruCache(config.cacheSize),
1095
+ parseClassName: createParseClassName(config),
1096
+ ...createClassGroupUtils(config)
1097
+ });
1098
+ var SPLIT_CLASSES_REGEX = /\s+/;
1099
+ var mergeClassList = (classList, configUtils) => {
1100
+ const {
1101
+ parseClassName,
1102
+ getClassGroupId,
1103
+ getConflictingClassGroupIds
1104
+ } = configUtils;
1105
+ const classGroupsInConflict = [];
1106
+ const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);
1107
+ let result = "";
1108
+ for (let index = classNames.length - 1; index >= 0; index -= 1) {
1109
+ const originalClassName = classNames[index];
1110
+ const {
1111
+ modifiers,
1112
+ hasImportantModifier,
1113
+ baseClassName,
1114
+ maybePostfixModifierPosition
1115
+ } = parseClassName(originalClassName);
1116
+ let hasPostfixModifier = Boolean(maybePostfixModifierPosition);
1117
+ let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
1118
+ if (!classGroupId) {
1119
+ if (!hasPostfixModifier) {
1120
+ result = originalClassName + (result.length > 0 ? " " + result : result);
1121
+ continue;
1122
+ }
1123
+ classGroupId = getClassGroupId(baseClassName);
1124
+ if (!classGroupId) {
1125
+ result = originalClassName + (result.length > 0 ? " " + result : result);
1126
+ continue;
1127
+ }
1128
+ hasPostfixModifier = false;
1129
+ }
1130
+ const variantModifier = sortModifiers(modifiers).join(":");
1131
+ const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
1132
+ const classId = modifierId + classGroupId;
1133
+ if (classGroupsInConflict.includes(classId)) {
1134
+ continue;
1135
+ }
1136
+ classGroupsInConflict.push(classId);
1137
+ const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);
1138
+ for (let i2 = 0; i2 < conflictGroups.length; ++i2) {
1139
+ const group = conflictGroups[i2];
1140
+ classGroupsInConflict.push(modifierId + group);
1141
+ }
1142
+ result = originalClassName + (result.length > 0 ? " " + result : result);
1143
+ }
1144
+ return result;
1145
+ };
1146
+ function twJoin() {
1147
+ let index = 0;
1148
+ let argument;
1149
+ let resolvedValue;
1150
+ let string = "";
1151
+ while (index < arguments.length) {
1152
+ if (argument = arguments[index++]) {
1153
+ if (resolvedValue = toValue(argument)) {
1154
+ string && (string += " ");
1155
+ string += resolvedValue;
1156
+ }
1157
+ }
1158
+ }
1159
+ return string;
1160
+ }
1161
+ var toValue = (mix) => {
1162
+ if (typeof mix === "string") {
1163
+ return mix;
1164
+ }
1165
+ let resolvedValue;
1166
+ let string = "";
1167
+ for (let k3 = 0; k3 < mix.length; k3++) {
1168
+ if (mix[k3]) {
1169
+ if (resolvedValue = toValue(mix[k3])) {
1170
+ string && (string += " ");
1171
+ string += resolvedValue;
1172
+ }
1173
+ }
1174
+ }
1175
+ return string;
1176
+ };
1177
+ function createTailwindMerge(createConfigFirst, ...createConfigRest) {
1178
+ let configUtils;
1179
+ let cacheGet;
1180
+ let cacheSet;
1181
+ let functionToCall = initTailwindMerge;
1182
+ function initTailwindMerge(classList) {
1183
+ const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());
1184
+ configUtils = createConfigUtils(config);
1185
+ cacheGet = configUtils.cache.get;
1186
+ cacheSet = configUtils.cache.set;
1187
+ functionToCall = tailwindMerge;
1188
+ return tailwindMerge(classList);
1189
+ }
1190
+ function tailwindMerge(classList) {
1191
+ const cachedResult = cacheGet(classList);
1192
+ if (cachedResult) {
1193
+ return cachedResult;
1194
+ }
1195
+ const result = mergeClassList(classList, configUtils);
1196
+ cacheSet(classList, result);
1197
+ return result;
1198
+ }
1199
+ return function callTailwindMerge() {
1200
+ return functionToCall(twJoin.apply(null, arguments));
1201
+ };
1202
+ }
1203
+ var fromTheme = (key) => {
1204
+ const themeGetter = (theme) => theme[key] || [];
1205
+ themeGetter.isThemeGetter = true;
1206
+ return themeGetter;
1207
+ };
1208
+ var arbitraryValueRegex = /^\[(?:([a-z-]+):)?(.+)\]$/i;
1209
+ var fractionRegex = /^\d+\/\d+$/;
1210
+ var stringLengths = /* @__PURE__ */ new Set(["px", "full", "screen"]);
1211
+ var tshirtUnitRegex = /^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/;
1212
+ var lengthUnitRegex = /\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/;
1213
+ var colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/;
1214
+ var shadowRegex = /^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/;
1215
+ var imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/;
1216
+ var isLength = (value) => isNumber(value) || stringLengths.has(value) || fractionRegex.test(value);
1217
+ var isArbitraryLength = (value) => getIsArbitraryValue(value, "length", isLengthOnly);
1218
+ var isNumber = (value) => Boolean(value) && !Number.isNaN(Number(value));
1219
+ var isArbitraryNumber = (value) => getIsArbitraryValue(value, "number", isNumber);
1220
+ var isInteger = (value) => Boolean(value) && Number.isInteger(Number(value));
1221
+ var isPercent = (value) => value.endsWith("%") && isNumber(value.slice(0, -1));
1222
+ var isArbitraryValue = (value) => arbitraryValueRegex.test(value);
1223
+ var isTshirtSize = (value) => tshirtUnitRegex.test(value);
1224
+ var sizeLabels = /* @__PURE__ */ new Set(["length", "size", "percentage"]);
1225
+ var isArbitrarySize = (value) => getIsArbitraryValue(value, sizeLabels, isNever);
1226
+ var isArbitraryPosition = (value) => getIsArbitraryValue(value, "position", isNever);
1227
+ var imageLabels = /* @__PURE__ */ new Set(["image", "url"]);
1228
+ var isArbitraryImage = (value) => getIsArbitraryValue(value, imageLabels, isImage);
1229
+ var isArbitraryShadow = (value) => getIsArbitraryValue(value, "", isShadow);
1230
+ var isAny = () => true;
1231
+ var getIsArbitraryValue = (value, label, testValue) => {
1232
+ const result = arbitraryValueRegex.exec(value);
1233
+ if (result) {
1234
+ if (result[1]) {
1235
+ return typeof label === "string" ? result[1] === label : label.has(result[1]);
1236
+ }
1237
+ return testValue(result[2]);
1238
+ }
1239
+ return false;
1240
+ };
1241
+ var isLengthOnly = (value) => (
1242
+ // `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.
1243
+ // For example, `hsl(0 0% 0%)` would be classified as a length without this check.
1244
+ // I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
1245
+ lengthUnitRegex.test(value) && !colorFunctionRegex.test(value)
1246
+ );
1247
+ var isNever = () => false;
1248
+ var isShadow = (value) => shadowRegex.test(value);
1249
+ var isImage = (value) => imageRegex.test(value);
1250
+ var getDefaultConfig = () => {
1251
+ const colors = fromTheme("colors");
1252
+ const spacing = fromTheme("spacing");
1253
+ const blur = fromTheme("blur");
1254
+ const brightness = fromTheme("brightness");
1255
+ const borderColor = fromTheme("borderColor");
1256
+ const borderRadius = fromTheme("borderRadius");
1257
+ const borderSpacing = fromTheme("borderSpacing");
1258
+ const borderWidth = fromTheme("borderWidth");
1259
+ const contrast = fromTheme("contrast");
1260
+ const grayscale = fromTheme("grayscale");
1261
+ const hueRotate = fromTheme("hueRotate");
1262
+ const invert = fromTheme("invert");
1263
+ const gap = fromTheme("gap");
1264
+ const gradientColorStops = fromTheme("gradientColorStops");
1265
+ const gradientColorStopPositions = fromTheme("gradientColorStopPositions");
1266
+ const inset = fromTheme("inset");
1267
+ const margin = fromTheme("margin");
1268
+ const opacity = fromTheme("opacity");
1269
+ const padding = fromTheme("padding");
1270
+ const saturate = fromTheme("saturate");
1271
+ const scale = fromTheme("scale");
1272
+ const sepia = fromTheme("sepia");
1273
+ const skew = fromTheme("skew");
1274
+ const space = fromTheme("space");
1275
+ const translate = fromTheme("translate");
1276
+ const getOverscroll = () => ["auto", "contain", "none"];
1277
+ const getOverflow = () => ["auto", "hidden", "clip", "visible", "scroll"];
1278
+ const getSpacingWithAutoAndArbitrary = () => ["auto", isArbitraryValue, spacing];
1279
+ const getSpacingWithArbitrary = () => [isArbitraryValue, spacing];
1280
+ const getLengthWithEmptyAndArbitrary = () => ["", isLength, isArbitraryLength];
1281
+ const getNumberWithAutoAndArbitrary = () => ["auto", isNumber, isArbitraryValue];
1282
+ const getPositions = () => ["bottom", "center", "left", "left-bottom", "left-top", "right", "right-bottom", "right-top", "top"];
1283
+ const getLineStyles = () => ["solid", "dashed", "dotted", "double", "none"];
1284
+ const getBlendModes = () => ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity"];
1285
+ const getAlign = () => ["start", "end", "center", "between", "around", "evenly", "stretch"];
1286
+ const getZeroAndEmpty = () => ["", "0", isArbitraryValue];
1287
+ const getBreaks = () => ["auto", "avoid", "all", "avoid-page", "page", "left", "right", "column"];
1288
+ const getNumberAndArbitrary = () => [isNumber, isArbitraryValue];
1289
+ return {
1290
+ cacheSize: 500,
1291
+ separator: ":",
1292
+ theme: {
1293
+ colors: [isAny],
1294
+ spacing: [isLength, isArbitraryLength],
1295
+ blur: ["none", "", isTshirtSize, isArbitraryValue],
1296
+ brightness: getNumberAndArbitrary(),
1297
+ borderColor: [colors],
1298
+ borderRadius: ["none", "", "full", isTshirtSize, isArbitraryValue],
1299
+ borderSpacing: getSpacingWithArbitrary(),
1300
+ borderWidth: getLengthWithEmptyAndArbitrary(),
1301
+ contrast: getNumberAndArbitrary(),
1302
+ grayscale: getZeroAndEmpty(),
1303
+ hueRotate: getNumberAndArbitrary(),
1304
+ invert: getZeroAndEmpty(),
1305
+ gap: getSpacingWithArbitrary(),
1306
+ gradientColorStops: [colors],
1307
+ gradientColorStopPositions: [isPercent, isArbitraryLength],
1308
+ inset: getSpacingWithAutoAndArbitrary(),
1309
+ margin: getSpacingWithAutoAndArbitrary(),
1310
+ opacity: getNumberAndArbitrary(),
1311
+ padding: getSpacingWithArbitrary(),
1312
+ saturate: getNumberAndArbitrary(),
1313
+ scale: getNumberAndArbitrary(),
1314
+ sepia: getZeroAndEmpty(),
1315
+ skew: getNumberAndArbitrary(),
1316
+ space: getSpacingWithArbitrary(),
1317
+ translate: getSpacingWithArbitrary()
1318
+ },
1319
+ classGroups: {
1320
+ // Layout
1321
+ /**
1322
+ * Aspect Ratio
1323
+ * @see https://tailwindcss.com/docs/aspect-ratio
1324
+ */
1325
+ aspect: [{
1326
+ aspect: ["auto", "square", "video", isArbitraryValue]
1327
+ }],
1328
+ /**
1329
+ * Container
1330
+ * @see https://tailwindcss.com/docs/container
1331
+ */
1332
+ container: ["container"],
1333
+ /**
1334
+ * Columns
1335
+ * @see https://tailwindcss.com/docs/columns
1336
+ */
1337
+ columns: [{
1338
+ columns: [isTshirtSize]
1339
+ }],
1340
+ /**
1341
+ * Break After
1342
+ * @see https://tailwindcss.com/docs/break-after
1343
+ */
1344
+ "break-after": [{
1345
+ "break-after": getBreaks()
1346
+ }],
1347
+ /**
1348
+ * Break Before
1349
+ * @see https://tailwindcss.com/docs/break-before
1350
+ */
1351
+ "break-before": [{
1352
+ "break-before": getBreaks()
1353
+ }],
1354
+ /**
1355
+ * Break Inside
1356
+ * @see https://tailwindcss.com/docs/break-inside
1357
+ */
1358
+ "break-inside": [{
1359
+ "break-inside": ["auto", "avoid", "avoid-page", "avoid-column"]
1360
+ }],
1361
+ /**
1362
+ * Box Decoration Break
1363
+ * @see https://tailwindcss.com/docs/box-decoration-break
1364
+ */
1365
+ "box-decoration": [{
1366
+ "box-decoration": ["slice", "clone"]
1367
+ }],
1368
+ /**
1369
+ * Box Sizing
1370
+ * @see https://tailwindcss.com/docs/box-sizing
1371
+ */
1372
+ box: [{
1373
+ box: ["border", "content"]
1374
+ }],
1375
+ /**
1376
+ * Display
1377
+ * @see https://tailwindcss.com/docs/display
1378
+ */
1379
+ display: ["block", "inline-block", "inline", "flex", "inline-flex", "table", "inline-table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row-group", "table-row", "flow-root", "grid", "inline-grid", "contents", "list-item", "hidden"],
1380
+ /**
1381
+ * Floats
1382
+ * @see https://tailwindcss.com/docs/float
1383
+ */
1384
+ float: [{
1385
+ float: ["right", "left", "none", "start", "end"]
1386
+ }],
1387
+ /**
1388
+ * Clear
1389
+ * @see https://tailwindcss.com/docs/clear
1390
+ */
1391
+ clear: [{
1392
+ clear: ["left", "right", "both", "none", "start", "end"]
1393
+ }],
1394
+ /**
1395
+ * Isolation
1396
+ * @see https://tailwindcss.com/docs/isolation
1397
+ */
1398
+ isolation: ["isolate", "isolation-auto"],
1399
+ /**
1400
+ * Object Fit
1401
+ * @see https://tailwindcss.com/docs/object-fit
1402
+ */
1403
+ "object-fit": [{
1404
+ object: ["contain", "cover", "fill", "none", "scale-down"]
1405
+ }],
1406
+ /**
1407
+ * Object Position
1408
+ * @see https://tailwindcss.com/docs/object-position
1409
+ */
1410
+ "object-position": [{
1411
+ object: [...getPositions(), isArbitraryValue]
1412
+ }],
1413
+ /**
1414
+ * Overflow
1415
+ * @see https://tailwindcss.com/docs/overflow
1416
+ */
1417
+ overflow: [{
1418
+ overflow: getOverflow()
1419
+ }],
1420
+ /**
1421
+ * Overflow X
1422
+ * @see https://tailwindcss.com/docs/overflow
1423
+ */
1424
+ "overflow-x": [{
1425
+ "overflow-x": getOverflow()
1426
+ }],
1427
+ /**
1428
+ * Overflow Y
1429
+ * @see https://tailwindcss.com/docs/overflow
1430
+ */
1431
+ "overflow-y": [{
1432
+ "overflow-y": getOverflow()
1433
+ }],
1434
+ /**
1435
+ * Overscroll Behavior
1436
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1437
+ */
1438
+ overscroll: [{
1439
+ overscroll: getOverscroll()
1440
+ }],
1441
+ /**
1442
+ * Overscroll Behavior X
1443
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1444
+ */
1445
+ "overscroll-x": [{
1446
+ "overscroll-x": getOverscroll()
1447
+ }],
1448
+ /**
1449
+ * Overscroll Behavior Y
1450
+ * @see https://tailwindcss.com/docs/overscroll-behavior
1451
+ */
1452
+ "overscroll-y": [{
1453
+ "overscroll-y": getOverscroll()
1454
+ }],
1455
+ /**
1456
+ * Position
1457
+ * @see https://tailwindcss.com/docs/position
1458
+ */
1459
+ position: ["static", "fixed", "absolute", "relative", "sticky"],
1460
+ /**
1461
+ * Top / Right / Bottom / Left
1462
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1463
+ */
1464
+ inset: [{
1465
+ inset: [inset]
1466
+ }],
1467
+ /**
1468
+ * Right / Left
1469
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1470
+ */
1471
+ "inset-x": [{
1472
+ "inset-x": [inset]
1473
+ }],
1474
+ /**
1475
+ * Top / Bottom
1476
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1477
+ */
1478
+ "inset-y": [{
1479
+ "inset-y": [inset]
1480
+ }],
1481
+ /**
1482
+ * Start
1483
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1484
+ */
1485
+ start: [{
1486
+ start: [inset]
1487
+ }],
1488
+ /**
1489
+ * End
1490
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1491
+ */
1492
+ end: [{
1493
+ end: [inset]
1494
+ }],
1495
+ /**
1496
+ * Top
1497
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1498
+ */
1499
+ top: [{
1500
+ top: [inset]
1501
+ }],
1502
+ /**
1503
+ * Right
1504
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1505
+ */
1506
+ right: [{
1507
+ right: [inset]
1508
+ }],
1509
+ /**
1510
+ * Bottom
1511
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1512
+ */
1513
+ bottom: [{
1514
+ bottom: [inset]
1515
+ }],
1516
+ /**
1517
+ * Left
1518
+ * @see https://tailwindcss.com/docs/top-right-bottom-left
1519
+ */
1520
+ left: [{
1521
+ left: [inset]
1522
+ }],
1523
+ /**
1524
+ * Visibility
1525
+ * @see https://tailwindcss.com/docs/visibility
1526
+ */
1527
+ visibility: ["visible", "invisible", "collapse"],
1528
+ /**
1529
+ * Z-Index
1530
+ * @see https://tailwindcss.com/docs/z-index
1531
+ */
1532
+ z: [{
1533
+ z: ["auto", isInteger, isArbitraryValue]
1534
+ }],
1535
+ // Flexbox and Grid
1536
+ /**
1537
+ * Flex Basis
1538
+ * @see https://tailwindcss.com/docs/flex-basis
1539
+ */
1540
+ basis: [{
1541
+ basis: getSpacingWithAutoAndArbitrary()
1542
+ }],
1543
+ /**
1544
+ * Flex Direction
1545
+ * @see https://tailwindcss.com/docs/flex-direction
1546
+ */
1547
+ "flex-direction": [{
1548
+ flex: ["row", "row-reverse", "col", "col-reverse"]
1549
+ }],
1550
+ /**
1551
+ * Flex Wrap
1552
+ * @see https://tailwindcss.com/docs/flex-wrap
1553
+ */
1554
+ "flex-wrap": [{
1555
+ flex: ["wrap", "wrap-reverse", "nowrap"]
1556
+ }],
1557
+ /**
1558
+ * Flex
1559
+ * @see https://tailwindcss.com/docs/flex
1560
+ */
1561
+ flex: [{
1562
+ flex: ["1", "auto", "initial", "none", isArbitraryValue]
1563
+ }],
1564
+ /**
1565
+ * Flex Grow
1566
+ * @see https://tailwindcss.com/docs/flex-grow
1567
+ */
1568
+ grow: [{
1569
+ grow: getZeroAndEmpty()
1570
+ }],
1571
+ /**
1572
+ * Flex Shrink
1573
+ * @see https://tailwindcss.com/docs/flex-shrink
1574
+ */
1575
+ shrink: [{
1576
+ shrink: getZeroAndEmpty()
1577
+ }],
1578
+ /**
1579
+ * Order
1580
+ * @see https://tailwindcss.com/docs/order
1581
+ */
1582
+ order: [{
1583
+ order: ["first", "last", "none", isInteger, isArbitraryValue]
1584
+ }],
1585
+ /**
1586
+ * Grid Template Columns
1587
+ * @see https://tailwindcss.com/docs/grid-template-columns
1588
+ */
1589
+ "grid-cols": [{
1590
+ "grid-cols": [isAny]
1591
+ }],
1592
+ /**
1593
+ * Grid Column Start / End
1594
+ * @see https://tailwindcss.com/docs/grid-column
1595
+ */
1596
+ "col-start-end": [{
1597
+ col: ["auto", {
1598
+ span: ["full", isInteger, isArbitraryValue]
1599
+ }, isArbitraryValue]
1600
+ }],
1601
+ /**
1602
+ * Grid Column Start
1603
+ * @see https://tailwindcss.com/docs/grid-column
1604
+ */
1605
+ "col-start": [{
1606
+ "col-start": getNumberWithAutoAndArbitrary()
1607
+ }],
1608
+ /**
1609
+ * Grid Column End
1610
+ * @see https://tailwindcss.com/docs/grid-column
1611
+ */
1612
+ "col-end": [{
1613
+ "col-end": getNumberWithAutoAndArbitrary()
1614
+ }],
1615
+ /**
1616
+ * Grid Template Rows
1617
+ * @see https://tailwindcss.com/docs/grid-template-rows
1618
+ */
1619
+ "grid-rows": [{
1620
+ "grid-rows": [isAny]
1621
+ }],
1622
+ /**
1623
+ * Grid Row Start / End
1624
+ * @see https://tailwindcss.com/docs/grid-row
1625
+ */
1626
+ "row-start-end": [{
1627
+ row: ["auto", {
1628
+ span: [isInteger, isArbitraryValue]
1629
+ }, isArbitraryValue]
1630
+ }],
1631
+ /**
1632
+ * Grid Row Start
1633
+ * @see https://tailwindcss.com/docs/grid-row
1634
+ */
1635
+ "row-start": [{
1636
+ "row-start": getNumberWithAutoAndArbitrary()
1637
+ }],
1638
+ /**
1639
+ * Grid Row End
1640
+ * @see https://tailwindcss.com/docs/grid-row
1641
+ */
1642
+ "row-end": [{
1643
+ "row-end": getNumberWithAutoAndArbitrary()
1644
+ }],
1645
+ /**
1646
+ * Grid Auto Flow
1647
+ * @see https://tailwindcss.com/docs/grid-auto-flow
1648
+ */
1649
+ "grid-flow": [{
1650
+ "grid-flow": ["row", "col", "dense", "row-dense", "col-dense"]
1651
+ }],
1652
+ /**
1653
+ * Grid Auto Columns
1654
+ * @see https://tailwindcss.com/docs/grid-auto-columns
1655
+ */
1656
+ "auto-cols": [{
1657
+ "auto-cols": ["auto", "min", "max", "fr", isArbitraryValue]
1658
+ }],
1659
+ /**
1660
+ * Grid Auto Rows
1661
+ * @see https://tailwindcss.com/docs/grid-auto-rows
1662
+ */
1663
+ "auto-rows": [{
1664
+ "auto-rows": ["auto", "min", "max", "fr", isArbitraryValue]
1665
+ }],
1666
+ /**
1667
+ * Gap
1668
+ * @see https://tailwindcss.com/docs/gap
1669
+ */
1670
+ gap: [{
1671
+ gap: [gap]
1672
+ }],
1673
+ /**
1674
+ * Gap X
1675
+ * @see https://tailwindcss.com/docs/gap
1676
+ */
1677
+ "gap-x": [{
1678
+ "gap-x": [gap]
1679
+ }],
1680
+ /**
1681
+ * Gap Y
1682
+ * @see https://tailwindcss.com/docs/gap
1683
+ */
1684
+ "gap-y": [{
1685
+ "gap-y": [gap]
1686
+ }],
1687
+ /**
1688
+ * Justify Content
1689
+ * @see https://tailwindcss.com/docs/justify-content
1690
+ */
1691
+ "justify-content": [{
1692
+ justify: ["normal", ...getAlign()]
1693
+ }],
1694
+ /**
1695
+ * Justify Items
1696
+ * @see https://tailwindcss.com/docs/justify-items
1697
+ */
1698
+ "justify-items": [{
1699
+ "justify-items": ["start", "end", "center", "stretch"]
1700
+ }],
1701
+ /**
1702
+ * Justify Self
1703
+ * @see https://tailwindcss.com/docs/justify-self
1704
+ */
1705
+ "justify-self": [{
1706
+ "justify-self": ["auto", "start", "end", "center", "stretch"]
1707
+ }],
1708
+ /**
1709
+ * Align Content
1710
+ * @see https://tailwindcss.com/docs/align-content
1711
+ */
1712
+ "align-content": [{
1713
+ content: ["normal", ...getAlign(), "baseline"]
1714
+ }],
1715
+ /**
1716
+ * Align Items
1717
+ * @see https://tailwindcss.com/docs/align-items
1718
+ */
1719
+ "align-items": [{
1720
+ items: ["start", "end", "center", "baseline", "stretch"]
1721
+ }],
1722
+ /**
1723
+ * Align Self
1724
+ * @see https://tailwindcss.com/docs/align-self
1725
+ */
1726
+ "align-self": [{
1727
+ self: ["auto", "start", "end", "center", "stretch", "baseline"]
1728
+ }],
1729
+ /**
1730
+ * Place Content
1731
+ * @see https://tailwindcss.com/docs/place-content
1732
+ */
1733
+ "place-content": [{
1734
+ "place-content": [...getAlign(), "baseline"]
1735
+ }],
1736
+ /**
1737
+ * Place Items
1738
+ * @see https://tailwindcss.com/docs/place-items
1739
+ */
1740
+ "place-items": [{
1741
+ "place-items": ["start", "end", "center", "baseline", "stretch"]
1742
+ }],
1743
+ /**
1744
+ * Place Self
1745
+ * @see https://tailwindcss.com/docs/place-self
1746
+ */
1747
+ "place-self": [{
1748
+ "place-self": ["auto", "start", "end", "center", "stretch"]
1749
+ }],
1750
+ // Spacing
1751
+ /**
1752
+ * Padding
1753
+ * @see https://tailwindcss.com/docs/padding
1754
+ */
1755
+ p: [{
1756
+ p: [padding]
1757
+ }],
1758
+ /**
1759
+ * Padding X
1760
+ * @see https://tailwindcss.com/docs/padding
1761
+ */
1762
+ px: [{
1763
+ px: [padding]
1764
+ }],
1765
+ /**
1766
+ * Padding Y
1767
+ * @see https://tailwindcss.com/docs/padding
1768
+ */
1769
+ py: [{
1770
+ py: [padding]
1771
+ }],
1772
+ /**
1773
+ * Padding Start
1774
+ * @see https://tailwindcss.com/docs/padding
1775
+ */
1776
+ ps: [{
1777
+ ps: [padding]
1778
+ }],
1779
+ /**
1780
+ * Padding End
1781
+ * @see https://tailwindcss.com/docs/padding
1782
+ */
1783
+ pe: [{
1784
+ pe: [padding]
1785
+ }],
1786
+ /**
1787
+ * Padding Top
1788
+ * @see https://tailwindcss.com/docs/padding
1789
+ */
1790
+ pt: [{
1791
+ pt: [padding]
1792
+ }],
1793
+ /**
1794
+ * Padding Right
1795
+ * @see https://tailwindcss.com/docs/padding
1796
+ */
1797
+ pr: [{
1798
+ pr: [padding]
1799
+ }],
1800
+ /**
1801
+ * Padding Bottom
1802
+ * @see https://tailwindcss.com/docs/padding
1803
+ */
1804
+ pb: [{
1805
+ pb: [padding]
1806
+ }],
1807
+ /**
1808
+ * Padding Left
1809
+ * @see https://tailwindcss.com/docs/padding
1810
+ */
1811
+ pl: [{
1812
+ pl: [padding]
1813
+ }],
1814
+ /**
1815
+ * Margin
1816
+ * @see https://tailwindcss.com/docs/margin
1817
+ */
1818
+ m: [{
1819
+ m: [margin]
1820
+ }],
1821
+ /**
1822
+ * Margin X
1823
+ * @see https://tailwindcss.com/docs/margin
1824
+ */
1825
+ mx: [{
1826
+ mx: [margin]
1827
+ }],
1828
+ /**
1829
+ * Margin Y
1830
+ * @see https://tailwindcss.com/docs/margin
1831
+ */
1832
+ my: [{
1833
+ my: [margin]
1834
+ }],
1835
+ /**
1836
+ * Margin Start
1837
+ * @see https://tailwindcss.com/docs/margin
1838
+ */
1839
+ ms: [{
1840
+ ms: [margin]
1841
+ }],
1842
+ /**
1843
+ * Margin End
1844
+ * @see https://tailwindcss.com/docs/margin
1845
+ */
1846
+ me: [{
1847
+ me: [margin]
1848
+ }],
1849
+ /**
1850
+ * Margin Top
1851
+ * @see https://tailwindcss.com/docs/margin
1852
+ */
1853
+ mt: [{
1854
+ mt: [margin]
1855
+ }],
1856
+ /**
1857
+ * Margin Right
1858
+ * @see https://tailwindcss.com/docs/margin
1859
+ */
1860
+ mr: [{
1861
+ mr: [margin]
1862
+ }],
1863
+ /**
1864
+ * Margin Bottom
1865
+ * @see https://tailwindcss.com/docs/margin
1866
+ */
1867
+ mb: [{
1868
+ mb: [margin]
1869
+ }],
1870
+ /**
1871
+ * Margin Left
1872
+ * @see https://tailwindcss.com/docs/margin
1873
+ */
1874
+ ml: [{
1875
+ ml: [margin]
1876
+ }],
1877
+ /**
1878
+ * Space Between X
1879
+ * @see https://tailwindcss.com/docs/space
1880
+ */
1881
+ "space-x": [{
1882
+ "space-x": [space]
1883
+ }],
1884
+ /**
1885
+ * Space Between X Reverse
1886
+ * @see https://tailwindcss.com/docs/space
1887
+ */
1888
+ "space-x-reverse": ["space-x-reverse"],
1889
+ /**
1890
+ * Space Between Y
1891
+ * @see https://tailwindcss.com/docs/space
1892
+ */
1893
+ "space-y": [{
1894
+ "space-y": [space]
1895
+ }],
1896
+ /**
1897
+ * Space Between Y Reverse
1898
+ * @see https://tailwindcss.com/docs/space
1899
+ */
1900
+ "space-y-reverse": ["space-y-reverse"],
1901
+ // Sizing
1902
+ /**
1903
+ * Width
1904
+ * @see https://tailwindcss.com/docs/width
1905
+ */
1906
+ w: [{
1907
+ w: ["auto", "min", "max", "fit", "svw", "lvw", "dvw", isArbitraryValue, spacing]
1908
+ }],
1909
+ /**
1910
+ * Min-Width
1911
+ * @see https://tailwindcss.com/docs/min-width
1912
+ */
1913
+ "min-w": [{
1914
+ "min-w": [isArbitraryValue, spacing, "min", "max", "fit"]
1915
+ }],
1916
+ /**
1917
+ * Max-Width
1918
+ * @see https://tailwindcss.com/docs/max-width
1919
+ */
1920
+ "max-w": [{
1921
+ "max-w": [isArbitraryValue, spacing, "none", "full", "min", "max", "fit", "prose", {
1922
+ screen: [isTshirtSize]
1923
+ }, isTshirtSize]
1924
+ }],
1925
+ /**
1926
+ * Height
1927
+ * @see https://tailwindcss.com/docs/height
1928
+ */
1929
+ h: [{
1930
+ h: [isArbitraryValue, spacing, "auto", "min", "max", "fit", "svh", "lvh", "dvh"]
1931
+ }],
1932
+ /**
1933
+ * Min-Height
1934
+ * @see https://tailwindcss.com/docs/min-height
1935
+ */
1936
+ "min-h": [{
1937
+ "min-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
1938
+ }],
1939
+ /**
1940
+ * Max-Height
1941
+ * @see https://tailwindcss.com/docs/max-height
1942
+ */
1943
+ "max-h": [{
1944
+ "max-h": [isArbitraryValue, spacing, "min", "max", "fit", "svh", "lvh", "dvh"]
1945
+ }],
1946
+ /**
1947
+ * Size
1948
+ * @see https://tailwindcss.com/docs/size
1949
+ */
1950
+ size: [{
1951
+ size: [isArbitraryValue, spacing, "auto", "min", "max", "fit"]
1952
+ }],
1953
+ // Typography
1954
+ /**
1955
+ * Font Size
1956
+ * @see https://tailwindcss.com/docs/font-size
1957
+ */
1958
+ "font-size": [{
1959
+ text: ["base", isTshirtSize, isArbitraryLength]
1960
+ }],
1961
+ /**
1962
+ * Font Smoothing
1963
+ * @see https://tailwindcss.com/docs/font-smoothing
1964
+ */
1965
+ "font-smoothing": ["antialiased", "subpixel-antialiased"],
1966
+ /**
1967
+ * Font Style
1968
+ * @see https://tailwindcss.com/docs/font-style
1969
+ */
1970
+ "font-style": ["italic", "not-italic"],
1971
+ /**
1972
+ * Font Weight
1973
+ * @see https://tailwindcss.com/docs/font-weight
1974
+ */
1975
+ "font-weight": [{
1976
+ font: ["thin", "extralight", "light", "normal", "medium", "semibold", "bold", "extrabold", "black", isArbitraryNumber]
1977
+ }],
1978
+ /**
1979
+ * Font Family
1980
+ * @see https://tailwindcss.com/docs/font-family
1981
+ */
1982
+ "font-family": [{
1983
+ font: [isAny]
1984
+ }],
1985
+ /**
1986
+ * Font Variant Numeric
1987
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1988
+ */
1989
+ "fvn-normal": ["normal-nums"],
1990
+ /**
1991
+ * Font Variant Numeric
1992
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1993
+ */
1994
+ "fvn-ordinal": ["ordinal"],
1995
+ /**
1996
+ * Font Variant Numeric
1997
+ * @see https://tailwindcss.com/docs/font-variant-numeric
1998
+ */
1999
+ "fvn-slashed-zero": ["slashed-zero"],
2000
+ /**
2001
+ * Font Variant Numeric
2002
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2003
+ */
2004
+ "fvn-figure": ["lining-nums", "oldstyle-nums"],
2005
+ /**
2006
+ * Font Variant Numeric
2007
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2008
+ */
2009
+ "fvn-spacing": ["proportional-nums", "tabular-nums"],
2010
+ /**
2011
+ * Font Variant Numeric
2012
+ * @see https://tailwindcss.com/docs/font-variant-numeric
2013
+ */
2014
+ "fvn-fraction": ["diagonal-fractions", "stacked-fractions"],
2015
+ /**
2016
+ * Letter Spacing
2017
+ * @see https://tailwindcss.com/docs/letter-spacing
2018
+ */
2019
+ tracking: [{
2020
+ tracking: ["tighter", "tight", "normal", "wide", "wider", "widest", isArbitraryValue]
2021
+ }],
2022
+ /**
2023
+ * Line Clamp
2024
+ * @see https://tailwindcss.com/docs/line-clamp
2025
+ */
2026
+ "line-clamp": [{
2027
+ "line-clamp": ["none", isNumber, isArbitraryNumber]
2028
+ }],
2029
+ /**
2030
+ * Line Height
2031
+ * @see https://tailwindcss.com/docs/line-height
2032
+ */
2033
+ leading: [{
2034
+ leading: ["none", "tight", "snug", "normal", "relaxed", "loose", isLength, isArbitraryValue]
2035
+ }],
2036
+ /**
2037
+ * List Style Image
2038
+ * @see https://tailwindcss.com/docs/list-style-image
2039
+ */
2040
+ "list-image": [{
2041
+ "list-image": ["none", isArbitraryValue]
2042
+ }],
2043
+ /**
2044
+ * List Style Type
2045
+ * @see https://tailwindcss.com/docs/list-style-type
2046
+ */
2047
+ "list-style-type": [{
2048
+ list: ["none", "disc", "decimal", isArbitraryValue]
2049
+ }],
2050
+ /**
2051
+ * List Style Position
2052
+ * @see https://tailwindcss.com/docs/list-style-position
2053
+ */
2054
+ "list-style-position": [{
2055
+ list: ["inside", "outside"]
2056
+ }],
2057
+ /**
2058
+ * Placeholder Color
2059
+ * @deprecated since Tailwind CSS v3.0.0
2060
+ * @see https://tailwindcss.com/docs/placeholder-color
2061
+ */
2062
+ "placeholder-color": [{
2063
+ placeholder: [colors]
2064
+ }],
2065
+ /**
2066
+ * Placeholder Opacity
2067
+ * @see https://tailwindcss.com/docs/placeholder-opacity
2068
+ */
2069
+ "placeholder-opacity": [{
2070
+ "placeholder-opacity": [opacity]
2071
+ }],
2072
+ /**
2073
+ * Text Alignment
2074
+ * @see https://tailwindcss.com/docs/text-align
2075
+ */
2076
+ "text-alignment": [{
2077
+ text: ["left", "center", "right", "justify", "start", "end"]
2078
+ }],
2079
+ /**
2080
+ * Text Color
2081
+ * @see https://tailwindcss.com/docs/text-color
2082
+ */
2083
+ "text-color": [{
2084
+ text: [colors]
2085
+ }],
2086
+ /**
2087
+ * Text Opacity
2088
+ * @see https://tailwindcss.com/docs/text-opacity
2089
+ */
2090
+ "text-opacity": [{
2091
+ "text-opacity": [opacity]
2092
+ }],
2093
+ /**
2094
+ * Text Decoration
2095
+ * @see https://tailwindcss.com/docs/text-decoration
2096
+ */
2097
+ "text-decoration": ["underline", "overline", "line-through", "no-underline"],
2098
+ /**
2099
+ * Text Decoration Style
2100
+ * @see https://tailwindcss.com/docs/text-decoration-style
2101
+ */
2102
+ "text-decoration-style": [{
2103
+ decoration: [...getLineStyles(), "wavy"]
2104
+ }],
2105
+ /**
2106
+ * Text Decoration Thickness
2107
+ * @see https://tailwindcss.com/docs/text-decoration-thickness
2108
+ */
2109
+ "text-decoration-thickness": [{
2110
+ decoration: ["auto", "from-font", isLength, isArbitraryLength]
2111
+ }],
2112
+ /**
2113
+ * Text Underline Offset
2114
+ * @see https://tailwindcss.com/docs/text-underline-offset
2115
+ */
2116
+ "underline-offset": [{
2117
+ "underline-offset": ["auto", isLength, isArbitraryValue]
2118
+ }],
2119
+ /**
2120
+ * Text Decoration Color
2121
+ * @see https://tailwindcss.com/docs/text-decoration-color
2122
+ */
2123
+ "text-decoration-color": [{
2124
+ decoration: [colors]
2125
+ }],
2126
+ /**
2127
+ * Text Transform
2128
+ * @see https://tailwindcss.com/docs/text-transform
2129
+ */
2130
+ "text-transform": ["uppercase", "lowercase", "capitalize", "normal-case"],
2131
+ /**
2132
+ * Text Overflow
2133
+ * @see https://tailwindcss.com/docs/text-overflow
2134
+ */
2135
+ "text-overflow": ["truncate", "text-ellipsis", "text-clip"],
2136
+ /**
2137
+ * Text Wrap
2138
+ * @see https://tailwindcss.com/docs/text-wrap
2139
+ */
2140
+ "text-wrap": [{
2141
+ text: ["wrap", "nowrap", "balance", "pretty"]
2142
+ }],
2143
+ /**
2144
+ * Text Indent
2145
+ * @see https://tailwindcss.com/docs/text-indent
2146
+ */
2147
+ indent: [{
2148
+ indent: getSpacingWithArbitrary()
2149
+ }],
2150
+ /**
2151
+ * Vertical Alignment
2152
+ * @see https://tailwindcss.com/docs/vertical-align
2153
+ */
2154
+ "vertical-align": [{
2155
+ align: ["baseline", "top", "middle", "bottom", "text-top", "text-bottom", "sub", "super", isArbitraryValue]
2156
+ }],
2157
+ /**
2158
+ * Whitespace
2159
+ * @see https://tailwindcss.com/docs/whitespace
2160
+ */
2161
+ whitespace: [{
2162
+ whitespace: ["normal", "nowrap", "pre", "pre-line", "pre-wrap", "break-spaces"]
2163
+ }],
2164
+ /**
2165
+ * Word Break
2166
+ * @see https://tailwindcss.com/docs/word-break
2167
+ */
2168
+ break: [{
2169
+ break: ["normal", "words", "all", "keep"]
2170
+ }],
2171
+ /**
2172
+ * Hyphens
2173
+ * @see https://tailwindcss.com/docs/hyphens
2174
+ */
2175
+ hyphens: [{
2176
+ hyphens: ["none", "manual", "auto"]
2177
+ }],
2178
+ /**
2179
+ * Content
2180
+ * @see https://tailwindcss.com/docs/content
2181
+ */
2182
+ content: [{
2183
+ content: ["none", isArbitraryValue]
2184
+ }],
2185
+ // Backgrounds
2186
+ /**
2187
+ * Background Attachment
2188
+ * @see https://tailwindcss.com/docs/background-attachment
2189
+ */
2190
+ "bg-attachment": [{
2191
+ bg: ["fixed", "local", "scroll"]
2192
+ }],
2193
+ /**
2194
+ * Background Clip
2195
+ * @see https://tailwindcss.com/docs/background-clip
2196
+ */
2197
+ "bg-clip": [{
2198
+ "bg-clip": ["border", "padding", "content", "text"]
2199
+ }],
2200
+ /**
2201
+ * Background Opacity
2202
+ * @deprecated since Tailwind CSS v3.0.0
2203
+ * @see https://tailwindcss.com/docs/background-opacity
2204
+ */
2205
+ "bg-opacity": [{
2206
+ "bg-opacity": [opacity]
2207
+ }],
2208
+ /**
2209
+ * Background Origin
2210
+ * @see https://tailwindcss.com/docs/background-origin
2211
+ */
2212
+ "bg-origin": [{
2213
+ "bg-origin": ["border", "padding", "content"]
2214
+ }],
2215
+ /**
2216
+ * Background Position
2217
+ * @see https://tailwindcss.com/docs/background-position
2218
+ */
2219
+ "bg-position": [{
2220
+ bg: [...getPositions(), isArbitraryPosition]
2221
+ }],
2222
+ /**
2223
+ * Background Repeat
2224
+ * @see https://tailwindcss.com/docs/background-repeat
2225
+ */
2226
+ "bg-repeat": [{
2227
+ bg: ["no-repeat", {
2228
+ repeat: ["", "x", "y", "round", "space"]
2229
+ }]
2230
+ }],
2231
+ /**
2232
+ * Background Size
2233
+ * @see https://tailwindcss.com/docs/background-size
2234
+ */
2235
+ "bg-size": [{
2236
+ bg: ["auto", "cover", "contain", isArbitrarySize]
2237
+ }],
2238
+ /**
2239
+ * Background Image
2240
+ * @see https://tailwindcss.com/docs/background-image
2241
+ */
2242
+ "bg-image": [{
2243
+ bg: ["none", {
2244
+ "gradient-to": ["t", "tr", "r", "br", "b", "bl", "l", "tl"]
2245
+ }, isArbitraryImage]
2246
+ }],
2247
+ /**
2248
+ * Background Color
2249
+ * @see https://tailwindcss.com/docs/background-color
2250
+ */
2251
+ "bg-color": [{
2252
+ bg: [colors]
2253
+ }],
2254
+ /**
2255
+ * Gradient Color Stops From Position
2256
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2257
+ */
2258
+ "gradient-from-pos": [{
2259
+ from: [gradientColorStopPositions]
2260
+ }],
2261
+ /**
2262
+ * Gradient Color Stops Via Position
2263
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2264
+ */
2265
+ "gradient-via-pos": [{
2266
+ via: [gradientColorStopPositions]
2267
+ }],
2268
+ /**
2269
+ * Gradient Color Stops To Position
2270
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2271
+ */
2272
+ "gradient-to-pos": [{
2273
+ to: [gradientColorStopPositions]
2274
+ }],
2275
+ /**
2276
+ * Gradient Color Stops From
2277
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2278
+ */
2279
+ "gradient-from": [{
2280
+ from: [gradientColorStops]
2281
+ }],
2282
+ /**
2283
+ * Gradient Color Stops Via
2284
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2285
+ */
2286
+ "gradient-via": [{
2287
+ via: [gradientColorStops]
2288
+ }],
2289
+ /**
2290
+ * Gradient Color Stops To
2291
+ * @see https://tailwindcss.com/docs/gradient-color-stops
2292
+ */
2293
+ "gradient-to": [{
2294
+ to: [gradientColorStops]
2295
+ }],
2296
+ // Borders
2297
+ /**
2298
+ * Border Radius
2299
+ * @see https://tailwindcss.com/docs/border-radius
2300
+ */
2301
+ rounded: [{
2302
+ rounded: [borderRadius]
2303
+ }],
2304
+ /**
2305
+ * Border Radius Start
2306
+ * @see https://tailwindcss.com/docs/border-radius
2307
+ */
2308
+ "rounded-s": [{
2309
+ "rounded-s": [borderRadius]
2310
+ }],
2311
+ /**
2312
+ * Border Radius End
2313
+ * @see https://tailwindcss.com/docs/border-radius
2314
+ */
2315
+ "rounded-e": [{
2316
+ "rounded-e": [borderRadius]
2317
+ }],
2318
+ /**
2319
+ * Border Radius Top
2320
+ * @see https://tailwindcss.com/docs/border-radius
2321
+ */
2322
+ "rounded-t": [{
2323
+ "rounded-t": [borderRadius]
2324
+ }],
2325
+ /**
2326
+ * Border Radius Right
2327
+ * @see https://tailwindcss.com/docs/border-radius
2328
+ */
2329
+ "rounded-r": [{
2330
+ "rounded-r": [borderRadius]
2331
+ }],
2332
+ /**
2333
+ * Border Radius Bottom
2334
+ * @see https://tailwindcss.com/docs/border-radius
2335
+ */
2336
+ "rounded-b": [{
2337
+ "rounded-b": [borderRadius]
2338
+ }],
2339
+ /**
2340
+ * Border Radius Left
2341
+ * @see https://tailwindcss.com/docs/border-radius
2342
+ */
2343
+ "rounded-l": [{
2344
+ "rounded-l": [borderRadius]
2345
+ }],
2346
+ /**
2347
+ * Border Radius Start Start
2348
+ * @see https://tailwindcss.com/docs/border-radius
2349
+ */
2350
+ "rounded-ss": [{
2351
+ "rounded-ss": [borderRadius]
2352
+ }],
2353
+ /**
2354
+ * Border Radius Start End
2355
+ * @see https://tailwindcss.com/docs/border-radius
2356
+ */
2357
+ "rounded-se": [{
2358
+ "rounded-se": [borderRadius]
2359
+ }],
2360
+ /**
2361
+ * Border Radius End End
2362
+ * @see https://tailwindcss.com/docs/border-radius
2363
+ */
2364
+ "rounded-ee": [{
2365
+ "rounded-ee": [borderRadius]
2366
+ }],
2367
+ /**
2368
+ * Border Radius End Start
2369
+ * @see https://tailwindcss.com/docs/border-radius
2370
+ */
2371
+ "rounded-es": [{
2372
+ "rounded-es": [borderRadius]
2373
+ }],
2374
+ /**
2375
+ * Border Radius Top Left
2376
+ * @see https://tailwindcss.com/docs/border-radius
2377
+ */
2378
+ "rounded-tl": [{
2379
+ "rounded-tl": [borderRadius]
2380
+ }],
2381
+ /**
2382
+ * Border Radius Top Right
2383
+ * @see https://tailwindcss.com/docs/border-radius
2384
+ */
2385
+ "rounded-tr": [{
2386
+ "rounded-tr": [borderRadius]
2387
+ }],
2388
+ /**
2389
+ * Border Radius Bottom Right
2390
+ * @see https://tailwindcss.com/docs/border-radius
2391
+ */
2392
+ "rounded-br": [{
2393
+ "rounded-br": [borderRadius]
2394
+ }],
2395
+ /**
2396
+ * Border Radius Bottom Left
2397
+ * @see https://tailwindcss.com/docs/border-radius
2398
+ */
2399
+ "rounded-bl": [{
2400
+ "rounded-bl": [borderRadius]
2401
+ }],
2402
+ /**
2403
+ * Border Width
2404
+ * @see https://tailwindcss.com/docs/border-width
2405
+ */
2406
+ "border-w": [{
2407
+ border: [borderWidth]
2408
+ }],
2409
+ /**
2410
+ * Border Width X
2411
+ * @see https://tailwindcss.com/docs/border-width
2412
+ */
2413
+ "border-w-x": [{
2414
+ "border-x": [borderWidth]
2415
+ }],
2416
+ /**
2417
+ * Border Width Y
2418
+ * @see https://tailwindcss.com/docs/border-width
2419
+ */
2420
+ "border-w-y": [{
2421
+ "border-y": [borderWidth]
2422
+ }],
2423
+ /**
2424
+ * Border Width Start
2425
+ * @see https://tailwindcss.com/docs/border-width
2426
+ */
2427
+ "border-w-s": [{
2428
+ "border-s": [borderWidth]
2429
+ }],
2430
+ /**
2431
+ * Border Width End
2432
+ * @see https://tailwindcss.com/docs/border-width
2433
+ */
2434
+ "border-w-e": [{
2435
+ "border-e": [borderWidth]
2436
+ }],
2437
+ /**
2438
+ * Border Width Top
2439
+ * @see https://tailwindcss.com/docs/border-width
2440
+ */
2441
+ "border-w-t": [{
2442
+ "border-t": [borderWidth]
2443
+ }],
2444
+ /**
2445
+ * Border Width Right
2446
+ * @see https://tailwindcss.com/docs/border-width
2447
+ */
2448
+ "border-w-r": [{
2449
+ "border-r": [borderWidth]
2450
+ }],
2451
+ /**
2452
+ * Border Width Bottom
2453
+ * @see https://tailwindcss.com/docs/border-width
2454
+ */
2455
+ "border-w-b": [{
2456
+ "border-b": [borderWidth]
2457
+ }],
2458
+ /**
2459
+ * Border Width Left
2460
+ * @see https://tailwindcss.com/docs/border-width
2461
+ */
2462
+ "border-w-l": [{
2463
+ "border-l": [borderWidth]
2464
+ }],
2465
+ /**
2466
+ * Border Opacity
2467
+ * @see https://tailwindcss.com/docs/border-opacity
2468
+ */
2469
+ "border-opacity": [{
2470
+ "border-opacity": [opacity]
2471
+ }],
2472
+ /**
2473
+ * Border Style
2474
+ * @see https://tailwindcss.com/docs/border-style
2475
+ */
2476
+ "border-style": [{
2477
+ border: [...getLineStyles(), "hidden"]
2478
+ }],
2479
+ /**
2480
+ * Divide Width X
2481
+ * @see https://tailwindcss.com/docs/divide-width
2482
+ */
2483
+ "divide-x": [{
2484
+ "divide-x": [borderWidth]
2485
+ }],
2486
+ /**
2487
+ * Divide Width X Reverse
2488
+ * @see https://tailwindcss.com/docs/divide-width
2489
+ */
2490
+ "divide-x-reverse": ["divide-x-reverse"],
2491
+ /**
2492
+ * Divide Width Y
2493
+ * @see https://tailwindcss.com/docs/divide-width
2494
+ */
2495
+ "divide-y": [{
2496
+ "divide-y": [borderWidth]
2497
+ }],
2498
+ /**
2499
+ * Divide Width Y Reverse
2500
+ * @see https://tailwindcss.com/docs/divide-width
2501
+ */
2502
+ "divide-y-reverse": ["divide-y-reverse"],
2503
+ /**
2504
+ * Divide Opacity
2505
+ * @see https://tailwindcss.com/docs/divide-opacity
2506
+ */
2507
+ "divide-opacity": [{
2508
+ "divide-opacity": [opacity]
2509
+ }],
2510
+ /**
2511
+ * Divide Style
2512
+ * @see https://tailwindcss.com/docs/divide-style
2513
+ */
2514
+ "divide-style": [{
2515
+ divide: getLineStyles()
2516
+ }],
2517
+ /**
2518
+ * Border Color
2519
+ * @see https://tailwindcss.com/docs/border-color
2520
+ */
2521
+ "border-color": [{
2522
+ border: [borderColor]
2523
+ }],
2524
+ /**
2525
+ * Border Color X
2526
+ * @see https://tailwindcss.com/docs/border-color
2527
+ */
2528
+ "border-color-x": [{
2529
+ "border-x": [borderColor]
2530
+ }],
2531
+ /**
2532
+ * Border Color Y
2533
+ * @see https://tailwindcss.com/docs/border-color
2534
+ */
2535
+ "border-color-y": [{
2536
+ "border-y": [borderColor]
2537
+ }],
2538
+ /**
2539
+ * Border Color S
2540
+ * @see https://tailwindcss.com/docs/border-color
2541
+ */
2542
+ "border-color-s": [{
2543
+ "border-s": [borderColor]
2544
+ }],
2545
+ /**
2546
+ * Border Color E
2547
+ * @see https://tailwindcss.com/docs/border-color
2548
+ */
2549
+ "border-color-e": [{
2550
+ "border-e": [borderColor]
2551
+ }],
2552
+ /**
2553
+ * Border Color Top
2554
+ * @see https://tailwindcss.com/docs/border-color
2555
+ */
2556
+ "border-color-t": [{
2557
+ "border-t": [borderColor]
2558
+ }],
2559
+ /**
2560
+ * Border Color Right
2561
+ * @see https://tailwindcss.com/docs/border-color
2562
+ */
2563
+ "border-color-r": [{
2564
+ "border-r": [borderColor]
2565
+ }],
2566
+ /**
2567
+ * Border Color Bottom
2568
+ * @see https://tailwindcss.com/docs/border-color
2569
+ */
2570
+ "border-color-b": [{
2571
+ "border-b": [borderColor]
2572
+ }],
2573
+ /**
2574
+ * Border Color Left
2575
+ * @see https://tailwindcss.com/docs/border-color
2576
+ */
2577
+ "border-color-l": [{
2578
+ "border-l": [borderColor]
2579
+ }],
2580
+ /**
2581
+ * Divide Color
2582
+ * @see https://tailwindcss.com/docs/divide-color
2583
+ */
2584
+ "divide-color": [{
2585
+ divide: [borderColor]
2586
+ }],
2587
+ /**
2588
+ * Outline Style
2589
+ * @see https://tailwindcss.com/docs/outline-style
2590
+ */
2591
+ "outline-style": [{
2592
+ outline: ["", ...getLineStyles()]
2593
+ }],
2594
+ /**
2595
+ * Outline Offset
2596
+ * @see https://tailwindcss.com/docs/outline-offset
2597
+ */
2598
+ "outline-offset": [{
2599
+ "outline-offset": [isLength, isArbitraryValue]
2600
+ }],
2601
+ /**
2602
+ * Outline Width
2603
+ * @see https://tailwindcss.com/docs/outline-width
2604
+ */
2605
+ "outline-w": [{
2606
+ outline: [isLength, isArbitraryLength]
2607
+ }],
2608
+ /**
2609
+ * Outline Color
2610
+ * @see https://tailwindcss.com/docs/outline-color
2611
+ */
2612
+ "outline-color": [{
2613
+ outline: [colors]
2614
+ }],
2615
+ /**
2616
+ * Ring Width
2617
+ * @see https://tailwindcss.com/docs/ring-width
2618
+ */
2619
+ "ring-w": [{
2620
+ ring: getLengthWithEmptyAndArbitrary()
2621
+ }],
2622
+ /**
2623
+ * Ring Width Inset
2624
+ * @see https://tailwindcss.com/docs/ring-width
2625
+ */
2626
+ "ring-w-inset": ["ring-inset"],
2627
+ /**
2628
+ * Ring Color
2629
+ * @see https://tailwindcss.com/docs/ring-color
2630
+ */
2631
+ "ring-color": [{
2632
+ ring: [colors]
2633
+ }],
2634
+ /**
2635
+ * Ring Opacity
2636
+ * @see https://tailwindcss.com/docs/ring-opacity
2637
+ */
2638
+ "ring-opacity": [{
2639
+ "ring-opacity": [opacity]
2640
+ }],
2641
+ /**
2642
+ * Ring Offset Width
2643
+ * @see https://tailwindcss.com/docs/ring-offset-width
2644
+ */
2645
+ "ring-offset-w": [{
2646
+ "ring-offset": [isLength, isArbitraryLength]
2647
+ }],
2648
+ /**
2649
+ * Ring Offset Color
2650
+ * @see https://tailwindcss.com/docs/ring-offset-color
2651
+ */
2652
+ "ring-offset-color": [{
2653
+ "ring-offset": [colors]
2654
+ }],
2655
+ // Effects
2656
+ /**
2657
+ * Box Shadow
2658
+ * @see https://tailwindcss.com/docs/box-shadow
2659
+ */
2660
+ shadow: [{
2661
+ shadow: ["", "inner", "none", isTshirtSize, isArbitraryShadow]
2662
+ }],
2663
+ /**
2664
+ * Box Shadow Color
2665
+ * @see https://tailwindcss.com/docs/box-shadow-color
2666
+ */
2667
+ "shadow-color": [{
2668
+ shadow: [isAny]
2669
+ }],
2670
+ /**
2671
+ * Opacity
2672
+ * @see https://tailwindcss.com/docs/opacity
2673
+ */
2674
+ opacity: [{
2675
+ opacity: [opacity]
2676
+ }],
2677
+ /**
2678
+ * Mix Blend Mode
2679
+ * @see https://tailwindcss.com/docs/mix-blend-mode
2680
+ */
2681
+ "mix-blend": [{
2682
+ "mix-blend": [...getBlendModes(), "plus-lighter", "plus-darker"]
2683
+ }],
2684
+ /**
2685
+ * Background Blend Mode
2686
+ * @see https://tailwindcss.com/docs/background-blend-mode
2687
+ */
2688
+ "bg-blend": [{
2689
+ "bg-blend": getBlendModes()
2690
+ }],
2691
+ // Filters
2692
+ /**
2693
+ * Filter
2694
+ * @deprecated since Tailwind CSS v3.0.0
2695
+ * @see https://tailwindcss.com/docs/filter
2696
+ */
2697
+ filter: [{
2698
+ filter: ["", "none"]
2699
+ }],
2700
+ /**
2701
+ * Blur
2702
+ * @see https://tailwindcss.com/docs/blur
2703
+ */
2704
+ blur: [{
2705
+ blur: [blur]
2706
+ }],
2707
+ /**
2708
+ * Brightness
2709
+ * @see https://tailwindcss.com/docs/brightness
2710
+ */
2711
+ brightness: [{
2712
+ brightness: [brightness]
2713
+ }],
2714
+ /**
2715
+ * Contrast
2716
+ * @see https://tailwindcss.com/docs/contrast
2717
+ */
2718
+ contrast: [{
2719
+ contrast: [contrast]
2720
+ }],
2721
+ /**
2722
+ * Drop Shadow
2723
+ * @see https://tailwindcss.com/docs/drop-shadow
2724
+ */
2725
+ "drop-shadow": [{
2726
+ "drop-shadow": ["", "none", isTshirtSize, isArbitraryValue]
2727
+ }],
2728
+ /**
2729
+ * Grayscale
2730
+ * @see https://tailwindcss.com/docs/grayscale
2731
+ */
2732
+ grayscale: [{
2733
+ grayscale: [grayscale]
2734
+ }],
2735
+ /**
2736
+ * Hue Rotate
2737
+ * @see https://tailwindcss.com/docs/hue-rotate
2738
+ */
2739
+ "hue-rotate": [{
2740
+ "hue-rotate": [hueRotate]
2741
+ }],
2742
+ /**
2743
+ * Invert
2744
+ * @see https://tailwindcss.com/docs/invert
2745
+ */
2746
+ invert: [{
2747
+ invert: [invert]
2748
+ }],
2749
+ /**
2750
+ * Saturate
2751
+ * @see https://tailwindcss.com/docs/saturate
2752
+ */
2753
+ saturate: [{
2754
+ saturate: [saturate]
2755
+ }],
2756
+ /**
2757
+ * Sepia
2758
+ * @see https://tailwindcss.com/docs/sepia
2759
+ */
2760
+ sepia: [{
2761
+ sepia: [sepia]
2762
+ }],
2763
+ /**
2764
+ * Backdrop Filter
2765
+ * @deprecated since Tailwind CSS v3.0.0
2766
+ * @see https://tailwindcss.com/docs/backdrop-filter
2767
+ */
2768
+ "backdrop-filter": [{
2769
+ "backdrop-filter": ["", "none"]
2770
+ }],
2771
+ /**
2772
+ * Backdrop Blur
2773
+ * @see https://tailwindcss.com/docs/backdrop-blur
2774
+ */
2775
+ "backdrop-blur": [{
2776
+ "backdrop-blur": [blur]
2777
+ }],
2778
+ /**
2779
+ * Backdrop Brightness
2780
+ * @see https://tailwindcss.com/docs/backdrop-brightness
2781
+ */
2782
+ "backdrop-brightness": [{
2783
+ "backdrop-brightness": [brightness]
2784
+ }],
2785
+ /**
2786
+ * Backdrop Contrast
2787
+ * @see https://tailwindcss.com/docs/backdrop-contrast
2788
+ */
2789
+ "backdrop-contrast": [{
2790
+ "backdrop-contrast": [contrast]
2791
+ }],
2792
+ /**
2793
+ * Backdrop Grayscale
2794
+ * @see https://tailwindcss.com/docs/backdrop-grayscale
2795
+ */
2796
+ "backdrop-grayscale": [{
2797
+ "backdrop-grayscale": [grayscale]
2798
+ }],
2799
+ /**
2800
+ * Backdrop Hue Rotate
2801
+ * @see https://tailwindcss.com/docs/backdrop-hue-rotate
2802
+ */
2803
+ "backdrop-hue-rotate": [{
2804
+ "backdrop-hue-rotate": [hueRotate]
2805
+ }],
2806
+ /**
2807
+ * Backdrop Invert
2808
+ * @see https://tailwindcss.com/docs/backdrop-invert
2809
+ */
2810
+ "backdrop-invert": [{
2811
+ "backdrop-invert": [invert]
2812
+ }],
2813
+ /**
2814
+ * Backdrop Opacity
2815
+ * @see https://tailwindcss.com/docs/backdrop-opacity
2816
+ */
2817
+ "backdrop-opacity": [{
2818
+ "backdrop-opacity": [opacity]
2819
+ }],
2820
+ /**
2821
+ * Backdrop Saturate
2822
+ * @see https://tailwindcss.com/docs/backdrop-saturate
2823
+ */
2824
+ "backdrop-saturate": [{
2825
+ "backdrop-saturate": [saturate]
2826
+ }],
2827
+ /**
2828
+ * Backdrop Sepia
2829
+ * @see https://tailwindcss.com/docs/backdrop-sepia
2830
+ */
2831
+ "backdrop-sepia": [{
2832
+ "backdrop-sepia": [sepia]
2833
+ }],
2834
+ // Tables
2835
+ /**
2836
+ * Border Collapse
2837
+ * @see https://tailwindcss.com/docs/border-collapse
2838
+ */
2839
+ "border-collapse": [{
2840
+ border: ["collapse", "separate"]
2841
+ }],
2842
+ /**
2843
+ * Border Spacing
2844
+ * @see https://tailwindcss.com/docs/border-spacing
2845
+ */
2846
+ "border-spacing": [{
2847
+ "border-spacing": [borderSpacing]
2848
+ }],
2849
+ /**
2850
+ * Border Spacing X
2851
+ * @see https://tailwindcss.com/docs/border-spacing
2852
+ */
2853
+ "border-spacing-x": [{
2854
+ "border-spacing-x": [borderSpacing]
2855
+ }],
2856
+ /**
2857
+ * Border Spacing Y
2858
+ * @see https://tailwindcss.com/docs/border-spacing
2859
+ */
2860
+ "border-spacing-y": [{
2861
+ "border-spacing-y": [borderSpacing]
2862
+ }],
2863
+ /**
2864
+ * Table Layout
2865
+ * @see https://tailwindcss.com/docs/table-layout
2866
+ */
2867
+ "table-layout": [{
2868
+ table: ["auto", "fixed"]
2869
+ }],
2870
+ /**
2871
+ * Caption Side
2872
+ * @see https://tailwindcss.com/docs/caption-side
2873
+ */
2874
+ caption: [{
2875
+ caption: ["top", "bottom"]
2876
+ }],
2877
+ // Transitions and Animation
2878
+ /**
2879
+ * Tranisition Property
2880
+ * @see https://tailwindcss.com/docs/transition-property
2881
+ */
2882
+ transition: [{
2883
+ transition: ["none", "all", "", "colors", "opacity", "shadow", "transform", isArbitraryValue]
2884
+ }],
2885
+ /**
2886
+ * Transition Duration
2887
+ * @see https://tailwindcss.com/docs/transition-duration
2888
+ */
2889
+ duration: [{
2890
+ duration: getNumberAndArbitrary()
2891
+ }],
2892
+ /**
2893
+ * Transition Timing Function
2894
+ * @see https://tailwindcss.com/docs/transition-timing-function
2895
+ */
2896
+ ease: [{
2897
+ ease: ["linear", "in", "out", "in-out", isArbitraryValue]
2898
+ }],
2899
+ /**
2900
+ * Transition Delay
2901
+ * @see https://tailwindcss.com/docs/transition-delay
2902
+ */
2903
+ delay: [{
2904
+ delay: getNumberAndArbitrary()
2905
+ }],
2906
+ /**
2907
+ * Animation
2908
+ * @see https://tailwindcss.com/docs/animation
2909
+ */
2910
+ animate: [{
2911
+ animate: ["none", "spin", "ping", "pulse", "bounce", isArbitraryValue]
2912
+ }],
2913
+ // Transforms
2914
+ /**
2915
+ * Transform
2916
+ * @see https://tailwindcss.com/docs/transform
2917
+ */
2918
+ transform: [{
2919
+ transform: ["", "gpu", "none"]
2920
+ }],
2921
+ /**
2922
+ * Scale
2923
+ * @see https://tailwindcss.com/docs/scale
2924
+ */
2925
+ scale: [{
2926
+ scale: [scale]
2927
+ }],
2928
+ /**
2929
+ * Scale X
2930
+ * @see https://tailwindcss.com/docs/scale
2931
+ */
2932
+ "scale-x": [{
2933
+ "scale-x": [scale]
2934
+ }],
2935
+ /**
2936
+ * Scale Y
2937
+ * @see https://tailwindcss.com/docs/scale
2938
+ */
2939
+ "scale-y": [{
2940
+ "scale-y": [scale]
2941
+ }],
2942
+ /**
2943
+ * Rotate
2944
+ * @see https://tailwindcss.com/docs/rotate
2945
+ */
2946
+ rotate: [{
2947
+ rotate: [isInteger, isArbitraryValue]
2948
+ }],
2949
+ /**
2950
+ * Translate X
2951
+ * @see https://tailwindcss.com/docs/translate
2952
+ */
2953
+ "translate-x": [{
2954
+ "translate-x": [translate]
2955
+ }],
2956
+ /**
2957
+ * Translate Y
2958
+ * @see https://tailwindcss.com/docs/translate
2959
+ */
2960
+ "translate-y": [{
2961
+ "translate-y": [translate]
2962
+ }],
2963
+ /**
2964
+ * Skew X
2965
+ * @see https://tailwindcss.com/docs/skew
2966
+ */
2967
+ "skew-x": [{
2968
+ "skew-x": [skew]
2969
+ }],
2970
+ /**
2971
+ * Skew Y
2972
+ * @see https://tailwindcss.com/docs/skew
2973
+ */
2974
+ "skew-y": [{
2975
+ "skew-y": [skew]
2976
+ }],
2977
+ /**
2978
+ * Transform Origin
2979
+ * @see https://tailwindcss.com/docs/transform-origin
2980
+ */
2981
+ "transform-origin": [{
2982
+ origin: ["center", "top", "top-right", "right", "bottom-right", "bottom", "bottom-left", "left", "top-left", isArbitraryValue]
2983
+ }],
2984
+ // Interactivity
2985
+ /**
2986
+ * Accent Color
2987
+ * @see https://tailwindcss.com/docs/accent-color
2988
+ */
2989
+ accent: [{
2990
+ accent: ["auto", colors]
2991
+ }],
2992
+ /**
2993
+ * Appearance
2994
+ * @see https://tailwindcss.com/docs/appearance
2995
+ */
2996
+ appearance: [{
2997
+ appearance: ["none", "auto"]
2998
+ }],
2999
+ /**
3000
+ * Cursor
3001
+ * @see https://tailwindcss.com/docs/cursor
3002
+ */
3003
+ cursor: [{
3004
+ cursor: ["auto", "default", "pointer", "wait", "text", "move", "help", "not-allowed", "none", "context-menu", "progress", "cell", "crosshair", "vertical-text", "alias", "copy", "no-drop", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "zoom-in", "zoom-out", isArbitraryValue]
3005
+ }],
3006
+ /**
3007
+ * Caret Color
3008
+ * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities
3009
+ */
3010
+ "caret-color": [{
3011
+ caret: [colors]
3012
+ }],
3013
+ /**
3014
+ * Pointer Events
3015
+ * @see https://tailwindcss.com/docs/pointer-events
3016
+ */
3017
+ "pointer-events": [{
3018
+ "pointer-events": ["none", "auto"]
3019
+ }],
3020
+ /**
3021
+ * Resize
3022
+ * @see https://tailwindcss.com/docs/resize
3023
+ */
3024
+ resize: [{
3025
+ resize: ["none", "y", "x", ""]
3026
+ }],
3027
+ /**
3028
+ * Scroll Behavior
3029
+ * @see https://tailwindcss.com/docs/scroll-behavior
3030
+ */
3031
+ "scroll-behavior": [{
3032
+ scroll: ["auto", "smooth"]
3033
+ }],
3034
+ /**
3035
+ * Scroll Margin
3036
+ * @see https://tailwindcss.com/docs/scroll-margin
3037
+ */
3038
+ "scroll-m": [{
3039
+ "scroll-m": getSpacingWithArbitrary()
3040
+ }],
3041
+ /**
3042
+ * Scroll Margin X
3043
+ * @see https://tailwindcss.com/docs/scroll-margin
3044
+ */
3045
+ "scroll-mx": [{
3046
+ "scroll-mx": getSpacingWithArbitrary()
3047
+ }],
3048
+ /**
3049
+ * Scroll Margin Y
3050
+ * @see https://tailwindcss.com/docs/scroll-margin
3051
+ */
3052
+ "scroll-my": [{
3053
+ "scroll-my": getSpacingWithArbitrary()
3054
+ }],
3055
+ /**
3056
+ * Scroll Margin Start
3057
+ * @see https://tailwindcss.com/docs/scroll-margin
3058
+ */
3059
+ "scroll-ms": [{
3060
+ "scroll-ms": getSpacingWithArbitrary()
3061
+ }],
3062
+ /**
3063
+ * Scroll Margin End
3064
+ * @see https://tailwindcss.com/docs/scroll-margin
3065
+ */
3066
+ "scroll-me": [{
3067
+ "scroll-me": getSpacingWithArbitrary()
3068
+ }],
3069
+ /**
3070
+ * Scroll Margin Top
3071
+ * @see https://tailwindcss.com/docs/scroll-margin
3072
+ */
3073
+ "scroll-mt": [{
3074
+ "scroll-mt": getSpacingWithArbitrary()
3075
+ }],
3076
+ /**
3077
+ * Scroll Margin Right
3078
+ * @see https://tailwindcss.com/docs/scroll-margin
3079
+ */
3080
+ "scroll-mr": [{
3081
+ "scroll-mr": getSpacingWithArbitrary()
3082
+ }],
3083
+ /**
3084
+ * Scroll Margin Bottom
3085
+ * @see https://tailwindcss.com/docs/scroll-margin
3086
+ */
3087
+ "scroll-mb": [{
3088
+ "scroll-mb": getSpacingWithArbitrary()
3089
+ }],
3090
+ /**
3091
+ * Scroll Margin Left
3092
+ * @see https://tailwindcss.com/docs/scroll-margin
3093
+ */
3094
+ "scroll-ml": [{
3095
+ "scroll-ml": getSpacingWithArbitrary()
3096
+ }],
3097
+ /**
3098
+ * Scroll Padding
3099
+ * @see https://tailwindcss.com/docs/scroll-padding
3100
+ */
3101
+ "scroll-p": [{
3102
+ "scroll-p": getSpacingWithArbitrary()
3103
+ }],
3104
+ /**
3105
+ * Scroll Padding X
3106
+ * @see https://tailwindcss.com/docs/scroll-padding
3107
+ */
3108
+ "scroll-px": [{
3109
+ "scroll-px": getSpacingWithArbitrary()
3110
+ }],
3111
+ /**
3112
+ * Scroll Padding Y
3113
+ * @see https://tailwindcss.com/docs/scroll-padding
3114
+ */
3115
+ "scroll-py": [{
3116
+ "scroll-py": getSpacingWithArbitrary()
3117
+ }],
3118
+ /**
3119
+ * Scroll Padding Start
3120
+ * @see https://tailwindcss.com/docs/scroll-padding
3121
+ */
3122
+ "scroll-ps": [{
3123
+ "scroll-ps": getSpacingWithArbitrary()
3124
+ }],
3125
+ /**
3126
+ * Scroll Padding End
3127
+ * @see https://tailwindcss.com/docs/scroll-padding
3128
+ */
3129
+ "scroll-pe": [{
3130
+ "scroll-pe": getSpacingWithArbitrary()
3131
+ }],
3132
+ /**
3133
+ * Scroll Padding Top
3134
+ * @see https://tailwindcss.com/docs/scroll-padding
3135
+ */
3136
+ "scroll-pt": [{
3137
+ "scroll-pt": getSpacingWithArbitrary()
3138
+ }],
3139
+ /**
3140
+ * Scroll Padding Right
3141
+ * @see https://tailwindcss.com/docs/scroll-padding
3142
+ */
3143
+ "scroll-pr": [{
3144
+ "scroll-pr": getSpacingWithArbitrary()
3145
+ }],
3146
+ /**
3147
+ * Scroll Padding Bottom
3148
+ * @see https://tailwindcss.com/docs/scroll-padding
3149
+ */
3150
+ "scroll-pb": [{
3151
+ "scroll-pb": getSpacingWithArbitrary()
3152
+ }],
3153
+ /**
3154
+ * Scroll Padding Left
3155
+ * @see https://tailwindcss.com/docs/scroll-padding
3156
+ */
3157
+ "scroll-pl": [{
3158
+ "scroll-pl": getSpacingWithArbitrary()
3159
+ }],
3160
+ /**
3161
+ * Scroll Snap Align
3162
+ * @see https://tailwindcss.com/docs/scroll-snap-align
3163
+ */
3164
+ "snap-align": [{
3165
+ snap: ["start", "end", "center", "align-none"]
3166
+ }],
3167
+ /**
3168
+ * Scroll Snap Stop
3169
+ * @see https://tailwindcss.com/docs/scroll-snap-stop
3170
+ */
3171
+ "snap-stop": [{
3172
+ snap: ["normal", "always"]
3173
+ }],
3174
+ /**
3175
+ * Scroll Snap Type
3176
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3177
+ */
3178
+ "snap-type": [{
3179
+ snap: ["none", "x", "y", "both"]
3180
+ }],
3181
+ /**
3182
+ * Scroll Snap Type Strictness
3183
+ * @see https://tailwindcss.com/docs/scroll-snap-type
3184
+ */
3185
+ "snap-strictness": [{
3186
+ snap: ["mandatory", "proximity"]
3187
+ }],
3188
+ /**
3189
+ * Touch Action
3190
+ * @see https://tailwindcss.com/docs/touch-action
3191
+ */
3192
+ touch: [{
3193
+ touch: ["auto", "none", "manipulation"]
3194
+ }],
3195
+ /**
3196
+ * Touch Action X
3197
+ * @see https://tailwindcss.com/docs/touch-action
3198
+ */
3199
+ "touch-x": [{
3200
+ "touch-pan": ["x", "left", "right"]
3201
+ }],
3202
+ /**
3203
+ * Touch Action Y
3204
+ * @see https://tailwindcss.com/docs/touch-action
3205
+ */
3206
+ "touch-y": [{
3207
+ "touch-pan": ["y", "up", "down"]
3208
+ }],
3209
+ /**
3210
+ * Touch Action Pinch Zoom
3211
+ * @see https://tailwindcss.com/docs/touch-action
3212
+ */
3213
+ "touch-pz": ["touch-pinch-zoom"],
3214
+ /**
3215
+ * User Select
3216
+ * @see https://tailwindcss.com/docs/user-select
3217
+ */
3218
+ select: [{
3219
+ select: ["none", "text", "all", "auto"]
3220
+ }],
3221
+ /**
3222
+ * Will Change
3223
+ * @see https://tailwindcss.com/docs/will-change
3224
+ */
3225
+ "will-change": [{
3226
+ "will-change": ["auto", "scroll", "contents", "transform", isArbitraryValue]
3227
+ }],
3228
+ // SVG
3229
+ /**
3230
+ * Fill
3231
+ * @see https://tailwindcss.com/docs/fill
3232
+ */
3233
+ fill: [{
3234
+ fill: [colors, "none"]
3235
+ }],
3236
+ /**
3237
+ * Stroke Width
3238
+ * @see https://tailwindcss.com/docs/stroke-width
3239
+ */
3240
+ "stroke-w": [{
3241
+ stroke: [isLength, isArbitraryLength, isArbitraryNumber]
3242
+ }],
3243
+ /**
3244
+ * Stroke
3245
+ * @see https://tailwindcss.com/docs/stroke
3246
+ */
3247
+ stroke: [{
3248
+ stroke: [colors, "none"]
3249
+ }],
3250
+ // Accessibility
3251
+ /**
3252
+ * Screen Readers
3253
+ * @see https://tailwindcss.com/docs/screen-readers
3254
+ */
3255
+ sr: ["sr-only", "not-sr-only"],
3256
+ /**
3257
+ * Forced Color Adjust
3258
+ * @see https://tailwindcss.com/docs/forced-color-adjust
3259
+ */
3260
+ "forced-color-adjust": [{
3261
+ "forced-color-adjust": ["auto", "none"]
3262
+ }]
3263
+ },
3264
+ conflictingClassGroups: {
3265
+ overflow: ["overflow-x", "overflow-y"],
3266
+ overscroll: ["overscroll-x", "overscroll-y"],
3267
+ inset: ["inset-x", "inset-y", "start", "end", "top", "right", "bottom", "left"],
3268
+ "inset-x": ["right", "left"],
3269
+ "inset-y": ["top", "bottom"],
3270
+ flex: ["basis", "grow", "shrink"],
3271
+ gap: ["gap-x", "gap-y"],
3272
+ p: ["px", "py", "ps", "pe", "pt", "pr", "pb", "pl"],
3273
+ px: ["pr", "pl"],
3274
+ py: ["pt", "pb"],
3275
+ m: ["mx", "my", "ms", "me", "mt", "mr", "mb", "ml"],
3276
+ mx: ["mr", "ml"],
3277
+ my: ["mt", "mb"],
3278
+ size: ["w", "h"],
3279
+ "font-size": ["leading"],
3280
+ "fvn-normal": ["fvn-ordinal", "fvn-slashed-zero", "fvn-figure", "fvn-spacing", "fvn-fraction"],
3281
+ "fvn-ordinal": ["fvn-normal"],
3282
+ "fvn-slashed-zero": ["fvn-normal"],
3283
+ "fvn-figure": ["fvn-normal"],
3284
+ "fvn-spacing": ["fvn-normal"],
3285
+ "fvn-fraction": ["fvn-normal"],
3286
+ "line-clamp": ["display", "overflow"],
3287
+ rounded: ["rounded-s", "rounded-e", "rounded-t", "rounded-r", "rounded-b", "rounded-l", "rounded-ss", "rounded-se", "rounded-ee", "rounded-es", "rounded-tl", "rounded-tr", "rounded-br", "rounded-bl"],
3288
+ "rounded-s": ["rounded-ss", "rounded-es"],
3289
+ "rounded-e": ["rounded-se", "rounded-ee"],
3290
+ "rounded-t": ["rounded-tl", "rounded-tr"],
3291
+ "rounded-r": ["rounded-tr", "rounded-br"],
3292
+ "rounded-b": ["rounded-br", "rounded-bl"],
3293
+ "rounded-l": ["rounded-tl", "rounded-bl"],
3294
+ "border-spacing": ["border-spacing-x", "border-spacing-y"],
3295
+ "border-w": ["border-w-s", "border-w-e", "border-w-t", "border-w-r", "border-w-b", "border-w-l"],
3296
+ "border-w-x": ["border-w-r", "border-w-l"],
3297
+ "border-w-y": ["border-w-t", "border-w-b"],
3298
+ "border-color": ["border-color-s", "border-color-e", "border-color-t", "border-color-r", "border-color-b", "border-color-l"],
3299
+ "border-color-x": ["border-color-r", "border-color-l"],
3300
+ "border-color-y": ["border-color-t", "border-color-b"],
3301
+ "scroll-m": ["scroll-mx", "scroll-my", "scroll-ms", "scroll-me", "scroll-mt", "scroll-mr", "scroll-mb", "scroll-ml"],
3302
+ "scroll-mx": ["scroll-mr", "scroll-ml"],
3303
+ "scroll-my": ["scroll-mt", "scroll-mb"],
3304
+ "scroll-p": ["scroll-px", "scroll-py", "scroll-ps", "scroll-pe", "scroll-pt", "scroll-pr", "scroll-pb", "scroll-pl"],
3305
+ "scroll-px": ["scroll-pr", "scroll-pl"],
3306
+ "scroll-py": ["scroll-pt", "scroll-pb"],
3307
+ touch: ["touch-x", "touch-y", "touch-pz"],
3308
+ "touch-x": ["touch"],
3309
+ "touch-y": ["touch"],
3310
+ "touch-pz": ["touch"]
3311
+ },
3312
+ conflictingClassGroupModifiers: {
3313
+ "font-size": ["leading"]
3314
+ }
3315
+ };
3316
+ };
3317
+ var twMerge = /* @__PURE__ */ createTailwindMerge(getDefaultConfig);
3318
+
3319
+ // src/utils/cn.ts
3320
+ var cn = (...inputs) => {
3321
+ return twMerge(clsx(inputs));
3322
+ };
3323
+
110
3324
  // src/components/selection-box.tsx
111
3325
  var _tmpl$ = /* @__PURE__ */ template(`<div>`);
112
3326
  var SelectionBox = (props) => {
@@ -177,56 +3391,42 @@ var SelectionBox = (props) => {
177
3391
  }
178
3392
  isAnimating = false;
179
3393
  });
180
- const baseStyle = {
181
- position: "fixed",
182
- "box-sizing": "border-box",
183
- "pointer-events": props.variant === "drag" ? "none" : "auto",
184
- "z-index": props.variant === "grabbed" ? "2147483645" : "2147483646"
185
- };
186
- const variantStyle = () => {
187
- if (props.variant === "drag") {
188
- return {
189
- border: "1px dashed rgba(210, 57, 192, 0.4)",
190
- "background-color": "rgba(210, 57, 192, 0.05)",
191
- "will-change": "transform, width, height",
192
- contain: "layout paint size",
193
- cursor: "crosshair"
194
- };
195
- }
196
- if (props.variant === "selection") {
197
- return {
198
- border: "1px dashed rgba(210, 57, 192, 0.5)",
199
- "background-color": "rgba(210, 57, 192, 0.08)"
200
- };
201
- }
202
- return {
203
- border: "1px solid rgb(210, 57, 192)",
204
- "background-color": "rgba(210, 57, 192, 0.08)",
205
- transition: "opacity 0.3s ease-out"
206
- };
207
- };
208
3394
  return createComponent(Show, {
209
3395
  get when() {
210
3396
  return props.visible !== false;
211
3397
  },
212
3398
  get children() {
213
3399
  var _el$ = _tmpl$();
214
- effect((_$p) => style(_el$, {
215
- ...baseStyle,
216
- ...variantStyle(),
217
- top: `${currentY()}px`,
218
- left: `${currentX()}px`,
219
- width: `${currentWidth()}px`,
220
- height: `${currentHeight()}px`,
221
- "border-radius": props.bounds.borderRadius,
222
- transform: props.bounds.transform,
223
- opacity: opacity()
224
- }, _$p));
3400
+ createRenderEffect((_p$) => {
3401
+ var _v$ = cn("fixed box-border", props.variant === "drag" && "pointer-events-none", props.variant !== "drag" && "pointer-events-auto", props.variant === "grabbed" && "z-2147483645", props.variant !== "grabbed" && "z-2147483646", props.variant === "drag" && "border border-dashed border-grab-purple/40 bg-grab-purple/5 will-change-[transform,width,height] cursor-crosshair", props.variant === "selection" && "border border-dashed border-grab-purple/50 bg-grab-purple/8", props.variant === "grabbed" && "border border-grab-purple bg-grab-purple/8 transition-opacity duration-300 ease-out"), _v$2 = `${currentY()}px`, _v$3 = `${currentX()}px`, _v$4 = `${currentWidth()}px`, _v$5 = `${currentHeight()}px`, _v$6 = props.bounds.borderRadius, _v$7 = props.bounds.transform, _v$8 = opacity(), _v$9 = props.variant === "drag" ? "layout paint size" : void 0;
3402
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
3403
+ _v$2 !== _p$.t && setStyleProperty(_el$, "top", _p$.t = _v$2);
3404
+ _v$3 !== _p$.a && setStyleProperty(_el$, "left", _p$.a = _v$3);
3405
+ _v$4 !== _p$.o && setStyleProperty(_el$, "width", _p$.o = _v$4);
3406
+ _v$5 !== _p$.i && setStyleProperty(_el$, "height", _p$.i = _v$5);
3407
+ _v$6 !== _p$.n && setStyleProperty(_el$, "border-radius", _p$.n = _v$6);
3408
+ _v$7 !== _p$.s && setStyleProperty(_el$, "transform", _p$.s = _v$7);
3409
+ _v$8 !== _p$.h && setStyleProperty(_el$, "opacity", _p$.h = _v$8);
3410
+ _v$9 !== _p$.r && setStyleProperty(_el$, "contain", _p$.r = _v$9);
3411
+ return _p$;
3412
+ }, {
3413
+ e: void 0,
3414
+ t: void 0,
3415
+ a: void 0,
3416
+ o: void 0,
3417
+ i: void 0,
3418
+ n: void 0,
3419
+ s: void 0,
3420
+ h: void 0,
3421
+ r: void 0
3422
+ });
225
3423
  return _el$;
226
3424
  }
227
3425
  });
228
3426
  };
229
- var _tmpl$2 = /* @__PURE__ */ template(`<span style="display:inline-block;width:8px;height:8px;border:1.5px solid rgb(210, 57, 192);border-top-color:transparent;border-radius:50%;margin-right:4px;vertical-align:middle">`);
3427
+
3428
+ // src/components/spinner.tsx
3429
+ var _tmpl$2 = /* @__PURE__ */ template(`<span class="inline-block w-2 h-2 border-[1.5px] border-grab-dark-pink border-t-transparent rounded-full mr-1 align-middle">`);
230
3430
  var Spinner = (props) => {
231
3431
  let spinnerRef;
232
3432
  onMount(() => {
@@ -246,9 +3446,7 @@ var Spinner = (props) => {
246
3446
  var _el$ = _tmpl$2();
247
3447
  var _ref$ = spinnerRef;
248
3448
  typeof _ref$ === "function" ? use(_ref$, _el$) : spinnerRef = _el$;
249
- effect((_$p) => style(_el$, {
250
- ...props.style
251
- }, _$p));
3449
+ createRenderEffect((_$p) => style(_el$, props.style, _$p));
252
3450
  return _el$;
253
3451
  })();
254
3452
  };
@@ -265,18 +3463,20 @@ var getClampedElementPosition = (positionLeft, positionTop, elementWidth, elemen
265
3463
  const clampedTop = Math.max(minTop, Math.min(positionTop, maxTop));
266
3464
  return { left: clampedLeft, top: clampedTop };
267
3465
  };
3466
+
3467
+ // src/hooks/use-animated-lerp.ts
268
3468
  var useAnimatedPosition = (options) => {
269
3469
  const lerpFactor = options.lerpFactor ?? 0.3;
270
3470
  const convergenceThreshold = options.convergenceThreshold ?? 0.5;
271
- const [x, setX] = createSignal(options.x());
272
- const [y, setY] = createSignal(options.y());
3471
+ const [x3, setX] = createSignal(options.x());
3472
+ const [y2, setY] = createSignal(options.y());
273
3473
  let targetX = options.x();
274
3474
  let targetY = options.y();
275
3475
  let animationFrameId = null;
276
3476
  let hasBeenRenderedOnce = false;
277
3477
  const animate = () => {
278
- const currentX = lerp(x(), targetX, lerpFactor);
279
- const currentY = lerp(y(), targetY, lerpFactor);
3478
+ const currentX = lerp(x3(), targetX, lerpFactor);
3479
+ const currentY = lerp(y2(), targetY, lerpFactor);
280
3480
  setX(currentX);
281
3481
  setY(currentY);
282
3482
  const hasConverged = Math.abs(currentX - targetX) < convergenceThreshold && Math.abs(currentY - targetY) < convergenceThreshold;
@@ -307,8 +3507,10 @@ var useAnimatedPosition = (options) => {
307
3507
  animationFrameId = null;
308
3508
  }
309
3509
  });
310
- return { x, y };
3510
+ return { x: x3, y: y2 };
311
3511
  };
3512
+
3513
+ // src/hooks/use-fade-in-out.ts
312
3514
  var useFadeInOut = (options) => {
313
3515
  const [opacity, setOpacity] = createSignal(0);
314
3516
  createEffect(
@@ -358,14 +3560,14 @@ var getCursorQuadrants = (cursorX, cursorY, elementWidth, elementHeight, offset)
358
3560
  };
359
3561
 
360
3562
  // src/components/label.tsx
361
- var _tmpl$3 = /* @__PURE__ */ template(`<div style="position:absolute;top:0;left:0;bottom:0;background-color:rgba(178, 28, 142, 0.2);border-radius:3px;transition:width 0.1s ease-out;pointer-events:none">`);
362
- var _tmpl$22 = /* @__PURE__ */ template(`<span style=display:inline-block;margin-right:4px;font-weight:600>\u2713`);
363
- var _tmpl$32 = /* @__PURE__ */ template(`<div style=margin-right:4px>Copied`);
364
- var _tmpl$4 = /* @__PURE__ */ template(`<span style="font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;font-variant-numeric:tabular-nums;vertical-align:middle">`);
365
- var _tmpl$5 = /* @__PURE__ */ template(`<span style=font-variant-numeric:tabular-nums;font-size:10px;margin-left:4px;vertical-align:middle>`);
366
- var _tmpl$6 = /* @__PURE__ */ template(`<div style=margin-left:4px>to clipboard`);
367
- var _tmpl$7 = /* @__PURE__ */ template(`<div style=font-size:9px;opacity:0.6;text-align:center;margin-top:2px>Click or drag to select`);
368
- var _tmpl$8 = /* @__PURE__ */ template(`<div style="position:fixed;background-color:#fde7f7;color:#b21c8e;border:1px solid #f7c5ec;border-radius:4px;font-size:11px;font-weight:500;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;pointer-events:none;transition:opacity 0.2s ease-in-out;max-width:calc(100vw - (16px + env(safe-area-inset-left) + env(safe-area-inset-right)));overflow:hidden"><div style="position:relative;padding:2px 6px;display:flex;flex-direction:column"><div style=display:flex;align-items:center;text-overflow:ellipsis;white-space:nowrap>`);
3563
+ var _tmpl$3 = /* @__PURE__ */ template(`<div class="absolute top-0 left-0 bottom-0 bg-grab-pink/20 rounded-[3px] transition-[width] duration-100 ease-out pointer-events-none">`);
3564
+ var _tmpl$22 = /* @__PURE__ */ template(`<span class="inline-block mr-1 font-semibold">\u2713`);
3565
+ var _tmpl$32 = /* @__PURE__ */ template(`<div class=mr-1>Copied`);
3566
+ var _tmpl$4 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">`);
3567
+ var _tmpl$5 = /* @__PURE__ */ template(`<span class="tabular-nums text-[10px] ml-1 align-middle">`);
3568
+ var _tmpl$6 = /* @__PURE__ */ template(`<div class=ml-1>to clipboard`);
3569
+ var _tmpl$7 = /* @__PURE__ */ template(`<div class="text-[9px] opacity-60 text-center mt-0.5">Click or drag to select`);
3570
+ var _tmpl$8 = /* @__PURE__ */ template(`<div class="fixed bg-grab-pink-light text-grab-pink border border-grab-pink-border rounded text-[11px] font-medium font-sans pointer-events-none transition-opacity duration-200 ease-in-out overflow-hidden"style="max-width:calc(100vw - (16px + env(safe-area-inset-left) + env(safe-area-inset-right)))"><div class="relative py-0.5 px-1.5 flex flex-col"><div class="flex items-center text-ellipsis whitespace-nowrap">`);
369
3571
  var Label = (props) => {
370
3572
  let labelRef;
371
3573
  const position = useAnimatedPosition({
@@ -427,7 +3629,7 @@ var Label = (props) => {
427
3629
  },
428
3630
  get children() {
429
3631
  var _el$2 = _tmpl$3();
430
- effect((_$p) => setStyleProperty(_el$2, "width", `${Math.min(100, Math.max(0, (props.progress ?? 0) * 100))}%`));
3632
+ createRenderEffect((_$p) => setStyleProperty(_el$2, "width", `${Math.min(100, Math.max(0, (props.progress ?? 0) * 100))}%`));
431
3633
  return _el$2;
432
3634
  }
433
3635
  }), _el$3);
@@ -498,7 +3700,7 @@ var Label = (props) => {
498
3700
  return _tmpl$7();
499
3701
  }
500
3702
  }), null);
501
- effect((_p$) => {
3703
+ createRenderEffect((_p$) => {
502
3704
  var _v$ = `${computedPosition().top}px`, _v$2 = `${computedPosition().left}px`, _v$3 = props.zIndex?.toString() ?? "2147483647", _v$4 = opacity();
503
3705
  _v$ !== _p$.e && setStyleProperty(_el$, "top", _p$.e = _v$);
504
3706
  _v$2 !== _p$.t && setStyleProperty(_el$, "left", _p$.t = _v$2);
@@ -515,7 +3717,9 @@ var Label = (props) => {
515
3717
  }
516
3718
  });
517
3719
  };
518
- var _tmpl$9 = /* @__PURE__ */ template(`<canvas style=position:fixed;top:0;left:0;pointer-events:none;z-index:2147483645>`);
3720
+
3721
+ // src/components/crosshair.tsx
3722
+ var _tmpl$9 = /* @__PURE__ */ template(`<canvas class="fixed top-0 left-0 pointer-events-none z-[2147483645]">`);
519
3723
  var Crosshair = (props) => {
520
3724
  let canvasRef;
521
3725
  let context = null;
@@ -582,7 +3786,9 @@ var Crosshair = (props) => {
582
3786
  }
583
3787
  });
584
3788
  };
585
- var _tmpl$10 = /* @__PURE__ */ template(`<div data-react-grab-input style="position:fixed;background-color:#fde7f7;color:#b21c8e;border:1px solid #f7c5ec;border-radius:4px;font-size:11px;font-weight:500;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;max-width:calc(100vw - (16px + env(safe-area-inset-left) + env(safe-area-inset-right)));overflow:hidden"><div style="position:relative;padding:2px 3px;display:flex;flex-direction:column;gap:2px"><textarea placeholder="e.g., Make this button larger"rows=1 style="width:240px;padding:2px 4px;background-color:#ffffff;color:#b21c8e;border:1px solid #f7c5ec;border-radius:3px;font-size:11px;line-height:1.2;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;outline:none;resize:vertical;min-height:18px"></textarea><div style=font-size:9px;opacity:0.6;text-align:center>Enter \u23CE to submit, Escape to cancel`);
3789
+
3790
+ // src/components/input-overlay.tsx
3791
+ var _tmpl$10 = /* @__PURE__ */ template(`<div data-react-grab-input class="fixed bg-grab-pink-light text-grab-pink border border-grab-pink-border rounded text-[11px] font-medium font-sans overflow-hidden"style="max-width:calc(100vw - (16px + env(safe-area-inset-left) + env(safe-area-inset-right)))"><div class="relative p-0.5 px-[3px] flex flex-col gap-0.5"><textarea placeholder="e.g., Make this button larger"rows=1 class="w-[240px] px-1 py-0.5 bg-white text-grab-pink border border-grab-pink-border rounded-[3px] text-[11px] leading-tight font-sans outline-none resize-y min-h-[18px]"></textarea><div class="text-[9px] opacity-60 text-center">Enter \u23CE to submit, Escape to cancel`);
586
3792
  var InputOverlay = (props) => {
587
3793
  let containerRef;
588
3794
  let inputRef;
@@ -636,14 +3842,14 @@ var InputOverlay = (props) => {
636
3842
  }
637
3843
  });
638
3844
  return (() => {
639
- var _el$ = _tmpl$10(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild; _el$3.nextSibling;
3845
+ var _el$ = _tmpl$10(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild;
640
3846
  var _ref$ = containerRef;
641
3847
  typeof _ref$ === "function" ? use(_ref$, _el$) : containerRef = _el$;
642
3848
  _el$3.$$keydown = handleKeyDown;
643
3849
  _el$3.$$input = handleInput;
644
3850
  var _ref$2 = inputRef;
645
3851
  typeof _ref$2 === "function" ? use(_ref$2, _el$3) : inputRef = _el$3;
646
- effect((_p$) => {
3852
+ createRenderEffect((_p$) => {
647
3853
  var _v$ = props.visible ? "block" : "none", _v$2 = `${computedPosition().top}px`, _v$3 = `${computedPosition().left}px`, _v$4 = props.zIndex?.toString() ?? "2147483647", _v$5 = props.visible ? "auto" : "none";
648
3854
  _v$ !== _p$.e && setStyleProperty(_el$, "display", _p$.e = _v$);
649
3855
  _v$2 !== _p$.t && setStyleProperty(_el$, "top", _p$.t = _v$2);
@@ -658,7 +3864,7 @@ var InputOverlay = (props) => {
658
3864
  o: void 0,
659
3865
  i: void 0
660
3866
  });
661
- effect(() => _el$3.value = props.value);
3867
+ createRenderEffect(() => _el$3.value = props.value);
662
3868
  return _el$;
663
3869
  })();
664
3870
  };
@@ -807,6 +4013,842 @@ var ReactGrabRenderer = (props) => {
807
4013
  })];
808
4014
  };
809
4015
 
4016
+ // ../../node_modules/.pnpm/bippy@0.5.16_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/rdt-hook-CrcWl4lP.js
4017
+ var e = `0.5.16`;
4018
+ var t = `bippy-${e}`;
4019
+ var n = Object.defineProperty;
4020
+ var r2 = Object.prototype.hasOwnProperty;
4021
+ var i = () => {
4022
+ };
4023
+ var a = (e2) => {
4024
+ try {
4025
+ let t2 = Function.prototype.toString.call(e2);
4026
+ t2.indexOf(`^_^`) > -1 && setTimeout(() => {
4027
+ throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build`);
4028
+ });
4029
+ } catch {
4030
+ }
4031
+ };
4032
+ var o = (e2 = h()) => `getFiberRoots` in e2;
4033
+ var s = false;
4034
+ var c;
4035
+ var l = (e2 = h()) => s ? true : (typeof e2.inject == `function` && (c = e2.inject.toString()), !!c?.includes(`(injected)`));
4036
+ var u = /* @__PURE__ */ new Set();
4037
+ var d = /* @__PURE__ */ new Set();
4038
+ var f = (e2) => {
4039
+ let r3 = /* @__PURE__ */ new Map(), o3 = 0, s3 = { _instrumentationIsActive: false, _instrumentationSource: t, checkDCE: a, hasUnsupportedRendererAttached: false, inject(e3) {
4040
+ let t2 = ++o3;
4041
+ return r3.set(t2, e3), d.add(e3), s3._instrumentationIsActive || (s3._instrumentationIsActive = true, u.forEach((e4) => e4())), t2;
4042
+ }, on: i, onCommitFiberRoot: i, onCommitFiberUnmount: i, onPostCommitFiberRoot: i, renderers: r3, supportsFiber: true, supportsFlight: true };
4043
+ try {
4044
+ n(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`, { configurable: true, enumerable: true, get() {
4045
+ return s3;
4046
+ }, set(t3) {
4047
+ if (t3 && typeof t3 == `object`) {
4048
+ let n2 = s3.renderers;
4049
+ s3 = t3, n2.size > 0 && (n2.forEach((e3, n3) => {
4050
+ d.add(e3), t3.renderers.set(n3, e3);
4051
+ }), p(e2));
4052
+ }
4053
+ } });
4054
+ let t2 = window.hasOwnProperty, r4 = false;
4055
+ n(window, `hasOwnProperty`, { configurable: true, value: function(...e3) {
4056
+ try {
4057
+ if (!r4 && e3[0] === `__REACT_DEVTOOLS_GLOBAL_HOOK__`) return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = void 0, r4 = true, -0;
4058
+ } catch {
4059
+ }
4060
+ return t2.apply(this, e3);
4061
+ }, writable: true });
4062
+ } catch {
4063
+ p(e2);
4064
+ }
4065
+ return s3;
4066
+ };
4067
+ var p = (e2) => {
4068
+ try {
4069
+ let n2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
4070
+ if (!n2) return;
4071
+ if (!n2._instrumentationSource) {
4072
+ n2.checkDCE = a, n2.supportsFiber = true, n2.supportsFlight = true, n2.hasUnsupportedRendererAttached = false, n2._instrumentationSource = t, n2._instrumentationIsActive = false;
4073
+ let e3 = o(n2);
4074
+ if (e3 || (n2.on = i), n2.renderers.size) {
4075
+ n2._instrumentationIsActive = true, u.forEach((e4) => e4());
4076
+ return;
4077
+ }
4078
+ let r3 = n2.inject, c3 = l(n2);
4079
+ if (c3 && !e3) {
4080
+ s = true;
4081
+ let e4 = n2.inject({ scheduleRefresh() {
4082
+ } });
4083
+ e4 && (n2._instrumentationIsActive = true);
4084
+ }
4085
+ n2.inject = (e4) => {
4086
+ let t2 = r3(e4);
4087
+ return d.add(e4), c3 && n2.renderers.set(t2, e4), n2._instrumentationIsActive = true, u.forEach((e5) => e5()), t2;
4088
+ };
4089
+ }
4090
+ (n2.renderers.size || n2._instrumentationIsActive || l()) && e2?.();
4091
+ } catch {
4092
+ }
4093
+ };
4094
+ var m = () => r2.call(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`);
4095
+ var h = (e2) => m() ? (p(e2), globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) : f(e2);
4096
+ var g = () => !!(typeof window < `u` && (window.document?.createElement || window.navigator?.product === `ReactNative`));
4097
+ var _ = () => {
4098
+ try {
4099
+ g() && h();
4100
+ } catch {
4101
+ }
4102
+ };
4103
+
4104
+ // ../../node_modules/.pnpm/bippy@0.5.16_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/install-hook-only-DtUPvEBg.js
4105
+ _();
4106
+
4107
+ // ../../node_modules/.pnpm/bippy@0.5.16_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/core-D7_ABaNC.js
4108
+ var a2 = 0;
4109
+ var o2 = 1;
4110
+ var c2 = 5;
4111
+ var f2 = 11;
4112
+ var p2 = 13;
4113
+ var m2 = 14;
4114
+ var h2 = 15;
4115
+ var ee = 16;
4116
+ var te = 19;
4117
+ var y = 26;
4118
+ var b = 27;
4119
+ var ne = 28;
4120
+ var re = 30;
4121
+ var k = (e2) => {
4122
+ switch (e2.tag) {
4123
+ case c2:
4124
+ case y:
4125
+ case b:
4126
+ return true;
4127
+ default:
4128
+ return typeof e2.type == `string`;
4129
+ }
4130
+ };
4131
+ var pe = (e2) => {
4132
+ switch (e2.tag) {
4133
+ case o2:
4134
+ case f2:
4135
+ case a2:
4136
+ case m2:
4137
+ case h2:
4138
+ return true;
4139
+ default:
4140
+ return false;
4141
+ }
4142
+ };
4143
+ var me = (e2) => !e2 || typeof e2 != `object` ? true : `pendingProps` in e2 && !(`containerInfo` in e2);
4144
+ function N(e2, t2, n2 = false) {
4145
+ if (!e2) return null;
4146
+ let r3 = t2(e2);
4147
+ if (r3 instanceof Promise) return (async () => {
4148
+ if (await r3 === true) return e2;
4149
+ let i3 = n2 ? e2.return : e2.child;
4150
+ for (; i3; ) {
4151
+ let e3 = await F(i3, t2, n2);
4152
+ if (e3) return e3;
4153
+ i3 = n2 ? null : i3.sibling;
4154
+ }
4155
+ return null;
4156
+ })();
4157
+ if (r3 === true) return e2;
4158
+ let i2 = n2 ? e2.return : e2.child;
4159
+ for (; i2; ) {
4160
+ let e3 = P(i2, t2, n2);
4161
+ if (e3) return e3;
4162
+ i2 = n2 ? null : i2.sibling;
4163
+ }
4164
+ return null;
4165
+ }
4166
+ var P = (e2, t2, n2 = false) => {
4167
+ if (!e2) return null;
4168
+ if (t2(e2) === true) return e2;
4169
+ let r3 = n2 ? e2.return : e2.child;
4170
+ for (; r3; ) {
4171
+ let e3 = P(r3, t2, n2);
4172
+ if (e3) return e3;
4173
+ r3 = n2 ? null : r3.sibling;
4174
+ }
4175
+ return null;
4176
+ };
4177
+ var F = async (e2, t2, n2 = false) => {
4178
+ if (!e2) return null;
4179
+ if (await t2(e2) === true) return e2;
4180
+ let r3 = n2 ? e2.return : e2.child;
4181
+ for (; r3; ) {
4182
+ let e3 = await F(r3, t2, n2);
4183
+ if (e3) return e3;
4184
+ r3 = n2 ? null : r3.sibling;
4185
+ }
4186
+ return null;
4187
+ };
4188
+ var I = (e2) => {
4189
+ let t2 = e2;
4190
+ return typeof t2 == `function` ? t2 : typeof t2 == `object` && t2 ? I(t2.type || t2.render) : null;
4191
+ };
4192
+ var Te = (e2) => {
4193
+ let t2 = e2;
4194
+ if (typeof t2 == `string`) return t2;
4195
+ if (typeof t2 != `function` && !(typeof t2 == `object` && t2)) return null;
4196
+ let n2 = t2.displayName || t2.name || null;
4197
+ if (n2) return n2;
4198
+ let r3 = I(t2);
4199
+ return r3 && (r3.displayName || r3.name) || null;
4200
+ };
4201
+ var Ee = () => {
4202
+ let e2 = h();
4203
+ return !!e2._instrumentationIsActive || o() || l();
4204
+ };
4205
+ var De = (e2) => {
4206
+ let t2 = e2.alternate;
4207
+ if (!t2) return e2;
4208
+ if (t2.actualStartTime && e2.actualStartTime) return t2.actualStartTime > e2.actualStartTime ? t2 : e2;
4209
+ for (let t3 of $) {
4210
+ let n2 = N(t3.current, (t4) => {
4211
+ if (t4 === e2) return true;
4212
+ });
4213
+ if (n2) return n2;
4214
+ }
4215
+ return e2;
4216
+ };
4217
+ var Pe = (e2) => {
4218
+ let n2 = h();
4219
+ for (let t2 of n2.renderers.values()) try {
4220
+ let n3 = t2.findFiberByHostInstance?.(e2);
4221
+ if (n3) return n3;
4222
+ } catch {
4223
+ }
4224
+ if (typeof e2 == `object` && e2) {
4225
+ if (`_reactRootContainer` in e2) return e2._reactRootContainer?._internalRoot?.current?.child;
4226
+ for (let t2 in e2) if (t2.startsWith(`__reactContainer$`) || t2.startsWith(`__reactInternalInstance$`) || t2.startsWith(`__reactFiber`)) return e2[t2] || null;
4227
+ }
4228
+ return null;
4229
+ };
4230
+ var $ = /* @__PURE__ */ new Set();
4231
+
4232
+ // ../../node_modules/.pnpm/bippy@0.5.16_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/source.js
4233
+ var b2 = Object.create;
4234
+ var x2 = Object.defineProperty;
4235
+ var S2 = Object.getOwnPropertyDescriptor;
4236
+ var C2 = Object.getOwnPropertyNames;
4237
+ var ee2 = Object.getPrototypeOf;
4238
+ var te2 = Object.prototype.hasOwnProperty;
4239
+ var ne2 = (e2, t2) => () => (t2 || e2((t2 = { exports: {} }).exports, t2), t2.exports);
4240
+ var re2 = (e2, t2, n2, r3) => {
4241
+ if (t2 && typeof t2 == `object` || typeof t2 == `function`) for (var i2 = C2(t2), a3 = 0, o3 = i2.length, s3; a3 < o3; a3++) s3 = i2[a3], !te2.call(e2, s3) && s3 !== n2 && x2(e2, s3, { get: ((e3) => t2[e3]).bind(null, s3), enumerable: !(r3 = S2(t2, s3)) || r3.enumerable });
4242
+ return e2;
4243
+ };
4244
+ var ie2 = (e2, t2, n2) => (n2 = e2 == null ? {} : b2(ee2(e2)), re2(x2(n2, `default`, { value: e2, enumerable: true }) , e2));
4245
+ var ae2 = () => {
4246
+ let n2 = h();
4247
+ for (let t2 of [...Array.from(d), ...Array.from(n2.renderers.values())]) {
4248
+ let e2 = t2.currentDispatcherRef;
4249
+ if (e2 && typeof e2 == `object`) return `H` in e2 ? e2.H : e2.current;
4250
+ }
4251
+ return null;
4252
+ };
4253
+ var w2 = (t2) => {
4254
+ for (let n2 of d) {
4255
+ let e2 = n2.currentDispatcherRef;
4256
+ e2 && typeof e2 == `object` && (`H` in e2 ? e2.H = t2 : e2.current = t2);
4257
+ }
4258
+ };
4259
+ var T2 = (e2) => `
4260
+ in ${e2}`;
4261
+ var oe2 = (e2, t2) => {
4262
+ let n2 = T2(e2);
4263
+ return t2 && (n2 += ` (at ${t2})`), n2;
4264
+ };
4265
+ var E = false;
4266
+ var D = (e2, t2) => {
4267
+ if (!e2 || E) return ``;
4268
+ let n2 = Error.prepareStackTrace;
4269
+ Error.prepareStackTrace = void 0, E = true;
4270
+ let r3 = ae2();
4271
+ w2(null);
4272
+ let i2 = console.error, a3 = console.warn;
4273
+ console.error = () => {
4274
+ }, console.warn = () => {
4275
+ };
4276
+ try {
4277
+ let n3 = { DetermineComponentFrameRoot() {
4278
+ let n4;
4279
+ try {
4280
+ if (t2) {
4281
+ let t3 = function() {
4282
+ throw Error();
4283
+ };
4284
+ if (Object.defineProperty(t3.prototype, `props`, { set: function() {
4285
+ throw Error();
4286
+ } }), typeof Reflect == `object` && Reflect.construct) {
4287
+ try {
4288
+ Reflect.construct(t3, []);
4289
+ } catch (e3) {
4290
+ n4 = e3;
4291
+ }
4292
+ Reflect.construct(e2, [], t3);
4293
+ } else {
4294
+ try {
4295
+ t3.call();
4296
+ } catch (e3) {
4297
+ n4 = e3;
4298
+ }
4299
+ e2.call(t3.prototype);
4300
+ }
4301
+ } else {
4302
+ try {
4303
+ throw Error();
4304
+ } catch (e3) {
4305
+ n4 = e3;
4306
+ }
4307
+ let t3 = e2();
4308
+ t3 && typeof t3.catch == `function` && t3.catch(() => {
4309
+ });
4310
+ }
4311
+ } catch (e3) {
4312
+ if (e3 instanceof Error && n4 instanceof Error && typeof e3.stack == `string`) return [e3.stack, n4.stack];
4313
+ }
4314
+ return [null, null];
4315
+ } };
4316
+ n3.DetermineComponentFrameRoot.displayName = `DetermineComponentFrameRoot`;
4317
+ let r4 = Object.getOwnPropertyDescriptor(n3.DetermineComponentFrameRoot, `name`);
4318
+ r4?.configurable && Object.defineProperty(n3.DetermineComponentFrameRoot, `name`, { value: `DetermineComponentFrameRoot` });
4319
+ let [i3, a4] = n3.DetermineComponentFrameRoot();
4320
+ if (i3 && a4) {
4321
+ let t3 = i3.split(`
4322
+ `), n4 = a4.split(`
4323
+ `), r5 = 0, o4 = 0;
4324
+ for (; r5 < t3.length && !t3[r5].includes(`DetermineComponentFrameRoot`); ) r5++;
4325
+ for (; o4 < n4.length && !n4[o4].includes(`DetermineComponentFrameRoot`); ) o4++;
4326
+ if (r5 === t3.length || o4 === n4.length) for (r5 = t3.length - 1, o4 = n4.length - 1; r5 >= 1 && o4 >= 0 && t3[r5] !== n4[o4]; ) o4--;
4327
+ for (; r5 >= 1 && o4 >= 0; r5--, o4--) if (t3[r5] !== n4[o4]) {
4328
+ if (r5 !== 1 || o4 !== 1) do
4329
+ if (r5--, o4--, o4 < 0 || t3[r5] !== n4[o4]) {
4330
+ let n5 = `
4331
+ ${t3[r5].replace(` at new `, ` at `)}`, i4 = Te(e2);
4332
+ return i4 && n5.includes(`<anonymous>`) && (n5 = n5.replace(`<anonymous>`, i4)), n5;
4333
+ }
4334
+ while (r5 >= 1 && o4 >= 0);
4335
+ break;
4336
+ }
4337
+ }
4338
+ } finally {
4339
+ E = false, Error.prepareStackTrace = n2, w2(r3), console.error = i2, console.warn = a3;
4340
+ }
4341
+ let o3 = e2 ? Te(e2) : ``, s3 = o3 ? T2(o3) : ``;
4342
+ return s3;
4343
+ };
4344
+ var se2 = (e2, t2) => {
4345
+ let m3 = e2.tag, h3 = ``;
4346
+ switch (m3) {
4347
+ case ne:
4348
+ h3 = T2(`Activity`);
4349
+ break;
4350
+ case o2:
4351
+ h3 = D(e2.type, true);
4352
+ break;
4353
+ case f2:
4354
+ h3 = D(e2.type.render, false);
4355
+ break;
4356
+ case a2:
4357
+ case h2:
4358
+ h3 = D(e2.type, false);
4359
+ break;
4360
+ case c2:
4361
+ case y:
4362
+ case b:
4363
+ h3 = T2(e2.type);
4364
+ break;
4365
+ case ee:
4366
+ h3 = T2(`Lazy`);
4367
+ break;
4368
+ case p2:
4369
+ h3 = e2.child !== t2 && t2 !== null ? T2(`Suspense Fallback`) : T2(`Suspense`);
4370
+ break;
4371
+ case te:
4372
+ h3 = T2(`SuspenseList`);
4373
+ break;
4374
+ case re:
4375
+ h3 = T2(`ViewTransition`);
4376
+ break;
4377
+ default:
4378
+ return ``;
4379
+ }
4380
+ return h3;
4381
+ };
4382
+ var ce2 = (e2) => {
4383
+ try {
4384
+ let t2 = ``, n2 = e2, r3 = null;
4385
+ do {
4386
+ t2 += se2(n2, r3);
4387
+ let e3 = n2._debugInfo;
4388
+ if (e3 && Array.isArray(e3)) for (let n3 = e3.length - 1; n3 >= 0; n3--) {
4389
+ let r4 = e3[n3];
4390
+ typeof r4.name == `string` && (t2 += oe2(r4.name, r4.env));
4391
+ }
4392
+ r3 = n2, n2 = n2.return;
4393
+ } while (n2);
4394
+ return t2;
4395
+ } catch (e3) {
4396
+ return e3 instanceof Error ? `
4397
+ Error generating stack: ${e3.message}
4398
+ ${e3.stack}` : ``;
4399
+ }
4400
+ };
4401
+ var O2 = (e2) => {
4402
+ let t2 = Error.prepareStackTrace;
4403
+ Error.prepareStackTrace = void 0;
4404
+ let n2 = e2;
4405
+ if (!n2) return ``;
4406
+ Error.prepareStackTrace = t2, n2.startsWith(`Error: react-stack-top-frame
4407
+ `) && (n2 = n2.slice(29));
4408
+ let r3 = n2.indexOf(`
4409
+ `);
4410
+ if (r3 !== -1 && (n2 = n2.slice(r3 + 1)), r3 = Math.max(n2.indexOf(`react_stack_bottom_frame`), n2.indexOf(`react-stack-bottom-frame`)), r3 !== -1 && (r3 = n2.lastIndexOf(`
4411
+ `, r3)), r3 !== -1) n2 = n2.slice(0, r3);
4412
+ else return ``;
4413
+ return n2;
4414
+ };
4415
+ var k2 = /(^|@)\S+:\d+/;
4416
+ var A2 = /^\s*at .*(\S+:\d+|\(native\))/m;
4417
+ var le2 = /^(eval@)?(\[native code\])?$/;
4418
+ var M2 = (e2, t2) => {
4419
+ if (t2?.includeInElement !== false) {
4420
+ let n2 = e2.split(`
4421
+ `), r3 = [];
4422
+ for (let e3 of n2) if (/^\s*at\s+/.test(e3)) {
4423
+ let t3 = F2(e3, void 0)[0];
4424
+ t3 && r3.push(t3);
4425
+ } else if (/^\s*in\s+/.test(e3)) {
4426
+ let t3 = e3.replace(/^\s*in\s+/, ``).replace(/\s*\(at .*\)$/, ``);
4427
+ r3.push({ function: t3, raw: e3 });
4428
+ } else if (e3.match(k2)) {
4429
+ let t3 = I2(e3, void 0)[0];
4430
+ t3 && r3.push(t3);
4431
+ }
4432
+ return P2(r3, t2);
4433
+ }
4434
+ return e2.match(A2) ? F2(e2, t2) : I2(e2, t2);
4435
+ };
4436
+ var N2 = (e2) => {
4437
+ if (!e2.includes(`:`)) return [e2, void 0, void 0];
4438
+ let t2 = /(.+?)(?::(\d+))?(?::(\d+))?$/, n2 = t2.exec(e2.replace(/[()]/g, ``));
4439
+ return [n2[1], n2[2] || void 0, n2[3] || void 0];
4440
+ };
4441
+ var P2 = (e2, t2) => t2 && t2.slice != null ? Array.isArray(t2.slice) ? e2.slice(t2.slice[0], t2.slice[1]) : e2.slice(0, t2.slice) : e2;
4442
+ var F2 = (e2, t2) => {
4443
+ let n2 = P2(e2.split(`
4444
+ `).filter((e3) => !!e3.match(A2)), t2);
4445
+ return n2.map((e3) => {
4446
+ let t3 = e3;
4447
+ t3.includes(`(eval `) && (t3 = t3.replace(/eval code/g, `eval`).replace(/(\(eval at [^()]*)|(,.*$)/g, ``));
4448
+ let n3 = t3.replace(/^\s+/, ``).replace(/\(eval code/g, `(`).replace(/^.*?\s+/, ``), r3 = n3.match(/ (\(.+\)$)/);
4449
+ n3 = r3 ? n3.replace(r3[0], ``) : n3;
4450
+ let i2 = N2(r3 ? r3[1] : n3), a3 = r3 && n3 || void 0, o3 = [`eval`, `<anonymous>`].includes(i2[0]) ? void 0 : i2[0];
4451
+ return { function: a3, file: o3, line: i2[1] ? +i2[1] : void 0, col: i2[2] ? +i2[2] : void 0, raw: t3 };
4452
+ });
4453
+ };
4454
+ var I2 = (e2, t2) => {
4455
+ let n2 = P2(e2.split(`
4456
+ `).filter((e3) => !e3.match(le2)), t2);
4457
+ return n2.map((e3) => {
4458
+ let t3 = e3;
4459
+ if (t3.includes(` > eval`) && (t3 = t3.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g, `:$1`)), !t3.includes(`@`) && !t3.includes(`:`)) return { function: t3 };
4460
+ {
4461
+ let e4 = /(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/, n3 = t3.match(e4), r3 = n3 && n3[1] ? n3[1] : void 0, i2 = N2(t3.replace(e4, ``));
4462
+ return { function: r3, file: i2[0], line: i2[1] ? +i2[1] : void 0, col: i2[2] ? +i2[2] : void 0, raw: t3 };
4463
+ }
4464
+ });
4465
+ };
4466
+ var pe2 = ne2((exports, t2) => {
4467
+ (function(n2, r3) {
4468
+ typeof exports == `object` && t2 !== void 0 ? r3(exports) : typeof define == `function` && define.amd ? define([`exports`], r3) : (n2 = typeof globalThis < `u` ? globalThis : n2 || self, r3(n2.sourcemapCodec = {}));
4469
+ })(void 0, function(e2) {
4470
+ let t3 = 44, n2 = 59, r3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`, i2 = new Uint8Array(64), a3 = new Uint8Array(128);
4471
+ for (let e3 = 0; e3 < r3.length; e3++) {
4472
+ let t4 = r3.charCodeAt(e3);
4473
+ i2[e3] = t4, a3[t4] = e3;
4474
+ }
4475
+ function o3(e3, t4) {
4476
+ let n3 = 0, r4 = 0, i3 = 0;
4477
+ do {
4478
+ let t5 = e3.next();
4479
+ i3 = a3[t5], n3 |= (i3 & 31) << r4, r4 += 5;
4480
+ } while (i3 & 32);
4481
+ let o4 = n3 & 1;
4482
+ return n3 >>>= 1, o4 && (n3 = -2147483648 | -n3), t4 + n3;
4483
+ }
4484
+ function s3(e3, t4, n3) {
4485
+ let r4 = t4 - n3;
4486
+ r4 = r4 < 0 ? -r4 << 1 | 1 : r4 << 1;
4487
+ do {
4488
+ let t5 = r4 & 31;
4489
+ r4 >>>= 5, r4 > 0 && (t5 |= 32), e3.write(i2[t5]);
4490
+ } while (r4 > 0);
4491
+ return t4;
4492
+ }
4493
+ function c3(e3, n3) {
4494
+ return e3.pos >= n3 ? false : e3.peek() !== t3;
4495
+ }
4496
+ let l3 = 1024 * 16, u3 = typeof TextDecoder < `u` ? new TextDecoder() : typeof Buffer < `u` ? { decode(e3) {
4497
+ let t4 = Buffer.from(e3.buffer, e3.byteOffset, e3.byteLength);
4498
+ return t4.toString();
4499
+ } } : { decode(e3) {
4500
+ let t4 = ``;
4501
+ for (let n3 = 0; n3 < e3.length; n3++) t4 += String.fromCharCode(e3[n3]);
4502
+ return t4;
4503
+ } };
4504
+ class d3 {
4505
+ constructor() {
4506
+ this.pos = 0, this.out = ``, this.buffer = new Uint8Array(l3);
4507
+ }
4508
+ write(e3) {
4509
+ let { buffer: t4 } = this;
4510
+ t4[this.pos++] = e3, this.pos === l3 && (this.out += u3.decode(t4), this.pos = 0);
4511
+ }
4512
+ flush() {
4513
+ let { buffer: e3, out: t4, pos: n3 } = this;
4514
+ return n3 > 0 ? t4 + u3.decode(e3.subarray(0, n3)) : t4;
4515
+ }
4516
+ }
4517
+ class f3 {
4518
+ constructor(e3) {
4519
+ this.pos = 0, this.buffer = e3;
4520
+ }
4521
+ next() {
4522
+ return this.buffer.charCodeAt(this.pos++);
4523
+ }
4524
+ peek() {
4525
+ return this.buffer.charCodeAt(this.pos);
4526
+ }
4527
+ indexOf(e3) {
4528
+ let { buffer: t4, pos: n3 } = this, r4 = t4.indexOf(e3, n3);
4529
+ return r4 === -1 ? t4.length : r4;
4530
+ }
4531
+ }
4532
+ let p3 = [];
4533
+ function m3(e3) {
4534
+ let { length: t4 } = e3, n3 = new f3(e3), r4 = [], i3 = [], a4 = 0;
4535
+ for (; n3.pos < t4; n3.pos++) {
4536
+ a4 = o3(n3, a4);
4537
+ let e4 = o3(n3, 0);
4538
+ if (!c3(n3, t4)) {
4539
+ let t5 = i3.pop();
4540
+ t5[2] = a4, t5[3] = e4;
4541
+ continue;
4542
+ }
4543
+ let s4 = o3(n3, 0), l4 = o3(n3, 0), u4 = l4 & 1, d4 = u4 ? [a4, e4, 0, 0, s4, o3(n3, 0)] : [a4, e4, 0, 0, s4], f4 = p3;
4544
+ if (c3(n3, t4)) {
4545
+ f4 = [];
4546
+ do {
4547
+ let e5 = o3(n3, 0);
4548
+ f4.push(e5);
4549
+ } while (c3(n3, t4));
4550
+ }
4551
+ d4.vars = f4, r4.push(d4), i3.push(d4);
4552
+ }
4553
+ return r4;
4554
+ }
4555
+ function h3(e3) {
4556
+ let t4 = new d3();
4557
+ for (let n3 = 0; n3 < e3.length; ) n3 = g3(e3, n3, t4, [0]);
4558
+ return t4.flush();
4559
+ }
4560
+ function g3(e3, n3, r4, i3) {
4561
+ let a4 = e3[n3], { 0: o4, 1: c4, 2: l4, 3: u4, 4: d4, vars: f4 } = a4;
4562
+ n3 > 0 && r4.write(t3), i3[0] = s3(r4, o4, i3[0]), s3(r4, c4, 0), s3(r4, d4, 0);
4563
+ let p4 = a4.length === 6 ? 1 : 0;
4564
+ s3(r4, p4, 0), a4.length === 6 && s3(r4, a4[5], 0);
4565
+ for (let e4 of f4) s3(r4, e4, 0);
4566
+ for (n3++; n3 < e3.length; ) {
4567
+ let t4 = e3[n3], { 0: a5, 1: o5 } = t4;
4568
+ if (a5 > l4 || a5 === l4 && o5 >= u4) break;
4569
+ n3 = g3(e3, n3, r4, i3);
4570
+ }
4571
+ return r4.write(t3), i3[0] = s3(r4, l4, i3[0]), s3(r4, u4, 0), n3;
4572
+ }
4573
+ function _3(e3) {
4574
+ let { length: t4 } = e3, n3 = new f3(e3), r4 = [], i3 = [], a4 = 0, s4 = 0, l4 = 0, u4 = 0, d4 = 0, m4 = 0, h4 = 0, g4 = 0;
4575
+ do {
4576
+ let e4 = n3.indexOf(`;`), t5 = 0;
4577
+ for (; n3.pos < e4; n3.pos++) {
4578
+ if (t5 = o3(n3, t5), !c3(n3, e4)) {
4579
+ let e5 = i3.pop();
4580
+ e5[2] = a4, e5[3] = t5;
4581
+ continue;
4582
+ }
4583
+ let f4 = o3(n3, 0), _4 = f4 & 1, v3 = f4 & 2, y3 = f4 & 4, b4 = null, x4 = p3, S4;
4584
+ if (_4) {
4585
+ let e5 = o3(n3, s4);
4586
+ l4 = o3(n3, s4 === e5 ? l4 : 0), s4 = e5, S4 = [a4, t5, 0, 0, e5, l4];
4587
+ } else S4 = [a4, t5, 0, 0];
4588
+ if (S4.isScope = !!y3, v3) {
4589
+ let e5 = u4, t6 = d4;
4590
+ u4 = o3(n3, u4);
4591
+ let r5 = e5 === u4;
4592
+ d4 = o3(n3, r5 ? d4 : 0), m4 = o3(n3, r5 && t6 === d4 ? m4 : 0), b4 = [u4, d4, m4];
4593
+ }
4594
+ if (S4.callsite = b4, c3(n3, e4)) {
4595
+ x4 = [];
4596
+ do {
4597
+ h4 = a4, g4 = t5;
4598
+ let e5 = o3(n3, 0), r5;
4599
+ if (e5 < -1) {
4600
+ r5 = [[o3(n3, 0)]];
4601
+ for (let t6 = -1; t6 > e5; t6--) {
4602
+ let e6 = h4;
4603
+ h4 = o3(n3, h4), g4 = o3(n3, h4 === e6 ? g4 : 0);
4604
+ let t7 = o3(n3, 0);
4605
+ r5.push([t7, h4, g4]);
4606
+ }
4607
+ } else r5 = [[e5]];
4608
+ x4.push(r5);
4609
+ } while (c3(n3, e4));
4610
+ }
4611
+ S4.bindings = x4, r4.push(S4), i3.push(S4);
4612
+ }
4613
+ a4++, n3.pos = e4 + 1;
4614
+ } while (n3.pos < t4);
4615
+ return r4;
4616
+ }
4617
+ function v2(e3) {
4618
+ if (e3.length === 0) return ``;
4619
+ let t4 = new d3();
4620
+ for (let n3 = 0; n3 < e3.length; ) n3 = y2(e3, n3, t4, [0, 0, 0, 0, 0, 0, 0]);
4621
+ return t4.flush();
4622
+ }
4623
+ function y2(e3, n3, r4, i3) {
4624
+ let a4 = e3[n3], { 0: o4, 1: c4, 2: l4, 3: u4, isScope: d4, callsite: f4, bindings: p4 } = a4;
4625
+ i3[0] < o4 ? (b3(r4, i3[0], o4), i3[0] = o4, i3[1] = 0) : n3 > 0 && r4.write(t3), i3[1] = s3(r4, a4[1], i3[1]);
4626
+ let m4 = (a4.length === 6 ? 1 : 0) | (f4 ? 2 : 0) | (d4 ? 4 : 0);
4627
+ if (s3(r4, m4, 0), a4.length === 6) {
4628
+ let { 4: e4, 5: t4 } = a4;
4629
+ e4 !== i3[2] && (i3[3] = 0), i3[2] = s3(r4, e4, i3[2]), i3[3] = s3(r4, t4, i3[3]);
4630
+ }
4631
+ if (f4) {
4632
+ let { 0: e4, 1: t4, 2: n4 } = a4.callsite;
4633
+ e4 === i3[4] ? t4 !== i3[5] && (i3[6] = 0) : (i3[5] = 0, i3[6] = 0), i3[4] = s3(r4, e4, i3[4]), i3[5] = s3(r4, t4, i3[5]), i3[6] = s3(r4, n4, i3[6]);
4634
+ }
4635
+ if (p4) for (let e4 of p4) {
4636
+ e4.length > 1 && s3(r4, -e4.length, 0);
4637
+ let t4 = e4[0][0];
4638
+ s3(r4, t4, 0);
4639
+ let n4 = o4, i4 = c4;
4640
+ for (let t5 = 1; t5 < e4.length; t5++) {
4641
+ let a5 = e4[t5];
4642
+ n4 = s3(r4, a5[1], n4), i4 = s3(r4, a5[2], i4), s3(r4, a5[0], 0);
4643
+ }
4644
+ }
4645
+ for (n3++; n3 < e3.length; ) {
4646
+ let t4 = e3[n3], { 0: a5, 1: o5 } = t4;
4647
+ if (a5 > l4 || a5 === l4 && o5 >= u4) break;
4648
+ n3 = y2(e3, n3, r4, i3);
4649
+ }
4650
+ return i3[0] < l4 ? (b3(r4, i3[0], l4), i3[0] = l4, i3[1] = 0) : r4.write(t3), i3[1] = s3(r4, u4, i3[1]), n3;
4651
+ }
4652
+ function b3(e3, t4, r4) {
4653
+ do
4654
+ e3.write(n2);
4655
+ while (++t4 < r4);
4656
+ }
4657
+ function x3(e3) {
4658
+ let { length: t4 } = e3, n3 = new f3(e3), r4 = [], i3 = 0, a4 = 0, s4 = 0, l4 = 0, u4 = 0;
4659
+ do {
4660
+ let e4 = n3.indexOf(`;`), t5 = [], d4 = true, f4 = 0;
4661
+ for (i3 = 0; n3.pos < e4; ) {
4662
+ let r5;
4663
+ i3 = o3(n3, i3), i3 < f4 && (d4 = false), f4 = i3, c3(n3, e4) ? (a4 = o3(n3, a4), s4 = o3(n3, s4), l4 = o3(n3, l4), c3(n3, e4) ? (u4 = o3(n3, u4), r5 = [i3, a4, s4, l4, u4]) : r5 = [i3, a4, s4, l4]) : r5 = [i3], t5.push(r5), n3.pos++;
4664
+ }
4665
+ d4 || S3(t5), r4.push(t5), n3.pos = e4 + 1;
4666
+ } while (n3.pos <= t4);
4667
+ return r4;
4668
+ }
4669
+ function S3(e3) {
4670
+ e3.sort(C3);
4671
+ }
4672
+ function C3(e3, t4) {
4673
+ return e3[0] - t4[0];
4674
+ }
4675
+ function ee3(e3) {
4676
+ let r4 = new d3(), i3 = 0, a4 = 0, o4 = 0, c4 = 0;
4677
+ for (let l4 = 0; l4 < e3.length; l4++) {
4678
+ let u4 = e3[l4];
4679
+ if (l4 > 0 && r4.write(n2), u4.length === 0) continue;
4680
+ let d4 = 0;
4681
+ for (let e4 = 0; e4 < u4.length; e4++) {
4682
+ let n3 = u4[e4];
4683
+ e4 > 0 && r4.write(t3), d4 = s3(r4, n3[0], d4), n3.length !== 1 && (i3 = s3(r4, n3[1], i3), a4 = s3(r4, n3[2], a4), o4 = s3(r4, n3[3], o4), n3.length !== 4 && (c4 = s3(r4, n3[4], c4)));
4684
+ }
4685
+ }
4686
+ return r4.flush();
4687
+ }
4688
+ e2.decode = x3, e2.decodeGeneratedRanges = _3, e2.decodeOriginalScopes = m3, e2.encode = ee3, e2.encodeGeneratedRanges = v2, e2.encodeOriginalScopes = h3, Object.defineProperty(e2, `__esModule`, { value: true });
4689
+ });
4690
+ });
4691
+ var B2 = ie2(pe2());
4692
+ var V2 = /^[a-zA-Z][a-zA-Z\d+\-.]*:/;
4693
+ var me2 = /^data:application\/json[^,]+base64,/;
4694
+ var he2 = /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/;
4695
+ var H2 = typeof WeakRef < `u`;
4696
+ var U2 = /* @__PURE__ */ new Map();
4697
+ var W2 = /* @__PURE__ */ new Map();
4698
+ var ge2 = (e2) => H2 && e2 instanceof WeakRef;
4699
+ var G2 = (e2, t2, n2, r3) => {
4700
+ if (n2 < 0 || n2 >= e2.length) return null;
4701
+ let i2 = e2[n2];
4702
+ if (!i2 || i2.length === 0) return null;
4703
+ let a3 = null;
4704
+ for (let e3 of i2) if (e3[0] <= r3) a3 = e3;
4705
+ else break;
4706
+ if (!a3 || a3.length < 4) return null;
4707
+ let [, o3, s3, c3] = a3;
4708
+ if (o3 === void 0 || s3 === void 0 || c3 === void 0) return null;
4709
+ let l3 = t2[o3];
4710
+ return l3 ? { columnNumber: c3, fileName: l3, lineNumber: s3 + 1 } : null;
4711
+ };
4712
+ var K = (e2, t2, n2) => {
4713
+ if (e2.sections) {
4714
+ let r3 = null;
4715
+ for (let i3 of e2.sections) if (t2 > i3.offset.line || t2 === i3.offset.line && n2 >= i3.offset.column) r3 = i3;
4716
+ else break;
4717
+ if (!r3) return null;
4718
+ let i2 = t2 - r3.offset.line, a3 = t2 === r3.offset.line ? n2 - r3.offset.column : n2;
4719
+ return G2(r3.map.mappings, r3.map.sources, i2, a3);
4720
+ }
4721
+ return G2(e2.mappings, e2.sources, t2 - 1, n2);
4722
+ };
4723
+ var _e2 = (e2, t2) => {
4724
+ let n2 = t2.split(`
4725
+ `), r3;
4726
+ for (let e3 = n2.length - 1; e3 >= 0 && !r3; e3--) {
4727
+ let t3 = n2[e3].match(he2);
4728
+ t3 && (r3 = t3[1] || t3[2]);
4729
+ }
4730
+ if (!r3) return null;
4731
+ let i2 = V2.test(r3);
4732
+ if (!(me2.test(r3) || i2 || r3.startsWith(`/`))) {
4733
+ let t3 = e2.split(`/`);
4734
+ t3[t3.length - 1] = r3, r3 = t3.join(`/`);
4735
+ }
4736
+ return r3;
4737
+ };
4738
+ var ve2 = (e2) => ({ file: e2.file, mappings: (0, B2.decode)(e2.mappings), names: e2.names, sourceRoot: e2.sourceRoot, sources: e2.sources, sourcesContent: e2.sourcesContent, version: 3 });
4739
+ var ye2 = (e2) => {
4740
+ let t2 = e2.sections.map(({ map: e3, offset: t3 }) => ({ map: { ...e3, mappings: (0, B2.decode)(e3.mappings) }, offset: t3 })), n2 = /* @__PURE__ */ new Set();
4741
+ for (let e3 of t2) for (let t3 of e3.map.sources) n2.add(t3);
4742
+ return { file: e2.file, mappings: [], names: [], sections: t2, sourceRoot: void 0, sources: Array.from(n2), sourcesContent: void 0, version: 3 };
4743
+ };
4744
+ var q = (e2) => {
4745
+ if (!e2) return false;
4746
+ let t2 = e2.trim();
4747
+ if (!t2) return false;
4748
+ let n2 = t2.match(V2);
4749
+ if (!n2) return true;
4750
+ let r3 = n2[0].toLowerCase();
4751
+ return r3 === `http:` || r3 === `https:`;
4752
+ };
4753
+ var J = async (e2, t2 = fetch) => {
4754
+ if (!q(e2)) return null;
4755
+ let n2;
4756
+ try {
4757
+ let r4 = await t2(e2);
4758
+ n2 = await r4.text();
4759
+ } catch {
4760
+ return null;
4761
+ }
4762
+ if (!n2) return null;
4763
+ let r3 = _e2(e2, n2);
4764
+ if (!r3 || !q(r3)) return null;
4765
+ try {
4766
+ let e3 = await t2(r3), n3 = await e3.json();
4767
+ return `sections` in n3 ? ye2(n3) : ve2(n3);
4768
+ } catch {
4769
+ return null;
4770
+ }
4771
+ };
4772
+ var Y = async (e2, t2 = true, n2) => {
4773
+ if (t2 && U2.has(e2)) {
4774
+ let t3 = U2.get(e2);
4775
+ if (t3 == null) return null;
4776
+ if (ge2(t3)) {
4777
+ let n3 = t3.deref();
4778
+ if (n3) return n3;
4779
+ U2.delete(e2);
4780
+ } else return t3;
4781
+ }
4782
+ if (t2 && W2.has(e2)) return W2.get(e2);
4783
+ let r3 = J(e2, n2);
4784
+ t2 && W2.set(e2, r3);
4785
+ let i2 = await r3;
4786
+ return t2 && W2.delete(e2), t2 && (i2 === null ? U2.set(e2, null) : U2.set(e2, H2 ? new WeakRef(i2) : i2)), i2;
4787
+ };
4788
+ var be2 = /^[a-zA-Z][a-zA-Z\d+\-.]*:/;
4789
+ var xe2 = [`rsc://`, `file:///`, `webpack://`, `node:`, `turbopack://`, `metro://`];
4790
+ var Se2 = `about://React/`;
4791
+ var Ce2 = [`<anonymous>`, `eval`, ``];
4792
+ var we2 = /\.(jsx|tsx|ts|js)$/;
4793
+ var Te2 = /(\.min|bundle|chunk|vendor|vendors|runtime|polyfill|polyfills)\.(js|mjs|cjs)$|(chunk|bundle|vendor|vendors|runtime|polyfill|polyfills|framework|app|main|index)[-_.][A-Za-z0-9_-]{4,}\.(js|mjs|cjs)$|[\da-f]{8,}\.(js|mjs|cjs)$|[-_.][\da-f]{20,}\.(js|mjs|cjs)$|\/dist\/|\/build\/|\/.next\/|\/out\/|\/node_modules\/|\.webpack\.|\.vite\.|\.turbopack\./i;
4794
+ var Ee2 = /^\?[\w~.\-]+(?:=[^&#]*)?(?:&[\w~.\-]+(?:=[^&#]*)?)*$/;
4795
+ var De2 = (e2) => e2._debugStack instanceof Error && typeof e2._debugStack?.stack == `string`;
4796
+ var Oe = (e2) => {
4797
+ let t2 = e2._debugSource;
4798
+ return t2 ? typeof t2 == `object` && !!t2 && `fileName` in t2 && typeof t2.fileName == `string` && `lineNumber` in t2 && typeof t2.lineNumber == `number` : false;
4799
+ };
4800
+ var ke2 = async (e2, t2 = true, n2) => {
4801
+ if (Oe(e2)) {
4802
+ let t3 = e2._debugSource;
4803
+ return t3 || null;
4804
+ }
4805
+ let r3 = X2(e2), i2 = await Z(r3, 1, t2, n2);
4806
+ return !i2 || i2.length === 0 ? null : i2[0];
4807
+ };
4808
+ var X2 = (e2) => De2(e2) ? O2(e2._debugStack.stack) : ce2(e2);
4809
+ var Z = async (e2, t2 = 1, n2 = true, r3) => {
4810
+ let i2 = M2(e2, { slice: t2 ?? 1 }), a3 = [];
4811
+ for (let e3 of i2) {
4812
+ if (!e3?.file) continue;
4813
+ let t3 = await Y(e3.file, n2, r3);
4814
+ if (t3 && typeof e3.line == `number` && typeof e3.col == `number`) {
4815
+ let n3 = K(t3, e3.line, e3.col);
4816
+ if (n3) {
4817
+ a3.push(n3);
4818
+ continue;
4819
+ }
4820
+ }
4821
+ a3.push({ fileName: e3.file, lineNumber: e3.line, columnNumber: e3.col, functionName: e3.function });
4822
+ }
4823
+ return a3;
4824
+ };
4825
+ var Q = (e2) => {
4826
+ if (!e2 || Ce2.includes(e2)) return ``;
4827
+ let t2 = e2;
4828
+ if (t2.startsWith(Se2)) {
4829
+ let e3 = t2.slice(Se2.length), n3 = e3.indexOf(`/`), r3 = e3.indexOf(`:`);
4830
+ t2 = n3 !== -1 && (r3 === -1 || n3 < r3) ? e3.slice(n3 + 1) : e3;
4831
+ }
4832
+ for (let e3 of xe2) if (t2.startsWith(e3)) {
4833
+ t2 = t2.slice(e3.length), e3 === `file:///` && (t2 = `/${t2.replace(/^\/+/, ``)}`);
4834
+ break;
4835
+ }
4836
+ if (be2.test(t2)) {
4837
+ let e3 = t2.match(be2);
4838
+ e3 && (t2 = t2.slice(e3[0].length));
4839
+ }
4840
+ let n2 = t2.indexOf(`?`);
4841
+ if (n2 !== -1) {
4842
+ let e3 = t2.slice(n2);
4843
+ Ee2.test(e3) && (t2 = t2.slice(0, n2));
4844
+ }
4845
+ return t2;
4846
+ };
4847
+ var je2 = (e2) => {
4848
+ let t2 = Q(e2);
4849
+ return !(!t2 || !we2.test(t2) || Te2.test(t2));
4850
+ };
4851
+
810
4852
  // src/utils/is-capitalized.ts
811
4853
  var isCapitalized = (value) => value.length > 0 && /^[A-Z]/.test(value);
812
4854
 
@@ -857,16 +4899,16 @@ var checkIsSourceComponentName = (name) => {
857
4899
  return true;
858
4900
  };
859
4901
  var getNearestComponentName = (element) => {
860
- if (!isInstrumentationActive()) return null;
4902
+ if (!Ee()) return null;
861
4903
  try {
862
- const fiber = getFiberFromHostInstance(element);
4904
+ const fiber = Pe(element);
863
4905
  if (!fiber) return null;
864
4906
  let foundComponentName = null;
865
- traverseFiber(
4907
+ N(
866
4908
  fiber,
867
4909
  (currentFiber) => {
868
- if (isCompositeFiber(currentFiber)) {
869
- const displayName = getDisplayName(currentFiber);
4910
+ if (pe(currentFiber)) {
4911
+ const displayName = Te(currentFiber);
870
4912
  if (displayName && checkIsSourceComponentName(displayName)) {
871
4913
  foundComponentName = displayName;
872
4914
  return true;
@@ -882,20 +4924,20 @@ var getNearestComponentName = (element) => {
882
4924
  }
883
4925
  };
884
4926
  var getStack = async (element) => {
885
- if (!isInstrumentationActive()) return [];
4927
+ if (!Ee()) return [];
886
4928
  try {
887
- const maybeFiber = getFiberFromHostInstance(element);
888
- if (!maybeFiber || !isFiber(maybeFiber)) return [];
889
- const fiber = getLatestFiber(maybeFiber);
4929
+ const maybeFiber = Pe(element);
4930
+ if (!maybeFiber || !me(maybeFiber)) return [];
4931
+ const fiber = De(maybeFiber);
890
4932
  const unresolvedStack = [];
891
- traverseFiber(
4933
+ N(
892
4934
  fiber,
893
4935
  (currentFiber) => {
894
- const displayName = isHostFiber(currentFiber) ? typeof currentFiber.type === "string" ? currentFiber.type : null : getDisplayName(currentFiber);
4936
+ const displayName = k(currentFiber) ? typeof currentFiber.type === "string" ? currentFiber.type : null : Te(currentFiber);
895
4937
  if (displayName && !checkIsInternalComponentName(displayName)) {
896
4938
  unresolvedStack.push({
897
4939
  name: displayName,
898
- sourcePromise: getSource(currentFiber)
4940
+ sourcePromise: ke2(currentFiber)
899
4941
  });
900
4942
  }
901
4943
  },
@@ -919,8 +4961,8 @@ var formatStack = (stack) => {
919
4961
  if (source.fileName.startsWith("about://React/Server")) {
920
4962
  return ` at ${name} (Server)`;
921
4963
  }
922
- if (!isSourceFile(source.fileName)) return ` at ${name}`;
923
- const framePart = ` at ${name} in ${normalizeFileName(source.fileName)}`;
4964
+ if (!je2(source.fileName)) return ` at ${name}`;
4965
+ const framePart = ` at ${name} in ${Q(source.fileName)}`;
924
4966
  if (isNextProject) {
925
4967
  return `${framePart}:${source.lineNumber}:${source.columnNumber}`;
926
4968
  }
@@ -1208,17 +5250,24 @@ var init = (rawOptions) => {
1208
5250
  hasInited = true;
1209
5251
  const logIntro = () => {
1210
5252
  try {
1211
- const version = "0.0.47";
5253
+ const version = "0.0.49";
1212
5254
  const logoSvg = `<svg width="294" height="294" viewBox="0 0 294 294" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_0_3)"><mask id="mask0_0_3" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="294" height="294"><path d="M294 0H0V294H294V0Z" fill="white"/></mask><g mask="url(#mask0_0_3)"><path d="M144.599 47.4924C169.712 27.3959 194.548 20.0265 212.132 30.1797C227.847 39.2555 234.881 60.3243 231.926 89.516C231.677 92.0069 231.328 94.5423 230.94 97.1058L228.526 110.14C228.517 110.136 228.505 110.132 228.495 110.127C228.486 110.165 228.479 110.203 228.468 110.24L216.255 105.741C216.256 105.736 216.248 105.728 216.248 105.723C207.915 103.125 199.421 101.075 190.82 99.5888L190.696 99.5588L173.526 97.2648L173.511 97.2631C173.492 97.236 173.467 97.2176 173.447 97.1905C163.862 96.2064 154.233 95.7166 144.599 95.7223C134.943 95.7162 125.295 96.219 115.693 97.2286C110.075 105.033 104.859 113.118 100.063 121.453C95.2426 129.798 90.8624 138.391 86.939 147.193C90.8624 155.996 95.2426 164.588 100.063 172.933C104.866 181.302 110.099 189.417 115.741 197.245C115.749 197.245 115.758 197.246 115.766 197.247L115.752 197.27L115.745 197.283L115.754 197.296L126.501 211.013L126.574 211.089C132.136 217.767 138.126 224.075 144.507 229.974L144.609 230.082L154.572 238.287C154.539 238.319 154.506 238.35 154.472 238.38C154.485 238.392 154.499 238.402 154.513 238.412L143.846 247.482L143.827 247.497C126.56 261.128 109.472 268.745 94.8019 268.745C88.5916 268.837 82.4687 267.272 77.0657 264.208C61.3496 255.132 54.3164 234.062 57.2707 204.871C57.528 202.307 57.8806 199.694 58.2904 197.054C28.3363 185.327 9.52301 167.51 9.52301 147.193C9.52301 129.042 24.2476 112.396 50.9901 100.375C53.3443 99.3163 55.7938 98.3058 58.2904 97.3526C57.8806 94.7023 57.528 92.0803 57.2707 89.516C54.3164 60.3243 61.3496 39.2555 77.0657 30.1797C94.6494 20.0265 119.486 27.3959 144.599 47.4924ZM70.6423 201.315C70.423 202.955 70.2229 204.566 70.0704 206.168C67.6686 229.567 72.5478 246.628 83.3615 252.988L83.5176 253.062C95.0399 259.717 114.015 254.426 134.782 238.38C125.298 229.45 116.594 219.725 108.764 209.314C95.8516 207.742 83.0977 205.066 70.6423 201.315ZM80.3534 163.438C77.34 171.677 74.8666 180.104 72.9484 188.664C81.1787 191.224 89.5657 193.247 98.0572 194.724L98.4618 194.813C95.2115 189.865 92.0191 184.66 88.9311 179.378C85.8433 174.097 83.003 168.768 80.3534 163.438ZM60.759 110.203C59.234 110.839 57.7378 111.475 56.27 112.11C34.7788 121.806 22.3891 134.591 22.3891 147.193C22.3891 160.493 36.4657 174.297 60.7494 184.26C63.7439 171.581 67.8124 159.182 72.9104 147.193C67.822 135.23 63.7566 122.855 60.759 110.203ZM98.4137 99.6404C89.8078 101.145 81.3075 103.206 72.9676 105.809C74.854 114.203 77.2741 122.468 80.2132 130.554L80.3059 130.939C82.9938 125.6 85.8049 120.338 88.8834 115.008C91.9618 109.679 95.1544 104.569 98.4137 99.6404ZM94.9258 38.5215C90.9331 38.4284 86.9866 39.3955 83.4891 41.3243C72.6291 47.6015 67.6975 64.5954 70.0424 87.9446L70.0416 88.2194C70.194 89.8208 70.3941 91.4325 70.6134 93.0624C83.0737 89.3364 95.8263 86.6703 108.736 85.0924C116.57 74.6779 125.28 64.9532 134.773 56.0249C119.877 44.5087 105.895 38.5215 94.9258 38.5215ZM205.737 41.3148C202.268 39.398 198.355 38.4308 194.394 38.5099L194.29 38.512C183.321 38.512 169.34 44.4991 154.444 56.0153C163.93 64.9374 172.634 74.6557 180.462 85.064C193.375 86.6345 206.128 89.3102 218.584 93.0624C218.812 91.4325 219.003 89.8118 219.165 88.2098C221.548 64.7099 216.65 47.6164 205.737 41.3148ZM144.552 64.3097C138.104 70.2614 132.054 76.6306 126.443 83.3765C132.39 82.995 138.426 82.8046 144.552 82.8046C150.727 82.8046 156.778 83.0143 162.707 83.3765C157.08 76.6293 151.015 70.2596 144.552 64.3097Z" fill="white"/><path d="M144.598 47.4924C169.712 27.3959 194.547 20.0265 212.131 30.1797C227.847 39.2555 234.88 60.3243 231.926 89.516C231.677 92.0069 231.327 94.5423 230.941 97.1058L228.526 110.14L228.496 110.127C228.487 110.165 228.478 110.203 228.469 110.24L216.255 105.741L216.249 105.723C207.916 103.125 199.42 101.075 190.82 99.5888L190.696 99.5588L173.525 97.2648L173.511 97.263C173.492 97.236 173.468 97.2176 173.447 97.1905C163.863 96.2064 154.234 95.7166 144.598 95.7223C134.943 95.7162 125.295 96.219 115.693 97.2286C110.075 105.033 104.859 113.118 100.063 121.453C95.2426 129.798 90.8622 138.391 86.939 147.193C90.8622 155.996 95.2426 164.588 100.063 172.933C104.866 181.302 110.099 189.417 115.741 197.245L115.766 197.247L115.752 197.27L115.745 197.283L115.754 197.296L126.501 211.013L126.574 211.089C132.136 217.767 138.126 224.075 144.506 229.974L144.61 230.082L154.572 238.287C154.539 238.319 154.506 238.35 154.473 238.38L154.512 238.412L143.847 247.482L143.827 247.497C126.56 261.13 109.472 268.745 94.8018 268.745C88.5915 268.837 82.4687 267.272 77.0657 264.208C61.3496 255.132 54.3162 234.062 57.2707 204.871C57.528 202.307 57.8806 199.694 58.2904 197.054C28.3362 185.327 9.52298 167.51 9.52298 147.193C9.52298 129.042 24.2476 112.396 50.9901 100.375C53.3443 99.3163 55.7938 98.3058 58.2904 97.3526C57.8806 94.7023 57.528 92.0803 57.2707 89.516C54.3162 60.3243 61.3496 39.2555 77.0657 30.1797C94.6493 20.0265 119.486 27.3959 144.598 47.4924ZM70.6422 201.315C70.423 202.955 70.2229 204.566 70.0704 206.168C67.6686 229.567 72.5478 246.628 83.3615 252.988L83.5175 253.062C95.0399 259.717 114.015 254.426 134.782 238.38C125.298 229.45 116.594 219.725 108.764 209.314C95.8515 207.742 83.0977 205.066 70.6422 201.315ZM80.3534 163.438C77.34 171.677 74.8666 180.104 72.9484 188.664C81.1786 191.224 89.5657 193.247 98.0572 194.724L98.4618 194.813C95.2115 189.865 92.0191 184.66 88.931 179.378C85.8433 174.097 83.003 168.768 80.3534 163.438ZM60.7589 110.203C59.234 110.839 57.7378 111.475 56.2699 112.11C34.7788 121.806 22.3891 134.591 22.3891 147.193C22.3891 160.493 36.4657 174.297 60.7494 184.26C63.7439 171.581 67.8124 159.182 72.9103 147.193C67.822 135.23 63.7566 122.855 60.7589 110.203ZM98.4137 99.6404C89.8078 101.145 81.3075 103.206 72.9676 105.809C74.8539 114.203 77.2741 122.468 80.2132 130.554L80.3059 130.939C82.9938 125.6 85.8049 120.338 88.8834 115.008C91.9618 109.679 95.1544 104.569 98.4137 99.6404ZM94.9258 38.5215C90.9331 38.4284 86.9866 39.3955 83.4891 41.3243C72.629 47.6015 67.6975 64.5954 70.0424 87.9446L70.0415 88.2194C70.194 89.8208 70.3941 91.4325 70.6134 93.0624C83.0737 89.3364 95.8262 86.6703 108.736 85.0924C116.57 74.6779 125.28 64.9532 134.772 56.0249C119.877 44.5087 105.895 38.5215 94.9258 38.5215ZM205.737 41.3148C202.268 39.398 198.355 38.4308 194.394 38.5099L194.291 38.512C183.321 38.512 169.34 44.4991 154.443 56.0153C163.929 64.9374 172.634 74.6557 180.462 85.064C193.374 86.6345 206.129 89.3102 218.584 93.0624C218.813 91.4325 219.003 89.8118 219.166 88.2098C221.548 64.7099 216.65 47.6164 205.737 41.3148ZM144.551 64.3097C138.103 70.2614 132.055 76.6306 126.443 83.3765C132.389 82.995 138.427 82.8046 144.551 82.8046C150.727 82.8046 156.779 83.0143 162.707 83.3765C157.079 76.6293 151.015 70.2596 144.551 64.3097Z" fill="#FF40E0"/></g><mask id="mask1_0_3" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="102" y="84" width="161" height="162"><path d="M235.282 84.827L102.261 112.259L129.693 245.28L262.714 217.848L235.282 84.827Z" fill="white"/></mask><g mask="url(#mask1_0_3)"><path d="M136.863 129.916L213.258 141.224C220.669 142.322 222.495 152.179 215.967 155.856L187.592 171.843L184.135 204.227C183.339 211.678 173.564 213.901 169.624 207.526L129.021 141.831C125.503 136.14 130.245 128.936 136.863 129.916Z" fill="#FF40E0" stroke="#FF40E0" stroke-width="0.817337" stroke-linecap="round" stroke-linejoin="round"/></g></g><defs><clipPath id="clip0_0_3"><rect width="294" height="294" fill="white"/></clipPath></defs></svg>`;
1213
5255
  const logoDataUri = `data:image/svg+xml;base64,${btoa(logoSvg)}`;
1214
5256
  console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
1215
5257
  https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid #d75fcb; padding: 4px 4px 4px 24px; border-radius: 4px; background-image: url("${logoDataUri}"); background-size: 16px 16px; background-repeat: no-repeat; background-position: 4px center; display: inline-block; margin-bottom: 4px;`, "");
1216
- fetch("https://www.react-grab.com/api/version").then((res) => res.text()).catch(() => null);
5258
+ if (navigator.onLine) {
5259
+ fetch("https://www.react-grab.com/api/version", {
5260
+ referrerPolicy: "origin",
5261
+ keepalive: true,
5262
+ priority: "low",
5263
+ cache: "no-store"
5264
+ }).then((res) => res.text()).catch(() => null);
5265
+ }
1217
5266
  } catch {
1218
5267
  }
1219
5268
  };
1220
5269
  logIntro();
1221
- return createRoot((dispose) => {
5270
+ return createRoot((dispose2) => {
1222
5271
  const [isHoldingKeys, setIsHoldingKeys] = createSignal(false);
1223
5272
  const [mouseX, setMouseX] = createSignal(OFFSCREEN_POSITION);
1224
5273
  const [mouseY, setMouseY] = createSignal(OFFSCREEN_POSITION);
@@ -1337,7 +5386,7 @@ ${context}
1337
5386
  const createCombinedTextContent = (elements) => elements.map((element) => extractElementTextContent(element).trim()).filter((textContent) => textContent.length > 0).join("\n\n");
1338
5387
  const tryCopyWithFallback = async (elements, extraPrompt) => {
1339
5388
  let didCopy = false;
1340
- const isReactProject = isInstrumentationActive();
5389
+ const isReactProject = Ee();
1341
5390
  try {
1342
5391
  const elementSnippetResults = await Promise.allSettled(elements.map(async (element) => {
1343
5392
  const htmlPreview = getHTMLPreview(element);
@@ -1619,6 +5668,8 @@ ${plainTextContentOnly}` : plainTextContentOnly;
1619
5668
  return;
1620
5669
  }
1621
5670
  if (event.code === "Enter" && isHoldingKeys() && !isInputMode()) {
5671
+ event.preventDefault();
5672
+ event.stopPropagation();
1622
5673
  setIsToggleMode(true);
1623
5674
  if (keydownSpamTimerId !== null) {
1624
5675
  window.clearTimeout(keydownSpamTimerId);
@@ -1645,7 +5696,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
1645
5696
  }, 200);
1646
5697
  return;
1647
5698
  }
1648
- if (event.repeat) return;
5699
+ if (isHoldingKeys() && event.repeat) return;
1649
5700
  if (holdTimerId !== null) {
1650
5701
  window.clearTimeout(holdTimerId);
1651
5702
  }
@@ -1788,7 +5839,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
1788
5839
  document.body.style.userSelect = "";
1789
5840
  document.body.style.cursor = "";
1790
5841
  });
1791
- const rendererRoot = mountRoot();
5842
+ const rendererRoot = mountRoot(styles_default);
1792
5843
  const selectionVisible = createMemo(() => isRendererActive() && !isDragging() && Boolean(targetElement()));
1793
5844
  const dragVisible = createMemo(() => isRendererActive() && isDraggingBeyondThreshold());
1794
5845
  const labelVariant = createMemo(() => isCopying() ? "processing" : "hover");
@@ -1889,7 +5940,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
1889
5940
  }
1890
5941
  },
1891
5942
  isActive: () => isActivated(),
1892
- dispose
5943
+ dispose: dispose2
1893
5944
  };
1894
5945
  });
1895
5946
  };
@@ -1898,5 +5949,67 @@ ${plainTextContentOnly}` : plainTextContentOnly;
1898
5949
  var globalApi = null;
1899
5950
  var getGlobalApi = () => globalApi;
1900
5951
  globalApi = init();
5952
+ /*! Bundled license information:
5953
+
5954
+ bippy/dist/rdt-hook-CrcWl4lP.js:
5955
+ (**
5956
+ * @license bippy
5957
+ *
5958
+ * Copyright (c) Aiden Bai
5959
+ *
5960
+ * This source code is licensed under the MIT license found in the
5961
+ * LICENSE file in the root directory of this source tree.
5962
+ *)
5963
+
5964
+ bippy/dist/install-hook-only-DtUPvEBg.js:
5965
+ (**
5966
+ * @license bippy
5967
+ *
5968
+ * Copyright (c) Aiden Bai
5969
+ *
5970
+ * This source code is licensed under the MIT license found in the
5971
+ * LICENSE file in the root directory of this source tree.
5972
+ *)
5973
+
5974
+ bippy/dist/core-D7_ABaNC.js:
5975
+ (**
5976
+ * @license bippy
5977
+ *
5978
+ * Copyright (c) Aiden Bai
5979
+ *
5980
+ * This source code is licensed under the MIT license found in the
5981
+ * LICENSE file in the root directory of this source tree.
5982
+ *)
5983
+
5984
+ bippy/dist/src-C_DvVIY-.js:
5985
+ (**
5986
+ * @license bippy
5987
+ *
5988
+ * Copyright (c) Aiden Bai
5989
+ *
5990
+ * This source code is licensed under the MIT license found in the
5991
+ * LICENSE file in the root directory of this source tree.
5992
+ *)
5993
+
5994
+ bippy/dist/index.js:
5995
+ (**
5996
+ * @license bippy
5997
+ *
5998
+ * Copyright (c) Aiden Bai
5999
+ *
6000
+ * This source code is licensed under the MIT license found in the
6001
+ * LICENSE file in the root directory of this source tree.
6002
+ *)
6003
+
6004
+ bippy/dist/source.js:
6005
+ (**
6006
+ * @license bippy
6007
+ *
6008
+ * Copyright (c) Aiden Bai
6009
+ *
6010
+ * This source code is licensed under the MIT license found in the
6011
+ * LICENSE file in the root directory of this source tree.
6012
+ *)
6013
+ */
1901
6014
 
1902
6015
  export { getGlobalApi, init, playCopySound };