@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/custom-elements.json +49 -0
- package/dist/review.cjs +27 -27
- package/dist/review.js +27 -27
- package/dist/review.mjs +139 -124
- package/dist/types/components/review/comment-dialog.element.d.ts +8 -0
- package/dist/types/components/review/review.element.d.ts +4 -0
- package/package.json +50 -51
package/dist/review.mjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { fromCallback as
|
|
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
|
|
4
|
-
import { property as f, query as
|
|
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
|
|
10
|
-
import { styleMap as
|
|
11
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
76
|
+
ot,
|
|
77
77
|
C,
|
|
78
|
-
|
|
79
|
-
|
|
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(
|
|
86
|
-
const h =
|
|
87
|
-
for (const { element: p, targetId: d, kind:
|
|
88
|
-
(
|
|
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(
|
|
92
|
-
const c =
|
|
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 =
|
|
97
|
+
const h = R(n, e), p = [];
|
|
98
98
|
for (const { element: d } of h)
|
|
99
|
-
!d.classList.contains(C) && !d.classList.contains(
|
|
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(
|
|
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 =
|
|
108
|
+
const c = R(n, e);
|
|
109
109
|
for (const { element: h } of c)
|
|
110
|
-
h.classList.remove(
|
|
110
|
+
h.classList.remove(U);
|
|
111
111
|
}
|
|
112
112
|
function u(c, h) {
|
|
113
|
-
h || (B(c), c.classList.add(
|
|
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
|
-
(
|
|
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 =
|
|
123
|
-
d !== h && (c.classList.remove(
|
|
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
|
|
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
|
|
141
|
-
const
|
|
142
|
-
|
|
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
|
|
145
|
+
const _ = [
|
|
146
146
|
...d.matches(I.selector) ? [d] : [],
|
|
147
147
|
...Array.from(d.querySelectorAll(I.selector))
|
|
148
148
|
];
|
|
149
|
-
for (const W of
|
|
150
|
-
const
|
|
151
|
-
W.classList.add(V),
|
|
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 =
|
|
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 =
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
829
|
-
check: $(
|
|
828
|
+
const F = {
|
|
829
|
+
check: $(N`<path d="M20 6 9 17l-5-5" />`),
|
|
830
830
|
gripVertical: $(
|
|
831
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
842
|
-
let E =
|
|
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=${
|
|
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">${
|
|
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=${
|
|
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=${
|
|
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=${
|
|
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=${
|
|
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">${
|
|
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">${
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
|
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">${
|
|
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
|
-
|
|
1140
|
+
M([
|
|
1141
1141
|
f({ attribute: !1 })
|
|
1142
|
-
],
|
|
1143
|
-
|
|
1142
|
+
], T.prototype, "targetElement", 2);
|
|
1143
|
+
M([
|
|
1144
|
+
f({ attribute: !1 })
|
|
1145
|
+
], T.prototype, "anchor", 2);
|
|
1146
|
+
M([
|
|
1144
1147
|
f()
|
|
1145
|
-
],
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
],
|
|
1149
|
-
|
|
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
|
-
],
|
|
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
|
-
|
|
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
|
|
1253
|
+
let rt = class extends E {
|
|
1251
1254
|
constructor() {
|
|
1252
1255
|
super(...arguments), this.positions = [];
|
|
1253
1256
|
}
|
|
1254
1257
|
render() {
|
|
1255
|
-
return v`${
|
|
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=${
|
|
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
|
-
],
|
|
1295
|
-
|
|
1297
|
+
], rt.prototype, "positions", 2);
|
|
1298
|
+
rt = Et([
|
|
1296
1299
|
A("llumi-selection-comment-icons")
|
|
1297
|
-
],
|
|
1298
|
-
const
|
|
1299
|
-
let
|
|
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 (
|
|
1304
|
+
if (it) return;
|
|
1302
1305
|
if (document.querySelector(`style[${ft}]`)) {
|
|
1303
|
-
|
|
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),
|
|
1310
|
+
n.setAttribute(ft, ""), n.textContent = Gt, document.head.append(n), it = !0;
|
|
1308
1311
|
}
|
|
1309
|
-
function
|
|
1312
|
+
function G() {
|
|
1310
1313
|
if (!(typeof CSS > "u"))
|
|
1311
1314
|
return CSS.highlights;
|
|
1312
1315
|
}
|
|
1313
|
-
function
|
|
1316
|
+
function nt(...n) {
|
|
1314
1317
|
return new Highlight(
|
|
1315
1318
|
...n
|
|
1316
1319
|
);
|
|
1317
1320
|
}
|
|
1318
|
-
const
|
|
1321
|
+
const lt = class lt extends HTMLElement {
|
|
1319
1322
|
constructor() {
|
|
1320
|
-
super(...arguments), this.persistence =
|
|
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 =
|
|
1328
|
+
const t = e.getRangeAt(0), i = Z(t.startContainer);
|
|
1326
1329
|
if (!i) return;
|
|
1327
|
-
const o =
|
|
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(
|
|
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 =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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) :
|
|
1471
|
+
this.persistence = this.persistKey ? qt(this.persistKey) : mt;
|
|
1469
1472
|
const t = Kt();
|
|
1470
|
-
this.actor =
|
|
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 =
|
|
1484
|
-
e && (e.delete(
|
|
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
|
-
`[${
|
|
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 =
|
|
1604
|
-
t && (t.delete(
|
|
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 =
|
|
1641
|
+
const e = G();
|
|
1627
1642
|
if (!e) return;
|
|
1628
|
-
const t =
|
|
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
|
-
`[${
|
|
1647
|
+
`[${H}="${l.targetId}"]`
|
|
1633
1648
|
);
|
|
1634
1649
|
if (!u) continue;
|
|
1635
|
-
const m =
|
|
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
|
-
`[${
|
|
1667
|
+
`[${H}="${l.targetId}"]`
|
|
1653
1668
|
);
|
|
1654
1669
|
if (u) {
|
|
1655
|
-
const m =
|
|
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
|
-
|
|
1676
|
+
tt,
|
|
1662
1677
|
t
|
|
1663
|
-
), e.set(
|
|
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
|
-
|
|
1686
|
-
let
|
|
1687
|
-
customElements.get("llumi-review") || customElements.define("llumi-review",
|
|
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
|
-
|
|
1704
|
+
T as LlumiCommentDialog,
|
|
1690
1705
|
S as LlumiDefaultEditor,
|
|
1691
1706
|
O as LlumiOverallCommentDialog,
|
|
1692
|
-
|
|
1707
|
+
at as LlumiReview,
|
|
1693
1708
|
w as LlumiReviewBar,
|
|
1694
|
-
|
|
1709
|
+
rt as LlumiSelectionCommentIcons
|
|
1695
1710
|
};
|