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