@llumi/design-system 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/review.mjs CHANGED
@@ -1,14 +1,14 @@
1
- import { fromCallback as ct, setup as Tt, emit as dt, assign as x, stateIn as kt, enqueueActions as Lt, createActor as zt } from "xstate";
1
+ import { fromCallback as dt, setup as Tt, emit as ht, assign as x, stateIn as kt, enqueueActions as zt, createActor as Lt } from "xstate";
2
2
  import { tinykeys as Ot } from "tinykeys";
3
- import { svg as _, html as v, LitElement as At, unsafeCSS as Dt } from "lit";
4
- import { property as f, query as F, state as Mt, customElement as A } from "lit/decorators.js";
3
+ import { svg as N, html as v, LitElement as At, unsafeCSS as Dt } from "lit";
4
+ import { property as f, query as K, state as Mt, customElement as A } from "lit/decorators.js";
5
5
  import { clsx as _t } from "clsx";
6
6
  import { twMerge as Nt } from "tailwind-merge";
7
7
  import { autoUpdate as vt, computePosition as wt, offset as bt, flip as xt, shift as yt, size as Ct } from "@floating-ui/dom";
8
8
  import { classMap as Pt } from "lit/directives/class-map.js";
9
- import { repeat as $t } from "lit/directives/repeat.js";
10
- import { styleMap as Rt } from "lit/directives/style-map.js";
11
- function ht(n, e) {
9
+ import { repeat as Rt } from "lit/directives/repeat.js";
10
+ import { styleMap as $t } from "lit/directives/style-map.js";
11
+ function gt(n, e) {
12
12
  const t = n.getAttribute("data-review-id");
13
13
  if (t) return t;
14
14
  for (const i of e ?? [])
@@ -18,7 +18,7 @@ function ht(n, e) {
18
18
  }
19
19
  return null;
20
20
  }
21
- function N(n, e) {
21
+ function P(n, e) {
22
22
  const t = n.closest("[data-review-id]");
23
23
  if (t) {
24
24
  const i = t.getAttribute("data-review-id");
@@ -33,7 +33,7 @@ function N(n, e) {
33
33
  }
34
34
  return null;
35
35
  }
36
- function P(n, e) {
36
+ function R(n, e) {
37
37
  const t = /* @__PURE__ */ new Set(), i = [];
38
38
  for (const o of Array.from(
39
39
  n.querySelectorAll("[data-review-id]")
@@ -70,57 +70,57 @@ function P(n, e) {
70
70
  }
71
71
  return i;
72
72
  }
73
- const nt = "review-highlight-hover", C = "review-highlight-commented", G = "review-highlight-editing", j = "review-highlight-uncommented", V = "review-target", gt = "review-active";
73
+ const ot = "review-highlight-hover", C = "review-highlight-commented", j = "review-highlight-editing", U = "review-highlight-uncommented", V = "review-target", ut = "review-active";
74
74
  function B(n) {
75
75
  n.classList.remove(
76
- nt,
76
+ ot,
77
77
  C,
78
- G,
79
- j
78
+ j,
79
+ U
80
80
  );
81
81
  }
82
82
  function Ht(n, e) {
83
83
  let t = null, i = null, o = null;
84
84
  function r(c) {
85
- n.classList.add(gt);
86
- const h = P(n, e);
87
- for (const { element: p, targetId: d, kind: T } of h)
88
- (T === "element" || T === "both") && (p.hasAttribute("data-review-id") || p.classList.add(V), c.has(d) && p.classList.add(C));
85
+ n.classList.add(ut);
86
+ const h = R(n, e);
87
+ for (const { element: p, targetId: d, kind: k } of h)
88
+ (k === "element" || k === "both") && (p.hasAttribute("data-review-id") || p.classList.add(V), c.has(d) && p.classList.add(C));
89
89
  }
90
90
  function a() {
91
- n.classList.remove(gt), t && (clearTimeout(t), t = null);
92
- const c = P(n, e);
91
+ n.classList.remove(ut), t && (clearTimeout(t), t = null);
92
+ const c = R(n, e);
93
93
  for (const { element: h } of c)
94
94
  B(h), h.classList.remove(V);
95
95
  }
96
96
  function s(c) {
97
- const h = P(n, e), p = [];
97
+ const h = R(n, e), p = [];
98
98
  for (const { element: d } of h)
99
- !d.classList.contains(C) && !d.classList.contains(G) && (d.classList.add(j), p.push(d));
99
+ !d.classList.contains(C) && !d.classList.contains(j) && (d.classList.add(U), p.push(d));
100
100
  c && (t && clearTimeout(t), t = setTimeout(() => {
101
101
  t = null;
102
102
  for (const d of p)
103
- d.classList.contains(G) || d.classList.remove(j);
103
+ d.classList.contains(j) || d.classList.remove(U);
104
104
  }, 500));
105
105
  }
106
106
  function l() {
107
107
  t && (clearTimeout(t), t = null);
108
- const c = P(n, e);
108
+ const c = R(n, e);
109
109
  for (const { element: h } of c)
110
- h.classList.remove(j);
110
+ h.classList.remove(U);
111
111
  }
112
112
  function u(c, h) {
113
- h || (B(c), c.classList.add(G));
113
+ h || (B(c), c.classList.add(j));
114
114
  }
115
115
  function m(c, h) {
116
116
  B(c), h && c.classList.add(C);
117
117
  }
118
118
  function b(c, h) {
119
- (ht(c, e) ?? c.getAttribute("data-review-selectable")) !== h && c.classList.add(nt);
119
+ (gt(c, e) ?? c.getAttribute("data-review-selectable")) !== h && c.classList.add(ot);
120
120
  }
121
121
  function g(c, h, p) {
122
- const d = ht(c, e) ?? c.getAttribute("data-review-selectable");
123
- d !== h && (c.classList.remove(nt), d && (p != null && p.has(d)) && c.classList.add(C));
122
+ const d = gt(c, e) ?? c.getAttribute("data-review-selectable");
123
+ d !== h && (c.classList.remove(ot), d && (p != null && p.has(d)) && c.classList.add(C));
124
124
  }
125
125
  function It(c) {
126
126
  q(), o = c.editingTarget ?? null, i = new MutationObserver((h) => {
@@ -131,24 +131,24 @@ function Ht(n, e) {
131
131
  }
132
132
  for (const d of Array.from(p.addedNodes)) {
133
133
  if (!(d instanceof HTMLElement)) continue;
134
- const T = [
134
+ const k = [
135
135
  ...d.matches("[data-review-id]") ? [d] : [],
136
136
  ...Array.from(
137
137
  d.querySelectorAll("[data-review-id]")
138
138
  )
139
139
  ];
140
- for (const I of T) {
141
- const M = I.getAttribute("data-review-id");
142
- M && c.commentedIds.has(M) && I.classList.add(C);
140
+ for (const I of k) {
141
+ const _ = I.getAttribute("data-review-id");
142
+ _ && c.commentedIds.has(_) && I.classList.add(C);
143
143
  }
144
144
  for (const I of e ?? []) {
145
- const M = [
145
+ const _ = [
146
146
  ...d.matches(I.selector) ? [d] : [],
147
147
  ...Array.from(d.querySelectorAll(I.selector))
148
148
  ];
149
- for (const W of M) {
150
- const lt = I.toId(W);
151
- W.classList.add(V), lt && c.commentedIds.has(lt) && W.classList.add(C);
149
+ for (const W of _) {
150
+ const ct = I.toId(W);
151
+ W.classList.add(V), ct && c.commentedIds.has(ct) && W.classList.add(C);
152
152
  }
153
153
  }
154
154
  (d.hasAttribute("data-review-selectable") || d.querySelector("[data-review-selectable]") !== null) && c.onSelectableReconnected();
@@ -220,7 +220,7 @@ function Ft(n) {
220
220
  return e;
221
221
  }
222
222
  function Kt() {
223
- const n = ct(
223
+ const n = dt(
224
224
  ({ sendBack: t, input: i }) => {
225
225
  const o = () => t({ type: "RELEASE_ANNOTATE" }), r = (l) => {
226
226
  l.key === "Alt" && (l.preventDefault(), t({ type: "HOLD_ANNOTATE" }));
@@ -244,7 +244,7 @@ function Kt() {
244
244
  s(), window.removeEventListener("keydown", r), window.removeEventListener("keyup", a), window.removeEventListener("blur", o);
245
245
  };
246
246
  }
247
- ), e = ct(({ sendBack: t, input: i }) => {
247
+ ), e = dt(({ sendBack: t, input: i }) => {
248
248
  const o = new MutationObserver((r) => {
249
249
  for (const a of r)
250
250
  for (const s of Array.from(a.removedNodes))
@@ -336,14 +336,14 @@ function Kt() {
336
336
  selectionRange: null
337
337
  })),
338
338
  cleanup: x(({ context: t }) => Ut(t)),
339
- emitChanged: dt(({ context: t }) => ({
339
+ emitChanged: ht(({ context: t }) => ({
340
340
  type: "REVIEW_CHANGED",
341
341
  result: Y(t)
342
342
  })),
343
343
  persistSave: ({ context: t }) => {
344
344
  t.persistence.save(Y(t));
345
345
  },
346
- emitSubmitted: dt(({ context: t }) => ({
346
+ emitSubmitted: ht(({ context: t }) => ({
347
347
  type: "REVIEW_SUBMITTED",
348
348
  result: Y(t)
349
349
  })),
@@ -439,7 +439,7 @@ function Kt() {
439
439
  on: {
440
440
  TOGGLE: {
441
441
  target: "inactive",
442
- actions: Lt(({ enqueue: t, check: i }) => {
442
+ actions: zt(({ enqueue: t, check: i }) => {
443
443
  i("isCommentingEditing") && t.raise({ type: "CLOSE" });
444
444
  })
445
445
  }
@@ -634,7 +634,7 @@ function Kt() {
634
634
  }
635
635
  });
636
636
  }
637
- const ut = {
637
+ const mt = {
638
638
  load: () => {
639
639
  },
640
640
  save: () => {
@@ -710,7 +710,7 @@ function Vt(n) {
710
710
  );
711
711
  return { startOffset: o, endOffset: r, selectedText: i, matchIndex: a };
712
712
  }
713
- function mt(n, e) {
713
+ function Q(n, e) {
714
714
  const t = n.textContent ?? "";
715
715
  if (t.slice(
716
716
  e.startOffset,
@@ -737,7 +737,7 @@ function Bt(n, e) {
737
737
  const t = n.getRangeAt(0);
738
738
  return e.contains(t.startContainer) && e.contains(t.endContainer);
739
739
  }
740
- function Q(n) {
740
+ function Z(n) {
741
741
  const e = n instanceof HTMLElement ? n : n.parentElement;
742
742
  return (e == null ? void 0 : e.closest("[data-review-selectable]")) ?? null;
743
743
  }
@@ -808,7 +808,7 @@ function ee(n, e) {
808
808
  return a - s;
809
809
  });
810
810
  }
811
- function k(...n) {
811
+ function z(...n) {
812
812
  return Nt(_t(n));
813
813
  }
814
814
  function $(n) {
@@ -825,21 +825,21 @@ function $(n) {
825
825
  ${n}
826
826
  </svg>`;
827
827
  }
828
- const U = {
829
- check: $(_`<path d="M20 6 9 17l-5-5" />`),
828
+ const F = {
829
+ check: $(N`<path d="M20 6 9 17l-5-5" />`),
830
830
  gripVertical: $(
831
- _`<circle cx="9" cy="12" r="1" /><circle cx="9" cy="5" r="1" /><circle cx="9" cy="19" r="1" /><circle cx="15" cy="12" r="1" /><circle cx="15" cy="5" r="1" /><circle cx="15" cy="19" r="1" />`
831
+ N`<circle cx="9" cy="12" r="1" /><circle cx="9" cy="5" r="1" /><circle cx="9" cy="19" r="1" /><circle cx="15" cy="12" r="1" /><circle cx="15" cy="5" r="1" /><circle cx="15" cy="19" r="1" />`
832
832
  ),
833
833
  messageSquare: $(
834
- _`<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />`
834
+ N`<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />`
835
835
  ),
836
836
  trash: $(
837
- _`<path d="M3 6h18" /><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" />`
837
+ N`<path d="M3 6h18" /><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" />`
838
838
  )
839
- }, ie = '/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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;--tw-outline-style:solid;--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}}}@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-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--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)}}@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%;-moz-tab-size:4;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;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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-\\[calc\\(var\\(--review-z-index\\,9998\\)\\+1\\)\\]{z-index:calc(var(--review-z-index,9998) + 1)}.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}}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-\\[18px\\]{height:18px}.max-h-\\[200px\\]{max-height:200px}.w-7{width:calc(var(--spacing) * 7)}.w-\\[400px\\]{width:400px}.w-full{width:100%}.w-px{width:1px}.max-w-0{max-width:0}.max-w-2xl{max-width:var(--container-2xl)}.min-w-\\[18px\\]{min-width:18px}.flex-1{flex:1}.translate-x-0\\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-3\\.5{--tw-translate-x:calc(var(--spacing) * 3.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\\[llumi-fade-in_0\\.15s_ease-out\\]{animation:.15s ease-out llumi-fade-in}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-300{border-color:var(--color-zinc-300)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/25{background-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.bg-white\\/25{background-color:color-mix(in oklab,var(--color-white) 25%,transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-300{background-color:var(--color-zinc-300)}.bg-zinc-900{background-color:var(--color-zinc-900)}.p-1{padding:var(--spacing)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-white{color:var(--color-white)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-900{color:var(--color-zinc-900)}.italic{font-style:italic}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-zinc-400\\/20{--tw-ring-color:#9f9fa933}@supports (color:color-mix(in lab,red,red)){.ring-zinc-400\\/20{--tw-ring-color:color-mix(in oklab, var(--color-zinc-400) 20%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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-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-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\\:max-w-\\[60px\\]:is(:where(.group):hover *){max-width:60px}}.placeholder\\:text-zinc-400::placeholder{color:var(--color-zinc-400)}@media(hover:hover){.hover\\:bg-zinc-50:hover{background-color:var(--color-zinc-50)}.hover\\:bg-zinc-200:hover{background-color:var(--color-zinc-200)}.hover\\:bg-zinc-800:hover{background-color:var(--color-zinc-800)}.hover\\:bg-zinc-900:hover{background-color:var(--color-zinc-900)}.hover\\:text-white:hover{color:var(--color-white)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-zinc-950:active{background-color:var(--color-zinc-950)}}@keyframes llumi-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(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-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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@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-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}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}', ne = Dt(ie), at = class at extends At {
839
+ }, ie = '/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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;--tw-outline-style:solid;--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}}}@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-zinc-50:oklch(98.5% 0 0);--color-zinc-100:oklch(96.7% .001 286.375);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-zinc-600:oklch(44.2% .017 285.786);--color-zinc-700:oklch(37% .013 285.805);--color-zinc-800:oklch(27.4% .006 286.033);--color-zinc-900:oklch(21% .006 285.885);--color-zinc-950:oklch(14.1% .005 285.823);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--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)}}@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%;-moz-tab-size:4;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;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]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-\\[calc\\(var\\(--review-z-index\\,9998\\)\\+1\\)\\]{z-index:calc(var(--review-z-index,9998) + 1)}.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}}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-7{height:calc(var(--spacing) * 7)}.h-\\[18px\\]{height:18px}.max-h-\\[200px\\]{max-height:200px}.w-7{width:calc(var(--spacing) * 7)}.w-\\[400px\\]{width:400px}.w-full{width:100%}.w-px{width:1px}.max-w-0{max-width:0}.max-w-2xl{max-width:var(--container-2xl)}.min-w-\\[18px\\]{min-width:18px}.flex-1{flex:1}.translate-x-0\\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-3\\.5{--tw-translate-x:calc(var(--spacing) * 3.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\\[llumi-fade-in_0\\.15s_ease-out\\]{animation:.15s ease-out llumi-fade-in}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-zinc-200{border-color:var(--color-zinc-200)}.border-zinc-300{border-color:var(--color-zinc-300)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/25{background-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.bg-white\\/25{background-color:color-mix(in oklab,var(--color-white) 25%,transparent)}}.bg-zinc-100{background-color:var(--color-zinc-100)}.bg-zinc-200{background-color:var(--color-zinc-200)}.bg-zinc-300{background-color:var(--color-zinc-300)}.bg-zinc-900{background-color:var(--color-zinc-900)}.p-1{padding:var(--spacing)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.py-1{padding-block:var(--spacing)}.py-1\\.5{padding-block:calc(var(--spacing) * 1.5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-white{color:var(--color-white)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-600{color:var(--color-zinc-600)}.text-zinc-700{color:var(--color-zinc-700)}.text-zinc-900{color:var(--color-zinc-900)}.italic{font-style:italic}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px 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)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px 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)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-zinc-400\\/20{--tw-ring-color:#9f9fa933}@supports (color:color-mix(in lab,red,red)){.ring-zinc-400\\/20{--tw-ring-color:color-mix(in oklab, var(--color-zinc-400) 20%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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-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-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.group-hover\\:max-w-\\[60px\\]:is(:where(.group):hover *){max-width:60px}}.placeholder\\:text-zinc-400::placeholder{color:var(--color-zinc-400)}@media(hover:hover){.hover\\:bg-zinc-50:hover{background-color:var(--color-zinc-50)}.hover\\:bg-zinc-200:hover{background-color:var(--color-zinc-200)}.hover\\:bg-zinc-800:hover{background-color:var(--color-zinc-800)}.hover\\:bg-zinc-900:hover{background-color:var(--color-zinc-900)}.hover\\:text-white:hover{color:var(--color-white)}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:cursor-grabbing:active{cursor:grabbing}.active\\:bg-zinc-950:active{background-color:var(--color-zinc-950)}}:host{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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;--tw-outline-style:solid;--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}@keyframes llumi-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(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-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-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@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-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}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}', ne = Dt(ie), st = class st extends At {
840
840
  };
841
- at.styles = ne;
842
- let E = at;
841
+ st.styles = ne;
842
+ let E = st;
843
843
  var oe = Object.defineProperty, re = Object.getOwnPropertyDescriptor, y = (n, e, t, i) => {
844
844
  for (var o = i > 1 ? void 0 : i ? re(e, t) : e, r = n.length - 1, a; r >= 0; r--)
845
845
  (a = n[r]) && (o = (i ? a(e, t, o) : a(o)) || o);
@@ -881,7 +881,7 @@ let w = class extends E {
881
881
  const n = this.mode !== "idle", e = this.commentCount + (this.hasOverallComment ? 1 : 0), t = e > 0, i = ae[this.barPosition], o = this.dragOffset ? `position:fixed;left:${this.dragOffset.x}px;top:${this.dragOffset.y}px;z-index:var(--review-z-index,9998);` : `position:fixed;${i.top ? `top:${i.top};` : ""}${i.bottom ? `bottom:${i.bottom};` : ""}${i.left ? `left:${i.left};` : ""}${i.right ? `right:${i.right};` : ""}${i.translateX ? `transform:translateX(${i.translateX});` : ""}z-index:var(--review-z-index,9998);`;
882
882
  return v`<div
883
883
  data-bar
884
- class=${k(
884
+ class=${z(
885
885
  "flex items-center gap-2 rounded-full border border-zinc-200 bg-white p-1 shadow-lg",
886
886
  n && "ring-1 ring-zinc-400/20"
887
887
  )}
@@ -891,23 +891,23 @@ let w = class extends E {
891
891
  class="flex h-7 w-7 cursor-grab items-center justify-center text-zinc-400 active:cursor-grabbing"
892
892
  @pointerdown=${this.onDragStart}
893
893
  >
894
- <span class="size-3">${U.gripVertical}</span>
894
+ <span class="size-3">${F.gripVertical}</span>
895
895
  </div>
896
896
 
897
897
  <label class="flex cursor-pointer items-center gap-2 px-1">
898
- <span class=${k("select-none text-xs font-medium transition-colors duration-150", n ? "text-zinc-900" : "text-zinc-500")}>Annotate</span>
898
+ <span class=${z("select-none text-xs font-medium transition-colors duration-150", n ? "text-zinc-900" : "text-zinc-500")}>Annotate</span>
899
899
  <button
900
900
  type="button"
901
901
  role="switch"
902
902
  aria-checked=${n ? "true" : "false"}
903
903
  data-toggle
904
904
  @click=${this.onToggle}
905
- class=${k(
905
+ class=${z(
906
906
  "relative inline-flex h-4 w-7 items-center rounded-full transition-colors",
907
907
  n ? "bg-zinc-900" : "bg-zinc-300"
908
908
  )}
909
909
  >
910
- <span class=${k("inline-block size-3 transform rounded-full bg-white transition-transform", n ? "translate-x-3.5" : "translate-x-0.5")}></span>
910
+ <span class=${z("inline-block size-3 transform rounded-full bg-white transition-transform", n ? "translate-x-3.5" : "translate-x-0.5")}></span>
911
911
  </button>
912
912
  </label>
913
913
 
@@ -917,13 +917,13 @@ let w = class extends E {
917
917
  type="button"
918
918
  data-overall
919
919
  @click=${this.onOverallToggle}
920
- class=${k(
920
+ class=${z(
921
921
  "relative flex h-7 items-center gap-1.5 rounded-full px-3 text-xs font-medium",
922
922
  this.hasOverallComment ? "bg-zinc-900 text-white hover:bg-zinc-800 active:bg-zinc-950" : this.overallCommentOpen ? "bg-zinc-100 hover:bg-zinc-200" : "border border-zinc-200 hover:bg-zinc-50"
923
923
  )}
924
924
  >
925
925
  Comment
926
- <span class="size-3.5">${U.messageSquare}</span>
926
+ <span class="size-3.5">${F.messageSquare}</span>
927
927
  </button>
928
928
 
929
929
  <div class="h-4 w-px bg-zinc-200"></div>
@@ -936,7 +936,7 @@ let w = class extends E {
936
936
  >
937
937
  ${t ? "Submit" : "Approve"}
938
938
  <span class="flex h-[18px] min-w-[18px] items-center justify-center rounded-full bg-white/25 px-1 text-[11px] font-semibold">
939
- ${t ? e : v`<span class="size-3">${U.check}</span>`}
939
+ ${t ? e : v`<span class="size-3">${F.check}</span>`}
940
940
  </span>
941
941
  </button>
942
942
  </div>`;
@@ -976,7 +976,7 @@ y([
976
976
  f()
977
977
  ], w.prototype, "barPosition", 2);
978
978
  y([
979
- F("[data-bar]")
979
+ K("[data-bar]")
980
980
  ], w.prototype, "bar", 2);
981
981
  y([
982
982
  Mt()
@@ -1038,19 +1038,19 @@ D([
1038
1038
  f()
1039
1039
  ], S.prototype, "placeholder", 2);
1040
1040
  D([
1041
- F("textarea")
1041
+ K("textarea")
1042
1042
  ], S.prototype, "textarea", 2);
1043
1043
  S = D([
1044
1044
  A("llumi-default-editor")
1045
1045
  ], S);
1046
- var ce = Object.defineProperty, de = Object.getOwnPropertyDescriptor, K = (n, e, t, i) => {
1046
+ var ce = Object.defineProperty, de = Object.getOwnPropertyDescriptor, M = (n, e, t, i) => {
1047
1047
  for (var o = i > 1 ? void 0 : i ? de(e, t) : e, r = n.length - 1, a; r >= 0; r--)
1048
1048
  (a = n[r]) && (o = (i ? a(e, t, o) : a(o)) || o);
1049
1049
  return i && o && ce(e, t, o), o;
1050
1050
  };
1051
- let z = class extends E {
1051
+ let T = class extends E {
1052
1052
  constructor() {
1053
- super(...arguments), this.targetElement = null, this.value = "";
1053
+ super(...arguments), this.targetElement = null, this.anchor = null, this.value = "";
1054
1054
  }
1055
1055
  render() {
1056
1056
  const n = this.value.trim().length > 0;
@@ -1071,7 +1071,7 @@ let z = class extends E {
1071
1071
  @click=${this.onDelete}
1072
1072
  class="group absolute top-2 right-2 z-10 flex items-center gap-1 rounded-md px-1.5 py-1 text-zinc-400 transition-all duration-150 hover:bg-zinc-900 hover:text-white"
1073
1073
  >
1074
- <span class="size-3.5">${U.trash}</span>
1074
+ <span class="size-3.5">${F.trash}</span>
1075
1075
  <span class="max-w-0 overflow-hidden text-xs transition-all duration-150 group-hover:max-w-[60px]">Delete</span>
1076
1076
  </button>` : null}
1077
1077
  <div class="p-3" @change=${this.onEditorChange} @cancel=${this.onCancel} @delete=${this.onDelete}>
@@ -1101,7 +1101,7 @@ let z = class extends E {
1101
1101
  }
1102
1102
  startPositioning() {
1103
1103
  var t;
1104
- const n = this.targetElement, e = this.floating;
1104
+ const n = this.anchor ?? this.targetElement, e = this.floating;
1105
1105
  !n || !e || ((t = this.cleanup) == null || t.call(this), this.cleanup = vt(n, e, () => {
1106
1106
  wt(n, e, {
1107
1107
  placement: "right",
@@ -1137,18 +1137,21 @@ let z = class extends E {
1137
1137
  super.disconnectedCallback(), (n = this.cleanup) == null || n.call(this), this.cleanup = void 0;
1138
1138
  }
1139
1139
  };
1140
- K([
1140
+ M([
1141
1141
  f({ attribute: !1 })
1142
- ], z.prototype, "targetElement", 2);
1143
- K([
1142
+ ], T.prototype, "targetElement", 2);
1143
+ M([
1144
+ f({ attribute: !1 })
1145
+ ], T.prototype, "anchor", 2);
1146
+ M([
1144
1147
  f()
1145
- ], z.prototype, "value", 2);
1146
- K([
1147
- F("[data-floating]")
1148
- ], z.prototype, "floating", 2);
1149
- z = K([
1148
+ ], T.prototype, "value", 2);
1149
+ M([
1150
+ K("[data-floating]")
1151
+ ], T.prototype, "floating", 2);
1152
+ T = M([
1150
1153
  A("llumi-comment-dialog")
1151
- ], z);
1154
+ ], T);
1152
1155
  var he = Object.defineProperty, ge = Object.getOwnPropertyDescriptor, X = (n, e, t, i) => {
1153
1156
  for (var o = i > 1 ? void 0 : i ? ge(e, t) : e, r = n.length - 1, a; r >= 0; r--)
1154
1157
  (a = n[r]) && (o = (i ? a(e, t, o) : a(o)) || o);
@@ -1236,7 +1239,7 @@ X([
1236
1239
  f()
1237
1240
  ], O.prototype, "value", 2);
1238
1241
  X([
1239
- F("[data-floating]")
1242
+ K("[data-floating]")
1240
1243
  ], O.prototype, "floating", 2);
1241
1244
  O = X([
1242
1245
  A("llumi-overall-comment-dialog")
@@ -1247,18 +1250,18 @@ var ue = Object.defineProperty, me = Object.getOwnPropertyDescriptor, Et = (n, e
1247
1250
  return i && o && ue(e, t, o), o;
1248
1251
  };
1249
1252
  const pe = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23404040' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z'/%3E%3C/svg%3E";
1250
- let ot = class extends E {
1253
+ let rt = class extends E {
1251
1254
  constructor() {
1252
1255
  super(...arguments), this.positions = [];
1253
1256
  }
1254
1257
  render() {
1255
- return v`${$t(
1258
+ return v`${Rt(
1256
1259
  this.positions,
1257
1260
  (n) => n.commentId,
1258
1261
  (n) => v`<button
1259
1262
  type="button"
1260
1263
  @click=${(e) => this.onClick(e, n.commentId)}
1261
- style=${Rt({
1264
+ style=${$t({
1262
1265
  position: "absolute",
1263
1266
  top: `${n.top - 10}px`,
1264
1267
  left: `${n.left + 2}px`,
@@ -1291,40 +1294,40 @@ let ot = class extends E {
1291
1294
  };
1292
1295
  Et([
1293
1296
  f({ attribute: !1 })
1294
- ], ot.prototype, "positions", 2);
1295
- ot = Et([
1297
+ ], rt.prototype, "positions", 2);
1298
+ rt = Et([
1296
1299
  A("llumi-selection-comment-icons")
1297
- ], ot);
1298
- const R = "data-review-selectable", Z = "review-selection-commented", tt = "review-selection-editing", L = "review-selection-hover", fe = "$mod+Shift+M", ft = "data-llumi-review";
1299
- let et = !1;
1300
+ ], rt);
1301
+ const H = "data-review-selectable", tt = "review-selection-commented", et = "review-selection-editing", L = "review-selection-hover", fe = "$mod+Shift+M", ft = "data-llumi-review";
1302
+ let it = !1;
1300
1303
  function ve() {
1301
- if (et) return;
1304
+ if (it) return;
1302
1305
  if (document.querySelector(`style[${ft}]`)) {
1303
- et = !0;
1306
+ it = !0;
1304
1307
  return;
1305
1308
  }
1306
1309
  const n = document.createElement("style");
1307
- n.setAttribute(ft, ""), n.textContent = Gt, document.head.append(n), et = !0;
1310
+ n.setAttribute(ft, ""), n.textContent = Gt, document.head.append(n), it = !0;
1308
1311
  }
1309
- function H() {
1312
+ function G() {
1310
1313
  if (!(typeof CSS > "u"))
1311
1314
  return CSS.highlights;
1312
1315
  }
1313
- function it(...n) {
1316
+ function nt(...n) {
1314
1317
  return new Highlight(
1315
1318
  ...n
1316
1319
  );
1317
1320
  }
1318
- const st = class st extends HTMLElement {
1321
+ const lt = class lt extends HTMLElement {
1319
1322
  constructor() {
1320
- super(...arguments), this.persistence = ut, this.manager = null, this.rangeMap = /* @__PURE__ */ new Map(), this.hoveredComment = null, this.selectionJustHandled = !1, this.selectionComments = [], this.commentDialog = null, this.overallDialog = null, this.onPointerUp = () => {
1323
+ super(...arguments), this.persistence = mt, this.manager = null, this.rangeMap = /* @__PURE__ */ new Map(), this.hoveredComment = null, this.selectionJustHandled = !1, this.selectionComments = [], this.commentDialog = null, this.commentDialogAnchorId = null, this.overallDialog = null, this.onPointerUp = () => {
1321
1324
  if (!this.isAnnotating()) return;
1322
1325
  const e = window.getSelection();
1323
1326
  if (!e || e.isCollapsed || e.rangeCount === 0)
1324
1327
  return;
1325
- const t = e.getRangeAt(0), i = Q(t.startContainer);
1328
+ const t = e.getRangeAt(0), i = Z(t.startContainer);
1326
1329
  if (!i) return;
1327
- const o = Q(t.endContainer);
1330
+ const o = Z(t.endContainer);
1328
1331
  if (o && o !== i) {
1329
1332
  e.removeAllRanges();
1330
1333
  return;
@@ -1334,7 +1337,7 @@ const st = class st extends HTMLElement {
1334
1337
  if (!s) return;
1335
1338
  e.removeAllRanges(), e.addRange(s);
1336
1339
  }
1337
- const r = i.getAttribute(R);
1340
+ const r = i.getAttribute(H);
1338
1341
  if (!r) return;
1339
1342
  const a = Vt(i);
1340
1343
  a && (e.removeAllRanges(), this.selectionJustHandled = !0, this.actor.send({
@@ -1345,7 +1348,7 @@ const st = class st extends HTMLElement {
1345
1348
  }));
1346
1349
  }, this.onPointerMove = (e) => {
1347
1350
  if (!this.isAnnotating()) return;
1348
- const t = H();
1351
+ const t = G();
1349
1352
  if (!t) return;
1350
1353
  const i = this.caretPosition(e.clientX, e.clientY);
1351
1354
  if (!i) {
@@ -1363,7 +1366,7 @@ const st = class st extends HTMLElement {
1363
1366
  const r = this.rangeMap.get(o);
1364
1367
  r && t.set(
1365
1368
  L,
1366
- it(r)
1369
+ nt(r)
1367
1370
  );
1368
1371
  } else
1369
1372
  t.delete(L);
@@ -1383,7 +1386,7 @@ const st = class st extends HTMLElement {
1383
1386
  (b) => b.commentId === s
1384
1387
  );
1385
1388
  if (!u) continue;
1386
- const m = Q(i.offsetNode);
1389
+ const m = Z(i.offsetNode);
1387
1390
  if (!m) continue;
1388
1391
  e.stopPropagation(), e.preventDefault(), this.actor.send({
1389
1392
  type: "CLICK",
@@ -1399,7 +1402,7 @@ const st = class st extends HTMLElement {
1399
1402
  );
1400
1403
  if (a && this.contains(a)) {
1401
1404
  e.stopPropagation(), e.preventDefault();
1402
- const s = N(o, this.customTargets);
1405
+ const s = P(o, this.customTargets);
1403
1406
  s ? this.actor.send({
1404
1407
  type: "CLICK",
1405
1408
  targetId: s.targetId,
@@ -1408,7 +1411,7 @@ const st = class st extends HTMLElement {
1408
1411
  }
1409
1412
  }, this.onWrapperClick = (e) => {
1410
1413
  if (!this.contains(e.target) || !this.isAnnotating()) return;
1411
- const t = N(e.target, this.customTargets);
1414
+ const t = P(e.target, this.customTargets);
1412
1415
  t ? (e.stopPropagation(), e.preventDefault(), this.actor.send({
1413
1416
  type: "CLICK",
1414
1417
  targetId: t.targetId,
@@ -1417,7 +1420,7 @@ const st = class st extends HTMLElement {
1417
1420
  }, this.onMouseOver = (e) => {
1418
1421
  const t = this.manager;
1419
1422
  if (!t || !this.isAnnotating()) return;
1420
- const i = this.currentEditingTargetId(), o = N(
1423
+ const i = this.currentEditingTargetId(), o = P(
1421
1424
  e.target,
1422
1425
  this.customTargets
1423
1426
  );
@@ -1435,7 +1438,7 @@ const st = class st extends HTMLElement {
1435
1438
  const i = this.currentEditingTargetId(), o = /* @__PURE__ */ new Set();
1436
1439
  for (const s of this.actor.getSnapshot().context.comments)
1437
1440
  !s.selection && s.content.trim() && o.add(s.targetId);
1438
- const r = N(
1441
+ const r = P(
1439
1442
  e.target,
1440
1443
  this.customTargets
1441
1444
  );
@@ -1465,9 +1468,9 @@ const st = class st extends HTMLElement {
1465
1468
  connectedCallback() {
1466
1469
  ve(), this.style.position === "" && (this.style.position = "relative"), this.style.display === "" && (this.style.display = "block");
1467
1470
  const e = this.buildHighlightCallbacks();
1468
- this.persistence = this.persistKey ? qt(this.persistKey) : ut;
1471
+ this.persistence = this.persistKey ? qt(this.persistKey) : mt;
1469
1472
  const t = Kt();
1470
- this.actor = zt(t, {
1473
+ this.actor = Lt(t, {
1471
1474
  input: {
1472
1475
  shortcut: this.shortcut,
1473
1476
  initialData: this.initialData,
@@ -1480,8 +1483,8 @@ const st = class st extends HTMLElement {
1480
1483
  disconnectedCallback() {
1481
1484
  var t, i, o, r, a, s;
1482
1485
  this.removeEventListener("pointerup", this.onPointerUp), this.removeEventListener("pointermove", this.onPointerMove), this.removeEventListener("click", this.onClickCapture, !0), this.removeEventListener("click", this.onWrapperClick), this.removeEventListener("mouseover", this.onMouseOver), this.removeEventListener("mouseout", this.onMouseOut);
1483
- const e = H();
1484
- e && (e.delete(Z), e.delete(tt), e.delete(L)), this.icons && (this.icons.positions = []), (t = this.manager) == null || t.destroy(), this.manager = null, (i = this.actor) == null || i.stop(), (o = this.bar) == null || o.remove(), (r = this.commentDialog) == null || r.remove(), (a = this.overallDialog) == null || a.remove(), (s = this.icons) == null || s.remove();
1486
+ const e = G();
1487
+ e && (e.delete(tt), e.delete(et), e.delete(L)), this.icons && (this.icons.positions = []), (t = this.manager) == null || t.destroy(), this.manager = null, (i = this.actor) == null || i.stop(), (o = this.bar) == null || o.remove(), (r = this.commentDialog) == null || r.remove(), (a = this.overallDialog) == null || a.remove(), (s = this.icons) == null || s.remove();
1485
1488
  }
1486
1489
  attributeChangedCallback() {
1487
1490
  this.bar && (this.bar.barPosition = this.barPosition);
@@ -1517,6 +1520,18 @@ const st = class st extends HTMLElement {
1517
1520
  clearPersisted() {
1518
1521
  this.persistence.clear();
1519
1522
  }
1523
+ // Build a floating-ui virtual reference that tracks a selection's live rect.
1524
+ // `contextElement` lets autoUpdate find the right scroll ancestors. Returns
1525
+ // null when the range can't be restored, so the dialog falls back to anchoring
1526
+ // on the whole element.
1527
+ selectionAnchor(e, t) {
1528
+ const i = Q(e, t);
1529
+ return i ? {
1530
+ getBoundingClientRect: () => i.getBoundingClientRect(),
1531
+ getClientRects: () => i.getClientRects(),
1532
+ contextElement: e
1533
+ } : null;
1534
+ }
1520
1535
  // --- chrome lifecycle ---
1521
1536
  mountChrome() {
1522
1537
  this.bar = document.createElement("llumi-review-bar"), this.bar.barPosition = this.barPosition, this.bar.addEventListener(
@@ -1541,7 +1556,7 @@ const st = class st extends HTMLElement {
1541
1556
  const t = this.actor.getSnapshot().context.comments.find((o) => o.commentId === e);
1542
1557
  if (!t) return;
1543
1558
  const i = this.querySelector(
1544
- `[${R}="${t.targetId}"]`
1559
+ `[${H}="${t.targetId}"]`
1545
1560
  );
1546
1561
  i && this.actor.send({
1547
1562
  type: "CLICK",
@@ -1571,7 +1586,7 @@ const st = class st extends HTMLElement {
1571
1586
  ), this.commentDialog.addEventListener(
1572
1587
  "close",
1573
1588
  () => this.actor.send({ type: "CLOSE" })
1574
- ), document.body.append(this.commentDialog)), this.commentDialog.targetElement = r, this.commentDialog.value = l.content) : this.commentDialog && (this.commentDialog.remove(), this.commentDialog = null), u ? (this.overallDialog || (this.overallDialog = document.createElement(
1589
+ ), document.body.append(this.commentDialog)), l.commentId !== this.commentDialogAnchorId && (this.commentDialogAnchorId = l.commentId, this.commentDialog.anchor = l.selection ? this.selectionAnchor(r, l.selection) : null, this.commentDialog.targetElement = r), this.commentDialog.value = l.content) : this.commentDialog && (this.commentDialog.remove(), this.commentDialog = null, this.commentDialogAnchorId = null), u ? (this.overallDialog || (this.overallDialog = document.createElement(
1575
1590
  "llumi-overall-comment-dialog"
1576
1591
  ), this.overallDialog.addEventListener(
1577
1592
  "change",
@@ -1600,8 +1615,8 @@ const st = class st extends HTMLElement {
1600
1615
  const e = this.manager;
1601
1616
  if (!e) return;
1602
1617
  e.deactivate(), e.stopObserving();
1603
- const t = H();
1604
- t && (t.delete(Z), t.delete(tt), t.delete(L)), this.rangeMap.clear(), this.icons.positions = [];
1618
+ const t = G();
1619
+ t && (t.delete(tt), t.delete(et), t.delete(L)), this.rangeMap.clear(), this.icons.positions = [];
1605
1620
  },
1606
1621
  reveal: (e) => {
1607
1622
  var t;
@@ -1623,16 +1638,16 @@ const st = class st extends HTMLElement {
1623
1638
  }
1624
1639
  // --- selection highlight painting (port of updateSelectionHighlights) ---
1625
1640
  updateSelectionHighlights() {
1626
- const e = H();
1641
+ const e = G();
1627
1642
  if (!e) return;
1628
- const t = it(), i = it(), o = /* @__PURE__ */ new Map(), r = [], a = this.actor.getSnapshot().context;
1643
+ const t = nt(), i = nt(), o = /* @__PURE__ */ new Map(), r = [], a = this.actor.getSnapshot().context;
1629
1644
  for (const l of this.selectionComments) {
1630
1645
  if (!l.selection) continue;
1631
1646
  const u = this.querySelector(
1632
- `[${R}="${l.targetId}"]`
1647
+ `[${H}="${l.targetId}"]`
1633
1648
  );
1634
1649
  if (!u) continue;
1635
- const m = mt(u, l.selection);
1650
+ const m = Q(u, l.selection);
1636
1651
  if (!m) continue;
1637
1652
  o.set(l.commentId, m), l.commentId === a.editingCommentId ? i.add(m) : t.add(m);
1638
1653
  const b = m.getClientRects(), g = b[b.length - 1];
@@ -1649,18 +1664,18 @@ const st = class st extends HTMLElement {
1649
1664
  );
1650
1665
  if (l != null && l.selection) {
1651
1666
  const u = this.querySelector(
1652
- `[${R}="${l.targetId}"]`
1667
+ `[${H}="${l.targetId}"]`
1653
1668
  );
1654
1669
  if (u) {
1655
- const m = mt(u, l.selection);
1670
+ const m = Q(u, l.selection);
1656
1671
  m && i.add(m);
1657
1672
  }
1658
1673
  }
1659
1674
  }
1660
1675
  this.rangeMap = o, e.set(
1661
- Z,
1676
+ tt,
1662
1677
  t
1663
- ), e.set(tt, i), this.icons.positions = r;
1678
+ ), e.set(et, i), this.icons.positions = r;
1664
1679
  }
1665
1680
  isAnnotating() {
1666
1681
  return !this.actor.getSnapshot().matches({ annotating: "inactive" });
@@ -1682,14 +1697,14 @@ const st = class st extends HTMLElement {
1682
1697
  return ((t = e.comments.find((i) => i.commentId === e.editingCommentId)) == null ? void 0 : t.targetId) ?? void 0;
1683
1698
  }
1684
1699
  };
1685
- st.observedAttributes = ["bar-position", "shortcut", "default-mode"];
1686
- let rt = st;
1687
- customElements.get("llumi-review") || customElements.define("llumi-review", rt);
1700
+ lt.observedAttributes = ["bar-position", "shortcut", "default-mode"];
1701
+ let at = lt;
1702
+ customElements.get("llumi-review") || customElements.define("llumi-review", at);
1688
1703
  export {
1689
- z as LlumiCommentDialog,
1704
+ T as LlumiCommentDialog,
1690
1705
  S as LlumiDefaultEditor,
1691
1706
  O as LlumiOverallCommentDialog,
1692
- rt as LlumiReview,
1707
+ at as LlumiReview,
1693
1708
  w as LlumiReviewBar,
1694
- ot as LlumiSelectionCommentIcons
1709
+ rt as LlumiSelectionCommentIcons
1695
1710
  };