react-grab 0.0.57 → 0.0.59

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.
@@ -22,6 +22,7 @@ var UNOWNED = {
22
22
  context: null,
23
23
  owner: null
24
24
  };
25
+ var NO_INIT = {};
25
26
  var Owner = null;
26
27
  var Transition = null;
27
28
  var ExternalSourceConfig = null;
@@ -61,6 +62,10 @@ function createSignal(value, options) {
61
62
  };
62
63
  return [readSignal.bind(s3), setter];
63
64
  }
65
+ function createComputed(fn, value, options) {
66
+ const c3 = createComputation(fn, value, true, STALE);
67
+ updateComputation(c3);
68
+ }
64
69
  function createRenderEffect(fn, value, options) {
65
70
  const c3 = createComputation(fn, value, false, STALE);
66
71
  updateComputation(c3);
@@ -80,6 +85,123 @@ function createMemo(fn, value, options) {
80
85
  updateComputation(c3);
81
86
  return readSignal.bind(c3);
82
87
  }
88
+ function isPromise(v2) {
89
+ return v2 && typeof v2 === "object" && "then" in v2;
90
+ }
91
+ function createResource(pSource, pFetcher, pOptions) {
92
+ let source;
93
+ let fetcher;
94
+ let options;
95
+ if (typeof pFetcher === "function") {
96
+ source = pSource;
97
+ fetcher = pFetcher;
98
+ options = {};
99
+ } else {
100
+ source = true;
101
+ fetcher = pSource;
102
+ options = pFetcher || {};
103
+ }
104
+ let pr = null, initP = NO_INIT, scheduled = false, resolved = "initialValue" in options, dynamic = typeof source === "function" && createMemo(source);
105
+ const contexts = /* @__PURE__ */ new Set(), [value, setValue] = (options.storage || createSignal)(options.initialValue), [error, setError] = createSignal(void 0), [track, trigger] = createSignal(void 0, {
106
+ equals: false
107
+ }), [state, setState] = createSignal(resolved ? "ready" : "unresolved");
108
+ function loadEnd(p3, v2, error2, key) {
109
+ if (pr === p3) {
110
+ pr = null;
111
+ key !== void 0 && (resolved = true);
112
+ if ((p3 === initP || v2 === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {
113
+ value: v2
114
+ }));
115
+ initP = NO_INIT;
116
+ completeLoad(v2, error2);
117
+ }
118
+ return v2;
119
+ }
120
+ function completeLoad(v2, err) {
121
+ runUpdates(() => {
122
+ if (err === void 0) setValue(() => v2);
123
+ setState(err !== void 0 ? "errored" : resolved ? "ready" : "unresolved");
124
+ setError(err);
125
+ for (const c3 of contexts.keys()) c3.decrement();
126
+ contexts.clear();
127
+ }, false);
128
+ }
129
+ function read() {
130
+ const c3 = SuspenseContext, v2 = value(), err = error();
131
+ if (err !== void 0 && !pr) throw err;
132
+ if (Listener && !Listener.user && c3) ;
133
+ return v2;
134
+ }
135
+ function load(refetching = true) {
136
+ if (refetching !== false && scheduled) return;
137
+ scheduled = false;
138
+ const lookup = dynamic ? dynamic() : source;
139
+ if (lookup == null || lookup === false) {
140
+ loadEnd(pr, untrack(value));
141
+ return;
142
+ }
143
+ let error2;
144
+ const p3 = initP !== NO_INIT ? initP : untrack(() => {
145
+ try {
146
+ return fetcher(lookup, {
147
+ value: value(),
148
+ refetching
149
+ });
150
+ } catch (fetcherError) {
151
+ error2 = fetcherError;
152
+ }
153
+ });
154
+ if (error2 !== void 0) {
155
+ loadEnd(pr, void 0, castError(error2), lookup);
156
+ return;
157
+ } else if (!isPromise(p3)) {
158
+ loadEnd(pr, p3, void 0, lookup);
159
+ return p3;
160
+ }
161
+ pr = p3;
162
+ if ("v" in p3) {
163
+ if (p3.s === 1) loadEnd(pr, p3.v, void 0, lookup);
164
+ else loadEnd(pr, void 0, castError(p3.v), lookup);
165
+ return p3;
166
+ }
167
+ scheduled = true;
168
+ queueMicrotask(() => scheduled = false);
169
+ runUpdates(() => {
170
+ setState(resolved ? "refreshing" : "pending");
171
+ trigger();
172
+ }, false);
173
+ return p3.then((v2) => loadEnd(p3, v2, void 0, lookup), (e2) => loadEnd(p3, void 0, castError(e2), lookup));
174
+ }
175
+ Object.defineProperties(read, {
176
+ state: {
177
+ get: () => state()
178
+ },
179
+ error: {
180
+ get: () => error()
181
+ },
182
+ loading: {
183
+ get() {
184
+ const s3 = state();
185
+ return s3 === "pending" || s3 === "refreshing";
186
+ }
187
+ },
188
+ latest: {
189
+ get() {
190
+ if (!resolved) return read();
191
+ const err = error();
192
+ if (err && !pr) throw err;
193
+ return value();
194
+ }
195
+ }
196
+ });
197
+ let owner = Owner;
198
+ if (dynamic) createComputed(() => (owner = Owner, load(false)));
199
+ else load(false);
200
+ return [read, {
201
+ refetch: (info) => runWithOwner(owner, () => load(info)),
202
+ mutate: setValue
203
+ }];
204
+ }
83
205
  function untrack(fn) {
84
206
  if (Listener === null) return fn();
85
207
  const listener = Listener;
@@ -114,6 +236,22 @@ function onCleanup(fn) {
114
236
  else Owner.cleanups.push(fn);
115
237
  return fn;
116
238
  }
239
+ function runWithOwner(o3, fn) {
240
+ const prev = Owner;
241
+ const prevListener = Listener;
242
+ Owner = o3;
243
+ Listener = null;
244
+ try {
245
+ return runUpdates(fn, true);
246
+ } catch (err) {
247
+ handleError(err);
248
+ } finally {
249
+ Owner = prev;
250
+ Listener = prevListener;
251
+ }
252
+ }
253
+ var [transPending, setTransPending] = /* @__PURE__ */ createSignal(false);
254
+ var SuspenseContext;
117
255
  function readSignal() {
118
256
  if (this.sources && (this.state)) {
119
257
  if ((this.state) === STALE) updateComputation(this);
@@ -355,7 +493,7 @@ function mapArray(list, mapFn, options = {}) {
355
493
  let items = [], mapped = [], disposers = [], len = 0, indexes = mapFn.length > 1 ? [] : null;
356
494
  onCleanup(() => dispose(disposers));
357
495
  return () => {
358
- let newItems = list() || [], newLen = newItems.length, i2, j2;
496
+ let newItems = list() || [], newLen = newItems.length, i2, j3;
359
497
  newItems[$TRACK];
360
498
  return untrack(() => {
361
499
  let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;
@@ -378,9 +516,9 @@ function mapArray(list, mapFn, options = {}) {
378
516
  }
379
517
  } else if (len === 0) {
380
518
  mapped = new Array(newLen);
381
- for (j2 = 0; j2 < newLen; j2++) {
382
- items[j2] = newItems[j2];
383
- mapped[j2] = createRoot(mapper);
519
+ for (j3 = 0; j3 < newLen; j3++) {
520
+ items[j3] = newItems[j3];
521
+ mapped[j3] = createRoot(mapper);
384
522
  }
385
523
  len = newLen;
386
524
  } else {
@@ -395,32 +533,32 @@ function mapArray(list, mapFn, options = {}) {
395
533
  }
396
534
  newIndices = /* @__PURE__ */ new Map();
397
535
  newIndicesNext = new Array(newEnd + 1);
398
- for (j2 = newEnd; j2 >= start; j2--) {
399
- item = newItems[j2];
536
+ for (j3 = newEnd; j3 >= start; j3--) {
537
+ item = newItems[j3];
400
538
  i2 = newIndices.get(item);
401
- newIndicesNext[j2] = i2 === void 0 ? -1 : i2;
402
- newIndices.set(item, j2);
539
+ newIndicesNext[j3] = i2 === void 0 ? -1 : i2;
540
+ newIndices.set(item, j3);
403
541
  }
404
542
  for (i2 = start; i2 <= end; i2++) {
405
543
  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);
544
+ j3 = newIndices.get(item);
545
+ if (j3 !== void 0 && j3 !== -1) {
546
+ temp[j3] = mapped[i2];
547
+ tempdisposers[j3] = disposers[i2];
548
+ indexes && (tempIndexes[j3] = indexes[i2]);
549
+ j3 = newIndicesNext[j3];
550
+ newIndices.set(item, j3);
413
551
  } else disposers[i2]();
414
552
  }
415
- for (j2 = start; j2 < newLen; j2++) {
416
- if (j2 in temp) {
417
- mapped[j2] = temp[j2];
418
- disposers[j2] = tempdisposers[j2];
553
+ for (j3 = start; j3 < newLen; j3++) {
554
+ if (j3 in temp) {
555
+ mapped[j3] = temp[j3];
556
+ disposers[j3] = tempdisposers[j3];
419
557
  if (indexes) {
420
- indexes[j2] = tempIndexes[j2];
421
- indexes[j2](j2);
558
+ indexes[j3] = tempIndexes[j3];
559
+ indexes[j3](j3);
422
560
  }
423
- } else mapped[j2] = createRoot(mapper);
561
+ } else mapped[j3] = createRoot(mapper);
424
562
  }
425
563
  mapped = mapped.slice(0, len = newLen);
426
564
  items = newItems.slice(0);
@@ -428,13 +566,13 @@ function mapArray(list, mapFn, options = {}) {
428
566
  return mapped;
429
567
  });
430
568
  function mapper(disposer) {
431
- disposers[j2] = disposer;
569
+ disposers[j3] = disposer;
432
570
  if (indexes) {
433
- const [s3, set] = createSignal(j2);
434
- indexes[j2] = set;
435
- return mapFn(newItems[j2], s3);
571
+ const [s3, set] = createSignal(j3);
572
+ indexes[j3] = set;
573
+ return mapFn(newItems[j3], s3);
436
574
  }
437
- return mapFn(newItems[j2]);
575
+ return mapFn(newItems[j3]);
438
576
  }
439
577
  };
440
578
  }
@@ -750,7 +888,7 @@ function cleanChildren(parent, current, marker, replacement) {
750
888
 
751
889
  // dist/styles.css
752
890
  var styles_default = `/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
753
- @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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-tracking: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;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@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-black:#000;--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--radius-xs:.125rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--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-purple:#d239c0;--color-label-tag-border:#730079;--color-label-gray-border:#b0b0b0;--color-label-success-bg:#d9ffe4;--color-label-success-border:#00bb69;--color-label-success-text:#006e3b;--color-label-muted:#767676}}@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}.top-0{top:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-2147483645{z-index:2147483645}.z-2147483646{z-index:2147483646}.z-2147483647{z-index:2147483647}.z-\\[2147483645\\]{z-index:2147483645}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-ml-\\[2px\\]{margin-left:-2px}.ml-1{margin-left:calc(var(--spacing)*1)}.box-border{box-sizing:border-box}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-0{height:calc(var(--spacing)*0)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-5\\.5{height:calc(var(--spacing)*5.5)}.h-\\[9px\\]{height:9px}.h-\\[18px\\]{height:18px}.h-fit{height:fit-content}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.w-0{width:calc(var(--spacing)*0)}.w-0\\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-\\[18px\\]{width:18px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-\\[2px\\]{gap:2px}.gap-\\[3px\\]{gap:3px}.gap-\\[5px\\]{gap:5px}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.rounded-\\[1\\.5px\\]{border-radius:1.5px}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[2px\\]{border-radius:2px}.rounded-\\[3px\\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-br-\\[3px\\]{border-bottom-right-radius:3px}.rounded-bl-\\[3px\\]{border-bottom-left-radius:3px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\\[0\\.5px\\]{border-style:var(--tw-border-style);border-width:.5px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.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-label-gray-border{border-color:var(--color-label-gray-border)}.border-label-success-border{border-color:var(--color-label-success-border)}.border-label-tag-border{border-color:var(--color-label-tag-border)}.border-white{border-color:var(--color-white)}.border-t-\\[\\#B6B6B6\\]{border-top-color:#b6b6b6}.bg-\\[\\#F2F2F2\\]{background-color:#f2f2f2}.bg-black{background-color:var(--color-black)}.bg-grab-pink{background-color:var(--color-grab-pink)}.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-label-success-bg{background-color:var(--color-label-success-bg)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.p-0{padding:calc(var(--spacing)*0)}.p-0\\.5{padding:calc(var(--spacing)*.5)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-\\[3px\\]{padding-inline:3px}.px-\\[5px\\]{padding-inline:5px}.py-0{padding-block:calc(var(--spacing)*0)}.py-\\[5px\\]{padding-block:5px}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing)*1)}.pb-1\\.5{padding-bottom:calc(var(--spacing)*1.5)}.align-middle{vertical-align:middle}.font-\\[ui-monospace\\,\\'SFMono-Regular\\'\\,\\'SF_Mono\\'\\,\\'Menlo\\'\\,\\'Consolas\\'\\,\\'Liberation_Mono\\'\\,monospace\\]{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[12px\\]{font-size:12px}.leading-3\\.5{--tw-leading:calc(var(--spacing)*3.5);line-height:calc(var(--spacing)*3.5)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\\[-0\\.04em\\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\\[-0\\.08em\\]{--tw-tracking:-.08em;letter-spacing:-.08em}.text-\\[\\#47004A\\]{color:#47004a}.text-black{color:var(--color-black)}.text-label-muted{color:var(--color-label-muted)}.text-label-success-text{color:var(--color-label-success-text)}.text-label-tag-border{color:var(--color-label-tag-border)}.text-white{color:var(--color-white)}.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,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.opacity-\\[0\\.99\\]{opacity:.99}.brightness-125{--tw-brightness:brightness(125%);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,)}.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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[width\\,height\\]{transition-property:width,height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;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))}.transition-none{transition-property:none}.duration-30{--tw-duration:30ms;transition-duration:30ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[transform\\,width\\,height\\]{will-change:transform,width,height}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,)var(--tw-contain-layout,)var(--tw-contain-paint,)var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.\\[font-synthesis\\:none\\]{font-synthesis:none}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:opacity-80:hover{opacity:.8}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.react-grab-shimmer{position:relative;overflow:hidden}.react-grab-shimmer:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#fff6 50%,#0000 100%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer;position:absolute;inset:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-tracking{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}@property --tw-contain-size{syntax:"*";inherits:false}@property --tw-contain-layout{syntax:"*";inherits:false}@property --tw-contain-paint{syntax:"*";inherits:false}@property --tw-contain-style{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes pulse{50%{opacity:.5}}`;
891
+ @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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--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-tracking: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;--tw-contain-size:initial;--tw-contain-layout:initial;--tw-contain-paint:initial;--tw-contain-style:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@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-black:#000;--color-white:#fff;--spacing:.25rem;--font-weight-medium:500;--radius-xs:.125rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--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-purple:#d239c0;--color-label-tag-border:#730079;--color-label-gray-border:#b0b0b0}}@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}.top-0{top:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.z-2147483645{z-index:2147483645}.z-2147483646{z-index:2147483646}.z-2147483647{z-index:2147483647}.z-\\[2147483645\\]{z-index:2147483645}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-ml-\\[2px\\]{margin-left:-2px}.ml-1{margin-left:calc(var(--spacing)*1)}.box-border{box-sizing:border-box}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-0{height:calc(var(--spacing)*0)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-5\\.5{height:calc(var(--spacing)*5.5)}.h-\\[9px\\]{height:9px}.h-\\[18px\\]{height:18px}.h-fit{height:fit-content}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-4{min-height:calc(var(--spacing)*4)}.w-0{width:calc(var(--spacing)*0)}.w-0\\.5{width:calc(var(--spacing)*.5)}.w-1{width:calc(var(--spacing)*1)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-\\[18px\\]{width:18px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-75{--tw-scale-x:75%;--tw-scale-y:75%;--tw-scale-z:75%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-crosshair{cursor:crosshair}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-\\[3px\\]{gap:3px}.gap-\\[5px\\]{gap:5px}.gap-px{gap:1px}.self-stretch{align-self:stretch}.overflow-hidden{overflow:hidden}.rounded-\\[1\\.5px\\]{border-radius:1.5px}.rounded-\\[1px\\]{border-radius:1px}.rounded-\\[3px\\]{border-radius:3px}.rounded-full{border-radius:3.40282e38px}.rounded-xs{border-radius:var(--radius-xs)}.rounded-t-none{border-top-left-radius:0;border-top-right-radius:0}.rounded-br-\\[3px\\]{border-bottom-right-radius:3px}.rounded-bl-\\[3px\\]{border-bottom-left-radius:3px}.border{border-style:var(--tw-border-style);border-width:1px}.border-\\[0\\.5px\\]{border-style:var(--tw-border-style);border-width:.5px}.\\[border-width\\:0\\.5px\\]{border-width:.5px}.\\[border-top-width\\:0\\.5px\\]{border-top-width:.5px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-\\[\\#001D0E\\]{border-color:#001d0e}.border-\\[\\#00553269\\]{border-color:#00553269}.border-\\[\\#A3FFCA\\]{border-color:#a3ffca}.border-\\[\\#B3B3B3\\]{border-color:#b3b3b3}.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-label-gray-border{border-color:var(--color-label-gray-border)}.border-label-tag-border{border-color:var(--color-label-tag-border)}.border-white{border-color:var(--color-white)}.border-t-\\[\\#B6B6B6\\]{border-top-color:#b6b6b6}.bg-\\[\\#A3FFCA\\]{background-color:#a3ffca}.bg-\\[\\#F2F2F2\\]{background-color:#f2f2f2}.bg-black{background-color:var(--color-black)}.bg-grab-pink{background-color:var(--color-grab-pink)}.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-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-cover{background-size:cover}.bg-center{background-position:50%}.p-0{padding:calc(var(--spacing)*0)}.p-0\\.5{padding:calc(var(--spacing)*.5)}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-\\[3px\\]{padding-inline:3px}.px-\\[5px\\]{padding-inline:5px}.py-0{padding-block:calc(var(--spacing)*0)}.py-1{padding-block:calc(var(--spacing)*1)}.py-\\[5px\\]{padding-block:5px}.py-px{padding-block:1px}.pt-1{padding-top:calc(var(--spacing)*1)}.pb-1\\.5{padding-bottom:calc(var(--spacing)*1.5)}.align-middle{vertical-align:middle}.font-\\[ui-monospace\\,\\'SFMono-Regular\\'\\,\\'SF_Mono\\'\\,\\'Menlo\\'\\,\\'Consolas\\'\\,\\'Liberation_Mono\\'\\,monospace\\]{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-\\[11\\.5px\\]{font-size:11.5px}.text-\\[12px\\]{font-size:12px}.leading-3\\.5{--tw-leading:calc(var(--spacing)*3.5);line-height:calc(var(--spacing)*3.5)}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.tracking-\\[-0\\.04em\\]{--tw-tracking:-.04em;letter-spacing:-.04em}.tracking-\\[-0\\.08em\\]{--tw-tracking:-.08em;letter-spacing:-.08em}.text-\\[\\#0C0C0C\\]{color:#0c0c0c}.text-\\[\\#00381F\\]{color:#00381f}.text-\\[\\#47004A\\]{color:#47004a}.text-\\[\\#767676\\]{color:#767676}.text-\\[\\#A3FFCA\\]{color:#a3ffca}.text-black{color:var(--color-black)}.text-label-tag-border{color:var(--color-label-tag-border)}.text-white{color:var(--color-white)}.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,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.opacity-\\[0\\.99\\]{opacity:.99}.\\[box-shadow\\:\\#00000033_0px_2px_3px\\]{box-shadow:0 2px 3px #0003}.brightness-125{--tw-brightness:brightness(125%);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,)}.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{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[width\\,height\\]{transition-property:width,height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;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))}.transition-none{transition-property:none}.duration-30{--tw-duration:30ms;transition-duration:30ms}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-\\[transform\\,width\\,height\\]{will-change:transform,width,height}.contain-layout{--tw-contain-layout:layout;contain:var(--tw-contain-size,)var(--tw-contain-layout,)var(--tw-contain-paint,)var(--tw-contain-style,)}.outline-none{--tw-outline-style:none;outline-style:none}.\\[font-synthesis\\:none\\]{font-synthesis:none}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:opacity-80:hover{opacity:.8}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.react-grab-shimmer{position:relative;overflow:hidden}.react-grab-shimmer:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,#0000 0%,#fff6 50%,#0000 100%) 0 0/200% 100%;animation:1.5s ease-in-out infinite shimmer;position:absolute;inset:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@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-tracking{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}@property --tw-contain-size{syntax:"*";inherits:false}@property --tw-contain-layout{syntax:"*";inherits:false}@property --tw-contain-paint{syntax:"*";inherits:false}@property --tw-contain-style{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@keyframes pulse{50%{opacity:.5}}`;
754
892
 
755
893
  // src/utils/is-keyboard-event-triggered-by-input.ts
756
894
  var FORM_TAGS_AND_ROLES = [
@@ -3595,33 +3733,12 @@ var Crosshair = (props) => {
3595
3733
  });
3596
3734
  };
3597
3735
 
3598
- // src/components/icon-checkmark.tsx
3599
- var _tmpl$3 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 9 9"fill=none><path d="M1 4.5L3.5 7L8 1.5"stroke=currentColor stroke-width=1.5 stroke-linecap=round stroke-linejoin=round>`);
3600
- var IconCheckmark = (props) => {
3601
- const size = () => props.size ?? 9;
3602
- return (() => {
3603
- var _el$ = _tmpl$3();
3604
- createRenderEffect((_p$) => {
3605
- var _v$ = size(), _v$2 = size(), _v$3 = props.class;
3606
- _v$ !== _p$.e && setAttribute(_el$, "width", _p$.e = _v$);
3607
- _v$2 !== _p$.t && setAttribute(_el$, "height", _p$.t = _v$2);
3608
- _v$3 !== _p$.a && setAttribute(_el$, "class", _p$.a = _v$3);
3609
- return _p$;
3610
- }, {
3611
- e: void 0,
3612
- t: void 0,
3613
- a: void 0
3614
- });
3615
- return _el$;
3616
- })();
3617
- };
3618
-
3619
3736
  // src/components/icon-cursor-simple.tsx
3620
- var _tmpl$4 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 12 12"fill=none><path fill-rule=evenodd clip-rule=evenodd d="M0.675576 0.0318497C0.491988 -0.0369956 0.285105 0.0078173 0.146461 0.146461C0.0078173 0.285105 -0.0369956 0.491988 0.0318497 0.675576L4.15685 11.6756C4.2337 11.8805 4.43492 12.0117 4.65345 11.9992C4.87197 11.9868 5.057 11.8336 5.11009 11.6213L6.41232 6.41232L11.6213 5.11009C11.8336 5.057 11.9868 4.87197 11.9992 4.65345C12.0117 4.43492 11.8805 4.2337 11.6756 4.15685L0.675576 0.0318497Z"fill=currentColor>`);
3737
+ var _tmpl$3 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 12 12"fill=none><path fill-rule=evenodd clip-rule=evenodd d="M0.675576 0.0318497C0.491988 -0.0369956 0.285105 0.0078173 0.146461 0.146461C0.0078173 0.285105 -0.0369956 0.491988 0.0318497 0.675576L4.15685 11.6756C4.2337 11.8805 4.43492 12.0117 4.65345 11.9992C4.87197 11.9868 5.057 11.8336 5.11009 11.6213L6.41232 6.41232L11.6213 5.11009C11.8336 5.057 11.9868 4.87197 11.9992 4.65345C12.0117 4.43492 11.8805 4.2337 11.6756 4.15685L0.675576 0.0318497Z"fill=currentColor>`);
3621
3738
  var IconCursorSimple = (props) => {
3622
3739
  const size = () => props.size ?? 9;
3623
3740
  return (() => {
3624
- var _el$ = _tmpl$4();
3741
+ var _el$ = _tmpl$3();
3625
3742
  createRenderEffect((_p$) => {
3626
3743
  var _v$ = size(), _v$2 = size(), _v$3 = props.class;
3627
3744
  _v$ !== _p$.e && setAttribute(_el$, "width", _p$.e = _v$);
@@ -3638,11 +3755,11 @@ var IconCursorSimple = (props) => {
3638
3755
  };
3639
3756
 
3640
3757
  // src/components/icon-open.tsx
3641
- var _tmpl$5 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><path d="M12 6H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6"></path><path d="M11 13l9-9"></path><path d="M15 4h5v5">`);
3758
+ var _tmpl$4 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-linecap=round stroke-linejoin=round stroke-width=2><path d="M12 6H6a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-6"></path><path d="M11 13l9-9"></path><path d="M15 4h5v5">`);
3642
3759
  var IconOpen = (props) => {
3643
3760
  const size = () => props.size ?? 12;
3644
3761
  return (() => {
3645
- var _el$ = _tmpl$5();
3762
+ var _el$ = _tmpl$4();
3646
3763
  createRenderEffect((_p$) => {
3647
3764
  var _v$ = size(), _v$2 = size(), _v$3 = props.class;
3648
3765
  _v$ !== _p$.e && setAttribute(_el$, "width", _p$.e = _v$);
@@ -3659,11 +3776,11 @@ var IconOpen = (props) => {
3659
3776
  };
3660
3777
 
3661
3778
  // src/components/icon-stop.tsx
3662
- var _tmpl$6 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 9 9"fill=none><rect x=1 y=1 width=7 height=7 rx=1 fill=currentColor>`);
3779
+ var _tmpl$5 = /* @__PURE__ */ template(`<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 9 9"fill=none><rect x=1 y=1 width=7 height=7 rx=1 fill=currentColor>`);
3663
3780
  var IconStop = (props) => {
3664
3781
  const size = () => props.size ?? 9;
3665
3782
  return (() => {
3666
- var _el$ = _tmpl$6();
3783
+ var _el$ = _tmpl$5();
3667
3784
  createRenderEffect((_p$) => {
3668
3785
  var _v$ = size(), _v$2 = size(), _v$3 = props.class;
3669
3786
  _v$ !== _p$.e && setAttribute(_el$, "width", _p$.e = _v$);
@@ -3680,22 +3797,27 @@ var IconStop = (props) => {
3680
3797
  };
3681
3798
 
3682
3799
  // src/components/selection-label.tsx
3683
- var _tmpl$7 = /* @__PURE__ */ template(`<div style="background-image:linear-gradient(in oklab 180deg, oklab(88.7% 0.086 -0.058) 0%, oklab(83.2% 0.132 -0.089) 100%)"><span>`);
3684
- var _tmpl$22 = /* @__PURE__ */ template(`<span>`);
3685
- var _tmpl$32 = /* @__PURE__ */ template(`<button>`);
3686
- var _tmpl$42 = /* @__PURE__ */ template(`<div>`);
3687
- var _tmpl$52 = /* @__PURE__ */ template(`<div class="flex items-center h-[18px] rounded-[1.5px] gap-[3px] px-[5px] py-px bg-label-success-bg border-[0.5px] border-solid border-label-success-border"><span class="text-label-success-text text-[12px] leading-4 font-medium tracking-[-0.04em]">`);
3688
- var _tmpl$62 = /* @__PURE__ */ template(`<div class="absolute w-0 h-0"style="border-left:8px solid transparent;border-right:8px solid transparent">`);
3689
- var _tmpl$72 = /* @__PURE__ */ template(`<div role=button><div class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Click to copy`);
3690
- var _tmpl$8 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col items-start px-2 py-[5px] w-auto h-fit rounded-bl-[3px] rounded-br-[3px] self-stretch bg-[#F2F2F2] [border-top-width:0.5px] border-t-solid border-t-[#B6B6B6] rounded-t-none">`);
3691
- var _tmpl$9 = /* @__PURE__ */ template(`<div class="flex items-center gap-[3px] pt-1 pb-1.5 px-1.5">`);
3692
- var _tmpl$0 = /* @__PURE__ */ template(`<button class="flex items-center justify-center w-[18px] h-[18px] rounded-full cursor-pointer bg-black border-none transition-opacity hover:opacity-80"title=Stop>`);
3693
- var _tmpl$1 = /* @__PURE__ */ template(`<div class="flex items-center gap-[3px] react-grab-shimmer rounded-[3px] pt-1 pb-1.5 px-1.5">`);
3694
- var _tmpl$10 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-1 w-fit h-fit"><span class="text-label-muted text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Press</span><div class="contain-layout shrink-0 flex flex-col items-start p-0.5 rounded-[1px] bg-white [border-width:0.5px] border-solid border-white w-fit h-fit"style="box-shadow:#0000008C 0px 0px 2px"><div class="w-2.5 h-[9px] shrink-0 opacity-[0.99] bg-cover bg-center"style=background-image:url(https://workers.paper.design/file-assets/01K8D51Q7E2ESJTN18XN2MT96X/01KBEJ7N5GQ0ZZ7K456R42AP4V.svg)></div></div><span class="text-label-muted text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">to edit`);
3695
- var _tmpl$11 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 w-fit h-fit pt-1 px-1.5"></div><div class="grid w-full transition-[grid-template-rows] duration-30 ease-out"><div class="overflow-hidden min-h-0">`);
3696
- var _tmpl$12 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea class="text-black text-[12px] leading-4 tracking-[-0.04em] font-medium bg-transparent border-none outline-none resize-none flex-1 p-0 m-0"placeholder="type to edit"rows=1 style=field-sizing:content;min-height:16px></textarea><button class="contain-layout shrink-0 flex flex-col items-start p-0.5 rounded-xs bg-white [border-width:0.5px] border-solid border-white w-fit h-fit cursor-pointer ml-1 transition-none hover:scale-105 hover:shadow-md"style="box-shadow:#0000008C 0px 0px 2px"><div style=background-image:url(https://workers.paper.design/file-assets/01K8D51Q7E2ESJTN18XN2MT96X/01KBEJ7N5GQ0ZZ7K456R42AP4V.svg)>`);
3697
- var _tmpl$13 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 px-1.5 w-fit h-fit">`);
3698
- var _tmpl$14 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events class="fixed font-sans antialiased transition-opacity duration-300 ease-out"style="z-index:2147483647;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.2)) drop-shadow(0 2px 4px rgba(0,0,0,0.25))"><div class="[font-synthesis:none] contain-layout flex items-center gap-[5px] rounded-[2px] bg-white antialiased w-fit h-fit p-0">`);
3800
+ var _tmpl$6 = /* @__PURE__ */ template(`<div style="background-image:linear-gradient(in oklab 180deg, oklab(88.7% 0.086 -0.058) 0%, oklab(83.2% 0.132 -0.089) 100%)"><span>`);
3801
+ var _tmpl$22 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center w-fit h-4 rounded-[1px] gap-1 px-[3px] [border-width:0.5px] border-solid border-[#B3B3B3] py-0"><span class="text-[#0C0C0C] text-[11.5px] leading-3.5 shrink-0 tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace] w-fit h-fit">`);
3802
+ var _tmpl$32 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center w-fit h-4 rounded-[1px] gap-1 px-[3px] [border-width:0.5px] border-solid border-[#00553269] py-0"><span class="text-[#00381F] text-[11.5px] leading-3.5 shrink-0 tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace] w-fit h-fit">`);
3803
+ var _tmpl$42 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center w-fit h-4 rounded-[1px] gap-1 px-[3px] [border-width:0.5px] border-solid border-white py-0"><span class="text-[#0C0C0C] text-[11.5px] leading-3.5 shrink-0 tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace] w-fit h-fit">&gt;`);
3804
+ var _tmpl$52 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center w-fit h-4 rounded-[1px] gap-1 px-[3px] [border-width:0.5px] border-solid border-[#A3FFCA] py-0"><span class="text-[#00381F] text-[11.5px] leading-3.5 shrink-0 tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace] w-fit h-fit">&gt;`);
3805
+ var _tmpl$62 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center w-fit h-4 rounded-[1px] gap-0.5 px-[3px] [border-width:0.5px] border-solid border-[#001D0E] py-0"style="background-image:linear-gradient(in oklab 180deg, oklab(39.6% -0.086 0.036) 0%, oklab(33.9% -0.074 0.031) 100%)"><span class="text-[#A3FFCA] text-[11.5px] leading-3.5 shrink-0 tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace] w-fit h-fit">`);
3806
+ var _tmpl$7 = /* @__PURE__ */ template(`<span>`);
3807
+ var _tmpl$8 = /* @__PURE__ */ template(`<button>`);
3808
+ var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
3809
+ var _tmpl$0 = /* @__PURE__ */ template(`<div class="absolute w-0 h-0"style="border-left:8px solid transparent;border-right:8px solid transparent">`);
3810
+ var _tmpl$1 = /* @__PURE__ */ template(`<div role=button><div class="text-black text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Copy`);
3811
+ var _tmpl$10 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col items-start px-2 py-[5px] w-auto h-fit rounded-bl-[3px] rounded-br-[3px] self-stretch bg-[#F2F2F2] [border-top-width:0.5px] border-t-solid border-t-[#B6B6B6] rounded-t-none">`);
3812
+ var _tmpl$11 = /* @__PURE__ */ template(`<div class="[font-synthesis:none] contain-layout shrink-0 flex items-center gap-1 rounded-xs bg-[#A3FFCA] antialiased w-fit h-fit py-1 px-1.5"><div class="contain-layout shrink-0 flex items-center px-0 py-px w-fit h-[18px] rounded-[1.5px] gap-[3px]"><div class="text-[#00381F] text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit"></div></div><div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
3813
+ var _tmpl$12 = /* @__PURE__ */ template(`<button class="flex items-center justify-center w-[18px] h-[18px] rounded-full cursor-pointer bg-black border-none transition-opacity hover:opacity-80"title=Stop>`);
3814
+ var _tmpl$13 = /* @__PURE__ */ template(`<div class="flex items-center gap-[3px] react-grab-shimmer rounded-[3px] pt-1 pb-1.5 px-1.5">`);
3815
+ var _tmpl$14 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-px w-fit h-fit">`);
3816
+ var _tmpl$15 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex items-center gap-1 w-fit h-fit"><span class="text-[#767676] text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">Press</span><div class="contain-layout shrink-0 flex flex-col items-start rounded-xs bg-white [border-width:0.5px] border-solid border-white p-0.5 w-fit h-fit"style="box-shadow:#0000008C 0px 0px 2px"><div class="w-2.5 h-[9px] shrink-0 opacity-[0.99] bg-cover bg-center"style=background-image:url(https://workers.paper.design/file-assets/01K8D51Q7E2ESJTN18XN2MT96X/01KBEJ7N5GQ0ZZ7K456R42AP4V.svg)></div></div><span class="text-[#767676] text-[12px] leading-4 shrink-0 tracking-[-0.04em] font-sans font-medium w-fit h-fit">to Edit`);
3817
+ var _tmpl$16 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 w-fit h-fit px-1.5"></div><div class="grid w-full transition-[grid-template-rows] duration-30 ease-out"><div class="overflow-hidden min-h-0">`);
3818
+ var _tmpl$17 = /* @__PURE__ */ template(`<div class="shrink-0 flex justify-between items-end w-full min-h-4"><textarea class="text-black text-[12px] leading-4 tracking-[-0.04em] font-medium bg-transparent border-none outline-none resize-none flex-1 p-0 m-0"placeholder="type to edit"rows=1 style=field-sizing:content;min-height:16px></textarea><button class="contain-layout shrink-0 flex flex-col items-start p-0.5 rounded-xs bg-white [border-width:0.5px] border-solid border-white w-fit h-fit cursor-pointer ml-1 transition-none hover:scale-105 hover:shadow-md"style="box-shadow:#0000008C 0px 0px 2px"><div style=background-image:url(https://workers.paper.design/file-assets/01K8D51Q7E2ESJTN18XN2MT96X/01KBEJ7N5GQ0ZZ7K456R42AP4V.svg)>`);
3819
+ var _tmpl$18 = /* @__PURE__ */ template(`<div class="contain-layout shrink-0 flex flex-col justify-center items-start gap-1 w-fit h-fit"><div class="contain-layout shrink-0 flex items-center gap-1 pt-1 px-1.5 w-fit h-fit">`);
3820
+ var _tmpl$19 = /* @__PURE__ */ template(`<div data-react-grab-ignore-events class="fixed font-sans antialiased transition-opacity duration-300 ease-out"style=z-index:2147483647><div class="[font-synthesis:none] contain-layout flex items-center gap-[5px] rounded-xs bg-white [box-shadow:#00000033_0px_2px_3px] antialiased w-fit h-fit p-0">`);
3699
3821
  var ARROW_HEIGHT = 8;
3700
3822
  var LABEL_GAP = 4;
3701
3823
  var IDLE_TIMEOUT_MS = 400;
@@ -3710,7 +3832,7 @@ var TagBadge = (props) => {
3710
3832
  props.onHoverChange?.(false);
3711
3833
  };
3712
3834
  return (() => {
3713
- var _el$ = _tmpl$7(), _el$2 = _el$.firstChild;
3835
+ var _el$ = _tmpl$6(), _el$2 = _el$.firstChild;
3714
3836
  addEventListener(_el$, "click", props.onClick);
3715
3837
  _el$.addEventListener("mouseleave", handleMouseLeave);
3716
3838
  _el$.addEventListener("mouseenter", handleMouseEnter);
@@ -3729,7 +3851,7 @@ var TagBadge = (props) => {
3729
3851
  }
3730
3852
  }), null);
3731
3853
  createRenderEffect((_p$) => {
3732
- var _v$ = cn("contain-layout flex items-center px-[3px] py-0 h-4 rounded-[1px] gap-[2px] [border-width:0.5px] border-solid border-label-tag-border", props.shrink && "shrink-0 w-fit", props.isClickable && "cursor-pointer"), _v$2 = cn("text-[#47004A] text-[11.5px] leading-3.5 shrink-0 w-fit h-fit", props.showMono ? "tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace]" : "tracking-[-0.04em] font-medium");
3854
+ var _v$ = cn("contain-layout flex items-center px-[3px] py-0 h-4 rounded-[1px] gap-0.5 [border-width:0.5px] border-solid border-label-tag-border", props.shrink && "shrink-0 w-fit", props.isClickable && "cursor-pointer"), _v$2 = cn("text-[#47004A] text-[11.5px] leading-3.5 shrink-0 w-fit h-fit", props.showMono ? "tracking-[-0.08em] font-[ui-monospace,'SFMono-Regular','SF_Mono','Menlo','Consolas','Liberation_Mono',monospace]" : "tracking-[-0.04em] font-medium");
3733
3855
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
3734
3856
  _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
3735
3857
  return _p$;
@@ -3740,67 +3862,78 @@ var TagBadge = (props) => {
3740
3862
  return _el$;
3741
3863
  })();
3742
3864
  };
3865
+ var ParentBadge = (props) => (() => {
3866
+ var _el$3 = _tmpl$22(), _el$4 = _el$3.firstChild;
3867
+ insert(_el$4, () => props.name);
3868
+ return _el$3;
3869
+ })();
3870
+ var CopiedParentBadge = (props) => (() => {
3871
+ var _el$5 = _tmpl$32(), _el$6 = _el$5.firstChild;
3872
+ insert(_el$6, () => props.name);
3873
+ return _el$5;
3874
+ })();
3875
+ var ChevronSeparator = () => _tmpl$42();
3876
+ var CopiedChevronSeparator = () => _tmpl$52();
3877
+ var CopiedTagBadge = (props) => (() => {
3878
+ var _el$9 = _tmpl$62(), _el$0 = _el$9.firstChild;
3879
+ insert(_el$0, () => props.tagName);
3880
+ return _el$9;
3881
+ })();
3743
3882
  var ActionPill = (props) => {
3744
3883
  const baseClass = cn("flex items-center h-[18px] rounded-[1.5px] gap-[3px] px-[5px] py-px border-[0.5px] border-solid border-label-gray-border", props.shrink && "shrink-0 w-fit", props.asButton && "cursor-pointer bg-transparent", props.dimmed && "opacity-50 hover:opacity-100 transition-opacity");
3745
3884
  const content = [memo(() => props.icon), (() => {
3746
- var _el$3 = _tmpl$22();
3747
- insert(_el$3, () => props.label);
3748
- createRenderEffect(() => className(_el$3, cn("text-black text-[12px] leading-4 font-medium tracking-[-0.04em]", props.shrink && "shrink-0 w-fit h-fit")));
3749
- return _el$3;
3885
+ var _el$1 = _tmpl$7();
3886
+ insert(_el$1, () => props.label);
3887
+ createRenderEffect(() => className(_el$1, cn("text-black text-[12px] leading-4 font-medium tracking-[-0.04em]", props.shrink && "shrink-0 w-fit h-fit")));
3888
+ return _el$1;
3750
3889
  })()];
3751
3890
  return props.asButton ? (() => {
3752
- var _el$4 = _tmpl$32();
3753
- addEventListener(_el$4, "click", props.onClick);
3754
- className(_el$4, baseClass);
3755
- insert(_el$4, content);
3756
- return _el$4;
3891
+ var _el$10 = _tmpl$8();
3892
+ addEventListener(_el$10, "click", props.onClick);
3893
+ className(_el$10, baseClass);
3894
+ insert(_el$10, content);
3895
+ return _el$10;
3757
3896
  })() : (() => {
3758
- var _el$5 = _tmpl$42();
3759
- addEventListener(_el$5, "click", props.onClick);
3760
- className(_el$5, baseClass);
3761
- insert(_el$5, content);
3762
- createRenderEffect(() => setAttribute(_el$5, "role", props.onClick ? "button" : void 0));
3763
- return _el$5;
3897
+ var _el$11 = _tmpl$9();
3898
+ addEventListener(_el$11, "click", props.onClick);
3899
+ className(_el$11, baseClass);
3900
+ insert(_el$11, content);
3901
+ createRenderEffect(() => setAttribute(_el$11, "role", props.onClick ? "button" : void 0));
3902
+ return _el$11;
3903
+ })();
3904
+ };
3905
+ var Arrow = (props) => {
3906
+ const arrowColor = () => props.color ?? "white";
3907
+ return (() => {
3908
+ var _el$12 = _tmpl$0();
3909
+ createRenderEffect((_$p) => style(_el$12, {
3910
+ left: `${props.leftPx}px`,
3911
+ ...props.position === "bottom" ? {
3912
+ top: "0",
3913
+ transform: "translateX(-50%) translateY(-100%)"
3914
+ } : {
3915
+ bottom: "0",
3916
+ transform: "translateX(-50%) translateY(100%)"
3917
+ },
3918
+ ...props.position === "bottom" ? {
3919
+ "border-bottom": `8px solid ${arrowColor()}`
3920
+ } : {
3921
+ "border-top": `8px solid ${arrowColor()}`
3922
+ }
3923
+ }, _$p));
3924
+ return _el$12;
3764
3925
  })();
3765
3926
  };
3766
- var SuccessPill = (props) => (() => {
3767
- var _el$6 = _tmpl$52(), _el$7 = _el$6.firstChild;
3768
- insert(_el$6, createComponent(IconCheckmark, {
3769
- size: 9,
3770
- "class": "text-label-success-text shrink-0"
3771
- }), _el$7);
3772
- insert(_el$7, () => props.hasAgent ? "Completed" : "Copied");
3773
- return _el$6;
3774
- })();
3775
- var Arrow = (props) => (() => {
3776
- var _el$8 = _tmpl$62();
3777
- createRenderEffect((_$p) => style(_el$8, {
3778
- left: `${props.leftPx}px`,
3779
- ...props.position === "bottom" ? {
3780
- top: "0",
3781
- transform: "translateX(-50%) translateY(-100%)"
3782
- } : {
3783
- bottom: "0",
3784
- transform: "translateX(-50%) translateY(100%)"
3785
- },
3786
- ...props.position === "bottom" ? {
3787
- "border-bottom": "8px solid white"
3788
- } : {
3789
- "border-top": "8px solid white"
3790
- }
3791
- }, _$p));
3792
- return _el$8;
3793
- })();
3794
3927
  var ClickToCopyPill = (props) => (() => {
3795
- var _el$9 = _tmpl$72();
3796
- addEventListener(_el$9, "click", props.onClick);
3797
- createRenderEffect(() => className(_el$9, cn("contain-layout shrink-0 flex items-center px-0 py-px w-fit h-[18px] rounded-[1.5px] gap-[3px]", props.asButton && "cursor-pointer", props.dimmed && "opacity-50 hover:opacity-100 transition-opacity")));
3798
- return _el$9;
3928
+ var _el$13 = _tmpl$1();
3929
+ addEventListener(_el$13, "click", props.onClick);
3930
+ createRenderEffect(() => className(_el$13, cn("contain-layout shrink-0 flex items-center px-0 py-px w-fit h-[18px] rounded-[1.5px] gap-[3px]", props.asButton && "cursor-pointer", props.dimmed && "opacity-50 hover:opacity-100 transition-opacity")));
3931
+ return _el$13;
3799
3932
  })();
3800
3933
  var BottomSection = (props) => (() => {
3801
- var _el$0 = _tmpl$8();
3802
- insert(_el$0, () => props.children);
3803
- return _el$0;
3934
+ var _el$14 = _tmpl$10();
3935
+ insert(_el$14, () => props.children);
3936
+ return _el$14;
3804
3937
  })();
3805
3938
  var SelectionLabel = (props) => {
3806
3939
  let containerRef;
@@ -3957,52 +4090,56 @@ var SelectionLabel = (props) => {
3957
4090
  return memo(() => props.visible !== false)() && props.selectionBounds;
3958
4091
  },
3959
4092
  get children() {
3960
- var _el$1 = _tmpl$14(), _el$10 = _el$1.firstChild;
3961
- _el$1.$$click = stopPropagation;
3962
- _el$1.$$mousedown = stopPropagation;
4093
+ var _el$15 = _tmpl$19(), _el$20 = _el$15.firstChild;
4094
+ _el$15.$$click = stopPropagation;
4095
+ _el$15.$$mousedown = stopPropagation;
3963
4096
  var _ref$ = containerRef;
3964
- typeof _ref$ === "function" ? use(_ref$, _el$1) : containerRef = _el$1;
3965
- insert(_el$1, createComponent(Arrow, {
4097
+ typeof _ref$ === "function" ? use(_ref$, _el$15) : containerRef = _el$15;
4098
+ insert(_el$15, createComponent(Arrow, {
3966
4099
  get position() {
3967
4100
  return arrowPosition();
3968
4101
  },
3969
4102
  get leftPx() {
3970
4103
  return computedPosition().arrowLeft;
4104
+ },
4105
+ get color() {
4106
+ return props.status === "copied" || props.status === "fading" ? "#A3FFCA" : void 0;
3971
4107
  }
3972
- }), _el$10);
3973
- insert(_el$10, createComponent(Show, {
4108
+ }), _el$20);
4109
+ insert(_el$15, createComponent(Show, {
3974
4110
  get when() {
3975
4111
  return props.status === "copied" || props.status === "fading";
3976
4112
  },
3977
4113
  get children() {
3978
- var _el$11 = _tmpl$9();
3979
- insert(_el$11, createComponent(TagBadge, {
3980
- get tagName() {
3981
- return tagDisplay();
3982
- },
3983
- get isClickable() {
3984
- return isTagClickable();
4114
+ var _el$16 = _tmpl$11(), _el$17 = _el$16.firstChild, _el$18 = _el$17.firstChild, _el$19 = _el$17.nextSibling;
4115
+ insert(_el$18, () => props.hasAgent ? "Completed" : "Copied");
4116
+ insert(_el$19, createComponent(Show, {
4117
+ get when() {
4118
+ return props.componentName;
3985
4119
  },
3986
- onClick: handleTagClick,
3987
- onHoverChange: handleTagHoverChange,
3988
- showMono: true,
3989
- shrink: true
4120
+ get children() {
4121
+ return [createComponent(CopiedParentBadge, {
4122
+ get name() {
4123
+ return props.componentName;
4124
+ }
4125
+ }), createComponent(CopiedChevronSeparator, {})];
4126
+ }
3990
4127
  }), null);
3991
- insert(_el$11, createComponent(SuccessPill, {
3992
- get hasAgent() {
3993
- return props.hasAgent;
4128
+ insert(_el$19, createComponent(CopiedTagBadge, {
4129
+ get tagName() {
4130
+ return tagDisplay();
3994
4131
  }
3995
4132
  }), null);
3996
- return _el$11;
4133
+ return _el$16;
3997
4134
  }
3998
- }), null);
3999
- insert(_el$10, createComponent(Show, {
4135
+ }), _el$20);
4136
+ insert(_el$20, createComponent(Show, {
4000
4137
  get when() {
4001
4138
  return props.status === "copying";
4002
4139
  },
4003
4140
  get children() {
4004
- var _el$12 = _tmpl$1();
4005
- insert(_el$12, createComponent(TagBadge, {
4141
+ var _el$21 = _tmpl$13();
4142
+ insert(_el$21, createComponent(TagBadge, {
4006
4143
  get tagName() {
4007
4144
  return tagDisplay();
4008
4145
  },
@@ -4014,7 +4151,7 @@ var SelectionLabel = (props) => {
4014
4151
  showMono: true,
4015
4152
  shrink: true
4016
4153
  }), null);
4017
- insert(_el$12, createComponent(ActionPill, {
4154
+ insert(_el$21, createComponent(ActionPill, {
4018
4155
  get icon() {
4019
4156
  return createComponent(IconCursorSimple, {
4020
4157
  size: 9,
@@ -4025,126 +4162,197 @@ var SelectionLabel = (props) => {
4025
4162
  return props.statusText ?? "Grabbing\u2026";
4026
4163
  }
4027
4164
  }), null);
4028
- insert(_el$12, createComponent(Show, {
4165
+ insert(_el$21, createComponent(Show, {
4029
4166
  get when() {
4030
4167
  return memo(() => !!props.hasAgent)() && props.onAbort;
4031
4168
  },
4032
4169
  get children() {
4033
- var _el$13 = _tmpl$0();
4034
- _el$13.$$click = (event) => {
4170
+ var _el$22 = _tmpl$12();
4171
+ _el$22.$$click = (event) => {
4035
4172
  event.preventDefault();
4036
4173
  event.stopPropagation();
4037
4174
  event.stopImmediatePropagation();
4038
4175
  props.onAbort?.();
4039
4176
  };
4040
- _el$13.$$mousedown = (event) => {
4177
+ _el$22.$$mousedown = (event) => {
4041
4178
  event.preventDefault();
4042
4179
  event.stopPropagation();
4043
4180
  event.stopImmediatePropagation();
4044
4181
  };
4045
- insert(_el$13, createComponent(IconStop, {
4182
+ insert(_el$22, createComponent(IconStop, {
4046
4183
  size: 8,
4047
4184
  "class": "text-white"
4048
4185
  }));
4049
- return _el$13;
4186
+ return _el$22;
4050
4187
  }
4051
4188
  }), null);
4052
- return _el$12;
4189
+ return _el$21;
4053
4190
  }
4054
4191
  }), null);
4055
- insert(_el$10, createComponent(Show, {
4192
+ insert(_el$20, createComponent(Show, {
4056
4193
  get when() {
4057
4194
  return memo(() => !!isNotProcessing())() && !props.isInputExpanded;
4058
4195
  },
4059
4196
  get children() {
4060
- var _el$14 = _tmpl$11(), _el$15 = _el$14.firstChild, _el$16 = _el$15.nextSibling, _el$17 = _el$16.firstChild;
4061
- insert(_el$15, createComponent(ClickToCopyPill, {
4197
+ var _el$23 = _tmpl$16(), _el$24 = _el$23.firstChild, _el$26 = _el$24.nextSibling, _el$27 = _el$26.firstChild;
4198
+ insert(_el$24, createComponent(ClickToCopyPill, {
4062
4199
  onClick: handleSubmit,
4063
4200
  shrink: true
4064
4201
  }), null);
4065
- insert(_el$15, createComponent(TagBadge, {
4066
- get tagName() {
4067
- return tagDisplay();
4202
+ insert(_el$24, createComponent(Show, {
4203
+ get when() {
4204
+ return props.componentName;
4068
4205
  },
4069
- get isClickable() {
4070
- return isTagClickable();
4206
+ get children() {
4207
+ var _el$25 = _tmpl$14();
4208
+ insert(_el$25, createComponent(ParentBadge, {
4209
+ get name() {
4210
+ return props.componentName;
4211
+ }
4212
+ }), null);
4213
+ insert(_el$25, createComponent(ChevronSeparator, {}), null);
4214
+ insert(_el$25, createComponent(TagBadge, {
4215
+ get tagName() {
4216
+ return tagDisplay();
4217
+ },
4218
+ get isClickable() {
4219
+ return isTagClickable();
4220
+ },
4221
+ onClick: handleTagClick,
4222
+ onHoverChange: handleTagHoverChange,
4223
+ showMono: true,
4224
+ shrink: true
4225
+ }), null);
4226
+ return _el$25;
4227
+ }
4228
+ }), null);
4229
+ insert(_el$24, createComponent(Show, {
4230
+ get when() {
4231
+ return !props.componentName;
4071
4232
  },
4072
- onClick: handleTagClick,
4073
- onHoverChange: handleTagHoverChange,
4074
- showMono: true,
4075
- shrink: true
4233
+ get children() {
4234
+ return createComponent(TagBadge, {
4235
+ get tagName() {
4236
+ return tagDisplay();
4237
+ },
4238
+ get isClickable() {
4239
+ return isTagClickable();
4240
+ },
4241
+ onClick: handleTagClick,
4242
+ onHoverChange: handleTagHoverChange,
4243
+ showMono: true,
4244
+ shrink: true
4245
+ });
4246
+ }
4076
4247
  }), null);
4077
- insert(_el$17, createComponent(BottomSection, {
4248
+ insert(_el$27, createComponent(BottomSection, {
4078
4249
  get children() {
4079
- var _el$18 = _tmpl$10(), _el$19 = _el$18.firstChild, _el$20 = _el$19.nextSibling; _el$20.firstChild;
4080
- return _el$18;
4250
+ var _el$28 = _tmpl$15(), _el$29 = _el$28.firstChild, _el$30 = _el$29.nextSibling; _el$30.firstChild;
4251
+ return _el$28;
4081
4252
  }
4082
4253
  }));
4083
- createRenderEffect((_$p) => setStyleProperty(_el$16, "grid-template-rows", isIdle() ? "1fr" : "0fr"));
4084
- return _el$14;
4254
+ createRenderEffect((_$p) => setStyleProperty(_el$26, "grid-template-rows", isIdle() ? "1fr" : "0fr"));
4255
+ return _el$23;
4085
4256
  }
4086
4257
  }), null);
4087
- insert(_el$10, createComponent(Show, {
4258
+ insert(_el$20, createComponent(Show, {
4088
4259
  get when() {
4089
4260
  return memo(() => !!isNotProcessing())() && props.isInputExpanded;
4090
4261
  },
4091
4262
  get children() {
4092
- var _el$22 = _tmpl$13(), _el$23 = _el$22.firstChild;
4093
- insert(_el$23, createComponent(ClickToCopyPill, {
4263
+ var _el$32 = _tmpl$18(), _el$33 = _el$32.firstChild;
4264
+ insert(_el$33, createComponent(ClickToCopyPill, {
4094
4265
  onClick: handleSubmit,
4095
4266
  dimmed: true,
4096
4267
  shrink: true
4097
4268
  }), null);
4098
- insert(_el$23, createComponent(TagBadge, {
4099
- get tagName() {
4100
- return tagDisplay();
4269
+ insert(_el$33, createComponent(Show, {
4270
+ get when() {
4271
+ return props.componentName;
4101
4272
  },
4102
- get isClickable() {
4103
- return isTagClickable();
4273
+ get children() {
4274
+ var _el$34 = _tmpl$14();
4275
+ insert(_el$34, createComponent(ParentBadge, {
4276
+ get name() {
4277
+ return props.componentName;
4278
+ }
4279
+ }), null);
4280
+ insert(_el$34, createComponent(ChevronSeparator, {}), null);
4281
+ insert(_el$34, createComponent(TagBadge, {
4282
+ get tagName() {
4283
+ return tagDisplay();
4284
+ },
4285
+ get isClickable() {
4286
+ return isTagClickable();
4287
+ },
4288
+ onClick: handleTagClick,
4289
+ onHoverChange: handleTagHoverChange,
4290
+ showMono: true,
4291
+ shrink: true,
4292
+ forceShowIcon: true
4293
+ }), null);
4294
+ return _el$34;
4295
+ }
4296
+ }), null);
4297
+ insert(_el$33, createComponent(Show, {
4298
+ get when() {
4299
+ return !props.componentName;
4104
4300
  },
4105
- onClick: handleTagClick,
4106
- onHoverChange: handleTagHoverChange,
4107
- showMono: true,
4108
- shrink: true,
4109
- forceShowIcon: true
4301
+ get children() {
4302
+ return createComponent(TagBadge, {
4303
+ get tagName() {
4304
+ return tagDisplay();
4305
+ },
4306
+ get isClickable() {
4307
+ return isTagClickable();
4308
+ },
4309
+ onClick: handleTagClick,
4310
+ onHoverChange: handleTagHoverChange,
4311
+ showMono: true,
4312
+ shrink: true,
4313
+ forceShowIcon: true
4314
+ });
4315
+ }
4110
4316
  }), null);
4111
- insert(_el$22, createComponent(BottomSection, {
4317
+ insert(_el$32, createComponent(BottomSection, {
4112
4318
  get children() {
4113
- var _el$24 = _tmpl$12(), _el$25 = _el$24.firstChild, _el$26 = _el$25.nextSibling, _el$27 = _el$26.firstChild;
4114
- _el$25.$$keydown = handleKeyDown;
4115
- _el$25.$$input = handleInput;
4319
+ var _el$35 = _tmpl$17(), _el$36 = _el$35.firstChild, _el$37 = _el$36.nextSibling, _el$38 = _el$37.firstChild;
4320
+ _el$36.$$keydown = handleKeyDown;
4321
+ _el$36.$$input = handleInput;
4116
4322
  var _ref$2 = inputRef;
4117
- typeof _ref$2 === "function" ? use(_ref$2, _el$25) : inputRef = _el$25;
4118
- _el$26.$$click = handleSubmit;
4119
- createRenderEffect(() => className(_el$27, cn("w-2.5 h-[9px] shrink-0 bg-cover bg-center transition-opacity duration-100", props.inputValue ? "opacity-[0.99]" : "opacity-50")));
4120
- createRenderEffect(() => _el$25.value = props.inputValue ?? "");
4121
- return _el$24;
4323
+ typeof _ref$2 === "function" ? use(_ref$2, _el$36) : inputRef = _el$36;
4324
+ _el$37.$$click = handleSubmit;
4325
+ createRenderEffect(() => className(_el$38, cn("w-2.5 h-[9px] shrink-0 bg-cover bg-center transition-opacity duration-100", props.inputValue ? "opacity-[0.99]" : "opacity-50")));
4326
+ createRenderEffect(() => _el$36.value = props.inputValue ?? "");
4327
+ return _el$35;
4122
4328
  }
4123
4329
  }), null);
4124
- return _el$22;
4330
+ return _el$32;
4125
4331
  }
4126
4332
  }), null);
4127
4333
  createRenderEffect((_p$) => {
4128
- var _v$3 = `${computedPosition().top}px`, _v$4 = `${computedPosition().left}px`, _v$5 = props.visible ? "auto" : "none", _v$6 = props.status === "fading" ? 0 : 1;
4129
- _v$3 !== _p$.e && setStyleProperty(_el$1, "top", _p$.e = _v$3);
4130
- _v$4 !== _p$.t && setStyleProperty(_el$1, "left", _p$.t = _v$4);
4131
- _v$5 !== _p$.a && setStyleProperty(_el$1, "pointer-events", _p$.a = _v$5);
4132
- _v$6 !== _p$.o && setStyleProperty(_el$1, "opacity", _p$.o = _v$6);
4334
+ var _v$3 = `${computedPosition().top}px`, _v$4 = `${computedPosition().left}px`, _v$5 = props.visible ? "auto" : "none", _v$6 = props.status === "fading" ? 0 : 1, _v$7 = props.status === "copied" || props.status === "fading" ? "none" : void 0;
4335
+ _v$3 !== _p$.e && setStyleProperty(_el$15, "top", _p$.e = _v$3);
4336
+ _v$4 !== _p$.t && setStyleProperty(_el$15, "left", _p$.t = _v$4);
4337
+ _v$5 !== _p$.a && setStyleProperty(_el$15, "pointer-events", _p$.a = _v$5);
4338
+ _v$6 !== _p$.o && setStyleProperty(_el$15, "opacity", _p$.o = _v$6);
4339
+ _v$7 !== _p$.i && setStyleProperty(_el$20, "display", _p$.i = _v$7);
4133
4340
  return _p$;
4134
4341
  }, {
4135
4342
  e: void 0,
4136
4343
  t: void 0,
4137
4344
  a: void 0,
4138
- o: void 0
4345
+ o: void 0,
4346
+ i: void 0
4139
4347
  });
4140
- return _el$1;
4348
+ return _el$15;
4141
4349
  }
4142
4350
  });
4143
4351
  };
4144
4352
  delegateEvents(["click", "mousedown", "input", "keydown"]);
4145
4353
 
4146
4354
  // src/components/selection-cursor.tsx
4147
- var _tmpl$15 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4355
+ var _tmpl$20 = /* @__PURE__ */ template(`<div class="fixed z-2147483647"><button data-react-grab-selection-cursor>`);
4148
4356
  var SelectionCursor = (props) => {
4149
4357
  const [isHovered, setIsHovered] = createSignal(false);
4150
4358
  const [debouncedVisible, setDebouncedVisible] = createSignal(false);
@@ -4181,7 +4389,7 @@ var SelectionCursor = (props) => {
4181
4389
  });
4182
4390
  }
4183
4391
  }), (() => {
4184
- var _el$ = _tmpl$15(), _el$2 = _el$.firstChild;
4392
+ var _el$ = _tmpl$20(), _el$2 = _el$.firstChild;
4185
4393
  _el$.addEventListener("mouseleave", () => setIsHovered(false));
4186
4394
  _el$.addEventListener("mouseenter", () => setIsHovered(true));
4187
4395
  _el$2.$$click = handleClick;
@@ -4309,6 +4517,9 @@ var ReactGrabRenderer = (props) => {
4309
4517
  get tagName() {
4310
4518
  return session.tagName;
4311
4519
  },
4520
+ get componentName() {
4521
+ return session.componentName;
4522
+ },
4312
4523
  get selectionBounds() {
4313
4524
  return session.selectionBounds;
4314
4525
  },
@@ -4331,6 +4542,9 @@ var ReactGrabRenderer = (props) => {
4331
4542
  get tagName() {
4332
4543
  return props.selectionTagName;
4333
4544
  },
4545
+ get componentName() {
4546
+ return props.selectionComponentName;
4547
+ },
4334
4548
  get selectionBounds() {
4335
4549
  return props.selectionBounds;
4336
4550
  },
@@ -4383,6 +4597,9 @@ var ReactGrabRenderer = (props) => {
4383
4597
  get tagName() {
4384
4598
  return instance.tagName;
4385
4599
  },
4600
+ get componentName() {
4601
+ return instance.componentName;
4602
+ },
4386
4603
  get selectionBounds() {
4387
4604
  return instance.bounds;
4388
4605
  },
@@ -4426,8 +4643,8 @@ var ReactGrabRenderer = (props) => {
4426
4643
  })];
4427
4644
  };
4428
4645
 
4429
- // ../../node_modules/.pnpm/bippy@0.5.17_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/rdt-hook-Ds2lt3Ph.js
4430
- var e = `0.5.17`;
4646
+ // ../../node_modules/.pnpm/bippy@0.5.21_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/rdt-hook-BE3UuUaz.js
4647
+ var e = `0.5.21`;
4431
4648
  var t = `bippy-${e}`;
4432
4649
  var n = Object.defineProperty;
4433
4650
  var r2 = Object.prototype.hasOwnProperty;
@@ -4514,16 +4731,15 @@ var _ = () => {
4514
4731
  }
4515
4732
  };
4516
4733
 
4517
- // ../../node_modules/.pnpm/bippy@0.5.17_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/install-hook-only-BE254Zqc.js
4734
+ // ../../node_modules/.pnpm/bippy@0.5.21_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/install-hook-only-_lLceJhv.js
4518
4735
  _();
4519
4736
 
4520
- // ../../node_modules/.pnpm/bippy@0.5.17_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/core-BKZAzaFk.js
4737
+ // ../../node_modules/.pnpm/bippy@0.5.21_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/core-_xno6DOO.js
4521
4738
  var a2 = 0;
4522
4739
  var o2 = 1;
4523
4740
  var c2 = 5;
4524
4741
  var f2 = 11;
4525
4742
  var p2 = 13;
4526
- var m2 = 14;
4527
4743
  var h2 = 15;
4528
4744
  var ee = 16;
4529
4745
  var te = 19;
@@ -4541,18 +4757,6 @@ var k = (e2) => {
4541
4757
  return typeof e2.type == `string`;
4542
4758
  }
4543
4759
  };
4544
- var pe = (e2) => {
4545
- switch (e2.tag) {
4546
- case o2:
4547
- case f2:
4548
- case a2:
4549
- case m2:
4550
- case h2:
4551
- return true;
4552
- default:
4553
- return false;
4554
- }
4555
- };
4556
4760
  var me = (e2) => !e2 || typeof e2 != `object` ? false : `pendingProps` in e2 && !(`containerInfo` in e2);
4557
4761
  function N(e2, t2, n2 = false) {
4558
4762
  if (!e2) return null;
@@ -4642,20 +4846,20 @@ var Pe = (e2) => {
4642
4846
  };
4643
4847
  var $ = /* @__PURE__ */ new Set();
4644
4848
 
4645
- // ../../node_modules/.pnpm/bippy@0.5.17_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/source.js
4849
+ // ../../node_modules/.pnpm/bippy@0.5.21_@types+react@19.2.2_react@19.2.0/node_modules/bippy/dist/source.js
4646
4850
  var b2 = Object.create;
4647
4851
  var x2 = Object.defineProperty;
4648
4852
  var S2 = Object.getOwnPropertyDescriptor;
4649
- var C2 = Object.getOwnPropertyNames;
4650
- var ee2 = Object.getPrototypeOf;
4651
- var te2 = Object.prototype.hasOwnProperty;
4652
- var ne2 = (e2, t2) => () => (t2 || e2((t2 = { exports: {} }).exports, t2), t2.exports);
4653
- var re2 = (e2, t2, n2, r3) => {
4654
- 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 });
4853
+ var ee2 = Object.getOwnPropertyNames;
4854
+ var te2 = Object.getPrototypeOf;
4855
+ var ne2 = Object.prototype.hasOwnProperty;
4856
+ var re2 = (e2, t2) => () => (t2 || e2((t2 = { exports: {} }).exports, t2), t2.exports);
4857
+ var ie2 = (e2, t2, n2, r3) => {
4858
+ if (t2 && typeof t2 == `object` || typeof t2 == `function`) for (var i2 = ee2(t2), a3 = 0, o3 = i2.length, s3; a3 < o3; a3++) s3 = i2[a3], !ne2.call(e2, s3) && s3 !== n2 && x2(e2, s3, { get: ((e3) => t2[e3]).bind(null, s3), enumerable: !(r3 = S2(t2, s3)) || r3.enumerable });
4655
4859
  return e2;
4656
4860
  };
4657
- var ie2 = (e2, t2, n2) => (n2 = e2 == null ? {} : b2(ee2(e2)), re2(x2(n2, `default`, { value: e2, enumerable: true }) , e2));
4658
- var ae2 = () => {
4861
+ var ae2 = (e2, t2, n2) => (n2 = e2 == null ? {} : b2(te2(e2)), ie2(x2(n2, `default`, { value: e2, enumerable: true }) , e2));
4862
+ var oe2 = () => {
4659
4863
  let n2 = h();
4660
4864
  for (let t2 of [...Array.from(d), ...Array.from(n2.renderers.values())]) {
4661
4865
  let e2 = t2.currentDispatcherRef;
@@ -4663,16 +4867,16 @@ var ae2 = () => {
4663
4867
  }
4664
4868
  return null;
4665
4869
  };
4666
- var w2 = (t2) => {
4870
+ var C2 = (t2) => {
4667
4871
  for (let n2 of d) {
4668
4872
  let e2 = n2.currentDispatcherRef;
4669
4873
  e2 && typeof e2 == `object` && (`H` in e2 ? e2.H = t2 : e2.current = t2);
4670
4874
  }
4671
4875
  };
4672
- var T2 = (e2) => `
4876
+ var w2 = (e2) => `
4673
4877
  in ${e2}`;
4674
- var oe2 = (e2, t2) => {
4675
- let n2 = T2(e2);
4878
+ var T2 = (e2, t2) => {
4879
+ let n2 = w2(e2);
4676
4880
  return t2 && (n2 += ` (at ${t2})`), n2;
4677
4881
  };
4678
4882
  var E = false;
@@ -4680,8 +4884,8 @@ var D = (e2, t2) => {
4680
4884
  if (!e2 || E) return ``;
4681
4885
  let n2 = Error.prepareStackTrace;
4682
4886
  Error.prepareStackTrace = void 0, E = true;
4683
- let r3 = ae2();
4684
- w2(null);
4887
+ let r3 = oe2();
4888
+ C2(null);
4685
4889
  let i2 = console.error, a3 = console.warn;
4686
4890
  console.error = () => {
4687
4891
  }, console.warn = () => {
@@ -4749,16 +4953,16 @@ ${t3[r5].replace(` at new `, ` at `)}`, i4 = Te(e2);
4749
4953
  }
4750
4954
  }
4751
4955
  } finally {
4752
- E = false, Error.prepareStackTrace = n2, w2(r3), console.error = i2, console.warn = a3;
4956
+ E = false, Error.prepareStackTrace = n2, C2(r3), console.error = i2, console.warn = a3;
4753
4957
  }
4754
- let o3 = e2 ? Te(e2) : ``, s3 = o3 ? T2(o3) : ``;
4958
+ let o3 = e2 ? Te(e2) : ``, s3 = o3 ? w2(o3) : ``;
4755
4959
  return s3;
4756
4960
  };
4757
4961
  var se2 = (e2, t2) => {
4758
4962
  let m3 = e2.tag, h3 = ``;
4759
4963
  switch (m3) {
4760
4964
  case ne:
4761
- h3 = T2(`Activity`);
4965
+ h3 = w2(`Activity`);
4762
4966
  break;
4763
4967
  case o2:
4764
4968
  h3 = D(e2.type, true);
@@ -4773,19 +4977,19 @@ var se2 = (e2, t2) => {
4773
4977
  case c2:
4774
4978
  case y:
4775
4979
  case b:
4776
- h3 = T2(e2.type);
4980
+ h3 = w2(e2.type);
4777
4981
  break;
4778
4982
  case ee:
4779
- h3 = T2(`Lazy`);
4983
+ h3 = w2(`Lazy`);
4780
4984
  break;
4781
4985
  case p2:
4782
- h3 = e2.child !== t2 && t2 !== null ? T2(`Suspense Fallback`) : T2(`Suspense`);
4986
+ h3 = e2.child !== t2 && t2 !== null ? w2(`Suspense Fallback`) : w2(`Suspense`);
4783
4987
  break;
4784
4988
  case te:
4785
- h3 = T2(`SuspenseList`);
4989
+ h3 = w2(`SuspenseList`);
4786
4990
  break;
4787
4991
  case re:
4788
- h3 = T2(`ViewTransition`);
4992
+ h3 = w2(`ViewTransition`);
4789
4993
  break;
4790
4994
  default:
4791
4995
  return ``;
@@ -4800,7 +5004,7 @@ var ce2 = (e2) => {
4800
5004
  let e3 = n2._debugInfo;
4801
5005
  if (e3 && Array.isArray(e3)) for (let n3 = e3.length - 1; n3 >= 0; n3--) {
4802
5006
  let r4 = e3[n3];
4803
- typeof r4.name == `string` && (t2 += oe2(r4.name, r4.env));
5007
+ typeof r4.name == `string` && (t2 += T2(r4.name, r4.env));
4804
5008
  }
4805
5009
  r3 = n2, n2 = n2.return;
4806
5010
  } while (n2);
@@ -4811,7 +5015,7 @@ Error generating stack: ${e3.message}
4811
5015
  ${e3.stack}` : ``;
4812
5016
  }
4813
5017
  };
4814
- var O2 = (e2) => {
5018
+ var le2 = (e2) => {
4815
5019
  let t2 = Error.prepareStackTrace;
4816
5020
  Error.prepareStackTrace = void 0;
4817
5021
  let n2 = e2;
@@ -4825,58 +5029,58 @@ var O2 = (e2) => {
4825
5029
  else return ``;
4826
5030
  return n2;
4827
5031
  };
4828
- var k2 = /(^|@)\S+:\d+/;
4829
- var A2 = /^\s*at .*(\S+:\d+|\(native\))/m;
4830
- var le2 = /^(eval@)?(\[native code\])?$/;
4831
- var M2 = (e2, t2) => {
5032
+ var O2 = /(^|@)\S+:\d+/;
5033
+ var k2 = /^\s*at .*(\S+:\d+|\(native\))/m;
5034
+ var ue2 = /^(eval@)?(\[native code\])?$/;
5035
+ var j2 = (e2, t2) => {
4832
5036
  if (t2?.includeInElement !== false) {
4833
5037
  let n2 = e2.split(`
4834
5038
  `), r3 = [];
4835
5039
  for (let e3 of n2) if (/^\s*at\s+/.test(e3)) {
4836
- let t3 = F2(e3, void 0)[0];
5040
+ let t3 = P2(e3, void 0)[0];
4837
5041
  t3 && r3.push(t3);
4838
5042
  } else if (/^\s*in\s+/.test(e3)) {
4839
5043
  let t3 = e3.replace(/^\s*in\s+/, ``).replace(/\s*\(at .*\)$/, ``);
4840
5044
  r3.push({ function: t3, raw: e3 });
4841
- } else if (e3.match(k2)) {
4842
- let t3 = I2(e3, void 0)[0];
5045
+ } else if (e3.match(O2)) {
5046
+ let t3 = F2(e3, void 0)[0];
4843
5047
  t3 && r3.push(t3);
4844
5048
  }
4845
- return P2(r3, t2);
5049
+ return N2(r3, t2);
4846
5050
  }
4847
- return e2.match(A2) ? F2(e2, t2) : I2(e2, t2);
5051
+ return e2.match(k2) ? P2(e2, t2) : F2(e2, t2);
4848
5052
  };
4849
- var N2 = (e2) => {
5053
+ var M2 = (e2) => {
4850
5054
  if (!e2.includes(`:`)) return [e2, void 0, void 0];
4851
5055
  let t2 = /(.+?)(?::(\d+))?(?::(\d+))?$/, n2 = t2.exec(e2.replace(/[()]/g, ``));
4852
5056
  return [n2[1], n2[2] || void 0, n2[3] || void 0];
4853
5057
  };
4854
- 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;
4855
- var F2 = (e2, t2) => {
4856
- let n2 = P2(e2.split(`
4857
- `).filter((e3) => !!e3.match(A2)), t2);
5058
+ var N2 = (e2, t2) => t2 && t2.slice != null ? Array.isArray(t2.slice) ? e2.slice(t2.slice[0], t2.slice[1]) : e2.slice(0, t2.slice) : e2;
5059
+ var P2 = (e2, t2) => {
5060
+ let n2 = N2(e2.split(`
5061
+ `).filter((e3) => !!e3.match(k2)), t2);
4858
5062
  return n2.map((e3) => {
4859
5063
  let t3 = e3;
4860
5064
  t3.includes(`(eval `) && (t3 = t3.replace(/eval code/g, `eval`).replace(/(\(eval at [^()]*)|(,.*$)/g, ``));
4861
5065
  let n3 = t3.replace(/^\s+/, ``).replace(/\(eval code/g, `(`).replace(/^.*?\s+/, ``), r3 = n3.match(/ (\(.+\)$)/);
4862
5066
  n3 = r3 ? n3.replace(r3[0], ``) : n3;
4863
- let i2 = N2(r3 ? r3[1] : n3), a3 = r3 && n3 || void 0, o3 = [`eval`, `<anonymous>`].includes(i2[0]) ? void 0 : i2[0];
5067
+ let i2 = M2(r3 ? r3[1] : n3), a3 = r3 && n3 || void 0, o3 = [`eval`, `<anonymous>`].includes(i2[0]) ? void 0 : i2[0];
4864
5068
  return { function: a3, file: o3, line: i2[1] ? +i2[1] : void 0, col: i2[2] ? +i2[2] : void 0, raw: t3 };
4865
5069
  });
4866
5070
  };
4867
- var I2 = (e2, t2) => {
4868
- let n2 = P2(e2.split(`
4869
- `).filter((e3) => !e3.match(le2)), t2);
5071
+ var F2 = (e2, t2) => {
5072
+ let n2 = N2(e2.split(`
5073
+ `).filter((e3) => !e3.match(ue2)), t2);
4870
5074
  return n2.map((e3) => {
4871
5075
  let t3 = e3;
4872
5076
  if (t3.includes(` > eval`) && (t3 = t3.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g, `:$1`)), !t3.includes(`@`) && !t3.includes(`:`)) return { function: t3 };
4873
5077
  {
4874
- 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, ``));
5078
+ 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 = M2(t3.replace(e4, ``));
4875
5079
  return { function: r3, file: i2[0], line: i2[1] ? +i2[1] : void 0, col: i2[2] ? +i2[2] : void 0, raw: t3 };
4876
5080
  }
4877
5081
  });
4878
5082
  };
4879
- var pe2 = ne2((exports, t2) => {
5083
+ var me2 = re2((exports, t2) => {
4880
5084
  (function(n2, r3) {
4881
5085
  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 = {}));
4882
5086
  })(void 0, function(e2) {
@@ -5080,12 +5284,12 @@ var pe2 = ne2((exports, t2) => {
5080
5284
  return r4;
5081
5285
  }
5082
5286
  function S3(e3) {
5083
- e3.sort(C3);
5287
+ e3.sort(ee3);
5084
5288
  }
5085
- function C3(e3, t4) {
5289
+ function ee3(e3, t4) {
5086
5290
  return e3[0] - t4[0];
5087
5291
  }
5088
- function ee3(e3) {
5292
+ function te3(e3) {
5089
5293
  let r4 = new d3(), i3 = 0, a4 = 0, o4 = 0, c4 = 0;
5090
5294
  for (let l4 = 0; l4 < e3.length; l4++) {
5091
5295
  let u4 = e3[l4];
@@ -5098,18 +5302,18 @@ var pe2 = ne2((exports, t2) => {
5098
5302
  }
5099
5303
  return r4.flush();
5100
5304
  }
5101
- e2.decode = x3, e2.decodeGeneratedRanges = _3, e2.decodeOriginalScopes = m3, e2.encode = ee3, e2.encodeGeneratedRanges = v2, e2.encodeOriginalScopes = h3, Object.defineProperty(e2, `__esModule`, { value: true });
5305
+ e2.decode = x3, e2.decodeGeneratedRanges = _3, e2.decodeOriginalScopes = m3, e2.encode = te3, e2.encodeGeneratedRanges = v2, e2.encodeOriginalScopes = h3, Object.defineProperty(e2, `__esModule`, { value: true });
5102
5306
  });
5103
5307
  });
5104
- var B2 = ie2(pe2());
5105
- var V2 = /^[a-zA-Z][a-zA-Z\d+\-.]*:/;
5106
- var me2 = /^data:application\/json[^,]+base64,/;
5107
- var he2 = /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/;
5108
- var H2 = typeof WeakRef < `u`;
5308
+ var z2 = ae2(me2());
5309
+ var B2 = /^[a-zA-Z][a-zA-Z\d+\-.]*:/;
5310
+ var he2 = /^data:application\/json[^,]+base64,/;
5311
+ var ge2 = /(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/;
5312
+ var V2 = typeof WeakRef < `u`;
5313
+ var H2 = /* @__PURE__ */ new Map();
5109
5314
  var U2 = /* @__PURE__ */ new Map();
5110
- var W2 = /* @__PURE__ */ new Map();
5111
- var ge2 = (e2) => H2 && e2 instanceof WeakRef;
5112
- var G2 = (e2, t2, n2, r3) => {
5315
+ var _e2 = (e2) => V2 && e2 instanceof WeakRef;
5316
+ var W2 = (e2, t2, n2, r3) => {
5113
5317
  if (n2 < 0 || n2 >= e2.length) return null;
5114
5318
  let i2 = e2[n2];
5115
5319
  if (!i2 || i2.length === 0) return null;
@@ -5122,49 +5326,49 @@ var G2 = (e2, t2, n2, r3) => {
5122
5326
  let l3 = t2[o3];
5123
5327
  return l3 ? { columnNumber: c3, fileName: l3, lineNumber: s3 + 1 } : null;
5124
5328
  };
5125
- var K = (e2, t2, n2) => {
5329
+ var G2 = (e2, t2, n2) => {
5126
5330
  if (e2.sections) {
5127
5331
  let r3 = null;
5128
5332
  for (let i3 of e2.sections) if (t2 > i3.offset.line || t2 === i3.offset.line && n2 >= i3.offset.column) r3 = i3;
5129
5333
  else break;
5130
5334
  if (!r3) return null;
5131
5335
  let i2 = t2 - r3.offset.line, a3 = t2 === r3.offset.line ? n2 - r3.offset.column : n2;
5132
- return G2(r3.map.mappings, r3.map.sources, i2, a3);
5336
+ return W2(r3.map.mappings, r3.map.sources, i2, a3);
5133
5337
  }
5134
- return G2(e2.mappings, e2.sources, t2 - 1, n2);
5338
+ return W2(e2.mappings, e2.sources, t2 - 1, n2);
5135
5339
  };
5136
- var _e2 = (e2, t2) => {
5340
+ var ve2 = (e2, t2) => {
5137
5341
  let n2 = t2.split(`
5138
5342
  `), r3;
5139
5343
  for (let e3 = n2.length - 1; e3 >= 0 && !r3; e3--) {
5140
- let t3 = n2[e3].match(he2);
5344
+ let t3 = n2[e3].match(ge2);
5141
5345
  t3 && (r3 = t3[1] || t3[2]);
5142
5346
  }
5143
5347
  if (!r3) return null;
5144
- let i2 = V2.test(r3);
5145
- if (!(me2.test(r3) || i2 || r3.startsWith(`/`))) {
5348
+ let i2 = B2.test(r3);
5349
+ if (!(he2.test(r3) || i2 || r3.startsWith(`/`))) {
5146
5350
  let t3 = e2.split(`/`);
5147
5351
  t3[t3.length - 1] = r3, r3 = t3.join(`/`);
5148
5352
  }
5149
5353
  return r3;
5150
5354
  };
5151
- 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 });
5152
- var ye2 = (e2) => {
5153
- let t2 = e2.sections.map(({ map: e3, offset: t3 }) => ({ map: { ...e3, mappings: (0, B2.decode)(e3.mappings) }, offset: t3 })), n2 = /* @__PURE__ */ new Set();
5355
+ var ye2 = (e2) => ({ file: e2.file, mappings: (0, z2.decode)(e2.mappings), names: e2.names, sourceRoot: e2.sourceRoot, sources: e2.sources, sourcesContent: e2.sourcesContent, version: 3 });
5356
+ var be2 = (e2) => {
5357
+ let t2 = e2.sections.map(({ map: e3, offset: t3 }) => ({ map: { ...e3, mappings: (0, z2.decode)(e3.mappings) }, offset: t3 })), n2 = /* @__PURE__ */ new Set();
5154
5358
  for (let e3 of t2) for (let t3 of e3.map.sources) n2.add(t3);
5155
5359
  return { file: e2.file, mappings: [], names: [], sections: t2, sourceRoot: void 0, sources: Array.from(n2), sourcesContent: void 0, version: 3 };
5156
5360
  };
5157
- var q = (e2) => {
5361
+ var K = (e2) => {
5158
5362
  if (!e2) return false;
5159
5363
  let t2 = e2.trim();
5160
5364
  if (!t2) return false;
5161
- let n2 = t2.match(V2);
5365
+ let n2 = t2.match(B2);
5162
5366
  if (!n2) return true;
5163
5367
  let r3 = n2[0].toLowerCase();
5164
5368
  return r3 === `http:` || r3 === `https:`;
5165
5369
  };
5166
- var J = async (e2, t2 = fetch) => {
5167
- if (!q(e2)) return null;
5370
+ var q = async (e2, t2 = fetch) => {
5371
+ if (!K(e2)) return null;
5168
5372
  let n2;
5169
5373
  try {
5170
5374
  let r4 = await t2(e2);
@@ -5173,59 +5377,65 @@ var J = async (e2, t2 = fetch) => {
5173
5377
  return null;
5174
5378
  }
5175
5379
  if (!n2) return null;
5176
- let r3 = _e2(e2, n2);
5177
- if (!r3 || !q(r3)) return null;
5380
+ let r3 = ve2(e2, n2);
5381
+ if (!r3 || !K(r3)) return null;
5178
5382
  try {
5179
5383
  let e3 = await t2(r3), n3 = await e3.json();
5180
- return `sections` in n3 ? ye2(n3) : ve2(n3);
5384
+ return `sections` in n3 ? be2(n3) : ye2(n3);
5181
5385
  } catch {
5182
5386
  return null;
5183
5387
  }
5184
5388
  };
5185
- var Y = async (e2, t2 = true, n2) => {
5186
- if (t2 && U2.has(e2)) {
5187
- let t3 = U2.get(e2);
5389
+ var J = async (e2, t2 = true, n2) => {
5390
+ if (t2 && H2.has(e2)) {
5391
+ let t3 = H2.get(e2);
5188
5392
  if (t3 == null) return null;
5189
- if (ge2(t3)) {
5393
+ if (_e2(t3)) {
5190
5394
  let n3 = t3.deref();
5191
5395
  if (n3) return n3;
5192
- U2.delete(e2);
5396
+ H2.delete(e2);
5193
5397
  } else return t3;
5194
5398
  }
5195
- if (t2 && W2.has(e2)) return W2.get(e2);
5196
- let r3 = J(e2, n2);
5197
- t2 && W2.set(e2, r3);
5399
+ if (t2 && U2.has(e2)) return U2.get(e2);
5400
+ let r3 = q(e2, n2);
5401
+ t2 && U2.set(e2, r3);
5198
5402
  let i2 = await r3;
5199
- return t2 && W2.delete(e2), t2 && (i2 === null ? U2.set(e2, null) : U2.set(e2, H2 ? new WeakRef(i2) : i2)), i2;
5403
+ return t2 && U2.delete(e2), t2 && (i2 === null ? H2.set(e2, null) : H2.set(e2, V2 ? new WeakRef(i2) : i2)), i2;
5200
5404
  };
5201
- var be2 = /^[a-zA-Z][a-zA-Z\d+\-.]*:/;
5202
- var xe2 = [`rsc://`, `file:///`, `webpack://`, `node:`, `turbopack://`, `metro://`, `///app-pages-browser/`];
5203
- var Se2 = `about://React/`;
5204
- var Ce2 = [`<anonymous>`, `eval`, ``];
5205
- var we2 = /\.(jsx|tsx|ts|js)$/;
5206
- 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;
5207
- var Ee2 = /^\?[\w~.\-]+(?:=[^&#]*)?(?:&[\w~.\-]+(?:=[^&#]*)?)*$/;
5208
- var De2 = (e2) => e2._debugStack instanceof Error && typeof e2._debugStack?.stack == `string`;
5209
- var Oe = (e2) => {
5405
+ var xe2 = /^[a-zA-Z][a-zA-Z\d+\-.]*:/;
5406
+ var Se2 = [`rsc://`, `file:///`, `webpack://`, `webpack-internal://`, `node:`, `turbopack://`, `metro://`, `/app-pages-browser/`];
5407
+ var Ce2 = `about://React/`;
5408
+ var we2 = [`<anonymous>`, `eval`, ``];
5409
+ var Te2 = /\.(jsx|tsx|ts|js)$/;
5410
+ var Ee2 = /(\.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;
5411
+ var De2 = /^\?[\w~.\-]+(?:=[^&#]*)?(?:&[\w~.\-]+(?:=[^&#]*)?)*$/;
5412
+ var Y = (e2) => e2?.fileName != null;
5413
+ var Oe = (e2) => e2._debugStack instanceof Error && typeof e2._debugStack?.stack == `string`;
5414
+ var ke2 = (e2) => {
5210
5415
  let t2 = e2._debugSource;
5211
5416
  return t2 ? typeof t2 == `object` && !!t2 && `fileName` in t2 && typeof t2.fileName == `string` && `lineNumber` in t2 && typeof t2.lineNumber == `number` : false;
5212
5417
  };
5213
- var ke2 = async (e2, t2 = true, n2) => {
5214
- if (Oe(e2)) {
5418
+ var Ae2 = async (e2, t2 = true, n2) => {
5419
+ if (ke2(e2)) {
5215
5420
  let t3 = e2._debugSource;
5216
5421
  return t3 || null;
5217
5422
  }
5218
- let r3 = X2(e2), i2 = await Z(r3, 1, t2, n2);
5219
- return !i2 || i2.length === 0 ? null : i2[0];
5423
+ let r3 = X2(e2), i2 = await Z(r3, 2 ** 53 - 1, t2, n2);
5424
+ if (!i2 || i2.length === 0) return null;
5425
+ for (let e3 of i2) if (Y(e3)) return e3;
5426
+ return null;
5220
5427
  };
5221
- var X2 = (e2) => De2(e2) ? O2(e2._debugStack.stack) : ce2(e2);
5222
- var Z = async (e2, t2 = 1, n2 = true, r3) => {
5223
- let i2 = M2(e2, { slice: t2 ?? 1 }), a3 = [];
5428
+ var X2 = (e2) => Oe(e2) ? le2(e2._debugStack.stack) : ce2(e2);
5429
+ var Z = async (e2, t2 = 2 ** 53 - 1, n2 = true, r3) => {
5430
+ let i2 = j2(e2, { slice: t2 }), a3 = [];
5224
5431
  for (let e3 of i2) {
5225
- if (!e3?.file) continue;
5226
- let t3 = await Y(e3.file, n2, r3);
5432
+ if (!e3?.file) {
5433
+ a3.push({ fileName: void 0, lineNumber: e3?.line, columnNumber: e3?.col, functionName: e3?.function });
5434
+ continue;
5435
+ }
5436
+ let t3 = await J(e3.file, n2, r3);
5227
5437
  if (t3 && typeof e3.line == `number` && typeof e3.col == `number`) {
5228
- let n3 = K(t3, e3.line, e3.col);
5438
+ let n3 = G2(t3, e3.line, e3.col);
5229
5439
  if (n3) {
5230
5440
  a3.push(n3);
5231
5441
  continue;
@@ -5236,30 +5446,30 @@ var Z = async (e2, t2 = 1, n2 = true, r3) => {
5236
5446
  return a3;
5237
5447
  };
5238
5448
  var Q = (e2) => {
5239
- if (!e2 || Ce2.includes(e2)) return ``;
5449
+ if (!e2 || we2.includes(e2)) return ``;
5240
5450
  let t2 = e2;
5241
- if (t2.startsWith(Se2)) {
5242
- let e3 = t2.slice(Se2.length), n3 = e3.indexOf(`/`), r3 = e3.indexOf(`:`);
5451
+ if (t2.startsWith(Ce2)) {
5452
+ let e3 = t2.slice(Ce2.length), n3 = e3.indexOf(`/`), r3 = e3.indexOf(`:`);
5243
5453
  t2 = n3 !== -1 && (r3 === -1 || n3 < r3) ? e3.slice(n3 + 1) : e3;
5244
5454
  }
5245
- for (let e3 of xe2) if (t2.startsWith(e3)) {
5455
+ for (let e3 of Se2) if (t2.startsWith(e3)) {
5246
5456
  t2 = t2.slice(e3.length), e3 === `file:///` && (t2 = `/${t2.replace(/^\/+/, ``)}`);
5247
5457
  break;
5248
5458
  }
5249
- if (be2.test(t2)) {
5250
- let e3 = t2.match(be2);
5459
+ if (xe2.test(t2)) {
5460
+ let e3 = t2.match(xe2);
5251
5461
  e3 && (t2 = t2.slice(e3[0].length));
5252
5462
  }
5253
5463
  let n2 = t2.indexOf(`?`);
5254
5464
  if (n2 !== -1) {
5255
5465
  let e3 = t2.slice(n2);
5256
- Ee2.test(e3) && (t2 = t2.slice(0, n2));
5466
+ De2.test(e3) && (t2 = t2.slice(0, n2));
5257
5467
  }
5258
5468
  return t2;
5259
5469
  };
5260
- var je2 = (e2) => {
5470
+ var Me2 = (e2) => {
5261
5471
  let t2 = Q(e2);
5262
- return !(!t2 || !we2.test(t2) || Te2.test(t2));
5472
+ return !(!t2 || !Te2.test(t2) || Ee2.test(t2));
5263
5473
  };
5264
5474
 
5265
5475
  // src/utils/is-capitalized.ts
@@ -5307,36 +5517,31 @@ var checkIsSourceComponentName = (name) => {
5307
5517
  if (name.includes("Provider") && name.includes("Context")) return false;
5308
5518
  return true;
5309
5519
  };
5310
- var getNearestComponentName = (element) => {
5311
- if (!Ee()) return null;
5312
- try {
5313
- const fiber = Pe(element);
5314
- if (!fiber) return null;
5315
- let foundComponentName = null;
5316
- N(
5317
- fiber,
5318
- (currentFiber) => {
5319
- if (pe(currentFiber)) {
5320
- const displayName = Te(currentFiber);
5321
- if (displayName && checkIsSourceComponentName(displayName)) {
5322
- foundComponentName = displayName;
5323
- return true;
5324
- }
5325
- }
5326
- return false;
5327
- },
5328
- true
5329
- );
5330
- return foundComponentName;
5331
- } catch {
5332
- return null;
5333
- }
5334
- };
5335
5520
  var getStack = async (element) => {
5336
5521
  if (!Ee()) return [];
5337
5522
  try {
5338
5523
  const maybeFiber = Pe(element);
5339
5524
  if (!maybeFiber || !me(maybeFiber)) return [];
5525
+ const ownerStack = X2(maybeFiber);
5526
+ const sources = await Z(ownerStack);
5527
+ if (sources && sources.length > 0) {
5528
+ const stack = [];
5529
+ for (const source of sources) {
5530
+ if (source.functionName && !checkIsInternalComponentName(source.functionName)) {
5531
+ stack.push({
5532
+ name: source.functionName,
5533
+ source: source.fileName ? {
5534
+ fileName: source.fileName,
5535
+ lineNumber: source.lineNumber,
5536
+ columnNumber: source.columnNumber
5537
+ } : null
5538
+ });
5539
+ }
5540
+ }
5541
+ if (stack.length > 0) {
5542
+ return stack;
5543
+ }
5544
+ }
5340
5545
  const fiber = De(maybeFiber);
5341
5546
  const unresolvedStack = [];
5342
5547
  N(
@@ -5346,7 +5551,7 @@ var getStack = async (element) => {
5346
5551
  if (displayName && !checkIsInternalComponentName(displayName)) {
5347
5552
  unresolvedStack.push({
5348
5553
  name: displayName,
5349
- sourcePromise: ke2(currentFiber)
5554
+ sourcePromise: Ae2(currentFiber)
5350
5555
  });
5351
5556
  }
5352
5557
  },
@@ -5363,55 +5568,55 @@ var getStack = async (element) => {
5363
5568
  return [];
5364
5569
  }
5365
5570
  };
5571
+ var getNearestComponentName = async (element) => {
5572
+ const stack = await getStack(element);
5573
+ for (const frame of stack) {
5574
+ if (checkIsSourceComponentName(frame.name)) {
5575
+ return frame.name;
5576
+ }
5577
+ }
5578
+ return null;
5579
+ };
5366
5580
  var formatElementInfo = async (element) => {
5367
5581
  const html = getHTMLPreview(element);
5368
5582
  const stack = await getStack(element);
5369
5583
  const isNextProject = checkIsNextProject();
5370
- let serverComponentName = null;
5371
- let clientComponentName = null;
5372
5584
  let fileName = null;
5373
5585
  let lineNumber = null;
5374
5586
  let columnNumber = null;
5587
+ let serverComponentName = null;
5588
+ let clientComponentName = null;
5375
5589
  for (const frame of stack) {
5376
- if (!frame.source) continue;
5377
- if (frame.source.fileName.startsWith("about://React/Server")) {
5378
- if (!serverComponentName && checkIsSourceComponentName(frame.name)) {
5379
- serverComponentName = frame.name;
5380
- }
5590
+ if (checkIsSourceComponentName(frame.name) && !serverComponentName && !frame.source?.fileName) {
5591
+ serverComponentName = frame.name;
5381
5592
  continue;
5382
5593
  }
5383
- if (je2(frame.source.fileName)) {
5384
- if (!fileName) {
5385
- fileName = Q(frame.source.fileName);
5386
- lineNumber = frame.source.lineNumber ?? null;
5387
- columnNumber = frame.source.columnNumber ?? null;
5388
- }
5389
- if (!clientComponentName && checkIsSourceComponentName(frame.name)) {
5390
- clientComponentName = frame.name;
5391
- }
5392
- if (fileName && clientComponentName) {
5393
- break;
5394
- }
5594
+ if (!frame.source) continue;
5595
+ if (Me2(frame.source.fileName) && !fileName) {
5596
+ fileName = Q(frame.source.fileName);
5597
+ lineNumber = frame.source.lineNumber ?? null;
5598
+ columnNumber = frame.source.columnNumber ?? null;
5599
+ clientComponentName = frame.name;
5600
+ break;
5395
5601
  }
5396
5602
  }
5397
- const componentName = serverComponentName ?? clientComponentName;
5398
- if (!componentName || !fileName) {
5399
- return html;
5400
- }
5401
- let result = `${html}
5402
- in ${componentName}`;
5403
- if (serverComponentName && clientComponentName) {
5404
- result += ` (Server \u2192 Client: ${clientComponentName})`;
5603
+ let result = html;
5604
+ if (serverComponentName) {
5605
+ result += `
5606
+ in ${serverComponentName} (Server)`;
5405
5607
  }
5406
- result += ` at ${fileName}`;
5407
- if (isNextProject && lineNumber && columnNumber) {
5408
- result += `:${lineNumber}:${columnNumber}`;
5608
+ if (fileName) {
5609
+ result += `
5610
+ ${clientComponentName ? ` in ${clientComponentName}` : ""} at ${fileName}`;
5611
+ if (isNextProject && lineNumber && columnNumber) {
5612
+ result += `:${lineNumber}:${columnNumber}`;
5613
+ }
5409
5614
  }
5410
5615
  return result;
5411
5616
  };
5412
5617
  var getFileName = (stack) => {
5413
5618
  for (const frame of stack) {
5414
- if (frame.source && je2(frame.source.fileName)) {
5619
+ if (frame.source && Me2(frame.source.fileName)) {
5415
5620
  return Q(frame.source.fileName);
5416
5621
  }
5417
5622
  }
@@ -5886,7 +6091,7 @@ var deepMergeTheme = mergeThemeWithBase;
5886
6091
  // src/utils/agent-session.ts
5887
6092
  var STORAGE_KEY = "react-grab:agent-sessions";
5888
6093
  var generateSessionId = () => `session-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
5889
- var createSession = (context, position, selectionBounds, tagName) => ({
6094
+ var createSession = (context, position, selectionBounds, tagName, componentName) => ({
5890
6095
  id: generateSessionId(),
5891
6096
  context,
5892
6097
  lastStatus: "",
@@ -5894,7 +6099,8 @@ var createSession = (context, position, selectionBounds, tagName) => ({
5894
6099
  createdAt: Date.now(),
5895
6100
  position,
5896
6101
  selectionBounds,
5897
- tagName
6102
+ tagName,
6103
+ componentName
5898
6104
  });
5899
6105
  var getStorage = (storage) => {
5900
6106
  if (!storage) return null;
@@ -6105,7 +6311,8 @@ var createAgentManager = (initialAgentOptions) => {
6105
6311
  const content = await generateSnippet(elements);
6106
6312
  const context = { content, prompt, options: agentOptions?.getOptions?.() };
6107
6313
  const tagName = (element.tagName || "").toLowerCase() || void 0;
6108
- const session = createSession(context, position, selectionBounds, tagName);
6314
+ const componentName = getNearestComponentName(element) || void 0;
6315
+ const session = createSession(context, position, selectionBounds, tagName, componentName);
6109
6316
  session.lastStatus = "Please wait\u2026";
6110
6317
  sessionElements.set(session.id, element);
6111
6318
  setSessions((prev) => new Map(prev).set(session.id, session));
@@ -6172,7 +6379,7 @@ var createAgentManager = (initialAgentOptions) => {
6172
6379
  };
6173
6380
 
6174
6381
  // src/core.tsx
6175
- var _tmpl$16 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6382
+ var _tmpl$21 = /* @__PURE__ */ template(`<span class="tabular-nums align-middle">`);
6176
6383
  var _tmpl$23 = /* @__PURE__ */ template(`<span class="font-mono tabular-nums align-middle">&lt;<!>>`);
6177
6384
  var _tmpl$33 = /* @__PURE__ */ template(`<span class="tabular-nums ml-1 align-middle"> in `);
6178
6385
  var hasInited = false;
@@ -6254,7 +6461,7 @@ var init = (rawOptions) => {
6254
6461
  hasInited = true;
6255
6462
  const logIntro = () => {
6256
6463
  try {
6257
- const version = "0.0.57";
6464
+ const version = "0.0.59";
6258
6465
  const logoDataUri = `data:image/svg+xml;base64,${btoa(LOGO_SVG)}`;
6259
6466
  console.log(`%cReact Grab${version ? ` v${version}` : ""}%c
6260
6467
  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;`, "");
@@ -6314,10 +6521,13 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
6314
6521
  if (elements.length === 0 || !elements[0]) return void 0;
6315
6522
  return extractElementTagName(elements[0]) || void 0;
6316
6523
  });
6317
- const nativeSelectionComponentName = createMemo(() => {
6524
+ const [nativeSelectionComponentName] = createResource(() => {
6318
6525
  const elements = nativeSelectionElements();
6319
- if (elements.length === 0 || !elements[0]) return void 0;
6320
- return getNearestComponentName(elements[0]) || void 0;
6526
+ if (elements.length === 0 || !elements[0]) return null;
6527
+ return elements[0];
6528
+ }, async (element) => {
6529
+ if (!element) return void 0;
6530
+ return await getNearestComponentName(element) || void 0;
6321
6531
  });
6322
6532
  const clearNativeSelectionState = () => {
6323
6533
  setNativeSelectionCursorX(OFFSCREEN_POSITION);
@@ -6415,12 +6625,13 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
6415
6625
  }
6416
6626
  }));
6417
6627
  };
6418
- const createLabelInstance = (bounds, tagName, status, element) => {
6628
+ const createLabelInstance = (bounds, tagName, componentName, status, element) => {
6419
6629
  const instanceId = `label-${Date.now()}-${Math.random().toString(36).slice(2)}`;
6420
6630
  setLabelInstances((prev) => [...prev, {
6421
6631
  id: instanceId,
6422
6632
  bounds,
6423
6633
  tagName,
6634
+ componentName,
6424
6635
  status,
6425
6636
  createdAt: Date.now(),
6426
6637
  element
@@ -6436,12 +6647,12 @@ https://react-grab.com`, `background: #330039; color: #ffffff; border: 1px solid
6436
6647
  const removeLabelInstance = (instanceId) => {
6437
6648
  setLabelInstances((prev) => prev.filter((instance) => instance.id !== instanceId));
6438
6649
  };
6439
- const executeCopyOperation = async (positionX, positionY, operation, bounds, tagName, element) => {
6650
+ const executeCopyOperation = async (positionX, positionY, operation, bounds, tagName, componentName, element) => {
6440
6651
  setCopyStartX(positionX);
6441
6652
  setCopyStartY(positionY);
6442
6653
  setIsCopying(true);
6443
6654
  startProgressAnimation();
6444
- const instanceId = bounds && tagName ? createLabelInstance(bounds, tagName, "copying", element) : null;
6655
+ const instanceId = bounds && tagName ? createLabelInstance(bounds, tagName, componentName, "copying", element) : null;
6445
6656
  await operation().finally(() => {
6446
6657
  setIsCopying(false);
6447
6658
  stopProgressAnimation();
@@ -6599,18 +6810,22 @@ ${plainTextContentOnly}` : plainTextContentOnly;
6599
6810
  y: drag.y
6600
6811
  };
6601
6812
  });
6813
+ const [labelComponentName] = createResource(() => targetElement(), async (element) => {
6814
+ if (!element) return null;
6815
+ return getNearestComponentName(element);
6816
+ });
6602
6817
  const labelContent = createMemo(() => {
6603
6818
  const element = targetElement();
6604
6819
  const copying = isCopying();
6605
6820
  if (!element) {
6606
6821
  return (() => {
6607
- var _el$ = _tmpl$16();
6822
+ var _el$ = _tmpl$21();
6608
6823
  insert(_el$, copying ? "Please wait\u2026" : "1 element");
6609
6824
  return _el$;
6610
6825
  })();
6611
6826
  }
6612
6827
  const tagName = extractElementTagName(element);
6613
- const componentName = getNearestComponentName(element);
6828
+ const componentName = labelComponentName();
6614
6829
  if (tagName && componentName) {
6615
6830
  return [(() => {
6616
6831
  var _el$2 = _tmpl$23(), _el$3 = _el$2.firstChild, _el$5 = _el$3.nextSibling; _el$5.nextSibling;
@@ -6630,7 +6845,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
6630
6845
  })();
6631
6846
  }
6632
6847
  return (() => {
6633
- var _el$10 = _tmpl$16();
6848
+ var _el$10 = _tmpl$21();
6634
6849
  insert(_el$10, copying ? "Please wait\u2026" : "1 element");
6635
6850
  return _el$10;
6636
6851
  })();
@@ -6661,7 +6876,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
6661
6876
  }
6662
6877
  getStack(element).then((stack) => {
6663
6878
  for (const frame of stack) {
6664
- if (frame.source && je2(frame.source.fileName)) {
6879
+ if (frame.source && Me2(frame.source.fileName)) {
6665
6880
  setSelectionFilePath(Q(frame.source.fileName));
6666
6881
  setSelectionLineNumber(frame.source.lineNumber);
6667
6882
  return;
@@ -6887,8 +7102,10 @@ ${plainTextContentOnly}` : plainTextContentOnly;
6887
7102
  setIsInputMode(false);
6888
7103
  setInputText("");
6889
7104
  const tagName = extractElementTagName(element);
6890
- void executeCopyOperation(currentX, currentY, () => copySingleElementToClipboard(element, prompt || void 0), bounds, tagName, element).then(() => {
6891
- deactivateRenderer();
7105
+ void getNearestComponentName(element).then((componentName) => {
7106
+ void executeCopyOperation(currentX, currentY, () => copySingleElementToClipboard(element, prompt || void 0), bounds, tagName, componentName ?? void 0, element).then(() => {
7107
+ deactivateRenderer();
7108
+ });
6892
7109
  });
6893
7110
  };
6894
7111
  const handleInputCancel = () => {
@@ -6911,10 +7128,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
6911
7128
  setHasNativeSelection(false);
6912
7129
  clearNativeSelectionState();
6913
7130
  window.getSelection()?.removeAllRanges();
7131
+ const componentName = nativeSelectionComponentName();
6914
7132
  if (elements.length === 1) {
6915
- await executeCopyOperation(currentX, currentY, () => copySingleElementToClipboard(elements[0]), bounds, tagName);
7133
+ await executeCopyOperation(currentX, currentY, () => copySingleElementToClipboard(elements[0]), bounds, tagName, componentName);
6916
7134
  } else {
6917
- await executeCopyOperation(currentX, currentY, () => copyMultipleElementsToClipboard(elements), bounds, tagName);
7135
+ await executeCopyOperation(currentX, currentY, () => copyMultipleElementsToClipboard(elements), bounds, tagName, componentName);
6918
7136
  }
6919
7137
  };
6920
7138
  const handleNativeSelectionEnter = () => {
@@ -6995,7 +7213,9 @@ ${plainTextContentOnly}` : plainTextContentOnly;
6995
7213
  setIsInputExpanded(true);
6996
7214
  setIsInputMode(true);
6997
7215
  } else {
6998
- void executeCopyOperation(clientX, clientY, () => copyMultipleElementsToClipboard(selectedElements), bounds, tagName, firstElement);
7216
+ void getNearestComponentName(firstElement).then((componentName) => {
7217
+ void executeCopyOperation(clientX, clientY, () => copyMultipleElementsToClipboard(selectedElements), bounds, tagName, componentName ?? void 0, firstElement);
7218
+ });
6999
7219
  }
7000
7220
  }
7001
7221
  } else {
@@ -7004,7 +7224,9 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7004
7224
  setLastGrabbedElement(element);
7005
7225
  const bounds = createElementBounds(element);
7006
7226
  const tagName = extractElementTagName(element);
7007
- void executeCopyOperation(clientX, clientY, () => copySingleElementToClipboard(element), bounds, tagName, element);
7227
+ void getNearestComponentName(element).then((componentName) => {
7228
+ void executeCopyOperation(clientX, clientY, () => copySingleElementToClipboard(element), bounds, tagName, componentName ?? void 0, element);
7229
+ });
7008
7230
  }
7009
7231
  };
7010
7232
  const abortController = new AbortController();
@@ -7340,6 +7562,11 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7340
7562
  if (!element) return void 0;
7341
7563
  return extractElementTagName(element) || void 0;
7342
7564
  });
7565
+ const [selectionComponentName] = createResource(() => targetElement(), async (element) => {
7566
+ if (!element) return void 0;
7567
+ const name = await getNearestComponentName(element);
7568
+ return name ?? void 0;
7569
+ });
7343
7570
  const selectionLabelVisible = createMemo(() => {
7344
7571
  if (!theme().elementLabel.enabled) return false;
7345
7572
  if (successLabels().length > 0) return false;
@@ -7392,6 +7619,9 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7392
7619
  get selectionTagName() {
7393
7620
  return selectionTagName();
7394
7621
  },
7622
+ get selectionComponentName() {
7623
+ return selectionComponentName();
7624
+ },
7395
7625
  get selectionLabelVisible() {
7396
7626
  return selectionLabelVisible();
7397
7627
  },
@@ -7553,7 +7783,7 @@ ${plainTextContentOnly}` : plainTextContentOnly;
7553
7783
  };
7554
7784
  /*! Bundled license information:
7555
7785
 
7556
- bippy/dist/rdt-hook-Ds2lt3Ph.js:
7786
+ bippy/dist/rdt-hook-BE3UuUaz.js:
7557
7787
  (**
7558
7788
  * @license bippy
7559
7789
  *
@@ -7563,7 +7793,7 @@ bippy/dist/rdt-hook-Ds2lt3Ph.js:
7563
7793
  * LICENSE file in the root directory of this source tree.
7564
7794
  *)
7565
7795
 
7566
- bippy/dist/install-hook-only-BE254Zqc.js:
7796
+ bippy/dist/install-hook-only-_lLceJhv.js:
7567
7797
  (**
7568
7798
  * @license bippy
7569
7799
  *
@@ -7573,7 +7803,7 @@ bippy/dist/install-hook-only-BE254Zqc.js:
7573
7803
  * LICENSE file in the root directory of this source tree.
7574
7804
  *)
7575
7805
 
7576
- bippy/dist/core-BKZAzaFk.js:
7806
+ bippy/dist/core-_xno6DOO.js:
7577
7807
  (**
7578
7808
  * @license bippy
7579
7809
  *
@@ -7614,4 +7844,4 @@ bippy/dist/source.js:
7614
7844
  *)
7615
7845
  */
7616
7846
 
7617
- export { DEFAULT_THEME, Ee, formatElementInfo, generateSnippet, getFileName, getNearestComponentName, getStack, init };
7847
+ export { DEFAULT_THEME, Ee, formatElementInfo, generateSnippet, getFileName, getStack, init };