@feedmepos/mf-report 5.32.2 → 5.32.3
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/{App-CbDEdVR2.js → App-Ct4zKRmu.js} +4 -4
- package/dist/{DateRangeSelect-PE9H0GCA.js → DateRangeSelect-6ojNsYQf.js} +1 -1
- package/dist/{Default.vue_vue_type_script_setup_true_lang-Cfu4CYAi.js → Default.vue_vue_type_script_setup_true_lang-DinIx-4F.js} +1 -1
- package/dist/DigestListView-Rv4nvsme.js +876 -0
- package/dist/DigestReaderView-Cy5rWEDn.js +526 -0
- package/dist/{DynamicWidget.vue_vue_type_script_setup_true_lang-ldmbZtLO.js → DynamicWidget.vue_vue_type_script_setup_true_lang-CrRev99v.js} +6 -6
- package/dist/{GlobalFilterSelect.vue_vue_type_script_setup_true_lang-ud-55uWq.js → GlobalFilterSelect.vue_vue_type_script_setup_true_lang-CaFtkGgu.js} +4 -4
- package/dist/{InsightView-B8ulTYh7.js → InsightView-SOS32a9h.js} +5 -5
- package/dist/{Integration-DgYDFNeI.js → Integration-CWo6GL7F.js} +179 -179
- package/dist/{Integrations-CKJ6D7qd.js → Integrations-T1M6Fbke.js} +2 -2
- package/dist/{Layout-DUIZFKm9.js → Layout-CNhJDEmI.js} +1 -1
- package/dist/{LocationSelect.vue_vue_type_script_setup_true_lang-DM0WlrQc.js → LocationSelect.vue_vue_type_script_setup_true_lang-DgFWhBfv.js} +2 -2
- package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-UynluHLf.js → MenuTab.vue_vue_type_script_setup_true_lang-BltVG4Ta.js} +5 -5
- package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang-E3heC6je.js → NavigationTab.vue_vue_type_script_setup_true_lang-B70bamMw.js} +5 -5
- package/dist/{OverviewView-DYZOb_qv.js → OverviewView-DM_qaGcz.js} +5 -5
- package/dist/{Report-DCd6g-uK.js → Report-BpCqn_xs.js} +3 -3
- package/dist/ReportCanvasView-0680UK2i.js +1035 -0
- package/dist/{ReportEditor-CTKsXpB-.js → ReportEditor-9gIhhaWp.js} +7 -7
- package/dist/{ReportView-gNNAAc_q.js → ReportView-B1a3q6Ea.js} +6 -6
- package/dist/{ReportViewRoute-DoC6hYww.js → ReportViewRoute-DW-K8Abr.js} +2 -2
- package/dist/{Setting-BiCgtjoi.js → Setting-BikzZySl.js} +3 -3
- package/dist/{Template-nHOQ1GMY.js → Template-DKUNK3A7.js} +3 -3
- package/dist/{TileEditor-z9Wso4D0.js → TileEditor-B21SIE0n.js} +6 -6
- package/dist/{TilePageStack.vue_vue_type_script_setup_true_lang-f5uCjyR1.js → TilePageStack.vue_vue_type_script_setup_true_lang-BH2WdtF-.js} +2 -2
- package/dist/{TransitionFade-DUOfJMio.js → TransitionFade-DNtxHJq8.js} +5 -5
- package/dist/{app-zXupeysX.js → app-DSxKqUxD.js} +14 -14
- package/dist/app.js +1 -1
- package/dist/{currency-BuoNDIHl.js → currency-BJiFhFc7.js} +1 -1
- package/dist/{index-qcO4JKVu.js → index-BdZ-RSDt.js} +1 -1
- package/dist/{report-C3jQF-wm.js → report-DcuMyUEc.js} +1 -1
- package/dist/report-canvas-libs/components-1.js +57 -15
- package/dist/report-canvas-libs-CNx4fuqd.js +40 -0
- package/dist/style.css +1 -1
- package/dist/{useDigestFont-B6du0dOB.js → useDigestFont-DYDD96g_.js} +1 -1
- package/dist/{useReportCanvasPanel-DC-0p5rk.js → useReportCanvasPanel-6D4KNid_.js} +356 -393
- package/dist/{useRestaurantPermission-C1QfXed8.js → useRestaurantPermission-5C-J7LtV.js} +1 -1
- package/package.json +1 -1
- package/dist/DigestListView-Da8l1BCq.js +0 -637
- package/dist/DigestReaderView-FBXcXxUr.js +0 -507
- package/dist/ReportCanvasView-DY0rJ32y.js +0 -966
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { ref as T, shallowRef as
|
|
1
|
+
import { ref as T, shallowRef as Dt, getCurrentScope as Ct, onScopeDispose as Et, watch as se, onMounted as Le, onBeforeUnmount as Pe, defineComponent as $e, computed as B, resolveComponent as Oe, createElementBlock as m, createCommentVNode as P, openBlock as c, createElementVNode as C, Fragment as fe, renderList as me, createVNode as ee, toDisplayString as w, unref as b, createTextVNode as Ce, createBlock as ve, nextTick as ke, normalizeClass as et, h as ce, mergeModels as at, useModel as ot, withCtx as Ue, mergeProps as it } from "vue";
|
|
2
2
|
import { storeToRefs as ze } from "pinia";
|
|
3
|
-
import { detectLocale as
|
|
4
|
-
import { v as oe, F as ie, u as De, a as
|
|
5
|
-
import { c as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { detectLocale as Bt } from "@feedmepos/mf-common";
|
|
4
|
+
import { v as oe, F as ie, u as De, a as qt, a4 as Vt, a5 as Ft, a6 as Ut, a7 as Ht, A as Wt, a8 as Gt, a9 as Yt, aa as Xt, ab as Kt, ac as Jt, ad as Qt } from "./app-DSxKqUxD.js";
|
|
5
|
+
import { c as Zt } from "./currency-BJiFhFc7.js";
|
|
6
|
+
import { l as st } from "./report-canvas-libs-CNx4fuqd.js";
|
|
7
|
+
import { u as Be, _ as Tt } from "./_plugin-vue_export-helper-C6QDExPN.js";
|
|
8
|
+
import { v as lt } from "./report-DcuMyUEc.js";
|
|
8
9
|
function ye(t) {
|
|
9
10
|
const { businessId: e } = ze(De());
|
|
10
11
|
if (!e.value) throw new Error("Business Id is not defined");
|
|
11
12
|
return `/${e.value}/report-canvas/${t}`;
|
|
12
13
|
}
|
|
13
|
-
const
|
|
14
|
+
const Ja = (t) => {
|
|
14
15
|
const e = {
|
|
15
16
|
fetchType: ie.Get,
|
|
16
17
|
url: ye(t)
|
|
17
18
|
};
|
|
18
19
|
return oe.fetch(e);
|
|
19
|
-
},
|
|
20
|
+
}, en = (t, e, n, o, a, i) => {
|
|
20
21
|
const v = {
|
|
21
22
|
fetchType: ie.Post,
|
|
22
23
|
url: `${ye(t)}/query/${e}`,
|
|
@@ -25,43 +26,43 @@ const to = (t) => {
|
|
|
25
26
|
requestConfig: { signal: i }
|
|
26
27
|
};
|
|
27
28
|
return oe.fetch(v);
|
|
28
|
-
},
|
|
29
|
+
}, Qa = (t, e, n, o) => {
|
|
29
30
|
const a = {
|
|
30
31
|
fetchType: ie.Post,
|
|
31
32
|
url: `${ye(t)}/section/${e}/ack`,
|
|
32
33
|
data: { ...n, state: o }
|
|
33
34
|
};
|
|
34
35
|
return oe.fetch(a);
|
|
35
|
-
},
|
|
36
|
+
}, Za = (t) => oe.fetch({
|
|
36
37
|
fetchType: ie.Post,
|
|
37
38
|
url: `${ye(t)}/publish`,
|
|
38
39
|
data: {}
|
|
39
|
-
}),
|
|
40
|
+
}), eo = (t) => oe.fetch({
|
|
40
41
|
fetchType: ie.Delete,
|
|
41
42
|
url: `${ye(t)}/draft`
|
|
42
|
-
}),
|
|
43
|
+
}), to = (t, e) => oe.fetch({
|
|
43
44
|
fetchType: ie.Post,
|
|
44
45
|
url: `${ye(t)}/draft/undo`,
|
|
45
46
|
data: { turnId: e }
|
|
46
|
-
}),
|
|
47
|
+
}), no = (t) => oe.fetch({
|
|
47
48
|
fetchType: ie.Get,
|
|
48
49
|
url: `${ye(t)}/versions`
|
|
49
|
-
}),
|
|
50
|
+
}), ro = (t, e) => oe.fetch({
|
|
50
51
|
fetchType: ie.Post,
|
|
51
52
|
url: `${ye(t)}/restore`,
|
|
52
53
|
data: { versionId: e }
|
|
53
|
-
}),
|
|
54
|
-
function
|
|
55
|
-
if (!(!(t instanceof
|
|
56
|
-
return Math.min(Math.max(t.retryAfterMs ??
|
|
54
|
+
}), tn = ["@from", "@to", "@locationIds", "@timezone"], He = ["@from", "@to", "@locationIds"], nn = ["@timezone"], rn = ["@locationIds"], an = 1, on = 1500;
|
|
55
|
+
function sn(t) {
|
|
56
|
+
if (!(!(t instanceof Wt) || t.status !== 429))
|
|
57
|
+
return Math.min(Math.max(t.retryAfterMs ?? on, 500), 5e3);
|
|
57
58
|
}
|
|
58
59
|
const ft = {
|
|
59
|
-
"en-US":
|
|
60
|
-
"th-TH":
|
|
61
|
-
"zh-CN":
|
|
62
|
-
"zh-Hant":
|
|
60
|
+
"en-US": Ht,
|
|
61
|
+
"th-TH": Ut,
|
|
62
|
+
"zh-CN": Ft,
|
|
63
|
+
"zh-Hant": Vt
|
|
63
64
|
};
|
|
64
|
-
function
|
|
65
|
+
function ln(t) {
|
|
65
66
|
var a, i;
|
|
66
67
|
const e = ft[t] ?? ft["en-US"], n = {}, o = (v, k) => {
|
|
67
68
|
for (const [_, u] of Object.entries(v ?? {}))
|
|
@@ -72,11 +73,11 @@ function dn(t) {
|
|
|
72
73
|
function dt(t) {
|
|
73
74
|
return t == null ? !0 : Array.isArray(t) ? t.length === 0 : t === "";
|
|
74
75
|
}
|
|
75
|
-
function
|
|
76
|
-
const n = e.frozen, o =
|
|
76
|
+
function ao(t, e = {}) {
|
|
77
|
+
const n = e.frozen, o = qt(), { dateRange: a, selectedLocationIds: i, locations: v, timezone: k } = ze(o), { country: _ } = ze(De()), u = T({}), D = T([]), R = T({}), A = Dt({}), M = T(), O = T([]), E = [], j = [], N = { ids: "[]", date: "" };
|
|
77
78
|
let L = !1;
|
|
78
79
|
const V = {}, Y = {};
|
|
79
|
-
|
|
80
|
+
Ct() && Et(() => Object.values(Y).forEach((h) => h.abort()));
|
|
80
81
|
const X = {};
|
|
81
82
|
function Z(h) {
|
|
82
83
|
E.push(h);
|
|
@@ -136,7 +137,7 @@ function lo(t, e = {}) {
|
|
|
136
137
|
return { values: u.value, decls: D.value, intent: R.value };
|
|
137
138
|
}
|
|
138
139
|
function ue() {
|
|
139
|
-
const h =
|
|
140
|
+
const h = Bt() || "en-US";
|
|
140
141
|
return {
|
|
141
142
|
locations: v.value.map((I) => ({
|
|
142
143
|
id: I.id,
|
|
@@ -145,8 +146,8 @@ function lo(t, e = {}) {
|
|
|
145
146
|
})),
|
|
146
147
|
timezone: n && typeof u.value["@timezone"] == "string" ? u.value["@timezone"] : k.value,
|
|
147
148
|
locale: h,
|
|
148
|
-
currency:
|
|
149
|
-
strings:
|
|
149
|
+
currency: Zt(_.value),
|
|
150
|
+
strings: ln(h)
|
|
150
151
|
};
|
|
151
152
|
}
|
|
152
153
|
function we(h, I) {
|
|
@@ -182,7 +183,7 @@ function lo(t, e = {}) {
|
|
|
182
183
|
});
|
|
183
184
|
for (let r = 0; ; r++)
|
|
184
185
|
try {
|
|
185
|
-
const p = await
|
|
186
|
+
const p = await en(
|
|
186
187
|
t,
|
|
187
188
|
h.id,
|
|
188
189
|
I,
|
|
@@ -202,8 +203,8 @@ function lo(t, e = {}) {
|
|
|
202
203
|
return;
|
|
203
204
|
} catch (p) {
|
|
204
205
|
if (F.signal.aborted || V[h.id] !== z) return;
|
|
205
|
-
const G =
|
|
206
|
-
if (G !== void 0 && r <
|
|
206
|
+
const G = sn(p);
|
|
207
|
+
if (G !== void 0 && r < an) {
|
|
207
208
|
if (await new Promise((W) => setTimeout(W, G)), V[h.id] !== z) return;
|
|
208
209
|
continue;
|
|
209
210
|
}
|
|
@@ -251,8 +252,8 @@ function lo(t, e = {}) {
|
|
|
251
252
|
const z = { ...u.value }, F = { ...R.value };
|
|
252
253
|
let J = !1;
|
|
253
254
|
for (const [H, r] of Object.entries(h)) {
|
|
254
|
-
if (!(H in z) ||
|
|
255
|
-
const p =
|
|
255
|
+
if (!(H in z) || nn.includes(H)) continue;
|
|
256
|
+
const p = rn.includes(H) ? I == null ? void 0 : I[H] : void 0;
|
|
256
257
|
F[H] !== p && (p ? F[H] = p : delete F[H], J = !0), JSON.stringify(z[H] ?? null) !== JSON.stringify(r ?? null) && (z[H] = r, J = !0);
|
|
257
258
|
}
|
|
258
259
|
return J ? (u.value = z, R.value = F, Object.keys(h).some((H) => He.includes(H)) && re(), he(), j.forEach((H) => H()), !0) : !1;
|
|
@@ -296,84 +297,46 @@ function lo(t, e = {}) {
|
|
|
296
297
|
setParams: de,
|
|
297
298
|
onResult: Z,
|
|
298
299
|
onParamsChanged: l,
|
|
299
|
-
RESERVED:
|
|
300
|
+
RESERVED: tn
|
|
300
301
|
};
|
|
301
302
|
}
|
|
302
|
-
const cn = `:root{--fm-palette-brand-fm-100:#fff3e6;--fm-palette-brand-fm-200:#ff9455;--fm-palette-brand-fm-300:#ff7823;--fm-palette-brand-fm-400:#b25300;--fm-palette-brand-fm-500:#6b3100;--fm-palette-aqua-100:#b7e2ff;--fm-palette-aqua-300:#3ab0ff;--fm-palette-aqua-500:#0a5384;--fm-palette-berry-100:#fee4dc;--fm-palette-berry-300:#e94850;--fm-palette-berry-500:#5f090a;--fm-palette-blossom-100:#fff7fc;--fm-palette-blossom-300:#ffc4c3;--fm-palette-blossom-500:#8c146a;--fm-palette-lime-100:#f4fde6;--fm-palette-lime-300:#aeef4b;--fm-palette-lime-500:#306a01;--fm-palette-mustard-100:#fef5ea;--fm-palette-mustard-300:#ffc746;--fm-palette-mustard-500:#903e1f;--fm-palette-stone-100:#f6f8fc;--fm-palette-stone-300:#b2b3b6;--fm-palette-stone-500:#2e2e2e;--fm-palette-grape-100:#eddfff;--fm-palette-grape-300:#8f61e8;--fm-palette-grape-500:#512191;--fm-palette-neurastone-0:#fff;--fm-palette-neurastone-100:#f6f6f8;--fm-palette-neurastone-200:#f0f0f0;--fm-palette-neurastone-300:#b2b3b6;--fm-palette-neurastone-400:#6b6c70;--fm-palette-neurastone-500:#4b4b4b;--fm-palette-neurastone-600:#2e2e2e;--fm-palette-neurastone-700:#262628;--fm-palette-neurastone-800:#1c1c1e;--fm-palette-neurastone-900:#121212;--fm-palette-blue-100:#e6f2ff;--fm-palette-blue-200:#66afff;--fm-palette-blue-300:#007aff;--fm-palette-blue-400:#004999;--fm-palette-blue-500:#002c5c;--fm-palette-orange-100:#fff4e6;--fm-palette-orange-200:#ffbf66;--fm-palette-orange-300:#ff9500;--fm-palette-orange-400:#995900;--fm-palette-orange-500:#5c3500;--fm-palette-green-100:#ebf9ee;--fm-palette-green-200:#85dd9b;--fm-palette-green-300:#34c759;--fm-palette-green-400:#1f7735;--fm-palette-green-500:#134720;--fm-palette-red-100:#ffebea;--fm-palette-red-200:#ff8983;--fm-palette-red-300:#ff3b30;--fm-palette-red-400:#99231d;--fm-palette-red-500:#5c1511;--fm-palette-overlay-black-alpha-4:#1212120a;--fm-palette-overlay-black-alpha-8:#12121214;--fm-palette-overlay-black-alpha-12:#1212121f;--fm-palette-overlay-black-alpha-16:#12121229;--fm-palette-overlay-black-alpha-24:#1212123d;--fm-palette-overlay-black-alpha-32:#12121252;--fm-palette-overlay-black-alpha-48:#1212127a;--fm-palette-overlay-black-alpha-64:#121212a3;--fm-palette-overlay-black-alpha-72:#121212b8;--fm-palette-overlay-black-alpha-80:#121212cc;--fm-palette-overlay-white-alpha-4:#ffffff0a;--fm-palette-overlay-white-alpha-8:#ffffff14;--fm-palette-overlay-white-alpha-12:#ffffff1f;--fm-palette-overlay-white-alpha-16:#ffffff29;--fm-palette-overlay-white-alpha-24:#ffffff3d;--fm-palette-overlay-white-alpha-32:#ffffff52;--fm-palette-overlay-white-alpha-48:#ffffff7a;--fm-palette-overlay-white-alpha-64:#ffffffa3;--fm-palette-overlay-white-alpha-72:#ffffffb8;--fm-palette-overlay-white-alpha-80:#fffc;--fm-spacing-0:0;--fm-spacing-1:1px;--fm-spacing-2:2px;--fm-spacing-4:4px;--fm-spacing-6:6px;--fm-spacing-8:8px;--fm-spacing-10:10px;--fm-spacing-12:12px;--fm-spacing-14:14px;--fm-spacing-16:16px;--fm-spacing-18:18px;--fm-spacing-20:20px;--fm-spacing-24:24px;--fm-spacing-28:28px;--fm-spacing-32:32px;--fm-spacing-40:40px;--fm-spacing-48:48px;--fm-spacing-56:56px;--fm-spacing-64:64px;--fm-spacing-72:72px;--fm-spacing-80:80px;--fm-spacing-88:88px;--fm-spacing-96:96px;--fm-spacing-104:104px;--fm-spacing-112:112px;--fm-spacing-120:120px;--fm-spacing-128:128px;--fm-spacing-160:160px;--fm-spacing-192:192px;--fm-radius-none:0;--fm-radius-xs:4px;--fm-radius-sm:8px;--fm-radius-md:12px;--fm-radius-lg:16px;--fm-radius-xl:24px;--fm-radius-2xl:32px;--fm-radius-3xl:64px;--fm-radius-full:99999px;--fm-border-width-none:0;--fm-border-width-hairline:.5px;--fm-border-width-thin:1px;--fm-border-width-regular:1.5px;--fm-border-width-medium:2px;--fm-border-width-thick:4px;--fm-opacity-0:0;--fm-opacity-8:.08;--fm-opacity-12:.12;--fm-opacity-16:.16;--fm-opacity-24:.24;--fm-opacity-32:.32;--fm-opacity-40:.4;--fm-opacity-48:.48;--fm-opacity-56:.56;--fm-opacity-64:.64;--fm-opacity-80:.8;--fm-opacity-100:1;--fm-shadow-blur-none:0;--fm-shadow-blur-xs:2px;--fm-shadow-blur-sm:4px;--fm-shadow-blur-md:6px;--fm-shadow-blur-lg:10px;--fm-shadow-blur-xl:16px;--fm-shadow-blur-2xl:24px;--fm-blur-sm:8px;--fm-blur-md:16px;--fm-blur-lg:24px;--fm-blur-xl:40px;--fm-z-index-base:0;--fm-z-index-raised:100;--fm-z-index-dropdown:200;--fm-z-index-sticky:300;--fm-z-index-overlay:400;--fm-z-index-modal:500;--fm-z-index-toast:600;--fm-z-index-tooltip:700;--fm-duration-instant:0s;--fm-duration-fast:.1s;--fm-duration-normal:.2s;--fm-duration-slow:.3s;--fm-duration-slower:.5s;--fm-easing-standard:cubic-bezier(.4, 0, .2, 1);--fm-easing-decelerate:cubic-bezier(0, 0, .2, 1);--fm-easing-accelerate:cubic-bezier(.4, 0, 1, 1);--fm-easing-spring:cubic-bezier(.34, 1.56, .64, 1);--fm-shadow-color:#1c1c1e;--fm-breakpoint-sm:0;--fm-breakpoint-md:768px;--fm-breakpoint-lg:1024px;--fm-breakpoint-xl:1440px;--fm-breakpoint-xxl:1920px}:root,[data-fm-theme=light]{--fm-bg-canvas:#f6f6f8;--fm-bg-default:#fff;--fm-bg-subtle:#f6f6f8;--fm-bg-muted:#f0f0f0;--fm-bg-elevated:#fff;--fm-bg-inverse:#1c1c1e;--fm-bg-brand:#fff3e6;--fm-bg-success:#ebf9ee;--fm-bg-warning:#fff4e6;--fm-bg-error:#ffebea;--fm-bg-info:#e6f2ff;--fm-surface-default:#fff;--fm-surface-sunken:#f0f0f0;--fm-surface-inset:#b2b3b6;--fm-surface-raised:#fff;--fm-surface-floating:#fff;--fm-text-primary:#1c1c1e;--fm-text-secondary:#4b4b4b;--fm-text-muted:#6b6c70;--fm-text-disabled:#b2b3b6;--fm-text-inverse:#fff;--fm-text-on-inset:#fff;--fm-text-link:#007aff;--fm-text-brand:#ff7823;--fm-text-success:#1f7735;--fm-text-warning:#995900;--fm-text-error:#99231d;--fm-icon-primary:#1c1c1e;--fm-icon-secondary:#4b4b4b;--fm-icon-muted:#6b6c70;--fm-icon-disabled:#b2b3b6;--fm-icon-inverse:#fff;--fm-icon-link:#007aff;--fm-icon-brand:#ff7823;--fm-icon-success:#1f7735;--fm-icon-warning:#995900;--fm-icon-error:#99231d;--fm-icon-info:#004999;--fm-icon-on-brand:#b25300;--fm-icon-on-success:#1f7735;--fm-icon-on-warning:#995900;--fm-icon-on-error:#99231d;--fm-icon-on-info:#004999;--fm-text-info:#004999;--fm-border-default:#f0f0f0;--fm-border-subtle:#f6f6f8;--fm-border-medium:#b2b3b6;--fm-border-strong:#6b6c70;--fm-border-inverse:#fff;--fm-border-brand:#ff7823;--fm-border-success:#1f7735;--fm-border-warning:#995900;--fm-border-error:#99231d;--fm-border-info:#004999;--fm-overlay-scrim-1:#12121252;--fm-overlay-scrim-2:#1212127a;--fm-overlay-scrim-3:#121212a3;--fm-overlay-scrim-4:#121212b8;--fm-action-primary-bg:#ff7823;--fm-feature-aqua-bg:#b7e2ff;--fm-feature-aqua-accent:#3ab0ff;--fm-feature-aqua-fg:#0a5384;--fm-feature-berry-bg:#fee4dc;--fm-feature-berry-accent:#e94850;--fm-feature-berry-fg:#5f090a;--fm-feature-blossom-bg:#fff7fc;--fm-feature-blossom-accent:#ffc4c3;--fm-feature-blossom-fg:#8c146a;--fm-feature-lime-bg:#f4fde6;--fm-feature-lime-accent:#aeef4b;--fm-feature-lime-fg:#306a01;--fm-feature-mustard-bg:#fef5ea;--fm-feature-mustard-accent:#ffc746;--fm-feature-mustard-fg:#903e1f;--fm-feature-stone-bg:#f6f8fc;--fm-feature-stone-accent:#b2b3b6;--fm-feature-stone-fg:#2e2e2e;--fm-feature-grape-bg:#eddfff;--fm-feature-grape-accent:#8f61e8;--fm-feature-grape-fg:#512191;--fm-state-subtle:#1212120a;--fm-state-hover:#12121214;--fm-state-pressed:#1212121f;--fm-state-selected:#12121229;--fm-state-dragged:#1212123d;--fm-action-primary-bg-hover:#b25300;--fm-action-primary-bg-subtle:#fff3e6;--fm-action-primary-fg:#1c1c1e;--fm-action-secondary-bg:#fff;--fm-action-secondary-bg-hover:#f6f6f8;--fm-action-secondary-fg:#1c1c1e;--fm-action-ghost-bg-hover:#f6f6f8;--fm-action-ghost-bg-active:#f0f0f0;--fm-action-danger-bg:#ff3b30;--fm-action-danger-bg-hover:#99231d;--fm-action-danger-bg-subtle:#ffebea;--fm-action-danger-fg:#1c1c1e;--fm-action-disabled-bg:#f0f0f0;--fm-action-disabled-fg:#6b6c70;--fm-text-on-brand:#b25300;--fm-text-on-success:#1f7735;--fm-text-on-warning:#995900;--fm-text-on-error:#99231d;--fm-text-on-info:#004999;--fm-badge-bg-aqua:#b7e2ff;--fm-badge-text-on-aqua:#0a5384;--fm-badge-icon-on-aqua:#0a5384;--fm-badge-border-aqua:#0a5384;--fm-badge-bg-berry:#fee4dc;--fm-badge-bg-blossom:#fff7fc;--fm-badge-bg-lime:#f4fde6;--fm-badge-bg-mustard:#fef5ea;--fm-badge-bg-stone:#f6f8fc;--fm-badge-bg-grape:#eddfff;--fm-badge-border-blossom:#8c146a;--fm-badge-text-on-blossom:#8c146a;--fm-badge-icon-on-blossom:#8c146a;--fm-badge-border-berry:#5f090a;--fm-badge-text-on-berry:#5f090a;--fm-badge-icon-on-berry:#5f090a;--fm-badge-border-lime:#306a01;--fm-badge-text-on-lime:#306a01;--fm-badge-icon-on-lime:#306a01;--fm-badge-border-mustard:#903e1f;--fm-badge-text-on-mustard:#903e1f;--fm-badge-icon-on-mustard:#903e1f;--fm-badge-border-stone:#2e2e2e;--fm-badge-text-on-stone:#2e2e2e;--fm-badge-icon-on-stone:#2e2e2e;--fm-badge-border-grape:#512191;--fm-badge-text-on-grape:#512191;--fm-badge-icon-on-grape:#512191;--fm-badge-bg-brand:#fff3e6;--fm-badge-border-brand:#ff7823;--fm-badge-text-on-brand:#ff7823;--fm-badge-icon-on-brand:#ff7823}[data-fm-theme=dark]{--fm-bg-canvas:#121212;--fm-bg-default:#1c1c1e;--fm-bg-subtle:#262628;--fm-bg-muted:#2e2e2e;--fm-bg-elevated:#262628;--fm-bg-inverse:#fff;--fm-bg-brand:#b25300;--fm-bg-success:#1f7735;--fm-bg-warning:#995900;--fm-bg-error:#99231d;--fm-bg-info:#004999;--fm-surface-default:#262628;--fm-surface-sunken:#121212;--fm-surface-inset:#1c1c1e;--fm-surface-raised:#2e2e2e;--fm-surface-floating:#4b4b4b;--fm-text-primary:#fff;--fm-text-secondary:#b2b3b6;--fm-text-muted:#6b6c70;--fm-text-disabled:#4b4b4b;--fm-text-inverse:#1c1c1e;--fm-text-on-inset:#fff;--fm-text-link:#66afff;--fm-text-brand:#fff3e6;--fm-text-success:#85dd9b;--fm-text-warning:#ffbf66;--fm-text-error:#ff8983;--fm-icon-primary:#fff;--fm-icon-secondary:#b2b3b6;--fm-icon-muted:#6b6c70;--fm-icon-disabled:#4b4b4b;--fm-icon-inverse:#1c1c1e;--fm-icon-link:#66afff;--fm-icon-brand:#fff3e6;--fm-icon-success:#85dd9b;--fm-icon-warning:#ffbf66;--fm-icon-error:#ff8983;--fm-icon-info:#66afff;--fm-icon-on-brand:#fff3e6;--fm-icon-on-success:#ebf9ee;--fm-icon-on-warning:#fff4e6;--fm-icon-on-error:#ffebea;--fm-icon-on-info:#e6f2ff;--fm-text-info:#66afff;--fm-border-default:#2e2e2e;--fm-border-subtle:#262628;--fm-border-medium:#b2b3b6;--fm-border-strong:#f6f6f8;--fm-border-inverse:#1c1c1e;--fm-border-brand:#fff3e6;--fm-border-success:#85dd9b;--fm-border-warning:#ffbf66;--fm-border-error:#ff8983;--fm-border-info:#66afff;--fm-overlay-scrim-1:#1212127a;--fm-overlay-scrim-2:#121212a3;--fm-overlay-scrim-3:#121212b8;--fm-overlay-scrim-4:#121212cc;--fm-action-primary-bg:#ff7823;--fm-feature-aqua-bg:#0a5384;--fm-feature-aqua-accent:#3ab0ff;--fm-feature-aqua-fg:#b7e2ff;--fm-feature-berry-bg:#5f090a;--fm-feature-berry-accent:#e94850;--fm-feature-berry-fg:#fee4dc;--fm-feature-blossom-bg:#8c146a;--fm-feature-blossom-accent:#ffc4c3;--fm-feature-blossom-fg:#fff7fc;--fm-feature-lime-bg:#306a01;--fm-feature-lime-accent:#aeef4b;--fm-feature-lime-fg:#f4fde6;--fm-feature-mustard-bg:#903e1f;--fm-feature-mustard-accent:#ffc746;--fm-feature-mustard-fg:#fef5ea;--fm-feature-stone-bg:#2e2e2e;--fm-feature-stone-accent:#b2b3b6;--fm-feature-stone-fg:#f6f8fc;--fm-feature-grape-bg:#512191;--fm-feature-grape-accent:#8f61e8;--fm-feature-grape-fg:#eddfff;--fm-state-subtle:#ffffff0a;--fm-state-hover:#ffffff14;--fm-state-pressed:#ffffff1f;--fm-state-selected:#ffffff29;--fm-state-dragged:#ffffff3d;--fm-action-primary-bg-hover:#b25300;--fm-action-primary-bg-subtle:#6b3100;--fm-action-primary-fg:#1c1c1e;--fm-action-secondary-bg:#262628;--fm-action-secondary-bg-hover:#2e2e2e;--fm-action-secondary-fg:#fff;--fm-action-ghost-bg-hover:#262628;--fm-action-ghost-bg-active:#2e2e2e;--fm-action-danger-bg:#ff3b30;--fm-action-danger-bg-hover:#99231d;--fm-action-danger-bg-subtle:#5c1511;--fm-action-danger-fg:#1c1c1e;--fm-action-disabled-bg:#2e2e2e;--fm-action-disabled-fg:#6b6c70;--fm-text-on-brand:#fff3e6;--fm-text-on-success:#ebf9ee;--fm-text-on-warning:#fff4e6;--fm-text-on-error:#ffebea;--fm-text-on-info:#e6f2ff;--fm-badge-bg-aqua:#0a5384;--fm-badge-text-on-aqua:#b7e2ff;--fm-badge-icon-on-aqua:#b7e2ff;--fm-badge-border-aqua:#3ab0ff;--fm-badge-bg-berry:#5f090a;--fm-badge-bg-blossom:#8c146a;--fm-badge-bg-lime:#306a01;--fm-badge-bg-mustard:#903e1f;--fm-badge-bg-stone:#2e2e2e;--fm-badge-bg-grape:#512191;--fm-badge-border-blossom:#ffc4c3;--fm-badge-text-on-blossom:#fff7fc;--fm-badge-icon-on-blossom:#fff7fc;--fm-badge-border-berry:#e94850;--fm-badge-text-on-berry:#fee4dc;--fm-badge-icon-on-berry:#fee4dc;--fm-badge-border-lime:#aeef4b;--fm-badge-text-on-lime:#f4fde6;--fm-badge-icon-on-lime:#f4fde6;--fm-badge-border-mustard:#ffc746;--fm-badge-text-on-mustard:#fef5ea;--fm-badge-icon-on-mustard:#fef5ea;--fm-badge-border-stone:#b2b3b6;--fm-badge-text-on-stone:#f6f8fc;--fm-badge-icon-on-stone:#f6f8fc;--fm-badge-border-grape:#8f61e8;--fm-badge-text-on-grape:#eddfff;--fm-badge-icon-on-grape:#eddfff;--fm-badge-bg-brand:#6b3100;--fm-badge-border-brand:#ff7823;--fm-badge-text-on-brand:#fff3e6;--fm-badge-icon-on-brand:#fff3e6}:root{--fm-font-size-8:8px;--fm-font-size-10:10px;--fm-font-size-12:12px;--fm-font-size-14:14px;--fm-font-size-16:16px;--fm-font-size-18:18px;--fm-font-size-22:22px;--fm-font-size-26:26px;--fm-font-size-32:32px;--fm-font-size-36:36px;--fm-font-size-48:48px;--fm-font-size-60:60px;--fm-font-size-72:72px;--fm-font-family-heading:"Cabinet Grotesk";--fm-font-family-body:"Inter";--fm-font-weight-regular:400;--fm-font-weight-medium:500;--fm-font-weight-semi-bold:600;--fm-font-weight-extra-bold:800;--fm-font-weight-black:900;--fm-line-height-8:12px;--fm-line-height-10:14px;--fm-line-height-12:16px;--fm-line-height-14:20px;--fm-line-height-16:24px;--fm-line-height-18:26px;--fm-line-height-22:30px;--fm-line-height-26:36px;--fm-line-height-32:40px;--fm-line-height-36:44px;--fm-line-height-48:56px;--fm-line-height-60:72px;--fm-line-height-72:80px}:root:lang(zh),[lang=zh]{--fm-font-family-heading:"Noto Sans SC";--fm-font-family-body:"Noto Sans SC";--fm-font-weight-regular:400;--fm-font-weight-medium:500;--fm-font-weight-semi-bold:600;--fm-font-weight-extra-bold:800;--fm-font-weight-black:900;--fm-line-height-8:12px;--fm-line-height-10:14px;--fm-line-height-12:18px;--fm-line-height-14:20px;--fm-line-height-16:26px;--fm-line-height-18:26px;--fm-line-height-22:30px;--fm-line-height-26:36px;--fm-line-height-32:44px;--fm-line-height-36:46px;--fm-line-height-48:60px;--fm-line-height-60:76px;--fm-line-height-72:90px}:root:lang(th),[lang=th]{--fm-font-family-heading:"Noto Sans Thai";--fm-font-family-body:"Noto Sans Thai";--fm-font-weight-regular:400;--fm-font-weight-medium:500;--fm-font-weight-semi-bold:600;--fm-font-weight-extra-bold:800;--fm-font-weight-black:900;--fm-line-height-8:14px;--fm-line-height-10:16px;--fm-line-height-12:20px;--fm-line-height-14:24px;--fm-line-height-16:28px;--fm-line-height-18:28px;--fm-line-height-22:32px;--fm-line-height-26:38px;--fm-line-height-32:46px;--fm-line-height-36:50px;--fm-line-height-48:64px;--fm-line-height-60:80px;--fm-line-height-72:96px}.fm-text-display-xl{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:72px;font-weight:900;line-height:80px}.fm-text-display-lg{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:60px;font-weight:900;line-height:72px}.fm-text-display-md{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:48px;font-weight:900;line-height:56px}.fm-text-display-sm{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:36px;font-weight:900;line-height:44px}.fm-text-title-xl{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:32px;font-weight:800;line-height:40px}.fm-text-title-lg{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:26px;font-weight:800;line-height:36px}.fm-text-title-md{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:22px;font-weight:800;line-height:30px}.fm-text-title-sm{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:18px;font-weight:800;line-height:26px}.fm-text-body-lg-600{letter-spacing:.0025em;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:24px}.fm-text-body-md-600{letter-spacing:.01em;font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:20px}.fm-text-body-sm-600{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:16px}.fm-text-body-xs-600{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:10px;font-weight:600;line-height:14px}.fm-text-body-overline-xs-600{letter-spacing:.1em;font-family:Inter,sans-serif;font-size:10px;font-weight:600;line-height:14px}.fm-text-body-overline-2xs-600{letter-spacing:.1em;font-family:Inter,sans-serif;font-size:8px;font-weight:600;line-height:12px}.fm-text-body-lg-500{letter-spacing:.0025em;font-family:Inter,sans-serif;font-size:16px;font-weight:500;line-height:24px}.fm-text-body-md-500{letter-spacing:.01em;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:20px}.fm-text-body-sm-500{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:12px;font-weight:500;line-height:16px}.fm-text-body-xs-500{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:10px;font-weight:500;line-height:14px}.fm-text-body-lg-400{letter-spacing:.0025em;font-family:Inter,sans-serif;font-size:16px;font-weight:400;line-height:24px}.fm-text-body-md-400{letter-spacing:.01em;font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:20px}.fm-text-body-sm-400{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:16px}.fm-text-body-xs-400{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:10px;font-weight:400;line-height:14px}:root{--fm-shadow-light-xs:0 1px 2px 0 #1c1c1e0a;--fm-shadow-light-sm:0 2px 4px 0 #1c1c1e0f;--fm-shadow-light-md:0 4px 6px 0 #1c1c1e14;--fm-shadow-light-lg:0 6px 10px 0 #1c1c1e1a;--fm-shadow-light-xl:0 8px 16px 0 #1c1c1e1f;--fm-shadow-light-2xl:0 12px 24px 0 #1c1c1e24;--fm-shadow-light-top-sm:0 -2px 4px 0 #1c1c1e0f;--fm-shadow-light-top-md:0 -4px 6px 0 #1c1c1e14;--fm-shadow-light-side-left-md:-4px 0 6px 0 #1c1c1e14;--fm-shadow-light-side-right-md:4px 0 6px 0 #1c1c1e14;--fm-shadow-light-text-sm:0 1px 1px 0 #1c1c1e0d;--fm-shadow-light-text-md:0 1px 2px 0 #1c1c1e1a;--fm-shadow-light-text-lg:0 2px 4px 0 #1c1c1e26;--fm-shadow-light-text-xl:0 3px 6px 0 #1c1c1e33;--fm-shadow-dark-xs:0 1px 2px 0 #ffffff0a;--fm-shadow-dark-sm:0 2px 4px 0 #ffffff0f;--fm-shadow-dark-md:0 4px 6px 0 #ffffff14;--fm-shadow-dark-lg:0 6px 10px 0 #ffffff1a;--fm-shadow-dark-xl:0 8px 16px 0 #ffffff1f;--fm-shadow-dark-2xl:0 12px 24px 0 #ffffff24;--fm-shadow-dark-top-sm:0 -2px 4px 0 #ffffff0f;--fm-shadow-dark-top-md:0 -4px 6px 0 #ffffff14;--fm-shadow-dark-side-left-md:-4px 0 6px 0 #ffffff14;--fm-shadow-dark-side-right-md:4px 0 6px 0 #ffffff14;--fm-shadow-dark-text-sm:0 1px 1px 0 #ffffff0d;--fm-shadow-dark-text-md:0 1px 2px 0 #ffffff1a;--fm-shadow-dark-text-lg:0 2px 4px 0 #ffffff26;--fm-shadow-dark-text-xl:0 3px 6px 0 #fff3;--fm-outer-shadow-light-brand:0 0 0 4px #ff782352;--fm-outer-shadow-light-error:0 0 0 4px #ff3b3052;--fm-outer-shadow-dark-brand:0 0 0 4px #ff782366;--fm-outer-shadow-dark-error:0 0 0 4px #ff3b3066;--fm-inner-shadow-light-sm:inset 0 1px 2px 0 #1c1c1e0f;--fm-inner-shadow-light-md:inset 0 2px 4px 0 #1c1c1e1a;--fm-inner-shadow-light-brand:0 2px 4px 0 #1c1c1e14, inset 0 0 0 1.25px #1c1c1e1f;--fm-inner-shadow-dark-sm:inset 0 1px 2px 0 #ffffff0f;--fm-inner-shadow-dark-md:inset 0 2px 4px 0 #ffffff1a;--fm-inner-shadow-dark-brand:0 2px 4px 0 #ffffff14, inset 0 0 0 1.25px #ffffff1f;--fm-blur-sm:8px;--fm-blur-md:16px;--fm-blur-lg:24px;--fm-blur-xl:40px}:root,[data-fm-theme=light]{--fm-shadow-xs:var(--fm-shadow-light-xs);--fm-shadow-sm:var(--fm-shadow-light-sm);--fm-shadow-md:var(--fm-shadow-light-md);--fm-shadow-lg:var(--fm-shadow-light-lg);--fm-shadow-xl:var(--fm-shadow-light-xl);--fm-shadow-2xl:var(--fm-shadow-light-2xl);--fm-shadow-top-sm:var(--fm-shadow-light-top-sm);--fm-shadow-top-md:var(--fm-shadow-light-top-md);--fm-shadow-side-left-md:var(--fm-shadow-light-side-left-md);--fm-shadow-side-right-md:var(--fm-shadow-light-side-right-md);--fm-shadow-text-sm:var(--fm-shadow-light-text-sm);--fm-shadow-text-md:var(--fm-shadow-light-text-md);--fm-shadow-text-lg:var(--fm-shadow-light-text-lg);--fm-shadow-text-xl:var(--fm-shadow-light-text-xl);--fm-outer-shadow-brand:var(--fm-outer-shadow-light-brand);--fm-outer-shadow-error:var(--fm-outer-shadow-light-error);--fm-inner-shadow-sm:var(--fm-inner-shadow-light-sm);--fm-inner-shadow-md:var(--fm-inner-shadow-light-md);--fm-inner-shadow-brand:var(--fm-inner-shadow-light-brand)}[data-fm-theme=dark]{--fm-shadow-xs:var(--fm-shadow-dark-xs);--fm-shadow-sm:var(--fm-shadow-dark-sm);--fm-shadow-md:var(--fm-shadow-dark-md);--fm-shadow-lg:var(--fm-shadow-dark-lg);--fm-shadow-xl:var(--fm-shadow-dark-xl);--fm-shadow-2xl:var(--fm-shadow-dark-2xl);--fm-shadow-top-sm:var(--fm-shadow-dark-top-sm);--fm-shadow-top-md:var(--fm-shadow-dark-top-md);--fm-shadow-side-left-md:var(--fm-shadow-dark-side-left-md);--fm-shadow-side-right-md:var(--fm-shadow-dark-side-right-md);--fm-shadow-text-sm:var(--fm-shadow-dark-text-sm);--fm-shadow-text-md:var(--fm-shadow-dark-text-md);--fm-shadow-text-lg:var(--fm-shadow-dark-text-lg);--fm-shadow-text-xl:var(--fm-shadow-dark-text-xl);--fm-outer-shadow-brand:var(--fm-outer-shadow-dark-brand);--fm-outer-shadow-error:var(--fm-outer-shadow-dark-error);--fm-inner-shadow-sm:var(--fm-inner-shadow-dark-sm);--fm-inner-shadow-md:var(--fm-inner-shadow-dark-md);--fm-inner-shadow-brand:var(--fm-inner-shadow-dark-brand)}[data-fm-theme]{color:var(--fm-text-primary)}.fm-icon{width:var(--fm-icon-size,24px);height:var(--fm-icon-size,24px);font-size:var(--fm-icon-size,24px);vertical-align:middle;-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.fm-icon__svg{fill:none;width:100%;height:100%;display:block}.fm-icon--rounded,.fm-icon--outlined{text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:antialiased;text-rendering:optimizelegibility;direction:ltr;font-style:normal;font-weight:400}.fm-icon--rounded{font-family:Material Symbols Filled}.fm-icon--outlined{font-family:Material Symbols Outlined}.fm-alert{--fm-alert-surface:var(--fm-bg-inverse);--fm-alert-fg:var(--fm-text-inverse);--fm-alert-icon:var(--fm-icon-inverse);--fm-alert-progress:var(--fm-bg-default);--fm-alert-pad-x:var(--fm-spacing-16);--fm-alert-pad-y:var(--fm-spacing-12);box-sizing:border-box;border-radius:var(--fm-radius-lg);background-color:var(--fm-alert-surface);color:var(--fm-alert-fg);box-shadow:var(--fm-shadow-sm);flex-direction:column;display:flex;overflow:hidden}@media (width>=768px){.fm-alert{--fm-alert-pad-x:var(--fm-spacing-24);--fm-alert-pad-y:var(--fm-spacing-16)}}.fm-alert__body{align-items:center;gap:var(--fm-spacing-12);padding:var(--fm-alert-pad-y) var(--fm-alert-pad-x);display:flex}.fm-alert__icon{--fm-icon-size:32px;width:32px;height:32px;color:var(--fm-alert-icon);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-alert__danger-mark{width:var(--fm-spacing-24);height:var(--fm-spacing-24);border-radius:var(--fm-radius-full);background-color:var(--fm-alert-icon);justify-content:center;align-items:center;display:inline-flex}.fm-alert__danger-bar{width:var(--fm-spacing-12);height:var(--fm-border-width-medium);border-radius:var(--fm-radius-full);background-color:var(--fm-icon-inverse)}.fm-alert__text{flex-direction:column;flex:auto;min-width:0;display:flex}.fm-alert__close{--fm-icon-size:var(--fm-spacing-20);width:var(--fm-spacing-40);height:var(--fm-spacing-40);border-radius:var(--fm-radius-sm);color:var(--fm-alert-fg);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.fm-alert__progress{border-radius:var(--fm-radius-full);background-color:var(--fm-alert-progress);height:2px}.fm-alert__progress--animated{transform-origin:0;animation:fm-alert-drain var(--fm-alert-duration,3s) linear forwards}@keyframes fm-alert-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.fm-alert--info{--fm-alert-surface:var(--fm-bg-info);--fm-alert-fg:var(--fm-text-on-info);--fm-alert-icon:var(--fm-icon-on-info);--fm-alert-progress:var(--fm-icon-on-info)}.fm-alert--success{--fm-alert-surface:var(--fm-bg-success);--fm-alert-fg:var(--fm-text-on-success);--fm-alert-icon:var(--fm-icon-on-success);--fm-alert-progress:var(--fm-icon-on-success)}.fm-alert--warning{--fm-alert-surface:var(--fm-bg-warning);--fm-alert-fg:var(--fm-text-on-warning);--fm-alert-icon:var(--fm-icon-on-warning);--fm-alert-progress:var(--fm-icon-on-warning)}.fm-alert--danger{--fm-alert-surface:var(--fm-bg-error);--fm-alert-fg:var(--fm-text-on-error);--fm-alert-icon:var(--fm-icon-on-error);--fm-alert-progress:var(--fm-icon-on-error)}.fm-badge{--fm-badge-gap:var(--fm-spacing-2);justify-content:center;align-items:center;gap:var(--fm-badge-gap);box-sizing:border-box;border-radius:var(--fm-radius-xs);background-color:var(--fm-badge-surface);color:var(--fm-badge-fg);padding:var(--fm-badge-pad-y) var(--fm-badge-pad-x);-webkit-user-select:none;user-select:none;display:inline-flex}.fm-badge__label{text-overflow:ellipsis;white-space:nowrap;text-align:center;min-width:0;overflow:hidden}.fm-badge__icon{color:var(--fm-badge-icon,var(--fm-badge-fg));flex:none;display:inline-flex}.fm-badge--sm{--fm-badge-pad-x:var(--fm-spacing-4);--fm-badge-pad-y:var(--fm-spacing-2);--fm-badge-count-size:16px}.fm-badge--md{--fm-badge-pad-x:var(--fm-spacing-6);--fm-badge-pad-y:var(--fm-spacing-4);--fm-badge-count-size:24px}.fm-badge--lg{--fm-badge-pad-x:var(--fm-spacing-8);--fm-badge-pad-y:var(--fm-spacing-4);--fm-badge-count-size:32px}.fm-badge--filled{--fm-badge-surface:var(--fm-badge-bg)}.fm-badge--outlined{--fm-badge-surface:transparent;box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-badge-border)}.fm-badge--count{--fm-badge-surface:var(--fm-action-primary-bg-subtle);--fm-badge-fg:var(--fm-text-brand);width:var(--fm-badge-count-size);height:var(--fm-badge-count-size);border-radius:calc(var(--fm-badge-count-size) / 2);padding:0}.fm-badge__count{line-height:1}.fm-badge--count-overflow{width:auto;min-width:var(--fm-badge-count-size);padding:0 calc(var(--fm-badge-count-size) * .375)}.fm-badge--brand{--fm-badge-bg:var(--fm-badge-bg-brand);--fm-badge-fg:var(--fm-badge-text-on-brand);--fm-badge-icon:var(--fm-badge-icon-on-brand);--fm-badge-border:var(--fm-badge-border-brand)}.fm-badge--info{--fm-badge-bg:var(--fm-bg-info);--fm-badge-fg:var(--fm-text-on-info);--fm-badge-icon:var(--fm-text-on-info);--fm-badge-border:var(--fm-border-info)}.fm-badge--success{--fm-badge-bg:var(--fm-bg-success);--fm-badge-fg:var(--fm-text-on-success);--fm-badge-icon:var(--fm-text-on-success);--fm-badge-border:var(--fm-border-success)}.fm-badge--warning{--fm-badge-bg:var(--fm-bg-warning);--fm-badge-fg:var(--fm-text-on-warning);--fm-badge-icon:var(--fm-text-on-warning);--fm-badge-border:var(--fm-border-warning)}.fm-badge--error{--fm-badge-bg:var(--fm-bg-error);--fm-badge-fg:var(--fm-text-on-error);--fm-badge-icon:var(--fm-text-on-error);--fm-badge-border:var(--fm-border-error)}.fm-badge--aqua{--fm-badge-bg:var(--fm-badge-bg-aqua);--fm-badge-fg:var(--fm-badge-text-on-aqua);--fm-badge-icon:var(--fm-badge-icon-on-aqua);--fm-badge-border:var(--fm-badge-border-aqua)}.fm-badge--berry{--fm-badge-bg:var(--fm-badge-bg-berry);--fm-badge-fg:var(--fm-badge-text-on-berry);--fm-badge-icon:var(--fm-badge-icon-on-berry);--fm-badge-border:var(--fm-badge-border-berry)}.fm-badge--blossom{--fm-badge-bg:var(--fm-badge-bg-blossom);--fm-badge-fg:var(--fm-badge-text-on-blossom);--fm-badge-icon:var(--fm-badge-icon-on-blossom);--fm-badge-border:var(--fm-badge-border-blossom)}.fm-badge--lime{--fm-badge-bg:var(--fm-badge-bg-lime);--fm-badge-fg:var(--fm-badge-text-on-lime);--fm-badge-icon:var(--fm-badge-icon-on-lime);--fm-badge-border:var(--fm-badge-border-lime)}.fm-badge--mustard{--fm-badge-bg:var(--fm-badge-bg-mustard);--fm-badge-fg:var(--fm-badge-text-on-mustard);--fm-badge-icon:var(--fm-badge-icon-on-mustard);--fm-badge-border:var(--fm-badge-border-mustard)}.fm-badge--stone{--fm-badge-bg:var(--fm-badge-bg-stone);--fm-badge-fg:var(--fm-badge-text-on-stone);--fm-badge-icon:var(--fm-badge-icon-on-stone);--fm-badge-border:var(--fm-badge-border-stone)}.fm-badge--grape{--fm-badge-bg:var(--fm-badge-bg-grape);--fm-badge-fg:var(--fm-badge-text-on-grape);--fm-badge-icon:var(--fm-badge-icon-on-grape);--fm-badge-border:var(--fm-badge-border-grape)}.fm-badge-anchor{align-items:center;gap:var(--fm-spacing-8);-webkit-user-select:none;user-select:none;display:inline-flex;position:relative}.fm-badge--overlay{--fm-badge-surface:var(--fm-text-primary);--fm-badge-fg:var(--fm-text-inverse);border-radius:var(--fm-radius-full);padding:0}.fm-badge--overlay-pinned{position:absolute;top:-2px;right:-4px}.fm-badge--overlay:not(.fm-badge--dot){min-width:16px;height:16px;padding:0 var(--fm-spacing-4)}.fm-badge--dot{width:6px;min-width:0;height:6px;padding:0}.fm-badge--overlay-pinned.fm-badge--dot{top:0;right:0}.fm-badge--v1-info{--fm-badge-surface:var(--fm-feature-aqua-accent);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-success{--fm-badge-surface:var(--fm-feature-lime-accent);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-warning{--fm-badge-surface:var(--fm-feature-mustard-accent);--fm-badge-fg:var(--fm-text-primary)}.fm-badge--v1-critical{--fm-badge-surface:var(--fm-feature-berry-accent);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-neutral{--fm-badge-surface:var(--fm-text-primary);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-numeric{--fm-badge-surface:var(--fm-text-error);--fm-badge-fg:var(--fm-text-inverse)}.fm-button{--fm-button-height:44px;--fm-button-padding-x:var(--fm-spacing-16);--fm-button-gap:var(--fm-spacing-8);--fm-button-icon-size:var(--fm-spacing-20);--fm-button-radius:var(--fm-radius-sm);--fm-button-border-width:var(--fm-border-width-none);--fm-button-border-color:transparent;--fm-button-bg:transparent;--fm-button-bg-hover:var(--fm-button-bg);--fm-button-bg-active:var(--fm-button-bg-hover);--fm-button-fg:var(--fm-text-primary);--fm-button-effects:0 0 #0000;--fm-button-effects-pressed:var(--fm-button-effects);--fm-button-glow:0 0 #0000;--fm-button-focus-ring:0 0 #0000;box-sizing:border-box;justify-content:center;align-items:center;gap:var(--fm-button-gap);height:var(--fm-button-height);padding:0 var(--fm-button-padding-x);border:var(--fm-button-border-width) solid var(--fm-button-border-color);border-radius:var(--fm-button-radius);background-color:var(--fm-button-bg);color:var(--fm-button-fg);box-shadow:var(--fm-button-focus-ring), var(--fm-button-effects);font-family:var(--fm-font-family-body), sans-serif;font-size:var(--fm-font-size-14);font-weight:var(--fm-font-weight-semi-bold);line-height:var(--fm-line-height-14);letter-spacing:.01em;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;appearance:none;-webkit-tap-highlight-color:transparent;background-image:none;text-decoration:none;display:inline-flex}.fm-button:focus{outline:none}.fm-button--xs{--fm-button-height:32px}.fm-button--sm{--fm-button-height:40px}.fm-button--md{--fm-button-height:44px}.fm-button--lg{--fm-button-height:52px}@media (width>=768px){.fm-button--xs{--fm-button-height:28px}.fm-button--sm{--fm-button-height:36px}.fm-button--md{--fm-button-height:40px}.fm-button--lg{--fm-button-height:48px}.fm-button:not(.fm-button--xs){font-size:var(--fm-font-size-16);line-height:var(--fm-line-height-16);letter-spacing:.0025em}}@media (width>=1024px){.fm-button--xs{--fm-button-height:24px}.fm-button--sm{--fm-button-height:32px}.fm-button--md{--fm-button-height:36px}.fm-button--lg{--fm-button-height:44px}}.fm-button--primary{--fm-button-bg:var(--fm-action-primary-bg);--fm-button-bg-hover:var(--fm-action-primary-bg-hover);--fm-button-fg:var(--fm-text-inverse);--fm-button-effects:var(--fm-inner-shadow-brand);--fm-button-glow:var(--fm-outer-shadow-brand)}.fm-button--secondary{--fm-button-bg:var(--fm-action-secondary-bg);--fm-button-bg-hover:var(--fm-action-secondary-bg-hover);--fm-button-fg:var(--fm-text-primary);--fm-button-effects:var(--fm-inner-shadow-brand);--fm-button-effects-pressed:0 0 #0000;--fm-button-glow:var(--fm-outer-shadow-brand)}.fm-button--danger{--fm-button-bg:var(--fm-action-danger-bg);--fm-button-bg-hover:var(--fm-action-danger-bg-hover);--fm-button-fg:var(--fm-text-inverse);--fm-button-effects:var(--fm-inner-shadow-brand);--fm-button-glow:var(--fm-outer-shadow-error)}.fm-button--ghost{--fm-button-bg:transparent;--fm-button-bg-hover:var(--fm-action-ghost-bg-hover);--fm-button-bg-active:var(--fm-action-ghost-bg-active);--fm-button-fg:var(--fm-text-primary);--fm-button-glow:var(--fm-outer-shadow-brand)}.fm-button--legacy-plain{--fm-button-fg:var(--fm-text-brand)}.fm-button--legacy-fab{--fm-button-height:var(--fm-spacing-56);--fm-button-radius:var(--fm-radius-full);min-width:var(--fm-spacing-56);padding:0 var(--fm-spacing-16)}.fm-button:enabled:hover{background-color:var(--fm-button-bg-hover)}.fm-button:enabled:focus-visible{background-color:var(--fm-button-bg-hover);box-shadow:var(--fm-button-focus-ring), var(--fm-button-effects), var(--fm-button-glow)}.fm-button--secondary:enabled:focus-visible{--fm-button-focus-ring:inset 0 0 0 1px var(--fm-border-brand)}.fm-button:enabled:active{background-color:var(--fm-button-bg-active);background-image:linear-gradient(var(--fm-state-pressed), var(--fm-state-pressed));box-shadow:var(--fm-button-focus-ring), var(--fm-button-effects-pressed), var(--fm-button-glow)}.fm-button--ghost:enabled:active{background-image:none}.fm-button:disabled{--fm-button-bg:var(--fm-action-disabled-bg);--fm-button-fg:var(--fm-text-disabled);cursor:not-allowed}.fm-button--ghost:disabled{--fm-button-bg:transparent}.fm-button--loading{pointer-events:none}.fm-button__labels{display:contents}.fm-button__label,.fm-button__sub-label{overflow-wrap:anywhere;min-width:0}.fm-button__icon{width:var(--fm-button-icon-size);height:var(--fm-button-icon-size);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-button__icon>svg{width:100%;height:100%}.fm-button__icon--legacy{width:var(--fm-spacing-24);height:var(--fm-spacing-24)}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v232/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOelbd5zrDAt.woff)format("woff");font-display:block}@font-face{font-family:Material Symbols Filled;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v232/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzazHD_dY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOelbd5zrDAt.woff)format("woff");font-display:block}.fm-button__legacy-icon{font-size:var(--fm-spacing-24);letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale;direction:ltr;font-style:normal;font-weight:400;line-height:1;display:inline-block}.fm-button__legacy-icon--outline{font-family:Material Symbols Outlined,sans-serif}.fm-button__legacy-icon--filled{font-family:Material Symbols Filled,sans-serif}.fm-button--icon-only{width:var(--fm-button-height);padding:0}.fm-button--layout-dotted,.fm-button--layout-spaced{width:100%}.fm-button--layout-dotted .fm-button__labels,.fm-button--layout-spaced .fm-button__labels{flex:auto;justify-content:space-between;align-items:center;min-width:0;display:flex}.fm-button__dot{background-color:#ffffff52;border-radius:50%;flex:none;width:4px;height:4px}.fm-button__spinner{--fm-button-spinner-size:18px;box-sizing:border-box;width:var(--fm-button-spinner-size);height:var(--fm-button-spinner-size);animation:fm-button-spin var(--fm-duration-slower,.6s) linear infinite;border:2px solid;border-top-color:#0000;border-radius:50%;flex:none}.fm-button--lg .fm-button__spinner{--fm-button-spinner-size:20px}.fm-button--md .fm-button__spinner{--fm-button-spinner-size:18px}.fm-button--sm .fm-button__spinner,.fm-button--xs .fm-button__spinner{--fm-button-spinner-size:16px}@keyframes fm-button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fm-button__spinner{animation-duration:2s}}.fm-checkbox{--fm-checkbox-size:24px;--fm-checkbox-surface:var(--fm-action-secondary-bg);--fm-checkbox-border:var(--fm-border-default);--fm-checkbox-glyph:var(--fm-icon-inverse);--fm-checkbox-glow:0 0 #0000;cursor:pointer;color:var(--fm-text-primary);align-items:center;gap:12px;display:inline-flex}.fm-checkbox--disabled{cursor:not-allowed}.fm-checkbox__box{box-sizing:border-box;width:var(--fm-checkbox-size);height:var(--fm-checkbox-size);border-radius:var(--fm-radius-sm);background-color:var(--fm-checkbox-surface);box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-checkbox-border), var(--fm-shadow-xs);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.fm-checkbox__input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.fm-checkbox__glyph{--fm-icon-size:calc(var(--fm-checkbox-size) * 5 / 6);color:var(--fm-checkbox-glyph);pointer-events:none;position:relative}.fm-checkbox__labels{gap:var(--fm-spacing-4);flex-direction:column;min-width:0;display:inline-flex}.fm-checkbox__sublabel{color:var(--fm-text-secondary)}.fm-checkbox--sm{--fm-checkbox-size:24px}.fm-checkbox--md{--fm-checkbox-size:28px}.fm-checkbox--lg{--fm-checkbox-size:32px}@media (width>=1024px){.fm-checkbox--sm{--fm-checkbox-size:20px}.fm-checkbox--md{--fm-checkbox-size:24px}.fm-checkbox--lg{--fm-checkbox-size:28px}}.fm-checkbox:hover:not(.fm-checkbox--disabled):not(.fm-checkbox--selected){--fm-checkbox-border:var(--fm-border-medium)}.fm-checkbox--pressed:not(.fm-checkbox--disabled):not(.fm-checkbox--selected){--fm-checkbox-border:var(--fm-border-strong)}.fm-checkbox--error:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-subtle);--fm-checkbox-border:var(--fm-border-error);--fm-checkbox-glyph:var(--fm-icon-error)}.fm-checkbox--error.fm-checkbox--pressed:not(.fm-checkbox--selected):not(.fm-checkbox--disabled){--fm-checkbox-glow:var(--fm-outer-shadow-error)}.fm-checkbox--selected:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-primary-bg);--fm-checkbox-border:transparent;--fm-checkbox-glyph:var(--fm-icon-inverse)}.fm-checkbox--selected.fm-checkbox--pressed:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-primary-bg-hover)}.fm-checkbox--selected.fm-checkbox--error:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-subtle);--fm-checkbox-glyph:var(--fm-icon-error)}.fm-checkbox--selected.fm-checkbox--error.fm-checkbox--pressed:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-hover);--fm-checkbox-glyph:var(--fm-icon-inverse)}.fm-checkbox:has(.fm-checkbox__input:focus-visible):not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-secondary-bg);--fm-checkbox-border:var(--fm-border-brand);--fm-checkbox-glyph:var(--fm-action-primary-bg);--fm-checkbox-glow:var(--fm-outer-shadow-brand)}.fm-checkbox--error:has(.fm-checkbox__input:focus-visible):not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-subtle);--fm-checkbox-border:var(--fm-border-error);--fm-checkbox-glyph:var(--fm-icon-error);--fm-checkbox-glow:var(--fm-outer-shadow-error)}.fm-checkbox--disabled{--fm-checkbox-surface:var(--fm-action-disabled-bg);--fm-checkbox-border:var(--fm-border-default);--fm-checkbox-glyph:var(--fm-icon-disabled)}.fm-checkbox--error.fm-checkbox--pressed:not(.fm-checkbox--selected) .fm-checkbox__box{box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-checkbox-border), var(--fm-checkbox-glow)}.fm-checkbox:has(.fm-checkbox__input:focus-visible) .fm-checkbox__box{box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-checkbox-border), var(--fm-checkbox-glow)}.fm-chip{--fm-chip-height:36px;--fm-chip-surface:var(--fm-surface-default);--fm-chip-overlay:transparent;--fm-chip-border:var(--fm-border-default);--fm-chip-border-width:var(--fm-border-width-thin);--fm-chip-fg:var(--fm-text-primary);--fm-chip-icon:var(--fm-icon-primary);--fm-chip-accent:var(--fm-icon-brand);--fm-chip-glow:0 0 #0000;justify-content:center;align-items:center;gap:var(--fm-spacing-4);box-sizing:border-box;height:var(--fm-chip-height);padding:0 var(--fm-spacing-12);border-radius:var(--fm-radius-sm);background-color:var(--fm-chip-surface);background-image:linear-gradient(var(--fm-chip-overlay), var(--fm-chip-overlay));color:var(--fm-chip-fg);cursor:pointer;box-shadow:inset 0 0 0 var(--fm-chip-border-width) var(--fm-chip-border), var(--fm-shadow-xs);border:none;display:inline-flex}.fm-chip:disabled{cursor:not-allowed}.fm-chip__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fm-chip__icon{--fm-icon-size:var(--fm-spacing-20);color:var(--fm-chip-icon);flex:none;display:inline-flex}.fm-chip__indicator-slot{width:var(--fm-spacing-20);height:var(--fm-spacing-20);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-chip__indicator{width:var(--fm-spacing-12);height:var(--fm-spacing-12);border-radius:var(--fm-radius-full);background-color:var(--fm-chip-accent)}.fm-chip__count{box-sizing:border-box;min-width:var(--fm-spacing-20);height:var(--fm-spacing-20);padding:0 var(--fm-spacing-4);border-radius:var(--fm-radius-full);background-color:var(--fm-chip-accent);color:var(--fm-text-inverse);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-chip__remove{--fm-icon-size:var(--fm-spacing-16);color:var(--fm-chip-icon);cursor:pointer;flex:none;display:inline-flex}.fm-chip:hover:not(:disabled){--fm-chip-overlay:var(--fm-state-hover)}.fm-chip--pressed:not(:disabled){--fm-chip-overlay:var(--fm-state-pressed)}.fm-chip:hover:not(:disabled):not(.fm-chip--selected),.fm-chip--pressed:not(:disabled):not(.fm-chip--selected){--fm-chip-border:var(--fm-border-medium)}.fm-chip--selected:not(:disabled){--fm-chip-border:var(--fm-border-brand);--fm-chip-border-width:var(--fm-border-width-regular)}.fm-chip:disabled{--fm-chip-surface:var(--fm-surface-sunken);--fm-chip-overlay:transparent;--fm-chip-border:var(--fm-border-medium);--fm-chip-fg:var(--fm-text-disabled);--fm-chip-icon:var(--fm-icon-disabled);--fm-chip-accent:var(--fm-border-medium)}.fm-chip:focus-visible{--fm-chip-border:var(--fm-border-brand);--fm-chip-border-width:var(--fm-border-width-regular);--fm-chip-glow:var(--fm-outer-shadow-brand);box-shadow:inset 0 0 0 var(--fm-chip-border-width) var(--fm-chip-border), var(--fm-chip-glow);outline:none}.fm-chip--compact{--fm-chip-height:22px;padding:0 var(--fm-spacing-8)}.fm-chip--v1-plain{--fm-chip-surface:var(--fm-bg-subtle);--fm-chip-border:transparent}.fm-chip--v1-plain.fm-chip--v1-selected{--fm-chip-surface:var(--fm-text-primary);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse)}.fm-chip--v1-neutral{--fm-chip-surface:var(--fm-text-primary);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-info{--fm-chip-surface:var(--fm-feature-aqua-accent);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-success{--fm-chip-surface:var(--fm-feature-lime-accent);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-critical{--fm-chip-surface:var(--fm-feature-berry-accent);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-warning{--fm-chip-surface:var(--fm-feature-mustard-accent);--fm-chip-fg:var(--fm-text-primary);--fm-chip-icon:var(--fm-text-primary);--fm-chip-border:transparent}.fm-radio{--fm-radio-size:24px;--fm-radio-ring-width:var(--fm-border-width-thin);--fm-radio-surface:var(--fm-action-secondary-bg);--fm-radio-ring:var(--fm-border-default);--fm-radio-dot:var(--fm-action-primary-bg);--fm-radio-glow:0 0 #0000;align-items:center;gap:var(--fm-spacing-16);cursor:pointer;color:var(--fm-text-primary);display:inline-flex}.fm-radio--disabled{cursor:not-allowed}.fm-radio__circle{box-sizing:border-box;width:var(--fm-radio-size);height:var(--fm-radio-size);border-radius:var(--fm-radius-full);background-color:var(--fm-radio-surface);box-shadow:inset 0 0 0 var(--fm-radio-ring-width) var(--fm-radio-ring), var(--fm-shadow-xs);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.fm-radio__input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.fm-radio__dot{width:calc(var(--fm-radio-size) * 10 / 24);height:calc(var(--fm-radio-size) * 10 / 24);border-radius:var(--fm-radius-full);background-color:var(--fm-radio-dot);pointer-events:none}.fm-radio__labels{gap:var(--fm-spacing-4);flex-direction:column;min-width:0;display:inline-flex}.fm-radio__sublabel{color:var(--fm-text-secondary)}.fm-radio--sm{--fm-radio-size:24px;--fm-radio-selected-ring:1px}.fm-radio--md{--fm-radio-size:28px;--fm-radio-selected-ring:1.5px}.fm-radio--lg{--fm-radio-size:32px;--fm-radio-selected-ring:2.5px}@media (width>=1024px){.fm-radio--sm{--fm-radio-size:20px;--fm-radio-selected-ring:1px}.fm-radio--md{--fm-radio-size:24px;--fm-radio-selected-ring:1px}.fm-radio--lg{--fm-radio-size:28px;--fm-radio-selected-ring:1.5px}}.fm-radio--selected:not(.fm-radio--disabled){--fm-radio-ring:var(--fm-border-brand);--fm-radio-ring-width:var(--fm-radio-selected-ring)}.fm-radio:hover:not(.fm-radio--disabled):not(.fm-radio--selected){--fm-radio-ring:var(--fm-border-medium)}.fm-radio--pressed:not(.fm-radio--disabled):not(.fm-radio--selected){--fm-radio-ring:var(--fm-border-strong)}.fm-radio--selected.fm-radio--pressed:not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-primary-bg-hover);--fm-radio-ring:transparent;--fm-radio-dot:#fff9}.fm-radio--error:not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-danger-bg-subtle);--fm-radio-ring:var(--fm-border-error);--fm-radio-dot:var(--fm-border-error)}.fm-radio--error.fm-radio--selected.fm-radio--pressed:not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-danger-bg-hover);--fm-radio-ring:transparent;--fm-radio-dot:#fff9}.fm-radio:has(.fm-radio__input:focus-visible):not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-secondary-bg);--fm-radio-ring:var(--fm-border-brand);--fm-radio-glow:var(--fm-outer-shadow-brand)}.fm-radio--error:has(.fm-radio__input:focus-visible):not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-danger-bg-subtle);--fm-radio-ring:var(--fm-border-error);--fm-radio-glow:var(--fm-outer-shadow-error)}.fm-radio--disabled{--fm-radio-surface:var(--fm-action-disabled-bg);--fm-radio-ring:transparent;--fm-radio-dot:var(--fm-icon-disabled)}.fm-radio:has(.fm-radio__input:focus-visible) .fm-radio__circle{box-shadow:inset 0 0 0 var(--fm-radio-ring-width) var(--fm-radio-ring), var(--fm-radio-glow)}.fm-radio-group{gap:var(--fm-spacing-8);flex-direction:column;display:flex}.fm-radio-group__label{color:var(--fm-text-primary)}.fm-radio-group__items{gap:var(--fm-spacing-8);flex-direction:column;display:flex}.fm-radio-group--inline>.fm-radio-group__items{align-items:center;gap:var(--fm-spacing-16);flex-direction:row}.fm-search-bar{--fm-search-height:44px;--fm-search-surface:var(--fm-surface-raised);--fm-search-border:var(--fm-border-default);--fm-search-fg:var(--fm-text-primary);--fm-search-placeholder:var(--fm-text-muted);--fm-search-icon:var(--fm-icon-primary);--fm-search-glow:0 0 #0000;--fm-search-shadow:var(--fm-shadow-text-sm);align-items:center;gap:var(--fm-spacing-12);box-sizing:border-box;width:100%;height:var(--fm-search-height);padding:0 var(--fm-spacing-8);border-radius:var(--fm-radius-md);background-color:var(--fm-search-surface);box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-search-border), var(--fm-search-shadow), var(--fm-search-glow);display:flex}.fm-search-bar__leading{--fm-icon-size:var(--fm-spacing-16);color:var(--fm-search-icon);flex:none;align-items:center;display:inline-flex}.fm-search-bar__control{min-width:0;height:20px;color:var(--fm-search-fg);appearance:none;background:0 0;border:none;outline:none;flex:auto;margin:0;padding:0}.fm-search-bar__control::placeholder{color:var(--fm-search-placeholder);opacity:1}.fm-search-bar__control::-webkit-search-cancel-button{appearance:none;display:none}.fm-search-bar__control::-webkit-search-decoration{appearance:none;display:none}.fm-search-bar__clear{--fm-icon-size:var(--fm-spacing-20);width:var(--fm-spacing-20);height:var(--fm-spacing-20);color:var(--fm-icon-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.fm-search-bar--sm{--fm-search-height:40px}.fm-search-bar--md{--fm-search-height:44px}.fm-search-bar--lg{--fm-search-height:52px}@media (width>=768px){.fm-search-bar--sm{--fm-search-height:36px}.fm-search-bar--md{--fm-search-height:40px}.fm-search-bar--lg{--fm-search-height:48px}}@media (width>=1024px){.fm-search-bar--sm{--fm-search-height:32px}.fm-search-bar--md{--fm-search-height:36px}.fm-search-bar--lg{--fm-search-height:44px}}.fm-search-bar:not(.fm-search-bar--disabled):hover{--fm-search-border:var(--fm-border-medium)}.fm-search-bar:not(.fm-search-bar--disabled):focus-within{--fm-search-border:var(--fm-border-brand);--fm-search-shadow:0 0 #0000;--fm-search-glow:var(--fm-outer-shadow-brand)}.fm-search-bar--error,.fm-search-bar--error:hover,.fm-search-bar--error:focus-within{--fm-search-border:var(--fm-border-error);--fm-search-fg:var(--fm-text-error);--fm-search-placeholder:var(--fm-text-error);--fm-search-icon:var(--fm-icon-error);--fm-search-shadow:0 0 #0000;--fm-search-glow:var(--fm-outer-shadow-error)}.fm-search-bar--disabled{--fm-search-surface:var(--fm-surface-sunken);--fm-search-border:var(--fm-border-default);--fm-search-fg:var(--fm-text-disabled);--fm-search-placeholder:var(--fm-text-disabled);--fm-search-icon:var(--fm-icon-disabled);--fm-search-shadow:0 0 #0000}.fm-search-bar--disabled .fm-search-bar__control{cursor:not-allowed}.fm-switch{--fm-switch-track-w:52px;--fm-switch-track-h:28px;--fm-switch-inset:2px;--fm-switch-thumb:calc(var(--fm-switch-track-h) - var(--fm-switch-inset) * 2);--fm-switch-travel:calc(var(--fm-switch-track-w) - var(--fm-switch-thumb) - var(--fm-switch-inset) * 2);--fm-switch-surface:var(--fm-action-disabled-bg);--fm-switch-thumb-color:var(--fm-border-medium);--fm-switch-icon:var(--fm-action-disabled-fg);--fm-switch-glow:0 0 #0000;align-items:center;gap:var(--fm-spacing-8);cursor:pointer;color:var(--fm-text-primary);display:inline-flex}.fm-switch--label-right{flex-direction:row-reverse}.fm-switch--disabled{cursor:not-allowed;opacity:.32}.fm-switch__track{box-sizing:border-box;width:var(--fm-switch-track-w);height:var(--fm-switch-track-h);border-radius:var(--fm-radius-full);background-color:var(--fm-switch-surface);box-shadow:var(--fm-shadow-sm);flex:none;display:inline-block;position:relative}.fm-switch__input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.fm-switch__thumb{top:var(--fm-switch-inset);left:var(--fm-switch-inset);width:var(--fm-switch-thumb);height:var(--fm-switch-thumb);border-radius:var(--fm-radius-full);background-color:var(--fm-switch-thumb-color);box-shadow:var(--fm-shadow-sm);transition:transform var(--fm-duration-fast,.15s) ease-in-out;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.fm-switch__thumb-icon{--fm-icon-size:max(8px, calc(var(--fm-switch-thumb) - 8px));color:var(--fm-switch-icon)}.fm-switch__labels{gap:var(--fm-spacing-4);flex-direction:column;min-width:0;display:inline-flex}.fm-switch__sublabel{color:var(--fm-text-secondary)}.fm-switch--sm{--fm-switch-track-w:40px;--fm-switch-track-h:22px}.fm-switch--md{--fm-switch-track-w:52px;--fm-switch-track-h:28px}.fm-switch--lg{--fm-switch-track-w:60px;--fm-switch-track-h:32px}@media (width>=768px){.fm-switch--sm{--fm-switch-track-w:44px;--fm-switch-track-h:24px}}@media (width>=1024px){.fm-switch--sm{--fm-switch-track-w:32px;--fm-switch-track-h:18px}.fm-switch--md{--fm-switch-track-w:44px;--fm-switch-track-h:24px}.fm-switch--lg{--fm-switch-track-w:52px;--fm-switch-track-h:28px}}.fm-switch--on{--fm-switch-surface:var(--fm-action-primary-bg);--fm-switch-thumb-color:var(--fm-surface-raised);--fm-switch-icon:var(--fm-action-primary-bg)}.fm-switch--on .fm-switch__thumb{transform:translateX(var(--fm-switch-travel))}.fm-switch--on.fm-switch--pressed{--fm-switch-surface:var(--fm-action-primary-bg-hover)}.fm-switch--pressed:not(.fm-switch--on){--fm-switch-surface:var(--fm-action-disabled-fg)}.fm-switch:not(.fm-switch--on):has(.fm-switch__thumb-icon){--fm-switch-thumb-color:var(--fm-surface-raised)}.fm-switch:has(.fm-switch__input:focus-visible):not(.fm-switch--disabled){--fm-switch-glow:var(--fm-outer-shadow-brand)}.fm-switch:has(.fm-switch__input:focus-visible) .fm-switch__track{box-shadow:var(--fm-switch-glow)}.fm-field{--fm-field-pad-x:var(--fm-spacing-8);--fm-field-pad-y:var(--fm-spacing-12);--fm-field-radius:var(--fm-radius-md);--fm-field-surface:var(--fm-surface-raised);--fm-field-border:var(--fm-border-default);--fm-field-fg:var(--fm-text-primary);--fm-field-placeholder:var(--fm-text-muted);--fm-field-affix:var(--fm-icon-secondary);--fm-field-label:var(--fm-text-primary);--fm-field-helper:var(--fm-text-secondary);--fm-field-glow:0 0 #0000;--fm-field-shadow:var(--fm-shadow-xs);gap:var(--fm-spacing-4);flex-direction:column;width:100%;display:flex}.fm-field__label{align-items:baseline;gap:var(--fm-spacing-4);color:var(--fm-field-label);display:flex}.fm-field__mark{color:var(--fm-text-error)}.fm-field__box{align-items:center;gap:var(--fm-spacing-4);box-sizing:border-box;width:100%;padding:var(--fm-field-pad-y) var(--fm-field-pad-x);border-radius:var(--fm-field-radius);background-color:var(--fm-field-surface);box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-field-border), var(--fm-field-shadow), var(--fm-field-glow);display:flex}.fm-field__control{min-width:0;height:20px;color:var(--fm-field-fg);background:0 0;border:none;outline:none;flex:auto;margin:0;padding:0}.fm-field__control::placeholder{color:var(--fm-field-placeholder);opacity:1}.fm-field__affix{--fm-icon-size:var(--fm-spacing-20);color:var(--fm-field-affix);flex:none;align-items:center;display:inline-flex}.fm-field__footer{justify-content:space-between;gap:var(--fm-spacing-8);color:var(--fm-field-helper);display:flex}.fm-field__counter{margin-left:auto}.fm-field--single.fm-field--sm{--fm-field-pad-y:var(--fm-spacing-10)}.fm-field--single.fm-field--md{--fm-field-pad-y:var(--fm-spacing-12)}.fm-field--single.fm-field--lg{--fm-field-pad-y:var(--fm-spacing-16);--fm-field-radius:var(--fm-radius-lg)}.fm-field--multiline{--fm-field-pad-x:var(--fm-spacing-8);--fm-field-pad-y:var(--fm-spacing-8);--fm-field-radius:var(--fm-radius-md);--fm-field-height:128px}.fm-field--multiline>.fm-field__box{height:var(--fm-field-height);align-items:stretch}.fm-field--multiline .fm-field__control{resize:none;height:100%}.fm-field--multiline .fm-field__box{align-items:stretch}.fm-field--multiline.fm-field--sm{--fm-field-height:96px}.fm-field--multiline.fm-field--md{--fm-field-height:128px}.fm-field--multiline.fm-field--lg{--fm-field-height:160px}@media (width>=768px){.fm-field--multiline.fm-field--sm{--fm-field-height:128px}.fm-field--multiline.fm-field--md{--fm-field-height:160px}.fm-field--multiline.fm-field--lg{--fm-field-height:192px}}@media (width>=1024px){.fm-field--multiline.fm-field--sm{--fm-field-height:164px}.fm-field--multiline.fm-field--md{--fm-field-height:196px}.fm-field--multiline.fm-field--lg{--fm-field-height:228px}}.fm-field:not(.fm-field--disabled)>.fm-field__box:hover{--fm-field-border:var(--fm-border-medium)}.fm-field:not(.fm-field--disabled)>.fm-field__box:focus-within{--fm-field-border:var(--fm-border-brand);--fm-field-shadow:0 0 #0000;--fm-field-glow:var(--fm-outer-shadow-brand)}.fm-field--error:not(.fm-field--disabled){--fm-field-fg:var(--fm-text-error);--fm-field-placeholder:var(--fm-text-error);--fm-field-affix:var(--fm-text-error);--fm-field-label:var(--fm-text-error);--fm-field-helper:var(--fm-text-error)}.fm-field--error:not(.fm-field--disabled)>.fm-field__box,.fm-field--error:not(.fm-field--disabled)>.fm-field__box:hover,.fm-field--error:not(.fm-field--disabled)>.fm-field__box:focus-within{--fm-field-border:var(--fm-border-error);--fm-field-shadow:0 0 #0000;--fm-field-glow:var(--fm-outer-shadow-error)}.fm-field--multiline.fm-field--error:not(.fm-field--disabled)>.fm-field__box,.fm-field--multiline.fm-field--error:not(.fm-field--disabled)>.fm-field__box:hover,.fm-field--multiline.fm-field--error:not(.fm-field--disabled)>.fm-field__box:focus-within{--fm-field-border:var(--fm-border-warning)}.fm-field--disabled{--fm-field-surface:var(--fm-surface-sunken);--fm-field-border:var(--fm-border-default);--fm-field-fg:var(--fm-text-disabled);--fm-field-placeholder:var(--fm-text-disabled);--fm-field-affix:var(--fm-icon-disabled);--fm-field-label:var(--fm-text-disabled);--fm-field-helper:var(--fm-text-disabled)}.fm-field--disabled .fm-field__control{cursor:not-allowed}
|
|
303
|
-
/*$vite$:1
|
|
304
|
-
function
|
|
305
|
-
const e = t.replace(/^\//, "");
|
|
306
|
-
try {
|
|
307
|
-
const n = new URL(import.meta.url);
|
|
308
|
-
if (typeof location < "u" && location.hostname !== n.hostname)
|
|
309
|
-
return new URL(e, n).href;
|
|
310
|
-
} catch {
|
|
311
|
-
}
|
|
312
|
-
return `${"/".replace(/\/$/, "")}/${e}`;
|
|
313
|
-
}
|
|
314
|
-
const zt = {
|
|
315
|
-
"chart.js@4": "chart.js-4.js",
|
|
316
|
-
"fm-ui@1": "fm-ui-1.js",
|
|
317
|
-
"components@1": "components-1.js",
|
|
318
|
-
"chartjs-chart-geo@4": "chartjs-chart-geo-4.js",
|
|
319
|
-
"geo-outlines@1": "geo-outlines-1.js",
|
|
320
|
-
"chartjs-chart-sankey@0": "chartjs-chart-sankey-0.js"
|
|
321
|
-
}, un = Object.keys(zt), We = /* @__PURE__ */ new Map();
|
|
322
|
-
function pn(t) {
|
|
323
|
-
return mn(`report-canvas-libs/${zt[t]}`);
|
|
324
|
-
}
|
|
325
|
-
async function ct(t) {
|
|
326
|
-
const e = un.filter((o) => t.includes(o));
|
|
327
|
-
await Promise.all(
|
|
328
|
-
e.map(async (o) => {
|
|
329
|
-
if (We.has(o)) return;
|
|
330
|
-
const a = await fetch(pn(o));
|
|
331
|
-
a.ok && We.set(o, await a.text());
|
|
332
|
-
})
|
|
333
|
-
);
|
|
334
|
-
const n = {};
|
|
335
|
-
for (const o of e) {
|
|
336
|
-
const a = We.get(o);
|
|
337
|
-
a && (n[o] = a);
|
|
338
|
-
}
|
|
339
|
-
return n;
|
|
340
|
-
}
|
|
341
|
-
const Nt = /url\(\s*(['"]?)\s*([^)'"]*?)\s*\1\s*\)/gi, hn = /@font-face\s*\{[^}]*\}/gi;
|
|
342
|
-
function Rt(t) {
|
|
303
|
+
const fn = `:root{--fm-palette-brand-fm-100:#fff3e6;--fm-palette-brand-fm-200:#ff9455;--fm-palette-brand-fm-300:#ff7823;--fm-palette-brand-fm-400:#b25300;--fm-palette-brand-fm-500:#6b3100;--fm-palette-aqua-100:#b7e2ff;--fm-palette-aqua-300:#3ab0ff;--fm-palette-aqua-500:#0a5384;--fm-palette-berry-100:#fee4dc;--fm-palette-berry-300:#e94850;--fm-palette-berry-500:#5f090a;--fm-palette-blossom-100:#fff7fc;--fm-palette-blossom-300:#ffc4c3;--fm-palette-blossom-500:#8c146a;--fm-palette-lime-100:#f4fde6;--fm-palette-lime-300:#aeef4b;--fm-palette-lime-500:#306a01;--fm-palette-mustard-100:#fef5ea;--fm-palette-mustard-300:#ffc746;--fm-palette-mustard-500:#903e1f;--fm-palette-stone-100:#f6f8fc;--fm-palette-stone-300:#b2b3b6;--fm-palette-stone-500:#2e2e2e;--fm-palette-grape-100:#eddfff;--fm-palette-grape-300:#8f61e8;--fm-palette-grape-500:#512191;--fm-palette-neurastone-0:#fff;--fm-palette-neurastone-100:#f6f6f8;--fm-palette-neurastone-200:#f0f0f0;--fm-palette-neurastone-300:#b2b3b6;--fm-palette-neurastone-400:#6b6c70;--fm-palette-neurastone-500:#4b4b4b;--fm-palette-neurastone-600:#2e2e2e;--fm-palette-neurastone-700:#262628;--fm-palette-neurastone-800:#1c1c1e;--fm-palette-neurastone-900:#121212;--fm-palette-blue-100:#e6f2ff;--fm-palette-blue-200:#66afff;--fm-palette-blue-300:#007aff;--fm-palette-blue-400:#004999;--fm-palette-blue-500:#002c5c;--fm-palette-orange-100:#fff4e6;--fm-palette-orange-200:#ffbf66;--fm-palette-orange-300:#ff9500;--fm-palette-orange-400:#995900;--fm-palette-orange-500:#5c3500;--fm-palette-green-100:#ebf9ee;--fm-palette-green-200:#85dd9b;--fm-palette-green-300:#34c759;--fm-palette-green-400:#1f7735;--fm-palette-green-500:#134720;--fm-palette-red-100:#ffebea;--fm-palette-red-200:#ff8983;--fm-palette-red-300:#ff3b30;--fm-palette-red-400:#99231d;--fm-palette-red-500:#5c1511;--fm-palette-overlay-black-alpha-4:#1212120a;--fm-palette-overlay-black-alpha-8:#12121214;--fm-palette-overlay-black-alpha-12:#1212121f;--fm-palette-overlay-black-alpha-16:#12121229;--fm-palette-overlay-black-alpha-24:#1212123d;--fm-palette-overlay-black-alpha-32:#12121252;--fm-palette-overlay-black-alpha-48:#1212127a;--fm-palette-overlay-black-alpha-64:#121212a3;--fm-palette-overlay-black-alpha-72:#121212b8;--fm-palette-overlay-black-alpha-80:#121212cc;--fm-palette-overlay-white-alpha-4:#ffffff0a;--fm-palette-overlay-white-alpha-8:#ffffff14;--fm-palette-overlay-white-alpha-12:#ffffff1f;--fm-palette-overlay-white-alpha-16:#ffffff29;--fm-palette-overlay-white-alpha-24:#ffffff3d;--fm-palette-overlay-white-alpha-32:#ffffff52;--fm-palette-overlay-white-alpha-48:#ffffff7a;--fm-palette-overlay-white-alpha-64:#ffffffa3;--fm-palette-overlay-white-alpha-72:#ffffffb8;--fm-palette-overlay-white-alpha-80:#fffc;--fm-spacing-0:0;--fm-spacing-1:1px;--fm-spacing-2:2px;--fm-spacing-4:4px;--fm-spacing-6:6px;--fm-spacing-8:8px;--fm-spacing-10:10px;--fm-spacing-12:12px;--fm-spacing-14:14px;--fm-spacing-16:16px;--fm-spacing-18:18px;--fm-spacing-20:20px;--fm-spacing-24:24px;--fm-spacing-28:28px;--fm-spacing-32:32px;--fm-spacing-40:40px;--fm-spacing-48:48px;--fm-spacing-56:56px;--fm-spacing-64:64px;--fm-spacing-72:72px;--fm-spacing-80:80px;--fm-spacing-88:88px;--fm-spacing-96:96px;--fm-spacing-104:104px;--fm-spacing-112:112px;--fm-spacing-120:120px;--fm-spacing-128:128px;--fm-spacing-160:160px;--fm-spacing-192:192px;--fm-radius-none:0;--fm-radius-xs:4px;--fm-radius-sm:8px;--fm-radius-md:12px;--fm-radius-lg:16px;--fm-radius-xl:24px;--fm-radius-2xl:32px;--fm-radius-3xl:64px;--fm-radius-full:99999px;--fm-border-width-none:0;--fm-border-width-hairline:.5px;--fm-border-width-thin:1px;--fm-border-width-regular:1.5px;--fm-border-width-medium:2px;--fm-border-width-thick:4px;--fm-opacity-0:0;--fm-opacity-8:.08;--fm-opacity-12:.12;--fm-opacity-16:.16;--fm-opacity-24:.24;--fm-opacity-32:.32;--fm-opacity-40:.4;--fm-opacity-48:.48;--fm-opacity-56:.56;--fm-opacity-64:.64;--fm-opacity-80:.8;--fm-opacity-100:1;--fm-shadow-blur-none:0;--fm-shadow-blur-xs:2px;--fm-shadow-blur-sm:4px;--fm-shadow-blur-md:6px;--fm-shadow-blur-lg:10px;--fm-shadow-blur-xl:16px;--fm-shadow-blur-2xl:24px;--fm-blur-sm:8px;--fm-blur-md:16px;--fm-blur-lg:24px;--fm-blur-xl:40px;--fm-z-index-base:0;--fm-z-index-raised:100;--fm-z-index-dropdown:200;--fm-z-index-sticky:300;--fm-z-index-overlay:400;--fm-z-index-modal:500;--fm-z-index-toast:600;--fm-z-index-tooltip:700;--fm-duration-instant:0s;--fm-duration-fast:.1s;--fm-duration-normal:.2s;--fm-duration-slow:.3s;--fm-duration-slower:.5s;--fm-easing-standard:cubic-bezier(.4, 0, .2, 1);--fm-easing-decelerate:cubic-bezier(0, 0, .2, 1);--fm-easing-accelerate:cubic-bezier(.4, 0, 1, 1);--fm-easing-spring:cubic-bezier(.34, 1.56, .64, 1);--fm-shadow-color:#1c1c1e;--fm-breakpoint-sm:0;--fm-breakpoint-md:768px;--fm-breakpoint-lg:1024px;--fm-breakpoint-xl:1440px;--fm-breakpoint-xxl:1920px}:root,[data-fm-theme=light]{--fm-bg-canvas:#f6f6f8;--fm-bg-default:#fff;--fm-bg-subtle:#f6f6f8;--fm-bg-muted:#f0f0f0;--fm-bg-elevated:#fff;--fm-bg-inverse:#1c1c1e;--fm-bg-brand:#fff3e6;--fm-bg-success:#ebf9ee;--fm-bg-warning:#fff4e6;--fm-bg-error:#ffebea;--fm-bg-info:#e6f2ff;--fm-surface-default:#fff;--fm-surface-sunken:#f0f0f0;--fm-surface-inset:#b2b3b6;--fm-surface-raised:#fff;--fm-surface-floating:#fff;--fm-text-primary:#1c1c1e;--fm-text-secondary:#4b4b4b;--fm-text-muted:#6b6c70;--fm-text-disabled:#b2b3b6;--fm-text-inverse:#fff;--fm-text-on-inset:#fff;--fm-text-link:#007aff;--fm-text-brand:#ff7823;--fm-text-success:#1f7735;--fm-text-warning:#995900;--fm-text-error:#99231d;--fm-icon-primary:#1c1c1e;--fm-icon-secondary:#4b4b4b;--fm-icon-muted:#6b6c70;--fm-icon-disabled:#b2b3b6;--fm-icon-inverse:#fff;--fm-icon-link:#007aff;--fm-icon-brand:#ff7823;--fm-icon-success:#1f7735;--fm-icon-warning:#995900;--fm-icon-error:#99231d;--fm-icon-info:#004999;--fm-icon-on-brand:#b25300;--fm-icon-on-success:#1f7735;--fm-icon-on-warning:#995900;--fm-icon-on-error:#99231d;--fm-icon-on-info:#004999;--fm-text-info:#004999;--fm-border-default:#f0f0f0;--fm-border-subtle:#f6f6f8;--fm-border-medium:#b2b3b6;--fm-border-strong:#6b6c70;--fm-border-inverse:#fff;--fm-border-brand:#ff7823;--fm-border-success:#1f7735;--fm-border-warning:#995900;--fm-border-error:#99231d;--fm-border-info:#004999;--fm-overlay-scrim-1:#12121252;--fm-overlay-scrim-2:#1212127a;--fm-overlay-scrim-3:#121212a3;--fm-overlay-scrim-4:#121212b8;--fm-action-primary-bg:#ff7823;--fm-feature-aqua-bg:#b7e2ff;--fm-feature-aqua-accent:#3ab0ff;--fm-feature-aqua-fg:#0a5384;--fm-feature-berry-bg:#fee4dc;--fm-feature-berry-accent:#e94850;--fm-feature-berry-fg:#5f090a;--fm-feature-blossom-bg:#fff7fc;--fm-feature-blossom-accent:#ffc4c3;--fm-feature-blossom-fg:#8c146a;--fm-feature-lime-bg:#f4fde6;--fm-feature-lime-accent:#aeef4b;--fm-feature-lime-fg:#306a01;--fm-feature-mustard-bg:#fef5ea;--fm-feature-mustard-accent:#ffc746;--fm-feature-mustard-fg:#903e1f;--fm-feature-stone-bg:#f6f8fc;--fm-feature-stone-accent:#b2b3b6;--fm-feature-stone-fg:#2e2e2e;--fm-feature-grape-bg:#eddfff;--fm-feature-grape-accent:#8f61e8;--fm-feature-grape-fg:#512191;--fm-state-subtle:#1212120a;--fm-state-hover:#12121214;--fm-state-pressed:#1212121f;--fm-state-selected:#12121229;--fm-state-dragged:#1212123d;--fm-action-primary-bg-hover:#b25300;--fm-action-primary-bg-subtle:#fff3e6;--fm-action-primary-fg:#1c1c1e;--fm-action-secondary-bg:#fff;--fm-action-secondary-bg-hover:#f6f6f8;--fm-action-secondary-fg:#1c1c1e;--fm-action-ghost-bg-hover:#f6f6f8;--fm-action-ghost-bg-active:#f0f0f0;--fm-action-danger-bg:#ff3b30;--fm-action-danger-bg-hover:#99231d;--fm-action-danger-bg-subtle:#ffebea;--fm-action-danger-fg:#1c1c1e;--fm-action-disabled-bg:#f0f0f0;--fm-action-disabled-fg:#6b6c70;--fm-text-on-brand:#b25300;--fm-text-on-success:#1f7735;--fm-text-on-warning:#995900;--fm-text-on-error:#99231d;--fm-text-on-info:#004999;--fm-badge-bg-aqua:#b7e2ff;--fm-badge-text-on-aqua:#0a5384;--fm-badge-icon-on-aqua:#0a5384;--fm-badge-border-aqua:#0a5384;--fm-badge-bg-berry:#fee4dc;--fm-badge-bg-blossom:#fff7fc;--fm-badge-bg-lime:#f4fde6;--fm-badge-bg-mustard:#fef5ea;--fm-badge-bg-stone:#f6f8fc;--fm-badge-bg-grape:#eddfff;--fm-badge-border-blossom:#8c146a;--fm-badge-text-on-blossom:#8c146a;--fm-badge-icon-on-blossom:#8c146a;--fm-badge-border-berry:#5f090a;--fm-badge-text-on-berry:#5f090a;--fm-badge-icon-on-berry:#5f090a;--fm-badge-border-lime:#306a01;--fm-badge-text-on-lime:#306a01;--fm-badge-icon-on-lime:#306a01;--fm-badge-border-mustard:#903e1f;--fm-badge-text-on-mustard:#903e1f;--fm-badge-icon-on-mustard:#903e1f;--fm-badge-border-stone:#2e2e2e;--fm-badge-text-on-stone:#2e2e2e;--fm-badge-icon-on-stone:#2e2e2e;--fm-badge-border-grape:#512191;--fm-badge-text-on-grape:#512191;--fm-badge-icon-on-grape:#512191;--fm-badge-bg-brand:#fff3e6;--fm-badge-border-brand:#ff7823;--fm-badge-text-on-brand:#ff7823;--fm-badge-icon-on-brand:#ff7823}[data-fm-theme=dark]{--fm-bg-canvas:#121212;--fm-bg-default:#1c1c1e;--fm-bg-subtle:#262628;--fm-bg-muted:#2e2e2e;--fm-bg-elevated:#262628;--fm-bg-inverse:#fff;--fm-bg-brand:#b25300;--fm-bg-success:#1f7735;--fm-bg-warning:#995900;--fm-bg-error:#99231d;--fm-bg-info:#004999;--fm-surface-default:#262628;--fm-surface-sunken:#121212;--fm-surface-inset:#1c1c1e;--fm-surface-raised:#2e2e2e;--fm-surface-floating:#4b4b4b;--fm-text-primary:#fff;--fm-text-secondary:#b2b3b6;--fm-text-muted:#6b6c70;--fm-text-disabled:#4b4b4b;--fm-text-inverse:#1c1c1e;--fm-text-on-inset:#fff;--fm-text-link:#66afff;--fm-text-brand:#fff3e6;--fm-text-success:#85dd9b;--fm-text-warning:#ffbf66;--fm-text-error:#ff8983;--fm-icon-primary:#fff;--fm-icon-secondary:#b2b3b6;--fm-icon-muted:#6b6c70;--fm-icon-disabled:#4b4b4b;--fm-icon-inverse:#1c1c1e;--fm-icon-link:#66afff;--fm-icon-brand:#fff3e6;--fm-icon-success:#85dd9b;--fm-icon-warning:#ffbf66;--fm-icon-error:#ff8983;--fm-icon-info:#66afff;--fm-icon-on-brand:#fff3e6;--fm-icon-on-success:#ebf9ee;--fm-icon-on-warning:#fff4e6;--fm-icon-on-error:#ffebea;--fm-icon-on-info:#e6f2ff;--fm-text-info:#66afff;--fm-border-default:#2e2e2e;--fm-border-subtle:#262628;--fm-border-medium:#b2b3b6;--fm-border-strong:#f6f6f8;--fm-border-inverse:#1c1c1e;--fm-border-brand:#fff3e6;--fm-border-success:#85dd9b;--fm-border-warning:#ffbf66;--fm-border-error:#ff8983;--fm-border-info:#66afff;--fm-overlay-scrim-1:#1212127a;--fm-overlay-scrim-2:#121212a3;--fm-overlay-scrim-3:#121212b8;--fm-overlay-scrim-4:#121212cc;--fm-action-primary-bg:#ff7823;--fm-feature-aqua-bg:#0a5384;--fm-feature-aqua-accent:#3ab0ff;--fm-feature-aqua-fg:#b7e2ff;--fm-feature-berry-bg:#5f090a;--fm-feature-berry-accent:#e94850;--fm-feature-berry-fg:#fee4dc;--fm-feature-blossom-bg:#8c146a;--fm-feature-blossom-accent:#ffc4c3;--fm-feature-blossom-fg:#fff7fc;--fm-feature-lime-bg:#306a01;--fm-feature-lime-accent:#aeef4b;--fm-feature-lime-fg:#f4fde6;--fm-feature-mustard-bg:#903e1f;--fm-feature-mustard-accent:#ffc746;--fm-feature-mustard-fg:#fef5ea;--fm-feature-stone-bg:#2e2e2e;--fm-feature-stone-accent:#b2b3b6;--fm-feature-stone-fg:#f6f8fc;--fm-feature-grape-bg:#512191;--fm-feature-grape-accent:#8f61e8;--fm-feature-grape-fg:#eddfff;--fm-state-subtle:#ffffff0a;--fm-state-hover:#ffffff14;--fm-state-pressed:#ffffff1f;--fm-state-selected:#ffffff29;--fm-state-dragged:#ffffff3d;--fm-action-primary-bg-hover:#b25300;--fm-action-primary-bg-subtle:#6b3100;--fm-action-primary-fg:#1c1c1e;--fm-action-secondary-bg:#262628;--fm-action-secondary-bg-hover:#2e2e2e;--fm-action-secondary-fg:#fff;--fm-action-ghost-bg-hover:#262628;--fm-action-ghost-bg-active:#2e2e2e;--fm-action-danger-bg:#ff3b30;--fm-action-danger-bg-hover:#99231d;--fm-action-danger-bg-subtle:#5c1511;--fm-action-danger-fg:#1c1c1e;--fm-action-disabled-bg:#2e2e2e;--fm-action-disabled-fg:#6b6c70;--fm-text-on-brand:#fff3e6;--fm-text-on-success:#ebf9ee;--fm-text-on-warning:#fff4e6;--fm-text-on-error:#ffebea;--fm-text-on-info:#e6f2ff;--fm-badge-bg-aqua:#0a5384;--fm-badge-text-on-aqua:#b7e2ff;--fm-badge-icon-on-aqua:#b7e2ff;--fm-badge-border-aqua:#3ab0ff;--fm-badge-bg-berry:#5f090a;--fm-badge-bg-blossom:#8c146a;--fm-badge-bg-lime:#306a01;--fm-badge-bg-mustard:#903e1f;--fm-badge-bg-stone:#2e2e2e;--fm-badge-bg-grape:#512191;--fm-badge-border-blossom:#ffc4c3;--fm-badge-text-on-blossom:#fff7fc;--fm-badge-icon-on-blossom:#fff7fc;--fm-badge-border-berry:#e94850;--fm-badge-text-on-berry:#fee4dc;--fm-badge-icon-on-berry:#fee4dc;--fm-badge-border-lime:#aeef4b;--fm-badge-text-on-lime:#f4fde6;--fm-badge-icon-on-lime:#f4fde6;--fm-badge-border-mustard:#ffc746;--fm-badge-text-on-mustard:#fef5ea;--fm-badge-icon-on-mustard:#fef5ea;--fm-badge-border-stone:#b2b3b6;--fm-badge-text-on-stone:#f6f8fc;--fm-badge-icon-on-stone:#f6f8fc;--fm-badge-border-grape:#8f61e8;--fm-badge-text-on-grape:#eddfff;--fm-badge-icon-on-grape:#eddfff;--fm-badge-bg-brand:#6b3100;--fm-badge-border-brand:#ff7823;--fm-badge-text-on-brand:#fff3e6;--fm-badge-icon-on-brand:#fff3e6}:root{--fm-font-size-8:8px;--fm-font-size-10:10px;--fm-font-size-12:12px;--fm-font-size-14:14px;--fm-font-size-16:16px;--fm-font-size-18:18px;--fm-font-size-22:22px;--fm-font-size-26:26px;--fm-font-size-32:32px;--fm-font-size-36:36px;--fm-font-size-48:48px;--fm-font-size-60:60px;--fm-font-size-72:72px;--fm-font-family-heading:"Cabinet Grotesk";--fm-font-family-body:"Inter";--fm-font-weight-regular:400;--fm-font-weight-medium:500;--fm-font-weight-semi-bold:600;--fm-font-weight-extra-bold:800;--fm-font-weight-black:900;--fm-line-height-8:12px;--fm-line-height-10:14px;--fm-line-height-12:16px;--fm-line-height-14:20px;--fm-line-height-16:24px;--fm-line-height-18:26px;--fm-line-height-22:30px;--fm-line-height-26:36px;--fm-line-height-32:40px;--fm-line-height-36:44px;--fm-line-height-48:56px;--fm-line-height-60:72px;--fm-line-height-72:80px}:root:lang(zh),[lang=zh]{--fm-font-family-heading:"Noto Sans SC";--fm-font-family-body:"Noto Sans SC";--fm-font-weight-regular:400;--fm-font-weight-medium:500;--fm-font-weight-semi-bold:600;--fm-font-weight-extra-bold:800;--fm-font-weight-black:900;--fm-line-height-8:12px;--fm-line-height-10:14px;--fm-line-height-12:18px;--fm-line-height-14:20px;--fm-line-height-16:26px;--fm-line-height-18:26px;--fm-line-height-22:30px;--fm-line-height-26:36px;--fm-line-height-32:44px;--fm-line-height-36:46px;--fm-line-height-48:60px;--fm-line-height-60:76px;--fm-line-height-72:90px}:root:lang(th),[lang=th]{--fm-font-family-heading:"Noto Sans Thai";--fm-font-family-body:"Noto Sans Thai";--fm-font-weight-regular:400;--fm-font-weight-medium:500;--fm-font-weight-semi-bold:600;--fm-font-weight-extra-bold:800;--fm-font-weight-black:900;--fm-line-height-8:14px;--fm-line-height-10:16px;--fm-line-height-12:20px;--fm-line-height-14:24px;--fm-line-height-16:28px;--fm-line-height-18:28px;--fm-line-height-22:32px;--fm-line-height-26:38px;--fm-line-height-32:46px;--fm-line-height-36:50px;--fm-line-height-48:64px;--fm-line-height-60:80px;--fm-line-height-72:96px}.fm-text-display-xl{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:72px;font-weight:900;line-height:80px}.fm-text-display-lg{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:60px;font-weight:900;line-height:72px}.fm-text-display-md{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:48px;font-weight:900;line-height:56px}.fm-text-display-sm{letter-spacing:.015em;font-family:Cabinet Grotesk,sans-serif;font-size:36px;font-weight:900;line-height:44px}.fm-text-title-xl{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:32px;font-weight:800;line-height:40px}.fm-text-title-lg{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:26px;font-weight:800;line-height:36px}.fm-text-title-md{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:22px;font-weight:800;line-height:30px}.fm-text-title-sm{letter-spacing:.01em;font-family:Cabinet Grotesk,sans-serif;font-size:18px;font-weight:800;line-height:26px}.fm-text-body-lg-600{letter-spacing:.0025em;font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:24px}.fm-text-body-md-600{letter-spacing:.01em;font-family:Inter,sans-serif;font-size:14px;font-weight:600;line-height:20px}.fm-text-body-sm-600{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:16px}.fm-text-body-xs-600{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:10px;font-weight:600;line-height:14px}.fm-text-body-overline-xs-600{letter-spacing:.1em;font-family:Inter,sans-serif;font-size:10px;font-weight:600;line-height:14px}.fm-text-body-overline-2xs-600{letter-spacing:.1em;font-family:Inter,sans-serif;font-size:8px;font-weight:600;line-height:12px}.fm-text-body-lg-500{letter-spacing:.0025em;font-family:Inter,sans-serif;font-size:16px;font-weight:500;line-height:24px}.fm-text-body-md-500{letter-spacing:.01em;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:20px}.fm-text-body-sm-500{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:12px;font-weight:500;line-height:16px}.fm-text-body-xs-500{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:10px;font-weight:500;line-height:14px}.fm-text-body-lg-400{letter-spacing:.0025em;font-family:Inter,sans-serif;font-size:16px;font-weight:400;line-height:24px}.fm-text-body-md-400{letter-spacing:.01em;font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:20px}.fm-text-body-sm-400{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:12px;font-weight:400;line-height:16px}.fm-text-body-xs-400{letter-spacing:.02em;font-family:Inter,sans-serif;font-size:10px;font-weight:400;line-height:14px}:root{--fm-shadow-light-xs:0 1px 2px 0 #1c1c1e0a;--fm-shadow-light-sm:0 2px 4px 0 #1c1c1e0f;--fm-shadow-light-md:0 4px 6px 0 #1c1c1e14;--fm-shadow-light-lg:0 6px 10px 0 #1c1c1e1a;--fm-shadow-light-xl:0 8px 16px 0 #1c1c1e1f;--fm-shadow-light-2xl:0 12px 24px 0 #1c1c1e24;--fm-shadow-light-top-sm:0 -2px 4px 0 #1c1c1e0f;--fm-shadow-light-top-md:0 -4px 6px 0 #1c1c1e14;--fm-shadow-light-side-left-md:-4px 0 6px 0 #1c1c1e14;--fm-shadow-light-side-right-md:4px 0 6px 0 #1c1c1e14;--fm-shadow-light-text-sm:0 1px 1px 0 #1c1c1e0d;--fm-shadow-light-text-md:0 1px 2px 0 #1c1c1e1a;--fm-shadow-light-text-lg:0 2px 4px 0 #1c1c1e26;--fm-shadow-light-text-xl:0 3px 6px 0 #1c1c1e33;--fm-shadow-dark-xs:0 1px 2px 0 #ffffff0a;--fm-shadow-dark-sm:0 2px 4px 0 #ffffff0f;--fm-shadow-dark-md:0 4px 6px 0 #ffffff14;--fm-shadow-dark-lg:0 6px 10px 0 #ffffff1a;--fm-shadow-dark-xl:0 8px 16px 0 #ffffff1f;--fm-shadow-dark-2xl:0 12px 24px 0 #ffffff24;--fm-shadow-dark-top-sm:0 -2px 4px 0 #ffffff0f;--fm-shadow-dark-top-md:0 -4px 6px 0 #ffffff14;--fm-shadow-dark-side-left-md:-4px 0 6px 0 #ffffff14;--fm-shadow-dark-side-right-md:4px 0 6px 0 #ffffff14;--fm-shadow-dark-text-sm:0 1px 1px 0 #ffffff0d;--fm-shadow-dark-text-md:0 1px 2px 0 #ffffff1a;--fm-shadow-dark-text-lg:0 2px 4px 0 #ffffff26;--fm-shadow-dark-text-xl:0 3px 6px 0 #fff3;--fm-outer-shadow-light-brand:0 0 0 4px #ff782352;--fm-outer-shadow-light-error:0 0 0 4px #ff3b3052;--fm-outer-shadow-dark-brand:0 0 0 4px #ff782366;--fm-outer-shadow-dark-error:0 0 0 4px #ff3b3066;--fm-inner-shadow-light-sm:inset 0 1px 2px 0 #1c1c1e0f;--fm-inner-shadow-light-md:inset 0 2px 4px 0 #1c1c1e1a;--fm-inner-shadow-light-brand:0 2px 4px 0 #1c1c1e14, inset 0 0 0 1.25px #1c1c1e1f;--fm-inner-shadow-dark-sm:inset 0 1px 2px 0 #ffffff0f;--fm-inner-shadow-dark-md:inset 0 2px 4px 0 #ffffff1a;--fm-inner-shadow-dark-brand:0 2px 4px 0 #ffffff14, inset 0 0 0 1.25px #ffffff1f;--fm-blur-sm:8px;--fm-blur-md:16px;--fm-blur-lg:24px;--fm-blur-xl:40px}:root,[data-fm-theme=light]{--fm-shadow-xs:var(--fm-shadow-light-xs);--fm-shadow-sm:var(--fm-shadow-light-sm);--fm-shadow-md:var(--fm-shadow-light-md);--fm-shadow-lg:var(--fm-shadow-light-lg);--fm-shadow-xl:var(--fm-shadow-light-xl);--fm-shadow-2xl:var(--fm-shadow-light-2xl);--fm-shadow-top-sm:var(--fm-shadow-light-top-sm);--fm-shadow-top-md:var(--fm-shadow-light-top-md);--fm-shadow-side-left-md:var(--fm-shadow-light-side-left-md);--fm-shadow-side-right-md:var(--fm-shadow-light-side-right-md);--fm-shadow-text-sm:var(--fm-shadow-light-text-sm);--fm-shadow-text-md:var(--fm-shadow-light-text-md);--fm-shadow-text-lg:var(--fm-shadow-light-text-lg);--fm-shadow-text-xl:var(--fm-shadow-light-text-xl);--fm-outer-shadow-brand:var(--fm-outer-shadow-light-brand);--fm-outer-shadow-error:var(--fm-outer-shadow-light-error);--fm-inner-shadow-sm:var(--fm-inner-shadow-light-sm);--fm-inner-shadow-md:var(--fm-inner-shadow-light-md);--fm-inner-shadow-brand:var(--fm-inner-shadow-light-brand)}[data-fm-theme=dark]{--fm-shadow-xs:var(--fm-shadow-dark-xs);--fm-shadow-sm:var(--fm-shadow-dark-sm);--fm-shadow-md:var(--fm-shadow-dark-md);--fm-shadow-lg:var(--fm-shadow-dark-lg);--fm-shadow-xl:var(--fm-shadow-dark-xl);--fm-shadow-2xl:var(--fm-shadow-dark-2xl);--fm-shadow-top-sm:var(--fm-shadow-dark-top-sm);--fm-shadow-top-md:var(--fm-shadow-dark-top-md);--fm-shadow-side-left-md:var(--fm-shadow-dark-side-left-md);--fm-shadow-side-right-md:var(--fm-shadow-dark-side-right-md);--fm-shadow-text-sm:var(--fm-shadow-dark-text-sm);--fm-shadow-text-md:var(--fm-shadow-dark-text-md);--fm-shadow-text-lg:var(--fm-shadow-dark-text-lg);--fm-shadow-text-xl:var(--fm-shadow-dark-text-xl);--fm-outer-shadow-brand:var(--fm-outer-shadow-dark-brand);--fm-outer-shadow-error:var(--fm-outer-shadow-dark-error);--fm-inner-shadow-sm:var(--fm-inner-shadow-dark-sm);--fm-inner-shadow-md:var(--fm-inner-shadow-dark-md);--fm-inner-shadow-brand:var(--fm-inner-shadow-dark-brand)}[data-fm-theme]{color:var(--fm-text-primary)}.fm-icon{width:var(--fm-icon-size,24px);height:var(--fm-icon-size,24px);font-size:var(--fm-icon-size,24px);vertical-align:middle;-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.fm-icon__svg{fill:none;width:100%;height:100%;display:block}.fm-icon--rounded,.fm-icon--outlined{text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:antialiased;text-rendering:optimizelegibility;direction:ltr;font-style:normal;font-weight:400}.fm-icon--rounded{font-family:Material Symbols Filled}.fm-icon--outlined{font-family:Material Symbols Outlined}.fm-alert{--fm-alert-surface:var(--fm-bg-inverse);--fm-alert-fg:var(--fm-text-inverse);--fm-alert-icon:var(--fm-icon-inverse);--fm-alert-progress:var(--fm-bg-default);--fm-alert-pad-x:var(--fm-spacing-16);--fm-alert-pad-y:var(--fm-spacing-12);box-sizing:border-box;border-radius:var(--fm-radius-lg);background-color:var(--fm-alert-surface);color:var(--fm-alert-fg);box-shadow:var(--fm-shadow-sm);flex-direction:column;display:flex;overflow:hidden}@media (width>=768px){.fm-alert{--fm-alert-pad-x:var(--fm-spacing-24);--fm-alert-pad-y:var(--fm-spacing-16)}}.fm-alert__body{align-items:center;gap:var(--fm-spacing-12);padding:var(--fm-alert-pad-y) var(--fm-alert-pad-x);display:flex}.fm-alert__icon{--fm-icon-size:32px;width:32px;height:32px;color:var(--fm-alert-icon);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-alert__danger-mark{width:var(--fm-spacing-24);height:var(--fm-spacing-24);border-radius:var(--fm-radius-full);background-color:var(--fm-alert-icon);justify-content:center;align-items:center;display:inline-flex}.fm-alert__danger-bar{width:var(--fm-spacing-12);height:var(--fm-border-width-medium);border-radius:var(--fm-radius-full);background-color:var(--fm-icon-inverse)}.fm-alert__text{flex-direction:column;flex:auto;min-width:0;display:flex}.fm-alert__close{--fm-icon-size:var(--fm-spacing-20);width:var(--fm-spacing-40);height:var(--fm-spacing-40);border-radius:var(--fm-radius-sm);color:var(--fm-alert-fg);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.fm-alert__progress{border-radius:var(--fm-radius-full);background-color:var(--fm-alert-progress);height:2px}.fm-alert__progress--animated{transform-origin:0;animation:fm-alert-drain var(--fm-alert-duration,3s) linear forwards}@keyframes fm-alert-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.fm-alert--info{--fm-alert-surface:var(--fm-bg-info);--fm-alert-fg:var(--fm-text-on-info);--fm-alert-icon:var(--fm-icon-on-info);--fm-alert-progress:var(--fm-icon-on-info)}.fm-alert--success{--fm-alert-surface:var(--fm-bg-success);--fm-alert-fg:var(--fm-text-on-success);--fm-alert-icon:var(--fm-icon-on-success);--fm-alert-progress:var(--fm-icon-on-success)}.fm-alert--warning{--fm-alert-surface:var(--fm-bg-warning);--fm-alert-fg:var(--fm-text-on-warning);--fm-alert-icon:var(--fm-icon-on-warning);--fm-alert-progress:var(--fm-icon-on-warning)}.fm-alert--danger{--fm-alert-surface:var(--fm-bg-error);--fm-alert-fg:var(--fm-text-on-error);--fm-alert-icon:var(--fm-icon-on-error);--fm-alert-progress:var(--fm-icon-on-error)}.fm-badge{--fm-badge-gap:var(--fm-spacing-2);justify-content:center;align-items:center;gap:var(--fm-badge-gap);box-sizing:border-box;border-radius:var(--fm-radius-xs);background-color:var(--fm-badge-surface);color:var(--fm-badge-fg);padding:var(--fm-badge-pad-y) var(--fm-badge-pad-x);-webkit-user-select:none;user-select:none;display:inline-flex}.fm-badge__label{text-overflow:ellipsis;white-space:nowrap;text-align:center;min-width:0;overflow:hidden}.fm-badge__icon{color:var(--fm-badge-icon,var(--fm-badge-fg));flex:none;display:inline-flex}.fm-badge--sm{--fm-badge-pad-x:var(--fm-spacing-4);--fm-badge-pad-y:var(--fm-spacing-2);--fm-badge-count-size:16px}.fm-badge--md{--fm-badge-pad-x:var(--fm-spacing-6);--fm-badge-pad-y:var(--fm-spacing-4);--fm-badge-count-size:24px}.fm-badge--lg{--fm-badge-pad-x:var(--fm-spacing-8);--fm-badge-pad-y:var(--fm-spacing-4);--fm-badge-count-size:32px}.fm-badge--filled{--fm-badge-surface:var(--fm-badge-bg)}.fm-badge--outlined{--fm-badge-surface:transparent;box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-badge-border)}.fm-badge--count{--fm-badge-surface:var(--fm-action-primary-bg-subtle);--fm-badge-fg:var(--fm-text-brand);width:var(--fm-badge-count-size);height:var(--fm-badge-count-size);border-radius:calc(var(--fm-badge-count-size) / 2);padding:0}.fm-badge__count{line-height:1}.fm-badge--count-overflow{width:auto;min-width:var(--fm-badge-count-size);padding:0 calc(var(--fm-badge-count-size) * .375)}.fm-badge--brand{--fm-badge-bg:var(--fm-badge-bg-brand);--fm-badge-fg:var(--fm-badge-text-on-brand);--fm-badge-icon:var(--fm-badge-icon-on-brand);--fm-badge-border:var(--fm-badge-border-brand)}.fm-badge--info{--fm-badge-bg:var(--fm-bg-info);--fm-badge-fg:var(--fm-text-on-info);--fm-badge-icon:var(--fm-text-on-info);--fm-badge-border:var(--fm-border-info)}.fm-badge--success{--fm-badge-bg:var(--fm-bg-success);--fm-badge-fg:var(--fm-text-on-success);--fm-badge-icon:var(--fm-text-on-success);--fm-badge-border:var(--fm-border-success)}.fm-badge--warning{--fm-badge-bg:var(--fm-bg-warning);--fm-badge-fg:var(--fm-text-on-warning);--fm-badge-icon:var(--fm-text-on-warning);--fm-badge-border:var(--fm-border-warning)}.fm-badge--error{--fm-badge-bg:var(--fm-bg-error);--fm-badge-fg:var(--fm-text-on-error);--fm-badge-icon:var(--fm-text-on-error);--fm-badge-border:var(--fm-border-error)}.fm-badge--aqua{--fm-badge-bg:var(--fm-badge-bg-aqua);--fm-badge-fg:var(--fm-badge-text-on-aqua);--fm-badge-icon:var(--fm-badge-icon-on-aqua);--fm-badge-border:var(--fm-badge-border-aqua)}.fm-badge--berry{--fm-badge-bg:var(--fm-badge-bg-berry);--fm-badge-fg:var(--fm-badge-text-on-berry);--fm-badge-icon:var(--fm-badge-icon-on-berry);--fm-badge-border:var(--fm-badge-border-berry)}.fm-badge--blossom{--fm-badge-bg:var(--fm-badge-bg-blossom);--fm-badge-fg:var(--fm-badge-text-on-blossom);--fm-badge-icon:var(--fm-badge-icon-on-blossom);--fm-badge-border:var(--fm-badge-border-blossom)}.fm-badge--lime{--fm-badge-bg:var(--fm-badge-bg-lime);--fm-badge-fg:var(--fm-badge-text-on-lime);--fm-badge-icon:var(--fm-badge-icon-on-lime);--fm-badge-border:var(--fm-badge-border-lime)}.fm-badge--mustard{--fm-badge-bg:var(--fm-badge-bg-mustard);--fm-badge-fg:var(--fm-badge-text-on-mustard);--fm-badge-icon:var(--fm-badge-icon-on-mustard);--fm-badge-border:var(--fm-badge-border-mustard)}.fm-badge--stone{--fm-badge-bg:var(--fm-badge-bg-stone);--fm-badge-fg:var(--fm-badge-text-on-stone);--fm-badge-icon:var(--fm-badge-icon-on-stone);--fm-badge-border:var(--fm-badge-border-stone)}.fm-badge--grape{--fm-badge-bg:var(--fm-badge-bg-grape);--fm-badge-fg:var(--fm-badge-text-on-grape);--fm-badge-icon:var(--fm-badge-icon-on-grape);--fm-badge-border:var(--fm-badge-border-grape)}.fm-badge-anchor{align-items:center;gap:var(--fm-spacing-8);-webkit-user-select:none;user-select:none;display:inline-flex;position:relative}.fm-badge--overlay{--fm-badge-surface:var(--fm-text-primary);--fm-badge-fg:var(--fm-text-inverse);border-radius:var(--fm-radius-full);padding:0}.fm-badge--overlay-pinned{position:absolute;top:-2px;right:-4px}.fm-badge--overlay:not(.fm-badge--dot){min-width:16px;height:16px;padding:0 var(--fm-spacing-4)}.fm-badge--dot{width:6px;min-width:0;height:6px;padding:0}.fm-badge--overlay-pinned.fm-badge--dot{top:0;right:0}.fm-badge--v1-info{--fm-badge-surface:var(--fm-feature-aqua-accent);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-success{--fm-badge-surface:var(--fm-feature-lime-accent);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-warning{--fm-badge-surface:var(--fm-feature-mustard-accent);--fm-badge-fg:var(--fm-text-primary)}.fm-badge--v1-critical{--fm-badge-surface:var(--fm-feature-berry-accent);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-neutral{--fm-badge-surface:var(--fm-text-primary);--fm-badge-fg:var(--fm-text-inverse)}.fm-badge--v1-numeric{--fm-badge-surface:var(--fm-text-error);--fm-badge-fg:var(--fm-text-inverse)}.fm-button{--fm-button-height:44px;--fm-button-padding-x:var(--fm-spacing-16);--fm-button-gap:var(--fm-spacing-8);--fm-button-icon-size:var(--fm-spacing-20);--fm-button-radius:var(--fm-radius-sm);--fm-button-border-width:var(--fm-border-width-none);--fm-button-border-color:transparent;--fm-button-bg:transparent;--fm-button-bg-hover:var(--fm-button-bg);--fm-button-bg-active:var(--fm-button-bg-hover);--fm-button-fg:var(--fm-text-primary);--fm-button-effects:0 0 #0000;--fm-button-effects-pressed:var(--fm-button-effects);--fm-button-glow:0 0 #0000;--fm-button-focus-ring:0 0 #0000;box-sizing:border-box;justify-content:center;align-items:center;gap:var(--fm-button-gap);height:var(--fm-button-height);padding:0 var(--fm-button-padding-x);border:var(--fm-button-border-width) solid var(--fm-button-border-color);border-radius:var(--fm-button-radius);background-color:var(--fm-button-bg);color:var(--fm-button-fg);box-shadow:var(--fm-button-focus-ring), var(--fm-button-effects);font-family:var(--fm-font-family-body), sans-serif;font-size:var(--fm-font-size-14);font-weight:var(--fm-font-weight-semi-bold);line-height:var(--fm-line-height-14);letter-spacing:.01em;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;appearance:none;-webkit-tap-highlight-color:transparent;background-image:none;text-decoration:none;display:inline-flex}.fm-button:focus{outline:none}.fm-button--xs{--fm-button-height:32px}.fm-button--sm{--fm-button-height:40px}.fm-button--md{--fm-button-height:44px}.fm-button--lg{--fm-button-height:52px}@media (width>=768px){.fm-button--xs{--fm-button-height:28px}.fm-button--sm{--fm-button-height:36px}.fm-button--md{--fm-button-height:40px}.fm-button--lg{--fm-button-height:48px}.fm-button:not(.fm-button--xs){font-size:var(--fm-font-size-16);line-height:var(--fm-line-height-16);letter-spacing:.0025em}}@media (width>=1024px){.fm-button--xs{--fm-button-height:24px}.fm-button--sm{--fm-button-height:32px}.fm-button--md{--fm-button-height:36px}.fm-button--lg{--fm-button-height:44px}}.fm-button--primary{--fm-button-bg:var(--fm-action-primary-bg);--fm-button-bg-hover:var(--fm-action-primary-bg-hover);--fm-button-fg:var(--fm-text-inverse);--fm-button-effects:var(--fm-inner-shadow-brand);--fm-button-glow:var(--fm-outer-shadow-brand)}.fm-button--secondary{--fm-button-bg:var(--fm-action-secondary-bg);--fm-button-bg-hover:var(--fm-action-secondary-bg-hover);--fm-button-fg:var(--fm-text-primary);--fm-button-effects:var(--fm-inner-shadow-brand);--fm-button-effects-pressed:0 0 #0000;--fm-button-glow:var(--fm-outer-shadow-brand)}.fm-button--danger{--fm-button-bg:var(--fm-action-danger-bg);--fm-button-bg-hover:var(--fm-action-danger-bg-hover);--fm-button-fg:var(--fm-text-inverse);--fm-button-effects:var(--fm-inner-shadow-brand);--fm-button-glow:var(--fm-outer-shadow-error)}.fm-button--ghost{--fm-button-bg:transparent;--fm-button-bg-hover:var(--fm-action-ghost-bg-hover);--fm-button-bg-active:var(--fm-action-ghost-bg-active);--fm-button-fg:var(--fm-text-primary);--fm-button-glow:var(--fm-outer-shadow-brand)}.fm-button--legacy-plain{--fm-button-fg:var(--fm-text-brand)}.fm-button--legacy-fab{--fm-button-height:var(--fm-spacing-56);--fm-button-radius:var(--fm-radius-full);min-width:var(--fm-spacing-56);padding:0 var(--fm-spacing-16)}.fm-button:enabled:hover{background-color:var(--fm-button-bg-hover)}.fm-button:enabled:focus-visible{background-color:var(--fm-button-bg-hover);box-shadow:var(--fm-button-focus-ring), var(--fm-button-effects), var(--fm-button-glow)}.fm-button--secondary:enabled:focus-visible{--fm-button-focus-ring:inset 0 0 0 1px var(--fm-border-brand)}.fm-button:enabled:active{background-color:var(--fm-button-bg-active);background-image:linear-gradient(var(--fm-state-pressed), var(--fm-state-pressed));box-shadow:var(--fm-button-focus-ring), var(--fm-button-effects-pressed), var(--fm-button-glow)}.fm-button--ghost:enabled:active{background-image:none}.fm-button:disabled{--fm-button-bg:var(--fm-action-disabled-bg);--fm-button-fg:var(--fm-text-disabled);cursor:not-allowed}.fm-button--ghost:disabled{--fm-button-bg:transparent}.fm-button--loading{pointer-events:none}.fm-button__labels{display:contents}.fm-button__label,.fm-button__sub-label{overflow-wrap:anywhere;min-width:0}.fm-button__icon{width:var(--fm-button-icon-size);height:var(--fm-button-icon-size);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-button__icon>svg{width:100%;height:100%}.fm-button__icon--legacy{width:var(--fm-spacing-24);height:var(--fm-spacing-24)}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v232/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOelbd5zrDAt.woff)format("woff");font-display:block}@font-face{font-family:Material Symbols Filled;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v232/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzazHD_dY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOelbd5zrDAt.woff)format("woff");font-display:block}.fm-button__legacy-icon{font-size:var(--fm-spacing-24);letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-feature-settings:"liga";-moz-osx-font-smoothing:grayscale;direction:ltr;font-style:normal;font-weight:400;line-height:1;display:inline-block}.fm-button__legacy-icon--outline{font-family:Material Symbols Outlined,sans-serif}.fm-button__legacy-icon--filled{font-family:Material Symbols Filled,sans-serif}.fm-button--icon-only{width:var(--fm-button-height);padding:0}.fm-button--layout-dotted,.fm-button--layout-spaced{width:100%}.fm-button--layout-dotted .fm-button__labels,.fm-button--layout-spaced .fm-button__labels{flex:auto;justify-content:space-between;align-items:center;min-width:0;display:flex}.fm-button__dot{background-color:#ffffff52;border-radius:50%;flex:none;width:4px;height:4px}.fm-button__spinner{--fm-button-spinner-size:18px;box-sizing:border-box;width:var(--fm-button-spinner-size);height:var(--fm-button-spinner-size);animation:fm-button-spin var(--fm-duration-slower,.6s) linear infinite;border:2px solid;border-top-color:#0000;border-radius:50%;flex:none}.fm-button--lg .fm-button__spinner{--fm-button-spinner-size:20px}.fm-button--md .fm-button__spinner{--fm-button-spinner-size:18px}.fm-button--sm .fm-button__spinner,.fm-button--xs .fm-button__spinner{--fm-button-spinner-size:16px}@keyframes fm-button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fm-button__spinner{animation-duration:2s}}.fm-checkbox{--fm-checkbox-size:24px;--fm-checkbox-surface:var(--fm-action-secondary-bg);--fm-checkbox-border:var(--fm-border-default);--fm-checkbox-glyph:var(--fm-icon-inverse);--fm-checkbox-glow:0 0 #0000;cursor:pointer;color:var(--fm-text-primary);align-items:center;gap:12px;display:inline-flex}.fm-checkbox--disabled{cursor:not-allowed}.fm-checkbox__box{box-sizing:border-box;width:var(--fm-checkbox-size);height:var(--fm-checkbox-size);border-radius:var(--fm-radius-sm);background-color:var(--fm-checkbox-surface);box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-checkbox-border), var(--fm-shadow-xs);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.fm-checkbox__input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.fm-checkbox__glyph{--fm-icon-size:calc(var(--fm-checkbox-size) * 5 / 6);color:var(--fm-checkbox-glyph);pointer-events:none;position:relative}.fm-checkbox__labels{gap:var(--fm-spacing-4);flex-direction:column;min-width:0;display:inline-flex}.fm-checkbox__sublabel{color:var(--fm-text-secondary)}.fm-checkbox--sm{--fm-checkbox-size:24px}.fm-checkbox--md{--fm-checkbox-size:28px}.fm-checkbox--lg{--fm-checkbox-size:32px}@media (width>=1024px){.fm-checkbox--sm{--fm-checkbox-size:20px}.fm-checkbox--md{--fm-checkbox-size:24px}.fm-checkbox--lg{--fm-checkbox-size:28px}}.fm-checkbox:hover:not(.fm-checkbox--disabled):not(.fm-checkbox--selected){--fm-checkbox-border:var(--fm-border-medium)}.fm-checkbox--pressed:not(.fm-checkbox--disabled):not(.fm-checkbox--selected){--fm-checkbox-border:var(--fm-border-strong)}.fm-checkbox--error:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-subtle);--fm-checkbox-border:var(--fm-border-error);--fm-checkbox-glyph:var(--fm-icon-error)}.fm-checkbox--error.fm-checkbox--pressed:not(.fm-checkbox--selected):not(.fm-checkbox--disabled){--fm-checkbox-glow:var(--fm-outer-shadow-error)}.fm-checkbox--selected:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-primary-bg);--fm-checkbox-border:transparent;--fm-checkbox-glyph:var(--fm-icon-inverse)}.fm-checkbox--selected.fm-checkbox--pressed:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-primary-bg-hover)}.fm-checkbox--selected.fm-checkbox--error:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-subtle);--fm-checkbox-glyph:var(--fm-icon-error)}.fm-checkbox--selected.fm-checkbox--error.fm-checkbox--pressed:not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-hover);--fm-checkbox-glyph:var(--fm-icon-inverse)}.fm-checkbox:has(.fm-checkbox__input:focus-visible):not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-secondary-bg);--fm-checkbox-border:var(--fm-border-brand);--fm-checkbox-glyph:var(--fm-action-primary-bg);--fm-checkbox-glow:var(--fm-outer-shadow-brand)}.fm-checkbox--error:has(.fm-checkbox__input:focus-visible):not(.fm-checkbox--disabled){--fm-checkbox-surface:var(--fm-action-danger-bg-subtle);--fm-checkbox-border:var(--fm-border-error);--fm-checkbox-glyph:var(--fm-icon-error);--fm-checkbox-glow:var(--fm-outer-shadow-error)}.fm-checkbox--disabled{--fm-checkbox-surface:var(--fm-action-disabled-bg);--fm-checkbox-border:var(--fm-border-default);--fm-checkbox-glyph:var(--fm-icon-disabled)}.fm-checkbox--error.fm-checkbox--pressed:not(.fm-checkbox--selected) .fm-checkbox__box{box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-checkbox-border), var(--fm-checkbox-glow)}.fm-checkbox:has(.fm-checkbox__input:focus-visible) .fm-checkbox__box{box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-checkbox-border), var(--fm-checkbox-glow)}.fm-chip{--fm-chip-height:36px;--fm-chip-surface:var(--fm-surface-default);--fm-chip-overlay:transparent;--fm-chip-border:var(--fm-border-default);--fm-chip-border-width:var(--fm-border-width-thin);--fm-chip-fg:var(--fm-text-primary);--fm-chip-icon:var(--fm-icon-primary);--fm-chip-accent:var(--fm-icon-brand);--fm-chip-glow:0 0 #0000;justify-content:center;align-items:center;gap:var(--fm-spacing-4);box-sizing:border-box;height:var(--fm-chip-height);padding:0 var(--fm-spacing-12);border-radius:var(--fm-radius-sm);background-color:var(--fm-chip-surface);background-image:linear-gradient(var(--fm-chip-overlay), var(--fm-chip-overlay));color:var(--fm-chip-fg);cursor:pointer;box-shadow:inset 0 0 0 var(--fm-chip-border-width) var(--fm-chip-border), var(--fm-shadow-xs);border:none;display:inline-flex}.fm-chip:disabled{cursor:not-allowed}.fm-chip__label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fm-chip__icon{--fm-icon-size:var(--fm-spacing-20);color:var(--fm-chip-icon);flex:none;display:inline-flex}.fm-chip__indicator-slot{width:var(--fm-spacing-20);height:var(--fm-spacing-20);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-chip__indicator{width:var(--fm-spacing-12);height:var(--fm-spacing-12);border-radius:var(--fm-radius-full);background-color:var(--fm-chip-accent)}.fm-chip__count{box-sizing:border-box;min-width:var(--fm-spacing-20);height:var(--fm-spacing-20);padding:0 var(--fm-spacing-4);border-radius:var(--fm-radius-full);background-color:var(--fm-chip-accent);color:var(--fm-text-inverse);flex:none;justify-content:center;align-items:center;display:inline-flex}.fm-chip__remove{--fm-icon-size:var(--fm-spacing-16);color:var(--fm-chip-icon);cursor:pointer;flex:none;display:inline-flex}.fm-chip:hover:not(:disabled){--fm-chip-overlay:var(--fm-state-hover)}.fm-chip--pressed:not(:disabled){--fm-chip-overlay:var(--fm-state-pressed)}.fm-chip:hover:not(:disabled):not(.fm-chip--selected),.fm-chip--pressed:not(:disabled):not(.fm-chip--selected){--fm-chip-border:var(--fm-border-medium)}.fm-chip--selected:not(:disabled){--fm-chip-border:var(--fm-border-brand);--fm-chip-border-width:var(--fm-border-width-regular)}.fm-chip:disabled{--fm-chip-surface:var(--fm-surface-sunken);--fm-chip-overlay:transparent;--fm-chip-border:var(--fm-border-medium);--fm-chip-fg:var(--fm-text-disabled);--fm-chip-icon:var(--fm-icon-disabled);--fm-chip-accent:var(--fm-border-medium)}.fm-chip:focus-visible{--fm-chip-border:var(--fm-border-brand);--fm-chip-border-width:var(--fm-border-width-regular);--fm-chip-glow:var(--fm-outer-shadow-brand);box-shadow:inset 0 0 0 var(--fm-chip-border-width) var(--fm-chip-border), var(--fm-chip-glow);outline:none}.fm-chip--compact{--fm-chip-height:22px;padding:0 var(--fm-spacing-8)}.fm-chip--v1-plain{--fm-chip-surface:var(--fm-bg-subtle);--fm-chip-border:transparent}.fm-chip--v1-plain.fm-chip--v1-selected{--fm-chip-surface:var(--fm-text-primary);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse)}.fm-chip--v1-neutral{--fm-chip-surface:var(--fm-text-primary);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-info{--fm-chip-surface:var(--fm-feature-aqua-accent);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-success{--fm-chip-surface:var(--fm-feature-lime-accent);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-critical{--fm-chip-surface:var(--fm-feature-berry-accent);--fm-chip-fg:var(--fm-text-inverse);--fm-chip-icon:var(--fm-text-inverse);--fm-chip-border:transparent}.fm-chip--v1-warning{--fm-chip-surface:var(--fm-feature-mustard-accent);--fm-chip-fg:var(--fm-text-primary);--fm-chip-icon:var(--fm-text-primary);--fm-chip-border:transparent}.fm-radio{--fm-radio-size:24px;--fm-radio-ring-width:var(--fm-border-width-thin);--fm-radio-surface:var(--fm-action-secondary-bg);--fm-radio-ring:var(--fm-border-default);--fm-radio-dot:var(--fm-action-primary-bg);--fm-radio-glow:0 0 #0000;align-items:center;gap:var(--fm-spacing-16);cursor:pointer;color:var(--fm-text-primary);display:inline-flex}.fm-radio--disabled{cursor:not-allowed}.fm-radio__circle{box-sizing:border-box;width:var(--fm-radio-size);height:var(--fm-radio-size);border-radius:var(--fm-radius-full);background-color:var(--fm-radio-surface);box-shadow:inset 0 0 0 var(--fm-radio-ring-width) var(--fm-radio-ring), var(--fm-shadow-xs);flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.fm-radio__input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.fm-radio__dot{width:calc(var(--fm-radio-size) * 10 / 24);height:calc(var(--fm-radio-size) * 10 / 24);border-radius:var(--fm-radius-full);background-color:var(--fm-radio-dot);pointer-events:none}.fm-radio__labels{gap:var(--fm-spacing-4);flex-direction:column;min-width:0;display:inline-flex}.fm-radio__sublabel{color:var(--fm-text-secondary)}.fm-radio--sm{--fm-radio-size:24px;--fm-radio-selected-ring:1px}.fm-radio--md{--fm-radio-size:28px;--fm-radio-selected-ring:1.5px}.fm-radio--lg{--fm-radio-size:32px;--fm-radio-selected-ring:2.5px}@media (width>=1024px){.fm-radio--sm{--fm-radio-size:20px;--fm-radio-selected-ring:1px}.fm-radio--md{--fm-radio-size:24px;--fm-radio-selected-ring:1px}.fm-radio--lg{--fm-radio-size:28px;--fm-radio-selected-ring:1.5px}}.fm-radio--selected:not(.fm-radio--disabled){--fm-radio-ring:var(--fm-border-brand);--fm-radio-ring-width:var(--fm-radio-selected-ring)}.fm-radio:hover:not(.fm-radio--disabled):not(.fm-radio--selected){--fm-radio-ring:var(--fm-border-medium)}.fm-radio--pressed:not(.fm-radio--disabled):not(.fm-radio--selected){--fm-radio-ring:var(--fm-border-strong)}.fm-radio--selected.fm-radio--pressed:not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-primary-bg-hover);--fm-radio-ring:transparent;--fm-radio-dot:#fff9}.fm-radio--error:not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-danger-bg-subtle);--fm-radio-ring:var(--fm-border-error);--fm-radio-dot:var(--fm-border-error)}.fm-radio--error.fm-radio--selected.fm-radio--pressed:not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-danger-bg-hover);--fm-radio-ring:transparent;--fm-radio-dot:#fff9}.fm-radio:has(.fm-radio__input:focus-visible):not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-secondary-bg);--fm-radio-ring:var(--fm-border-brand);--fm-radio-glow:var(--fm-outer-shadow-brand)}.fm-radio--error:has(.fm-radio__input:focus-visible):not(.fm-radio--disabled){--fm-radio-surface:var(--fm-action-danger-bg-subtle);--fm-radio-ring:var(--fm-border-error);--fm-radio-glow:var(--fm-outer-shadow-error)}.fm-radio--disabled{--fm-radio-surface:var(--fm-action-disabled-bg);--fm-radio-ring:transparent;--fm-radio-dot:var(--fm-icon-disabled)}.fm-radio:has(.fm-radio__input:focus-visible) .fm-radio__circle{box-shadow:inset 0 0 0 var(--fm-radio-ring-width) var(--fm-radio-ring), var(--fm-radio-glow)}.fm-radio-group{gap:var(--fm-spacing-8);flex-direction:column;display:flex}.fm-radio-group__label{color:var(--fm-text-primary)}.fm-radio-group__items{gap:var(--fm-spacing-8);flex-direction:column;display:flex}.fm-radio-group--inline>.fm-radio-group__items{align-items:center;gap:var(--fm-spacing-16);flex-direction:row}.fm-search-bar{--fm-search-height:44px;--fm-search-surface:var(--fm-surface-raised);--fm-search-border:var(--fm-border-default);--fm-search-fg:var(--fm-text-primary);--fm-search-placeholder:var(--fm-text-muted);--fm-search-icon:var(--fm-icon-primary);--fm-search-glow:0 0 #0000;--fm-search-shadow:var(--fm-shadow-text-sm);align-items:center;gap:var(--fm-spacing-12);box-sizing:border-box;width:100%;height:var(--fm-search-height);padding:0 var(--fm-spacing-8);border-radius:var(--fm-radius-md);background-color:var(--fm-search-surface);box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-search-border), var(--fm-search-shadow), var(--fm-search-glow);display:flex}.fm-search-bar__leading{--fm-icon-size:var(--fm-spacing-16);color:var(--fm-search-icon);flex:none;align-items:center;display:inline-flex}.fm-search-bar__control{min-width:0;height:20px;color:var(--fm-search-fg);appearance:none;background:0 0;border:none;outline:none;flex:auto;margin:0;padding:0}.fm-search-bar__control::placeholder{color:var(--fm-search-placeholder);opacity:1}.fm-search-bar__control::-webkit-search-cancel-button{appearance:none;display:none}.fm-search-bar__control::-webkit-search-decoration{appearance:none;display:none}.fm-search-bar__clear{--fm-icon-size:var(--fm-spacing-20);width:var(--fm-spacing-20);height:var(--fm-spacing-20);color:var(--fm-icon-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.fm-search-bar--sm{--fm-search-height:40px}.fm-search-bar--md{--fm-search-height:44px}.fm-search-bar--lg{--fm-search-height:52px}@media (width>=768px){.fm-search-bar--sm{--fm-search-height:36px}.fm-search-bar--md{--fm-search-height:40px}.fm-search-bar--lg{--fm-search-height:48px}}@media (width>=1024px){.fm-search-bar--sm{--fm-search-height:32px}.fm-search-bar--md{--fm-search-height:36px}.fm-search-bar--lg{--fm-search-height:44px}}.fm-search-bar:not(.fm-search-bar--disabled):hover{--fm-search-border:var(--fm-border-medium)}.fm-search-bar:not(.fm-search-bar--disabled):focus-within{--fm-search-border:var(--fm-border-brand);--fm-search-shadow:0 0 #0000;--fm-search-glow:var(--fm-outer-shadow-brand)}.fm-search-bar--error,.fm-search-bar--error:hover,.fm-search-bar--error:focus-within{--fm-search-border:var(--fm-border-error);--fm-search-fg:var(--fm-text-error);--fm-search-placeholder:var(--fm-text-error);--fm-search-icon:var(--fm-icon-error);--fm-search-shadow:0 0 #0000;--fm-search-glow:var(--fm-outer-shadow-error)}.fm-search-bar--disabled{--fm-search-surface:var(--fm-surface-sunken);--fm-search-border:var(--fm-border-default);--fm-search-fg:var(--fm-text-disabled);--fm-search-placeholder:var(--fm-text-disabled);--fm-search-icon:var(--fm-icon-disabled);--fm-search-shadow:0 0 #0000}.fm-search-bar--disabled .fm-search-bar__control{cursor:not-allowed}.fm-switch{--fm-switch-track-w:52px;--fm-switch-track-h:28px;--fm-switch-inset:2px;--fm-switch-thumb:calc(var(--fm-switch-track-h) - var(--fm-switch-inset) * 2);--fm-switch-travel:calc(var(--fm-switch-track-w) - var(--fm-switch-thumb) - var(--fm-switch-inset) * 2);--fm-switch-surface:var(--fm-action-disabled-bg);--fm-switch-thumb-color:var(--fm-border-medium);--fm-switch-icon:var(--fm-action-disabled-fg);--fm-switch-glow:0 0 #0000;align-items:center;gap:var(--fm-spacing-8);cursor:pointer;color:var(--fm-text-primary);display:inline-flex}.fm-switch--label-right{flex-direction:row-reverse}.fm-switch--disabled{cursor:not-allowed;opacity:.32}.fm-switch__track{box-sizing:border-box;width:var(--fm-switch-track-w);height:var(--fm-switch-track-h);border-radius:var(--fm-radius-full);background-color:var(--fm-switch-surface);box-shadow:var(--fm-shadow-sm);flex:none;display:inline-block;position:relative}.fm-switch__input{opacity:0;cursor:inherit;margin:0;position:absolute;inset:0}.fm-switch__thumb{top:var(--fm-switch-inset);left:var(--fm-switch-inset);width:var(--fm-switch-thumb);height:var(--fm-switch-thumb);border-radius:var(--fm-radius-full);background-color:var(--fm-switch-thumb-color);box-shadow:var(--fm-shadow-sm);transition:transform var(--fm-duration-fast,.15s) ease-in-out;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute}.fm-switch__thumb-icon{--fm-icon-size:max(8px, calc(var(--fm-switch-thumb) - 8px));color:var(--fm-switch-icon)}.fm-switch__labels{gap:var(--fm-spacing-4);flex-direction:column;min-width:0;display:inline-flex}.fm-switch__sublabel{color:var(--fm-text-secondary)}.fm-switch--sm{--fm-switch-track-w:40px;--fm-switch-track-h:22px}.fm-switch--md{--fm-switch-track-w:52px;--fm-switch-track-h:28px}.fm-switch--lg{--fm-switch-track-w:60px;--fm-switch-track-h:32px}@media (width>=768px){.fm-switch--sm{--fm-switch-track-w:44px;--fm-switch-track-h:24px}}@media (width>=1024px){.fm-switch--sm{--fm-switch-track-w:32px;--fm-switch-track-h:18px}.fm-switch--md{--fm-switch-track-w:44px;--fm-switch-track-h:24px}.fm-switch--lg{--fm-switch-track-w:52px;--fm-switch-track-h:28px}}.fm-switch--on{--fm-switch-surface:var(--fm-action-primary-bg);--fm-switch-thumb-color:var(--fm-surface-raised);--fm-switch-icon:var(--fm-action-primary-bg)}.fm-switch--on .fm-switch__thumb{transform:translateX(var(--fm-switch-travel))}.fm-switch--on.fm-switch--pressed{--fm-switch-surface:var(--fm-action-primary-bg-hover)}.fm-switch--pressed:not(.fm-switch--on){--fm-switch-surface:var(--fm-action-disabled-fg)}.fm-switch:not(.fm-switch--on):has(.fm-switch__thumb-icon){--fm-switch-thumb-color:var(--fm-surface-raised)}.fm-switch:has(.fm-switch__input:focus-visible):not(.fm-switch--disabled){--fm-switch-glow:var(--fm-outer-shadow-brand)}.fm-switch:has(.fm-switch__input:focus-visible) .fm-switch__track{box-shadow:var(--fm-switch-glow)}.fm-field{--fm-field-pad-x:var(--fm-spacing-8);--fm-field-pad-y:var(--fm-spacing-12);--fm-field-radius:var(--fm-radius-md);--fm-field-surface:var(--fm-surface-raised);--fm-field-border:var(--fm-border-default);--fm-field-fg:var(--fm-text-primary);--fm-field-placeholder:var(--fm-text-muted);--fm-field-affix:var(--fm-icon-secondary);--fm-field-label:var(--fm-text-primary);--fm-field-helper:var(--fm-text-secondary);--fm-field-glow:0 0 #0000;--fm-field-shadow:var(--fm-shadow-xs);gap:var(--fm-spacing-4);flex-direction:column;width:100%;display:flex}.fm-field__label{align-items:baseline;gap:var(--fm-spacing-4);color:var(--fm-field-label);display:flex}.fm-field__mark{color:var(--fm-text-error)}.fm-field__box{align-items:center;gap:var(--fm-spacing-4);box-sizing:border-box;width:100%;padding:var(--fm-field-pad-y) var(--fm-field-pad-x);border-radius:var(--fm-field-radius);background-color:var(--fm-field-surface);box-shadow:inset 0 0 0 var(--fm-border-width-thin) var(--fm-field-border), var(--fm-field-shadow), var(--fm-field-glow);display:flex}.fm-field__control{min-width:0;height:20px;color:var(--fm-field-fg);background:0 0;border:none;outline:none;flex:auto;margin:0;padding:0}.fm-field__control::placeholder{color:var(--fm-field-placeholder);opacity:1}.fm-field__affix{--fm-icon-size:var(--fm-spacing-20);color:var(--fm-field-affix);flex:none;align-items:center;display:inline-flex}.fm-field__footer{justify-content:space-between;gap:var(--fm-spacing-8);color:var(--fm-field-helper);display:flex}.fm-field__counter{margin-left:auto}.fm-field--single.fm-field--sm{--fm-field-pad-y:var(--fm-spacing-10)}.fm-field--single.fm-field--md{--fm-field-pad-y:var(--fm-spacing-12)}.fm-field--single.fm-field--lg{--fm-field-pad-y:var(--fm-spacing-16);--fm-field-radius:var(--fm-radius-lg)}.fm-field--multiline{--fm-field-pad-x:var(--fm-spacing-8);--fm-field-pad-y:var(--fm-spacing-8);--fm-field-radius:var(--fm-radius-md);--fm-field-height:128px}.fm-field--multiline>.fm-field__box{height:var(--fm-field-height);align-items:stretch}.fm-field--multiline .fm-field__control{resize:none;height:100%}.fm-field--multiline .fm-field__box{align-items:stretch}.fm-field--multiline.fm-field--sm{--fm-field-height:96px}.fm-field--multiline.fm-field--md{--fm-field-height:128px}.fm-field--multiline.fm-field--lg{--fm-field-height:160px}@media (width>=768px){.fm-field--multiline.fm-field--sm{--fm-field-height:128px}.fm-field--multiline.fm-field--md{--fm-field-height:160px}.fm-field--multiline.fm-field--lg{--fm-field-height:192px}}@media (width>=1024px){.fm-field--multiline.fm-field--sm{--fm-field-height:164px}.fm-field--multiline.fm-field--md{--fm-field-height:196px}.fm-field--multiline.fm-field--lg{--fm-field-height:228px}}.fm-field:not(.fm-field--disabled)>.fm-field__box:hover{--fm-field-border:var(--fm-border-medium)}.fm-field:not(.fm-field--disabled)>.fm-field__box:focus-within{--fm-field-border:var(--fm-border-brand);--fm-field-shadow:0 0 #0000;--fm-field-glow:var(--fm-outer-shadow-brand)}.fm-field--error:not(.fm-field--disabled){--fm-field-fg:var(--fm-text-error);--fm-field-placeholder:var(--fm-text-error);--fm-field-affix:var(--fm-text-error);--fm-field-label:var(--fm-text-error);--fm-field-helper:var(--fm-text-error)}.fm-field--error:not(.fm-field--disabled)>.fm-field__box,.fm-field--error:not(.fm-field--disabled)>.fm-field__box:hover,.fm-field--error:not(.fm-field--disabled)>.fm-field__box:focus-within{--fm-field-border:var(--fm-border-error);--fm-field-shadow:0 0 #0000;--fm-field-glow:var(--fm-outer-shadow-error)}.fm-field--multiline.fm-field--error:not(.fm-field--disabled)>.fm-field__box,.fm-field--multiline.fm-field--error:not(.fm-field--disabled)>.fm-field__box:hover,.fm-field--multiline.fm-field--error:not(.fm-field--disabled)>.fm-field__box:focus-within{--fm-field-border:var(--fm-border-warning)}.fm-field--disabled{--fm-field-surface:var(--fm-surface-sunken);--fm-field-border:var(--fm-border-default);--fm-field-fg:var(--fm-text-disabled);--fm-field-placeholder:var(--fm-text-disabled);--fm-field-affix:var(--fm-icon-disabled);--fm-field-label:var(--fm-text-disabled);--fm-field-helper:var(--fm-text-disabled)}.fm-field--disabled .fm-field__control{cursor:not-allowed}
|
|
304
|
+
/*$vite$:1*/`, Ot = /url\(\s*(['"]?)\s*([^)'"]*?)\s*\1\s*\)/gi, dn = /@font-face\s*\{[^}]*\}/gi;
|
|
305
|
+
function zt(t) {
|
|
343
306
|
return /^(data:|blob:|#)/i.test(t);
|
|
344
307
|
}
|
|
345
|
-
function
|
|
346
|
-
for (const e of t.matchAll(
|
|
347
|
-
if (!
|
|
308
|
+
function cn(t) {
|
|
309
|
+
for (const e of t.matchAll(Ot))
|
|
310
|
+
if (!zt(e[2])) return !0;
|
|
348
311
|
return !1;
|
|
349
312
|
}
|
|
350
|
-
function
|
|
313
|
+
function mn(t) {
|
|
351
314
|
var n;
|
|
352
315
|
return `@font-face ${((n = /font-family\s*:\s*([^;}]+)/i.exec(t)) == null ? void 0 : n[1].trim()) || "(unnamed)"}`;
|
|
353
316
|
}
|
|
354
|
-
function
|
|
317
|
+
function un(t) {
|
|
355
318
|
const e = [];
|
|
356
|
-
let n = t.replace(
|
|
357
|
-
return n = n.replace(
|
|
319
|
+
let n = t.replace(dn, (o) => cn(o) ? (e.push(mn(o)), "") : o);
|
|
320
|
+
return n = n.replace(Ot, (o, a, i) => zt(i) ? o : (e.push(`url(${i})`), "url(about:invalid)")), { css: n, stripped: e };
|
|
358
321
|
}
|
|
359
|
-
const
|
|
322
|
+
const We = "/* __FM_UI_LIBRARY_V2_STYLES__ */", pn = [
|
|
360
323
|
"--fm-text-primary",
|
|
361
324
|
"--fm-bg-default",
|
|
362
325
|
"--fm-border-default",
|
|
363
326
|
"--fm-action-primary-bg"
|
|
364
327
|
];
|
|
365
|
-
function
|
|
366
|
-
if (!t.includes(
|
|
328
|
+
function hn(t, e) {
|
|
329
|
+
if (!t.includes(We))
|
|
367
330
|
throw new Error("report canvas frame is missing the UI library style placeholder");
|
|
368
|
-
const { css: n, stripped: o } =
|
|
331
|
+
const { css: n, stripped: o } = un(e), a = pn.filter((v) => !n.includes(v));
|
|
369
332
|
if (a.length)
|
|
370
333
|
throw new Error(`the UI library stylesheet defines none of ${a.join(", ")}`);
|
|
371
|
-
const i = t.replace(
|
|
372
|
-
if (i.includes(
|
|
334
|
+
const i = t.replace(We, () => n);
|
|
335
|
+
if (i.includes(We))
|
|
373
336
|
throw new Error("the frame declares the UI library style placeholder more than once");
|
|
374
337
|
return { html: i, stripped: o };
|
|
375
338
|
}
|
|
376
|
-
const
|
|
339
|
+
const gn = `<meta charset="utf-8" />
|
|
377
340
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
378
341
|
<!--
|
|
379
342
|
Runtime shell for AI-written report sections. Loaded into ONE iframe per report with
|
|
@@ -3239,8 +3202,8 @@ const wn = `<meta charset="utf-8" />
|
|
|
3239
3202
|
post({ type: "ready", nonce: NONCE })
|
|
3240
3203
|
})()
|
|
3241
3204
|
<\/script>
|
|
3242
|
-
`,
|
|
3243
|
-
function
|
|
3205
|
+
`, oo = hn(gn, fn).html, ct = 8e3;
|
|
3206
|
+
function mt(t) {
|
|
3244
3207
|
const e = t;
|
|
3245
3208
|
if (!e || typeof e != "object") return;
|
|
3246
3209
|
const n = (a) => Number.isSafeInteger(a) && a >= 0 && a <= 1e4;
|
|
@@ -3254,10 +3217,10 @@ function ut(t) {
|
|
|
3254
3217
|
...o === null || typeof o == "number" && Number.isFinite(o) ? { value: o } : typeof o == "string" ? { value: o.slice(0, 64) } : {}
|
|
3255
3218
|
};
|
|
3256
3219
|
}
|
|
3257
|
-
function
|
|
3220
|
+
function Nt(t) {
|
|
3258
3221
|
const e = t;
|
|
3259
3222
|
if (!e || typeof e != "object" || typeof e.tag != "string") return;
|
|
3260
|
-
const n = Array.isArray(e.path) ? e.path.filter((i) => Number.isSafeInteger(i) && i >= 0).slice(0, 32) : [], o =
|
|
3223
|
+
const n = Array.isArray(e.path) ? e.path.filter((i) => Number.isSafeInteger(i) && i >= 0).slice(0, 32) : [], o = mt(e.datum), a = Array.isArray(e.points) ? e.points.slice(0, 64).map(mt).filter((i) => !!i) : [];
|
|
3261
3224
|
return {
|
|
3262
3225
|
tag: e.tag.slice(0, 32),
|
|
3263
3226
|
...typeof e.part == "string" ? { part: e.part.slice(0, 128) } : {},
|
|
@@ -3268,15 +3231,15 @@ function Mt(t) {
|
|
|
3268
3231
|
...a.length ? { points: a } : {}
|
|
3269
3232
|
};
|
|
3270
3233
|
}
|
|
3271
|
-
function
|
|
3234
|
+
function bn(t) {
|
|
3272
3235
|
const e = t;
|
|
3273
3236
|
if (!e || typeof e != "object") return;
|
|
3274
3237
|
const [n, o, a, i] = [e.left, e.top, e.width, e.height], v = (k) => typeof k == "number" && Number.isFinite(k);
|
|
3275
3238
|
return v(n) && v(o) && v(a) && v(i) && a > 0 && i > 0 ? { left: n, top: o, width: a, height: i } : void 0;
|
|
3276
3239
|
}
|
|
3277
|
-
function
|
|
3240
|
+
function ut(t) {
|
|
3278
3241
|
if (typeof t.sectionId != "string" || !Number.isSafeInteger(t.version)) return;
|
|
3279
|
-
const e =
|
|
3242
|
+
const e = Nt(t.element), n = bn(t.area);
|
|
3280
3243
|
return {
|
|
3281
3244
|
sectionId: t.sectionId,
|
|
3282
3245
|
version: t.version,
|
|
@@ -3287,7 +3250,7 @@ function pt(t) {
|
|
|
3287
3250
|
...n ? { area: n } : {}
|
|
3288
3251
|
};
|
|
3289
3252
|
}
|
|
3290
|
-
function
|
|
3253
|
+
function io(t, e) {
|
|
3291
3254
|
const n = T(!1);
|
|
3292
3255
|
let o = null;
|
|
3293
3256
|
const a = /* @__PURE__ */ new Map();
|
|
@@ -3314,15 +3277,15 @@ function co(t, e) {
|
|
|
3314
3277
|
break;
|
|
3315
3278
|
case "sectionSelected": {
|
|
3316
3279
|
if (!i || g.nonce !== i) return;
|
|
3317
|
-
const ae =
|
|
3280
|
+
const ae = ut(g);
|
|
3318
3281
|
if (!ae) return;
|
|
3319
|
-
const { area: te, ...xe } = ae, ue = Array.isArray(g.widen) ? g.widen.slice(0, 4).map(
|
|
3282
|
+
const { area: te, ...xe } = ae, ue = Array.isArray(g.widen) ? g.widen.slice(0, 4).map(Nt).filter((we) => !!we) : [];
|
|
3320
3283
|
(U = e.onSelectSection) == null || U.call(e, xe, ue);
|
|
3321
3284
|
break;
|
|
3322
3285
|
}
|
|
3323
3286
|
case "areaSelected": {
|
|
3324
3287
|
if (!i || g.nonce !== i || !Array.isArray(g.picks)) return;
|
|
3325
|
-
const ae = g.picks.slice(0, 64).map((te) => te && typeof te == "object" ?
|
|
3288
|
+
const ae = g.picks.slice(0, 64).map((te) => te && typeof te == "object" ? ut(te) : void 0).filter((te) => !!te);
|
|
3326
3289
|
ae.length && ((q = e.onSelectArea) == null || q.call(e, ae));
|
|
3327
3290
|
break;
|
|
3328
3291
|
}
|
|
@@ -3380,14 +3343,14 @@ function co(t, e) {
|
|
|
3380
3343
|
v.delete(g), e.onSectionError(
|
|
3381
3344
|
y.id,
|
|
3382
3345
|
y.version,
|
|
3383
|
-
`the section did not report a render within ${
|
|
3346
|
+
`the section did not report a render within ${ct}ms`
|
|
3384
3347
|
);
|
|
3385
|
-
},
|
|
3348
|
+
}, ct)
|
|
3386
3349
|
);
|
|
3387
3350
|
}
|
|
3388
3351
|
}
|
|
3389
3352
|
async function E(l, y, g) {
|
|
3390
|
-
const U = await
|
|
3353
|
+
const U = await st(l.flatMap((K) => K.libs ?? [])), q = () => {
|
|
3391
3354
|
_({
|
|
3392
3355
|
type: "init",
|
|
3393
3356
|
sections: l,
|
|
@@ -3401,7 +3364,7 @@ function co(t, e) {
|
|
|
3401
3364
|
n.value ? q() : o = q;
|
|
3402
3365
|
}
|
|
3403
3366
|
async function j(l) {
|
|
3404
|
-
const y = await
|
|
3367
|
+
const y = await st(l.flatMap((g) => g.libs ?? []));
|
|
3405
3368
|
_({ type: "sections", sections: l, libs: y }), O(l);
|
|
3406
3369
|
}
|
|
3407
3370
|
function N(l) {
|
|
@@ -3473,29 +3436,29 @@ function co(t, e) {
|
|
|
3473
3436
|
reset: Z
|
|
3474
3437
|
};
|
|
3475
3438
|
}
|
|
3476
|
-
const
|
|
3477
|
-
function
|
|
3439
|
+
const vn = /^(?:https?:\/\/|mailto:)[^\s]+$/i, Ge = /`([^`]+)`|(!?)\[([^\]]*)\]\(([^)\s]*)\)|\*\*([\s\S]+?)\*\*|\*([^*\n]+)\*/g;
|
|
3440
|
+
function Ye(t, e) {
|
|
3478
3441
|
if (!e) return;
|
|
3479
3442
|
const n = t[t.length - 1];
|
|
3480
3443
|
(n == null ? void 0 : n.type) === "text" ? n.text += e : t.push({ type: "text", text: e });
|
|
3481
3444
|
}
|
|
3482
|
-
function
|
|
3445
|
+
function Xe(t) {
|
|
3483
3446
|
const e = [];
|
|
3484
3447
|
let n = 0;
|
|
3485
|
-
|
|
3486
|
-
for (let o =
|
|
3487
|
-
|
|
3448
|
+
Ge.lastIndex = 0;
|
|
3449
|
+
for (let o = Ge.exec(t); o; o = Ge.exec(t)) {
|
|
3450
|
+
Ye(e, t.slice(n, o.index)), n = o.index + o[0].length;
|
|
3488
3451
|
const [, a, i, v, k, _, u] = o;
|
|
3489
|
-
a !== void 0 ? e.push({ type: "code", text: a }) : v !== void 0 ? !i &&
|
|
3452
|
+
a !== void 0 ? e.push({ type: "code", text: a }) : v !== void 0 ? !i && vn.test(k) ? e.push({ type: "link", text: v || k, href: k }) : Ye(e, o[0]) : _ !== void 0 ? e.push({ type: "strong", text: _ }) : u !== void 0 && e.push({ type: "em", text: u });
|
|
3490
3453
|
}
|
|
3491
|
-
return
|
|
3454
|
+
return Ye(e, t.slice(n)), e;
|
|
3492
3455
|
}
|
|
3493
|
-
const
|
|
3494
|
-
function
|
|
3456
|
+
const yn = /^\s*```/, xn = /^\s{0,3}(#{1,6})\s+(.*)$/, wn = /^\s*[-*+]\s+(.*)$/, kn = /^\s*\d{1,3}[.)]\s+(.*)$/;
|
|
3457
|
+
function pt(t) {
|
|
3495
3458
|
const e = [], n = String(t ?? "").split(/\r?\n/);
|
|
3496
3459
|
let o = [], a = null, i = null;
|
|
3497
3460
|
function v() {
|
|
3498
|
-
o.length && (e.push({ type: "p", inline:
|
|
3461
|
+
o.length && (e.push({ type: "p", inline: Xe(o.join(" ")) }), o = []);
|
|
3499
3462
|
}
|
|
3500
3463
|
function k() {
|
|
3501
3464
|
a && (e.push({ type: "list", ordered: a.ordered, items: a.items }), a = null);
|
|
@@ -3504,7 +3467,7 @@ function ht(t) {
|
|
|
3504
3467
|
v(), k();
|
|
3505
3468
|
}
|
|
3506
3469
|
for (const u of n) {
|
|
3507
|
-
if (
|
|
3470
|
+
if (yn.test(u)) {
|
|
3508
3471
|
i ? (e.push({ type: "pre", text: i.join(`
|
|
3509
3472
|
`) }), i = null) : (_(), i = []);
|
|
3510
3473
|
continue;
|
|
@@ -3513,35 +3476,35 @@ function ht(t) {
|
|
|
3513
3476
|
i.push(u);
|
|
3514
3477
|
continue;
|
|
3515
3478
|
}
|
|
3516
|
-
const D =
|
|
3479
|
+
const D = xn.exec(u), R = wn.exec(u), A = kn.exec(u);
|
|
3517
3480
|
if (!u.trim())
|
|
3518
3481
|
_();
|
|
3519
3482
|
else if (D)
|
|
3520
|
-
_(), e.push({ type: "p", inline:
|
|
3483
|
+
_(), e.push({ type: "p", inline: Xe(D[2]), heading: !0 });
|
|
3521
3484
|
else if (R || A) {
|
|
3522
3485
|
v();
|
|
3523
3486
|
const M = !R;
|
|
3524
|
-
(!a || a.ordered !== M) && (k(), a = { ordered: M, items: [] }), a.items.push(
|
|
3487
|
+
(!a || a.ordered !== M) && (k(), a = { ordered: M, items: [] }), a.items.push(Xe((R ?? A)[1]));
|
|
3525
3488
|
} else
|
|
3526
3489
|
k(), o.push(u.trim());
|
|
3527
3490
|
}
|
|
3528
3491
|
return i != null && i.length && e.push({ type: "pre", text: i.join(`
|
|
3529
3492
|
`) }), _(), e;
|
|
3530
3493
|
}
|
|
3531
|
-
function
|
|
3494
|
+
function _n(t, e) {
|
|
3532
3495
|
const n = String(t ?? "").trim();
|
|
3533
3496
|
if (n.length <= e) return n;
|
|
3534
3497
|
const o = n.slice(0, e), a = o.lastIndexOf(" ");
|
|
3535
3498
|
return `${(a > e * 0.6 ? o.slice(0, a) : o).trimEnd()}…`;
|
|
3536
3499
|
}
|
|
3537
|
-
const
|
|
3500
|
+
const ht = 600, je = [
|
|
3538
3501
|
"reviewing",
|
|
3539
3502
|
"checking",
|
|
3540
3503
|
"updating",
|
|
3541
3504
|
"verifying",
|
|
3542
3505
|
"writing",
|
|
3543
3506
|
"loading"
|
|
3544
|
-
],
|
|
3507
|
+
], In = {
|
|
3545
3508
|
discovery: "reviewing",
|
|
3546
3509
|
grounding_probe: "reviewing",
|
|
3547
3510
|
option_probe: "reviewing",
|
|
@@ -3579,7 +3542,7 @@ const gt = 600, je = [
|
|
|
3579
3542
|
lazy_forced: "updating",
|
|
3580
3543
|
manifest_unbound: "updating",
|
|
3581
3544
|
rendered: "loading"
|
|
3582
|
-
},
|
|
3545
|
+
}, Sn = /* @__PURE__ */ new Set([
|
|
3583
3546
|
"plan",
|
|
3584
3547
|
"edit-target",
|
|
3585
3548
|
"error",
|
|
@@ -3590,18 +3553,18 @@ const gt = 600, je = [
|
|
|
3590
3553
|
"step",
|
|
3591
3554
|
"answer"
|
|
3592
3555
|
]);
|
|
3593
|
-
function
|
|
3594
|
-
return t &&
|
|
3556
|
+
function Rt(t) {
|
|
3557
|
+
return t && In[t] || "working";
|
|
3595
3558
|
}
|
|
3596
|
-
function
|
|
3559
|
+
function gt(t, e) {
|
|
3597
3560
|
const n = je.indexOf(e);
|
|
3598
3561
|
return n < 0 || t && je.indexOf(t) >= n ? t : e;
|
|
3599
3562
|
}
|
|
3600
|
-
function
|
|
3601
|
-
const e = new Set(t.map(
|
|
3563
|
+
function An(t) {
|
|
3564
|
+
const e = new Set(t.map(Rt));
|
|
3602
3565
|
return je.filter((n) => e.has(n));
|
|
3603
3566
|
}
|
|
3604
|
-
function
|
|
3567
|
+
function Mt(t) {
|
|
3605
3568
|
var n;
|
|
3606
3569
|
const e = [];
|
|
3607
3570
|
for (const o of t) {
|
|
@@ -3612,42 +3575,42 @@ function Pt(t) {
|
|
|
3612
3575
|
}
|
|
3613
3576
|
return e;
|
|
3614
3577
|
}
|
|
3615
|
-
function
|
|
3616
|
-
return t ? t.steps.length ? t.steps :
|
|
3578
|
+
function Cn(t) {
|
|
3579
|
+
return t ? t.steps.length ? t.steps : An(t.signals) : [];
|
|
3617
3580
|
}
|
|
3618
|
-
function
|
|
3619
|
-
return
|
|
3581
|
+
function En(t) {
|
|
3582
|
+
return Mt((t == null ? void 0 : t.parts) ?? []).pop() ?? null;
|
|
3620
3583
|
}
|
|
3621
|
-
function
|
|
3584
|
+
function Ke(t) {
|
|
3622
3585
|
return t.filter((e) => e.type === "text").map((e) => String(e.text ?? "").trim()).filter(Boolean).join(`
|
|
3623
3586
|
|
|
3624
3587
|
`);
|
|
3625
3588
|
}
|
|
3626
|
-
function
|
|
3589
|
+
function Tn(t) {
|
|
3627
3590
|
const e = [];
|
|
3628
3591
|
for (const n of t) {
|
|
3629
3592
|
const o = n.type.startsWith("tool-") || n.type.startsWith("data-") ? n.type.slice(5) : "";
|
|
3630
|
-
o && !
|
|
3593
|
+
o && !Sn.has(o) && e.push(o);
|
|
3631
3594
|
}
|
|
3632
3595
|
return e;
|
|
3633
3596
|
}
|
|
3634
|
-
function
|
|
3597
|
+
function On(t) {
|
|
3635
3598
|
var o;
|
|
3636
3599
|
const e = t.find((a) => a.type === "data-turn_stats"), n = (o = e == null ? void 0 : e.data) == null ? void 0 : o.ms;
|
|
3637
3600
|
return typeof n == "number" && n >= 0 ? n : void 0;
|
|
3638
3601
|
}
|
|
3639
|
-
function
|
|
3602
|
+
function zn(t) {
|
|
3640
3603
|
const e = Math.max(0, Math.floor(t / 1e3));
|
|
3641
3604
|
return e < 60 ? `${e}s` : `${Math.floor(e / 60)}m ${String(e % 60).padStart(2, "0")}s`;
|
|
3642
3605
|
}
|
|
3643
|
-
function
|
|
3606
|
+
function Nn(t) {
|
|
3644
3607
|
const e = t / 1e3;
|
|
3645
3608
|
return e < 60 ? `${e.toFixed(1)}s` : `${Math.floor(e / 60)}m ${String(Math.round(e % 60)).padStart(2, "0")}s`;
|
|
3646
3609
|
}
|
|
3647
|
-
function
|
|
3610
|
+
function Rn(t) {
|
|
3648
3611
|
return t === "too_costly" || t === "timeout" ? "tooLarge" : t === "deadline" ? "outOfTime" : "ours";
|
|
3649
3612
|
}
|
|
3650
|
-
function
|
|
3613
|
+
function Mn(t) {
|
|
3651
3614
|
var n;
|
|
3652
3615
|
const e = (n = t.find((o) => o.type === "data-turn_failed")) == null ? void 0 : n.data;
|
|
3653
3616
|
if (e)
|
|
@@ -3656,30 +3619,30 @@ function Dn(t) {
|
|
|
3656
3619
|
...typeof e.ref == "string" ? { ref: e.ref } : {}
|
|
3657
3620
|
};
|
|
3658
3621
|
}
|
|
3659
|
-
function
|
|
3622
|
+
function Ln(t) {
|
|
3660
3623
|
return t.filter((e) => e.type === "data-edit-target").map((e) => e.data);
|
|
3661
3624
|
}
|
|
3662
|
-
function
|
|
3625
|
+
function Pn(t) {
|
|
3663
3626
|
const e = [[]];
|
|
3664
3627
|
for (const n of t)
|
|
3665
3628
|
n.type === "step-start" ? e.push([]) : e[e.length - 1].push(n);
|
|
3666
3629
|
return e.filter((n) => n.length > 0);
|
|
3667
3630
|
}
|
|
3668
|
-
function
|
|
3631
|
+
function bt(t) {
|
|
3669
3632
|
return t.some((e) => e.type.startsWith("tool-"));
|
|
3670
3633
|
}
|
|
3671
|
-
function
|
|
3634
|
+
function jn(t) {
|
|
3672
3635
|
var n;
|
|
3673
3636
|
const e = (n = t.find((o) => o.type === "data-answer")) == null ? void 0 : n.data;
|
|
3674
3637
|
return typeof (e == null ? void 0 : e.outcome) == "string" ? e.outcome : void 0;
|
|
3675
3638
|
}
|
|
3676
|
-
function
|
|
3639
|
+
function $n(t, e = {}) {
|
|
3677
3640
|
var o, a;
|
|
3678
3641
|
const n = [];
|
|
3679
3642
|
for (const i of t ?? []) {
|
|
3680
|
-
const v = i.parts ?? [], k =
|
|
3643
|
+
const v = i.parts ?? [], k = Tn(v), _ = Ln(v);
|
|
3681
3644
|
if (i.role === "user") {
|
|
3682
|
-
const N =
|
|
3645
|
+
const N = Ke(v);
|
|
3683
3646
|
n.push({
|
|
3684
3647
|
id: i.id,
|
|
3685
3648
|
turnId: i.turnId ?? i.id,
|
|
@@ -3697,86 +3660,86 @@ function Fn(t, e = {}) {
|
|
|
3697
3660
|
}
|
|
3698
3661
|
const u = !!e.streamingId && i.id === e.streamingId;
|
|
3699
3662
|
if (i.inProgress && !u) continue;
|
|
3700
|
-
const D =
|
|
3663
|
+
const D = Pn(v), R = D[D.length - 1] ?? [], A = D.some(bt), M = A && !v.some((N) => N.type === "step-start");
|
|
3701
3664
|
let O = "";
|
|
3702
3665
|
if (!u) {
|
|
3703
|
-
!A || M ? O =
|
|
3704
|
-
const N = O ? void 0 :
|
|
3666
|
+
!A || M ? O = Ke(v) : bt(R) || (O = Ke(R));
|
|
3667
|
+
const N = O ? void 0 : jn(v);
|
|
3705
3668
|
N && (O = ((o = e.outcomes) == null ? void 0 : o[N]) ?? "");
|
|
3706
3669
|
}
|
|
3707
|
-
const E = !!O && (M || O.length >
|
|
3670
|
+
const E = !!O && (M || O.length > ht), j = u ? void 0 : Mn(v);
|
|
3708
3671
|
!O && !k.length && !u || n.push({
|
|
3709
3672
|
id: i.id,
|
|
3710
3673
|
turnId: i.turnId ?? i.id,
|
|
3711
3674
|
role: "assistant",
|
|
3712
3675
|
targets: _,
|
|
3713
3676
|
answer: O,
|
|
3714
|
-
blocks: O ?
|
|
3715
|
-
preview: E ?
|
|
3677
|
+
blocks: O ? pt(O) : [],
|
|
3678
|
+
preview: E ? pt(_n(O, ht)) : null,
|
|
3716
3679
|
signals: k,
|
|
3717
|
-
steps:
|
|
3680
|
+
steps: Mt(v),
|
|
3718
3681
|
pending: u,
|
|
3719
3682
|
noSummary: !u && !O && A,
|
|
3720
|
-
ms: u ? void 0 :
|
|
3683
|
+
ms: u ? void 0 : On(v) ?? ((a = i.stats) == null ? void 0 : a.ms),
|
|
3721
3684
|
...j ? { failure: j } : {}
|
|
3722
3685
|
});
|
|
3723
3686
|
}
|
|
3724
3687
|
return n;
|
|
3725
3688
|
}
|
|
3726
|
-
const
|
|
3689
|
+
const Dn = {
|
|
3727
3690
|
key: 0,
|
|
3728
3691
|
class: "flex flex-col gap-4"
|
|
3729
|
-
},
|
|
3692
|
+
}, Bn = {
|
|
3730
3693
|
key: 0,
|
|
3731
3694
|
"data-testid": "report-canvas-activity",
|
|
3732
3695
|
class: "flex flex-col gap-4"
|
|
3733
|
-
},
|
|
3696
|
+
}, qn = { class: "flex w-16 shrink-0 justify-center text-fm-color-system-success-300" }, Vn = { class: "min-w-0 truncate" }, Fn = { class: "flex items-start gap-8" }, Un = { class: "min-w-0 grow" }, Hn = { class: "flex items-baseline gap-8" }, Wn = {
|
|
3734
3697
|
class: "activity-shimmer fm-typo-en-body-md-400 min-w-0 grow",
|
|
3735
3698
|
role: "status"
|
|
3736
|
-
},
|
|
3699
|
+
}, Gn = {
|
|
3737
3700
|
key: 0,
|
|
3738
3701
|
"data-testid": "report-canvas-elapsed",
|
|
3739
3702
|
class: "fm-typo-en-body-sm-400 shrink-0 tabular-nums text-fm-color-typo-secondary"
|
|
3740
|
-
},
|
|
3703
|
+
}, Yn = {
|
|
3741
3704
|
key: 0,
|
|
3742
3705
|
"data-testid": "report-canvas-prepared",
|
|
3743
3706
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
|
|
3744
|
-
},
|
|
3707
|
+
}, Xn = {
|
|
3745
3708
|
key: 1,
|
|
3746
3709
|
"data-testid": "report-canvas-slow",
|
|
3747
3710
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
|
|
3748
|
-
},
|
|
3711
|
+
}, Kn = {
|
|
3749
3712
|
key: 1,
|
|
3750
3713
|
"data-testid": "report-canvas-interrupted",
|
|
3751
3714
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
3752
|
-
},
|
|
3715
|
+
}, Jn = {
|
|
3753
3716
|
key: 2,
|
|
3754
3717
|
"data-testid": "report-canvas-stalled",
|
|
3755
3718
|
class: "flex flex-col items-start gap-4"
|
|
3756
|
-
},
|
|
3719
|
+
}, Qn = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-error" }, Zn = {
|
|
3757
3720
|
key: 3,
|
|
3758
3721
|
"data-testid": "report-canvas-failed",
|
|
3759
3722
|
class: "flex flex-col gap-4"
|
|
3760
|
-
},
|
|
3723
|
+
}, er = { class: "min-w-0 grow" }, tr = { class: "fm-typo-en-body-sm-600 truncate" }, nr = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, rr = ["onClick"], ar = ["onClick"], or = {
|
|
3761
3724
|
key: 4,
|
|
3762
3725
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-error"
|
|
3763
|
-
},
|
|
3726
|
+
}, ir = { key: 5 }, sr = ["aria-expanded"], lr = {
|
|
3764
3727
|
key: 0,
|
|
3765
3728
|
"data-testid": "report-canvas-details",
|
|
3766
3729
|
class: "mt-4 flex flex-col gap-4"
|
|
3767
|
-
},
|
|
3730
|
+
}, fr = { class: "flex w-16 shrink-0 justify-center text-fm-color-system-success-300" }, dr = ["title"], cr = {
|
|
3768
3731
|
class: "flex w-16 shrink-0 justify-center",
|
|
3769
3732
|
"aria-hidden": "true"
|
|
3770
|
-
},
|
|
3733
|
+
}, mr = {
|
|
3771
3734
|
key: 2,
|
|
3772
3735
|
class: "h-12 w-12 animate-spin rounded-full border-2 border-fm-color-neutral-gray-200 border-t-fm-color-primary motion-reduce:animate-none"
|
|
3773
|
-
},
|
|
3736
|
+
}, ur = { class: "min-w-0 grow truncate" }, pr = {
|
|
3774
3737
|
key: 0,
|
|
3775
3738
|
class: "shrink-0 text-fm-color-typo-error"
|
|
3776
|
-
},
|
|
3739
|
+
}, hr = {
|
|
3777
3740
|
key: 1,
|
|
3778
3741
|
class: "sr-only"
|
|
3779
|
-
},
|
|
3742
|
+
}, gr = /* @__PURE__ */ $e({
|
|
3780
3743
|
__name: "ReportCanvasActivity",
|
|
3781
3744
|
props: {
|
|
3782
3745
|
active: { type: Boolean },
|
|
@@ -3812,57 +3775,57 @@ const Un = {
|
|
|
3812
3775
|
{ immediate: !0 }
|
|
3813
3776
|
), Pe(() => window.clearInterval(R));
|
|
3814
3777
|
const A = B(
|
|
3815
|
-
() => n.active && n.startedAt != null ?
|
|
3778
|
+
() => n.active && n.startedAt != null ? zn(D.value - n.startedAt) : ""
|
|
3816
3779
|
), M = T(!1), O = B(
|
|
3817
3780
|
() => i.value.length > 0 || !n.active && n.phases.length > 0
|
|
3818
3781
|
);
|
|
3819
3782
|
return (E, j) => {
|
|
3820
3783
|
const N = Oe("FmIcon");
|
|
3821
|
-
return E.active || E.interrupted || E.stale || E.retryError || k.value.length || O.value ? (c(), m("div",
|
|
3822
|
-
E.active ? (c(), m("ol",
|
|
3784
|
+
return E.active || E.interrupted || E.stale || E.retryError || k.value.length || O.value ? (c(), m("div", Dn, [
|
|
3785
|
+
E.active ? (c(), m("ol", Bn, [
|
|
3823
3786
|
(c(!0), m(fe, null, me(u.value, (L) => (c(), m("li", {
|
|
3824
3787
|
key: L,
|
|
3825
3788
|
"data-testid": "report-canvas-step-done",
|
|
3826
3789
|
class: "fm-typo-en-body-sm-400 flex items-center gap-8 text-fm-color-typo-secondary"
|
|
3827
3790
|
}, [
|
|
3828
|
-
C("span",
|
|
3791
|
+
C("span", qn, [
|
|
3829
3792
|
ee(N, {
|
|
3830
3793
|
name: "check",
|
|
3831
3794
|
size: "sm"
|
|
3832
3795
|
})
|
|
3833
3796
|
]),
|
|
3834
|
-
C("span",
|
|
3797
|
+
C("span", Vn, w(b(a)(`reportV5.reportAi.chat.phaseDone.${L}`)), 1)
|
|
3835
3798
|
]))), 128)),
|
|
3836
|
-
C("li",
|
|
3799
|
+
C("li", Fn, [
|
|
3837
3800
|
j[2] || (j[2] = C("span", { class: "flex h-[21px] w-16 shrink-0 items-center justify-center" }, [
|
|
3838
3801
|
C("span", { class: "h-12 w-12 animate-spin rounded-full border-2 border-fm-color-neutral-gray-200 border-t-fm-color-primary motion-reduce:animate-none" })
|
|
3839
3802
|
], -1)),
|
|
3840
|
-
C("div",
|
|
3841
|
-
C("div",
|
|
3842
|
-
C("p",
|
|
3843
|
-
A.value ? (c(), m("span",
|
|
3803
|
+
C("div", Un, [
|
|
3804
|
+
C("div", Hn, [
|
|
3805
|
+
C("p", Wn, w(b(a)(`reportV5.reportAi.chat.phase.${E.phase}`)), 1),
|
|
3806
|
+
A.value ? (c(), m("span", Gn, w(A.value), 1)) : P("", !0)
|
|
3844
3807
|
]),
|
|
3845
|
-
i.value.length ? (c(), m("p",
|
|
3846
|
-
E.slow ? (c(), m("p",
|
|
3808
|
+
i.value.length ? (c(), m("p", Yn, w(b(a)("reportV5.reportAi.build.prepared", { done: v.value, total: i.value.length })), 1)) : P("", !0),
|
|
3809
|
+
E.slow ? (c(), m("p", Xn, w(b(a)("reportV5.reportAi.build.slow")) + " " + w(b(a)("reportV5.reportAi.build.safeToLeave")), 1)) : P("", !0)
|
|
3847
3810
|
])
|
|
3848
3811
|
])
|
|
3849
3812
|
])) : P("", !0),
|
|
3850
|
-
E.interrupted ? (c(), m("p",
|
|
3851
|
-
E.stale ? (c(), m("div",
|
|
3852
|
-
C("p",
|
|
3813
|
+
E.interrupted ? (c(), m("p", Kn, w(b(a)("reportV5.reportAi.build.interrupted")), 1)) : P("", !0),
|
|
3814
|
+
E.stale ? (c(), m("div", Jn, [
|
|
3815
|
+
C("p", Qn, w(b(a)("reportV5.reportAi.build.stalled")), 1),
|
|
3853
3816
|
C("button", {
|
|
3854
3817
|
class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary underline",
|
|
3855
3818
|
onClick: j[0] || (j[0] = (L) => o("checkStatus"))
|
|
3856
3819
|
}, w(b(a)("reportV5.reportAi.build.checkStatus")), 1)
|
|
3857
3820
|
])) : P("", !0),
|
|
3858
|
-
k.value.length ? (c(), m("ul",
|
|
3821
|
+
k.value.length ? (c(), m("ul", Zn, [
|
|
3859
3822
|
(c(!0), m(fe, null, me(k.value, (L) => (c(), m("li", {
|
|
3860
3823
|
key: L.id,
|
|
3861
3824
|
class: "flex items-start gap-8"
|
|
3862
3825
|
}, [
|
|
3863
|
-
C("div",
|
|
3864
|
-
C("p",
|
|
3865
|
-
C("p",
|
|
3826
|
+
C("div", er, [
|
|
3827
|
+
C("p", tr, w(L.title), 1),
|
|
3828
|
+
C("p", nr, w(b(a)(
|
|
3866
3829
|
L.retries ? "reportV5.reportAi.build.retriedWidget" : "reportV5.reportAi.build.failedWidget"
|
|
3867
3830
|
)), 1)
|
|
3868
3831
|
]),
|
|
@@ -3871,16 +3834,16 @@ const Un = {
|
|
|
3871
3834
|
"data-testid": "report-canvas-retry",
|
|
3872
3835
|
class: "fm-typo-en-body-sm-600 shrink-0 text-fm-color-typo-secondary underline",
|
|
3873
3836
|
onClick: (V) => o("retry", L.id)
|
|
3874
|
-
}, w(b(a)("reportV5.reportAi.build.retry")), 9,
|
|
3837
|
+
}, w(b(a)("reportV5.reportAi.build.retry")), 9, rr)) : _.value ? (c(), m("button", {
|
|
3875
3838
|
key: 1,
|
|
3876
3839
|
"data-testid": "report-canvas-ask-builder",
|
|
3877
3840
|
class: "fm-typo-en-body-sm-600 shrink-0 text-fm-color-typo-secondary underline",
|
|
3878
3841
|
onClick: (V) => o("askBuilder", L.title)
|
|
3879
|
-
}, w(b(a)("reportV5.reportAi.build.askBuilder")), 9,
|
|
3842
|
+
}, w(b(a)("reportV5.reportAi.build.askBuilder")), 9, ar)) : P("", !0)
|
|
3880
3843
|
]))), 128))
|
|
3881
3844
|
])) : P("", !0),
|
|
3882
|
-
E.retryError ? (c(), m("p",
|
|
3883
|
-
O.value ? (c(), m("div",
|
|
3845
|
+
E.retryError ? (c(), m("p", or, w(b(a)("reportV5.reportAi.build.retryFailed")), 1)) : P("", !0),
|
|
3846
|
+
O.value ? (c(), m("div", ir, [
|
|
3884
3847
|
C("button", {
|
|
3885
3848
|
"data-testid": "report-canvas-details-toggle",
|
|
3886
3849
|
class: "details-toggle fm-typo-en-body-sm-600 -ml-4 flex items-center gap-4 rounded-md py-2 pl-4 pr-8 text-fm-color-typo-secondary",
|
|
@@ -3892,13 +3855,13 @@ const Un = {
|
|
|
3892
3855
|
size: "sm"
|
|
3893
3856
|
}, null, 8, ["name"]),
|
|
3894
3857
|
Ce(" " + w(b(a)("reportV5.reportAi.build.details")), 1)
|
|
3895
|
-
], 8,
|
|
3896
|
-
M.value ? (c(), m("div",
|
|
3858
|
+
], 8, sr),
|
|
3859
|
+
M.value ? (c(), m("div", lr, [
|
|
3897
3860
|
E.active ? P("", !0) : (c(!0), m(fe, { key: 0 }, me(E.phases, (L) => (c(), m("p", {
|
|
3898
3861
|
key: L,
|
|
3899
3862
|
class: "fm-typo-en-body-sm-400 flex items-center gap-8 text-fm-color-typo-secondary"
|
|
3900
3863
|
}, [
|
|
3901
|
-
C("span",
|
|
3864
|
+
C("span", fr, [
|
|
3902
3865
|
ee(N, {
|
|
3903
3866
|
name: "check",
|
|
3904
3867
|
size: "sm"
|
|
@@ -3912,7 +3875,7 @@ const Un = {
|
|
|
3912
3875
|
class: "fm-typo-en-body-sm-400 flex items-center gap-8 pl-24 text-fm-color-typo-secondary",
|
|
3913
3876
|
title: b(a)(`reportV5.reportAi.build.state.${L.status}`)
|
|
3914
3877
|
}, [
|
|
3915
|
-
C("span",
|
|
3878
|
+
C("span", cr, [
|
|
3916
3879
|
L.status === "ok" ? (c(), ve(N, {
|
|
3917
3880
|
key: 0,
|
|
3918
3881
|
name: "check",
|
|
@@ -3923,42 +3886,42 @@ const Un = {
|
|
|
3923
3886
|
name: "close",
|
|
3924
3887
|
size: "sm",
|
|
3925
3888
|
class: "text-fm-color-typo-error"
|
|
3926
|
-
})) : L.status === "building" ? (c(), m("span",
|
|
3889
|
+
})) : L.status === "building" ? (c(), m("span", mr)) : (c(), ve(N, {
|
|
3927
3890
|
key: 3,
|
|
3928
3891
|
name: "radio_button_unchecked",
|
|
3929
3892
|
size: "sm",
|
|
3930
3893
|
class: "text-fm-color-typo-tertiary"
|
|
3931
3894
|
}))
|
|
3932
3895
|
]),
|
|
3933
|
-
C("span",
|
|
3934
|
-
L.status === "error" ? (c(), m("span",
|
|
3935
|
-
], 8,
|
|
3896
|
+
C("span", ur, w(L.title), 1),
|
|
3897
|
+
L.status === "error" ? (c(), m("span", pr, w(b(a)("reportV5.reportAi.build.state.error")), 1)) : (c(), m("span", hr, w(b(a)(`reportV5.reportAi.build.state.${L.status}`)), 1))
|
|
3898
|
+
], 8, dr))), 128))
|
|
3936
3899
|
])) : P("", !0)
|
|
3937
3900
|
])) : P("", !0)
|
|
3938
3901
|
])) : P("", !0);
|
|
3939
3902
|
};
|
|
3940
3903
|
}
|
|
3941
|
-
}),
|
|
3904
|
+
}), vt = /* @__PURE__ */ Tt(gr, [["__scopeId", "data-v-d9511bdd"]]), br = { class: "flex flex-col items-stretch gap-8 px-[20px] pb-16 pt-12" }, vr = {
|
|
3942
3905
|
key: 0,
|
|
3943
3906
|
"data-testid": "chat-edit-target-context",
|
|
3944
3907
|
class: "fm-typo-en-body-sm-400 line-clamp-1 text-fm-color-typo-secondary"
|
|
3945
|
-
},
|
|
3908
|
+
}, yr = {
|
|
3946
3909
|
key: 1,
|
|
3947
3910
|
role: "alert",
|
|
3948
3911
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-error"
|
|
3949
|
-
},
|
|
3912
|
+
}, xr = {
|
|
3950
3913
|
"data-testid": "report-canvas-chat-input",
|
|
3951
3914
|
class: "rounded-lg border border-fm-color-border-secondary bg-fm-color-neutral-white p-16 focus-within:border-fm-color-primary"
|
|
3952
|
-
},
|
|
3915
|
+
}, wr = ["value", "placeholder", "aria-label"], kr = { class: "mt-16 flex items-center gap-12" }, _r = ["aria-label"], Ir = {
|
|
3953
3916
|
key: 0,
|
|
3954
3917
|
class: "flex max-h-[96px] min-w-0 grow flex-wrap gap-4 overflow-y-auto"
|
|
3955
|
-
},
|
|
3918
|
+
}, Sr = { class: "fm-typo-en-body-sm-400 min-w-0 truncate" }, Ar = ["disabled", "aria-label", "onClick"], Cr = {
|
|
3956
3919
|
key: 1,
|
|
3957
3920
|
class: "fm-typo-en-body-sm-400 min-w-0 grow truncate"
|
|
3958
|
-
},
|
|
3921
|
+
}, Er = {
|
|
3959
3922
|
key: 0,
|
|
3960
3923
|
"data-testid": "chat-edit-target-element"
|
|
3961
|
-
},
|
|
3924
|
+
}, Tr = ["disabled", "aria-label"], Or = ["disabled", "aria-label", "title"], zr = ["disabled", "aria-label"], Nr = { class: "text-[12px] leading-16 text-fm-color-typo-secondary" }, yt = 21, Rr = /* @__PURE__ */ $e({
|
|
3962
3925
|
__name: "ReportCanvasComposer",
|
|
3963
3926
|
props: {
|
|
3964
3927
|
draft: {},
|
|
@@ -3974,7 +3937,7 @@ const Un = {
|
|
|
3974
3937
|
},
|
|
3975
3938
|
emits: ["update:draft", "submit", "clearTarget", "stop"],
|
|
3976
3939
|
setup(t, { expose: e, emit: n }) {
|
|
3977
|
-
const o = t, a = n, { t: i } = Be(), v =
|
|
3940
|
+
const o = t, a = n, { t: i } = Be(), v = yt * 2, k = yt * 6, _ = T(), u = T(!1);
|
|
3978
3941
|
function D() {
|
|
3979
3942
|
const l = _.value;
|
|
3980
3943
|
l && (l.style.height = "auto", l.style.height = `${Math.min(Math.max(l.scrollHeight, v), k)}px`);
|
|
@@ -4018,10 +3981,10 @@ const Un = {
|
|
|
4018
3981
|
return (l, y) => {
|
|
4019
3982
|
var U;
|
|
4020
3983
|
const g = Oe("FmIcon");
|
|
4021
|
-
return c(), m("div",
|
|
4022
|
-
(U = N.value) != null && U.elementText ? (c(), m("p",
|
|
4023
|
-
l.targetStale && !l.streaming ? (c(), m("p",
|
|
4024
|
-
C("div",
|
|
3984
|
+
return c(), m("div", br, [
|
|
3985
|
+
(U = N.value) != null && U.elementText ? (c(), m("p", vr, " “" + w(N.value.elementText) + "” ", 1)) : P("", !0),
|
|
3986
|
+
l.targetStale && !l.streaming ? (c(), m("p", yr, w(b(i)("reportV5.reportAi.chat.staleTarget")), 1)) : P("", !0),
|
|
3987
|
+
C("div", xr, [
|
|
4025
3988
|
C("textarea", {
|
|
4026
3989
|
ref_key: "field",
|
|
4027
3990
|
ref: _,
|
|
@@ -4034,8 +3997,8 @@ const Un = {
|
|
|
4034
3997
|
onKeydown: A,
|
|
4035
3998
|
onCompositionstart: y[0] || (y[0] = (q) => u.value = !0),
|
|
4036
3999
|
onCompositionend: y[1] || (y[1] = (q) => u.value = !1)
|
|
4037
|
-
}, null, 40,
|
|
4038
|
-
C("div",
|
|
4000
|
+
}, null, 40, wr),
|
|
4001
|
+
C("div", kr, [
|
|
4039
4002
|
C("div", {
|
|
4040
4003
|
"data-testid": "chat-edit-target",
|
|
4041
4004
|
role: "status",
|
|
@@ -4047,13 +4010,13 @@ const Un = {
|
|
|
4047
4010
|
size: "sm",
|
|
4048
4011
|
outline: ""
|
|
4049
4012
|
}, null, 8, ["name"]),
|
|
4050
|
-
j.value.length > 1 ? (c(), m("ul",
|
|
4013
|
+
j.value.length > 1 ? (c(), m("ul", Ir, [
|
|
4051
4014
|
(c(!0), m(fe, null, me(j.value, (q, K) => (c(), m("li", {
|
|
4052
4015
|
key: K,
|
|
4053
4016
|
"data-testid": "chat-edit-target-part",
|
|
4054
4017
|
class: "flex min-w-0 max-w-full items-center gap-4 rounded-sm bg-fm-color-neutral-gray-100 py-2 pl-8 pr-4"
|
|
4055
4018
|
}, [
|
|
4056
|
-
C("span",
|
|
4019
|
+
C("span", Sr, w(Y(q)), 1),
|
|
4057
4020
|
C("button", {
|
|
4058
4021
|
class: "flex shrink-0 items-center text-fm-color-typo-secondary disabled:opacity-50",
|
|
4059
4022
|
disabled: l.streaming,
|
|
@@ -4066,11 +4029,11 @@ const Un = {
|
|
|
4066
4029
|
name: "close",
|
|
4067
4030
|
size: "sm"
|
|
4068
4031
|
})
|
|
4069
|
-
], 8,
|
|
4032
|
+
], 8, Ar)
|
|
4070
4033
|
]))), 128))
|
|
4071
|
-
])) : (c(), m("p",
|
|
4034
|
+
])) : (c(), m("p", Cr, [
|
|
4072
4035
|
Ce(w(N.value ? N.value.label || b(i)("reportV5.reportAi.chat.selectedWidget") : Z.value), 1),
|
|
4073
|
-
V.value ? (c(), m("span",
|
|
4036
|
+
V.value ? (c(), m("span", Er, " › " + w(V.value), 1)) : P("", !0)
|
|
4074
4037
|
])),
|
|
4075
4038
|
N.value ? (c(), m("button", {
|
|
4076
4039
|
key: 2,
|
|
@@ -4085,8 +4048,8 @@ const Un = {
|
|
|
4085
4048
|
name: "close",
|
|
4086
4049
|
size: "sm"
|
|
4087
4050
|
})
|
|
4088
|
-
], 8,
|
|
4089
|
-
], 8,
|
|
4051
|
+
], 8, Tr)) : P("", !0)
|
|
4052
|
+
], 8, _r),
|
|
4090
4053
|
l.stoppable ? (c(), m("button", {
|
|
4091
4054
|
key: 0,
|
|
4092
4055
|
"data-testid": "report-canvas-chat-stop",
|
|
@@ -4101,10 +4064,10 @@ const Un = {
|
|
|
4101
4064
|
name: "stop",
|
|
4102
4065
|
size: "sm"
|
|
4103
4066
|
})
|
|
4104
|
-
], 8,
|
|
4067
|
+
], 8, Or)) : (c(), m("button", {
|
|
4105
4068
|
key: 1,
|
|
4106
4069
|
"data-testid": "report-canvas-chat-send",
|
|
4107
|
-
class:
|
|
4070
|
+
class: et([
|
|
4108
4071
|
"flex h-[36px] w-[36px] shrink-0 items-center justify-center rounded-full transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-fm-color-primary disabled:cursor-not-allowed",
|
|
4109
4072
|
M.value ? "bg-fm-color-primary text-fm-color-neutral-white" : "bg-fm-color-neutral-gray-100 text-fm-color-typo-secondary"
|
|
4110
4073
|
]),
|
|
@@ -4116,16 +4079,16 @@ const Un = {
|
|
|
4116
4079
|
name: "arrow_forward",
|
|
4117
4080
|
size: "sm"
|
|
4118
4081
|
})
|
|
4119
|
-
], 10,
|
|
4082
|
+
], 10, zr))
|
|
4120
4083
|
])
|
|
4121
4084
|
]),
|
|
4122
|
-
C("p",
|
|
4085
|
+
C("p", Nr, w(l.streaming && l.draft.trim() ? b(i)("reportV5.reportAi.chat.waitForUpdate") : b(i)("reportV5.reportAi.chat.newLineHint")), 1)
|
|
4123
4086
|
]);
|
|
4124
4087
|
};
|
|
4125
4088
|
}
|
|
4126
|
-
}),
|
|
4127
|
-
function
|
|
4128
|
-
return t.map((e) => e.type === "strong" ? ce("strong", { class: "font-semibold" }, e.text) : e.type === "em" ? ce("em", e.text) : e.type === "code" ? ce("code", { class:
|
|
4089
|
+
}), Mr = "rounded-sm bg-fm-color-neutral-gray-100 px-4 font-mono text-[0.9em]";
|
|
4090
|
+
function xt(t) {
|
|
4091
|
+
return t.map((e) => e.type === "strong" ? ce("strong", { class: "font-semibold" }, e.text) : e.type === "em" ? ce("em", e.text) : e.type === "code" ? ce("code", { class: Mr }, e.text) : e.type === "link" ? ce(
|
|
4129
4092
|
"a",
|
|
4130
4093
|
{
|
|
4131
4094
|
href: e.href,
|
|
@@ -4136,7 +4099,7 @@ function wt(t) {
|
|
|
4136
4099
|
e.text
|
|
4137
4100
|
) : e.text);
|
|
4138
4101
|
}
|
|
4139
|
-
const
|
|
4102
|
+
const Lr = (t) => ce(
|
|
4140
4103
|
"div",
|
|
4141
4104
|
{ class: "fm-typo-en-body-md-400 flex flex-col items-stretch gap-8 !leading-[21px]" },
|
|
4142
4105
|
(t.blocks ?? []).map((e) => e.type === "pre" ? ce(
|
|
@@ -4148,13 +4111,13 @@ const Br = (t) => ce(
|
|
|
4148
4111
|
) : e.type === "list" ? ce(
|
|
4149
4112
|
e.ordered ? "ol" : "ul",
|
|
4150
4113
|
{ class: `flex flex-col gap-4 pl-16 ${e.ordered ? "list-decimal" : "list-disc"}` },
|
|
4151
|
-
e.items.map((n) => ce("li",
|
|
4114
|
+
e.items.map((n) => ce("li", xt(n)))
|
|
4152
4115
|
) : ce(
|
|
4153
4116
|
"p",
|
|
4154
4117
|
{ class: e.heading ? "fm-typo-en-body-md-600" : void 0 },
|
|
4155
|
-
|
|
4118
|
+
xt(e.inline)
|
|
4156
4119
|
))
|
|
4157
|
-
),
|
|
4120
|
+
), Pr = ["aria-expanded"], jr = /* @__PURE__ */ $e({
|
|
4158
4121
|
__name: "ReportCanvasMessage",
|
|
4159
4122
|
props: {
|
|
4160
4123
|
blocks: {},
|
|
@@ -4163,89 +4126,89 @@ const Br = (t) => ce(
|
|
|
4163
4126
|
setup(t) {
|
|
4164
4127
|
const e = t, { t: n } = Be(), o = T(!0), a = B(() => e.preview && !o.value ? e.preview : e.blocks);
|
|
4165
4128
|
return (i, v) => (c(), m("div", null, [
|
|
4166
|
-
ee(b(
|
|
4129
|
+
ee(b(Lr), { blocks: a.value }, null, 8, ["blocks"]),
|
|
4167
4130
|
i.preview ? (c(), m("button", {
|
|
4168
4131
|
key: 0,
|
|
4169
4132
|
"data-testid": "report-canvas-full-reply",
|
|
4170
4133
|
class: "fm-typo-en-body-sm-600 mt-4 text-fm-color-typo-secondary underline",
|
|
4171
4134
|
"aria-expanded": o.value,
|
|
4172
4135
|
onClick: v[0] || (v[0] = (k) => o.value = !o.value)
|
|
4173
|
-
}, w(b(n)(o.value ? "reportV5.reportAi.chat.showLess" : "reportV5.reportAi.chat.showFullReply")), 9,
|
|
4136
|
+
}, w(b(n)(o.value ? "reportV5.reportAi.chat.showLess" : "reportV5.reportAi.chat.showFullReply")), 9, Pr)) : P("", !0)
|
|
4174
4137
|
]));
|
|
4175
4138
|
}
|
|
4176
|
-
}),
|
|
4139
|
+
}), $r = ["aria-label"], Dr = { class: "flex h-64 shrink-0 items-center gap-12 border-b border-fm-color-border-secondary px-[20px]" }, Br = { class: "min-w-0 grow" }, qr = { class: "fm-typo-en-body-md-600" }, Vr = {
|
|
4177
4140
|
key: 0,
|
|
4178
4141
|
class: "fm-typo-en-body-sm-400 truncate text-fm-color-typo-secondary"
|
|
4179
|
-
},
|
|
4142
|
+
}, Fr = ["disabled", "aria-label"], Ur = ["disabled", "aria-label", "title"], Hr = ["aria-label"], Wr = ["data-testid", "aria-label"], Gr = {
|
|
4180
4143
|
key: 0,
|
|
4181
4144
|
class: "mt-auto flex shrink-0 flex-col gap-24 pb-8 pt-32"
|
|
4182
|
-
},
|
|
4145
|
+
}, Yr = { class: "text-center" }, Xr = { class: "text-[24px] font-semibold leading-tight tracking-tight text-fm-color-typo-primary" }, Kr = { class: "fm-typo-en-body-sm-400 mt-12 text-fm-color-typo-secondary" }, Jr = {
|
|
4183
4146
|
key: 0,
|
|
4184
4147
|
class: "flex flex-col gap-4"
|
|
4185
|
-
},
|
|
4148
|
+
}, Qr = ["disabled", "title", "onClick"], Zr = ["aria-label"], ea = { class: "fm-typo-en-body-sm-600 mb-12 text-fm-color-typo-secondary" }, ta = {
|
|
4186
4149
|
key: 0,
|
|
4187
4150
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
|
|
4188
|
-
},
|
|
4151
|
+
}, na = {
|
|
4189
4152
|
key: 1,
|
|
4190
4153
|
"data-testid": "report-canvas-chat-list-error",
|
|
4191
4154
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-error"
|
|
4192
|
-
},
|
|
4155
|
+
}, ra = {
|
|
4193
4156
|
key: 2,
|
|
4194
4157
|
class: "fm-typo-en-body-sm-400 py-12 text-fm-color-typo-secondary"
|
|
4195
|
-
},
|
|
4158
|
+
}, aa = {
|
|
4196
4159
|
key: 0,
|
|
4197
4160
|
class: "fm-typo-en-body-sm-400 mb-8 text-fm-color-typo-secondary"
|
|
4198
|
-
},
|
|
4161
|
+
}, oa = ["disabled", "aria-current", "title", "onClick"], ia = { class: "fm-typo-en-body-md-400 min-w-0 grow truncate" }, sa = ["datetime"], la = ["disabled"], fa = ["disabled"], da = {
|
|
4199
4162
|
key: 2,
|
|
4200
4163
|
"data-testid": "report-canvas-chat-error",
|
|
4201
4164
|
class: "fm-typo-en-body-sm-400 mt-12 text-fm-color-typo-error"
|
|
4202
|
-
},
|
|
4165
|
+
}, ca = {
|
|
4203
4166
|
key: 1,
|
|
4204
4167
|
class: "relative flex min-h-0 grow flex-col"
|
|
4205
|
-
},
|
|
4168
|
+
}, ma = {
|
|
4206
4169
|
key: 0,
|
|
4207
4170
|
"data-testid": "report-canvas-chat-loading",
|
|
4208
4171
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
4209
|
-
},
|
|
4172
|
+
}, ua = ["disabled"], pa = {
|
|
4210
4173
|
key: 0,
|
|
4211
4174
|
"data-testid": "chat-message-target",
|
|
4212
4175
|
class: "fm-typo-en-body-sm-600 mb-4 text-right text-fm-color-typo-secondary"
|
|
4213
|
-
},
|
|
4176
|
+
}, ha = {
|
|
4214
4177
|
key: 1,
|
|
4215
4178
|
class: "flex flex-col items-end"
|
|
4216
|
-
},
|
|
4179
|
+
}, ga = {
|
|
4217
4180
|
key: 0,
|
|
4218
4181
|
"data-testid": "chat-message-unsent",
|
|
4219
4182
|
class: "fm-typo-en-body-sm-400 mt-4 text-fm-color-typo-secondary"
|
|
4220
|
-
},
|
|
4183
|
+
}, ba = ["disabled", "onClick"], va = {
|
|
4221
4184
|
key: 1,
|
|
4222
4185
|
"data-testid": "chat-message-no-reply",
|
|
4223
4186
|
class: "fm-typo-en-body-sm-400 mt-4 max-w-[90%] text-right text-fm-color-typo-secondary"
|
|
4224
|
-
},
|
|
4187
|
+
}, ya = ["disabled", "onClick"], xa = ["disabled", "onClick"], wa = {
|
|
4225
4188
|
key: 1,
|
|
4226
4189
|
"data-testid": "report-canvas-failure",
|
|
4227
4190
|
class: "rounded-md border border-fm-color-border-secondary px-12 py-12"
|
|
4228
|
-
},
|
|
4191
|
+
}, ka = { class: "fm-typo-en-body-md-600 flex items-center gap-8" }, _a = { class: "fm-typo-en-body-sm-400 mt-4 text-fm-color-typo-secondary" }, Ia = {
|
|
4229
4192
|
key: 0,
|
|
4230
4193
|
class: "mt-12 flex flex-wrap gap-8"
|
|
4231
|
-
},
|
|
4194
|
+
}, Sa = {
|
|
4232
4195
|
key: 1,
|
|
4233
4196
|
"data-testid": "report-canvas-failure-ref",
|
|
4234
4197
|
class: "fm-typo-en-body-sm-400 mt-8 text-fm-color-typo-tertiary"
|
|
4235
|
-
},
|
|
4198
|
+
}, Aa = {
|
|
4236
4199
|
key: 3,
|
|
4237
4200
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
|
|
4238
|
-
},
|
|
4201
|
+
}, Ca = {
|
|
4239
4202
|
key: 4,
|
|
4240
4203
|
"data-testid": "report-canvas-answer-duration",
|
|
4241
4204
|
class: "fm-typo-en-body-sm-400 mt-4 text-fm-color-typo-secondary"
|
|
4242
|
-
},
|
|
4205
|
+
}, Ea = {
|
|
4243
4206
|
key: 2,
|
|
4244
4207
|
"data-testid": "report-canvas-chat-error",
|
|
4245
4208
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-error"
|
|
4246
|
-
},
|
|
4209
|
+
}, Ta = { class: "shrink-0" }, wt = "New chat", Oa = 24 * 60 * 60 * 1e3, za = 80, Na = /* @__PURE__ */ $e({
|
|
4247
4210
|
__name: "ReportCanvasChatPanel",
|
|
4248
|
-
props: /* @__PURE__ */
|
|
4211
|
+
props: /* @__PURE__ */ at({
|
|
4249
4212
|
messages: {},
|
|
4250
4213
|
draft: {},
|
|
4251
4214
|
target: {},
|
|
@@ -4287,13 +4250,13 @@ const Br = (t) => ce(
|
|
|
4287
4250
|
homeDraft: { default: "" },
|
|
4288
4251
|
homeDraftModifiers: {}
|
|
4289
4252
|
}),
|
|
4290
|
-
emits: /* @__PURE__ */
|
|
4253
|
+
emits: /* @__PURE__ */ at(["update:draft", "submit", "close", "retry", "undo", "resend", "askAgain", "editRequest", "askBuilder", "checkStatus", "clearTarget", "newChat", "selectChat", "loadChats", "loadMoreChats", "loadEarlier", "stop"], ["update:homeOpen", "update:homeDraft"]),
|
|
4291
4254
|
setup(t, { emit: e }) {
|
|
4292
4255
|
const n = t, o = e, { t: a, locale: i } = Be(), v = B(() => {
|
|
4293
4256
|
var r;
|
|
4294
4257
|
return ((r = n.copy) == null ? void 0 : r.title) ?? a("reportV5.reportAi.chat.title");
|
|
4295
|
-
}), k =
|
|
4296
|
-
() => !n.chatTitle || n.chatTitle ===
|
|
4258
|
+
}), k = ot(t, "homeOpen"), _ = T(!1), u = ot(t, "homeDraft"), D = T(!1), R = B(
|
|
4259
|
+
() => !n.chatTitle || n.chatTitle === wt ? a("reportV5.reportAi.chat.chats") : n.chatTitle
|
|
4297
4260
|
), A = T(!1), M = B(() => n.switching || A.value);
|
|
4298
4261
|
se(
|
|
4299
4262
|
() => n.messages,
|
|
@@ -4344,7 +4307,7 @@ const Br = (t) => ce(
|
|
|
4344
4307
|
r.setHours(0, 0, 0, 0);
|
|
4345
4308
|
const p = [];
|
|
4346
4309
|
for (const G of n.chats ?? []) {
|
|
4347
|
-
const W = new Date(G.lastMessageAt).getTime(), ge = W >= r.getTime() ? "today" : W >= r.getTime() -
|
|
4310
|
+
const W = new Date(G.lastMessageAt).getTime(), ge = W >= r.getTime() ? "today" : W >= r.getTime() - Oa ? "yesterday" : "earlier";
|
|
4348
4311
|
(p.find((be) => be.key === ge) ?? (p.push({ key: ge, label: a(`reportV5.reportAi.chat.group.${ge}`), chats: [] }), p[p.length - 1])).chats.push(G);
|
|
4349
4312
|
}
|
|
4350
4313
|
return p;
|
|
@@ -4367,7 +4330,7 @@ const Br = (t) => ce(
|
|
|
4367
4330
|
const g = B(
|
|
4368
4331
|
() => {
|
|
4369
4332
|
var r;
|
|
4370
|
-
return
|
|
4333
|
+
return $n(n.messages ?? [], {
|
|
4371
4334
|
streamingId: n.streaming ? n.turnId : void 0,
|
|
4372
4335
|
outcomes: (r = n.copy) == null ? void 0 : r.outcomes
|
|
4373
4336
|
});
|
|
@@ -4412,7 +4375,7 @@ const Br = (t) => ce(
|
|
|
4412
4375
|
active: p && n.streaming || G && ((W = n.run) == null ? void 0 : W.status) === "running" && !n.runStale,
|
|
4413
4376
|
// a run card left behind by a newer streaming turn shows its own work, not that turn's phase
|
|
4414
4377
|
phase: p || !n.streaming ? n.phase : "updating",
|
|
4415
|
-
phases:
|
|
4378
|
+
phases: Cn(g.value[r]),
|
|
4416
4379
|
run: G ? n.run : null,
|
|
4417
4380
|
slow: p && n.slow,
|
|
4418
4381
|
startedAt: p && n.streaming ? n.startedAt ?? null : null,
|
|
@@ -4445,7 +4408,7 @@ const Br = (t) => ce(
|
|
|
4445
4408
|
const h = T(), I = T(!0), z = T(!1);
|
|
4446
4409
|
function F() {
|
|
4447
4410
|
const r = h.value;
|
|
4448
|
-
r && (I.value = r.scrollHeight - r.scrollTop - r.clientHeight <=
|
|
4411
|
+
r && (I.value = r.scrollHeight - r.scrollTop - r.clientHeight <= za, I.value && (z.value = !1));
|
|
4449
4412
|
}
|
|
4450
4413
|
async function J() {
|
|
4451
4414
|
await ke();
|
|
@@ -4474,10 +4437,10 @@ const Br = (t) => ce(
|
|
|
4474
4437
|
"aria-label": v.value,
|
|
4475
4438
|
onKeydown: V
|
|
4476
4439
|
}, [
|
|
4477
|
-
C("header",
|
|
4478
|
-
C("div",
|
|
4479
|
-
C("h2",
|
|
4480
|
-
!te.value && r.chatTitle && r.chatTitle !==
|
|
4440
|
+
C("header", Dr, [
|
|
4441
|
+
C("div", Br, [
|
|
4442
|
+
C("h2", qr, w(v.value), 1),
|
|
4443
|
+
!te.value && r.chatTitle && r.chatTitle !== wt ? (c(), m("p", Vr, w(r.chatTitle), 1)) : P("", !0)
|
|
4481
4444
|
]),
|
|
4482
4445
|
!k.value || _.value ? (c(), ve(W, {
|
|
4483
4446
|
key: 0,
|
|
@@ -4496,7 +4459,7 @@ const Br = (t) => ce(
|
|
|
4496
4459
|
name: "chevron_left",
|
|
4497
4460
|
size: "md"
|
|
4498
4461
|
})
|
|
4499
|
-
], 8,
|
|
4462
|
+
], 8, Fr)
|
|
4500
4463
|
]),
|
|
4501
4464
|
_: 1
|
|
4502
4465
|
}, 8, ["content"])) : P("", !0),
|
|
@@ -4519,7 +4482,7 @@ const Br = (t) => ce(
|
|
|
4519
4482
|
size: "md",
|
|
4520
4483
|
outline: ""
|
|
4521
4484
|
})
|
|
4522
|
-
], 8,
|
|
4485
|
+
], 8, Ur)
|
|
4523
4486
|
]),
|
|
4524
4487
|
_: 1
|
|
4525
4488
|
}, 8, ["content"])),
|
|
@@ -4538,7 +4501,7 @@ const Br = (t) => ce(
|
|
|
4538
4501
|
name: "close",
|
|
4539
4502
|
size: "md"
|
|
4540
4503
|
})
|
|
4541
|
-
], 8,
|
|
4504
|
+
], 8, Hr)
|
|
4542
4505
|
]),
|
|
4543
4506
|
_: 1
|
|
4544
4507
|
}, 8, ["content"])
|
|
@@ -4549,14 +4512,14 @@ const Br = (t) => ce(
|
|
|
4549
4512
|
class: "flex min-h-0 grow flex-col overflow-y-auto px-[20px] py-24",
|
|
4550
4513
|
"aria-label": b(a)("reportV5.reportAi.chat.chats")
|
|
4551
4514
|
}, [
|
|
4552
|
-
_.value ? P("", !0) : (c(), m("div",
|
|
4553
|
-
C("div",
|
|
4554
|
-
C("h3",
|
|
4555
|
-
C("p",
|
|
4515
|
+
_.value ? P("", !0) : (c(), m("div", Gr, [
|
|
4516
|
+
C("div", Yr, [
|
|
4517
|
+
C("h3", Xr, w(((Se = r.copy) == null ? void 0 : Se.welcome) ?? b(a)("reportV5.reportAi.chat.exploreTitle")), 1),
|
|
4518
|
+
C("p", Kr, w(((be = r.copy) == null ? void 0 : be.hint) ?? b(a)(
|
|
4556
4519
|
r.blank ? "reportV5.reportAi.chat.placeholderNew" : "reportV5.reportAi.chat.exploreHint"
|
|
4557
4520
|
)), 1)
|
|
4558
4521
|
]),
|
|
4559
|
-
pe.value.length ? (c(), m("div",
|
|
4522
|
+
pe.value.length ? (c(), m("div", Jr, [
|
|
4560
4523
|
(c(!0), m(fe, null, me(pe.value, (s) => (c(), m("button", {
|
|
4561
4524
|
key: s.label,
|
|
4562
4525
|
"data-testid": "report-canvas-suggestion",
|
|
@@ -4571,7 +4534,7 @@ const Br = (t) => ce(
|
|
|
4571
4534
|
size: "sm",
|
|
4572
4535
|
class: "shrink-0"
|
|
4573
4536
|
})
|
|
4574
|
-
], 8,
|
|
4537
|
+
], 8, Qr))), 128))
|
|
4575
4538
|
])) : P("", !0)
|
|
4576
4539
|
])),
|
|
4577
4540
|
ue.value ? (c(), m("section", {
|
|
@@ -4579,14 +4542,14 @@ const Br = (t) => ce(
|
|
|
4579
4542
|
class: "shrink-0 pt-24",
|
|
4580
4543
|
"aria-label": b(a)("reportV5.reportAi.chat.recentChats")
|
|
4581
4544
|
}, [
|
|
4582
|
-
C("h3",
|
|
4545
|
+
C("h3", ea, w(b(a)(
|
|
4583
4546
|
_.value ? "reportV5.reportAi.chat.yourChats" : "reportV5.reportAi.chat.recentChats"
|
|
4584
4547
|
)), 1),
|
|
4585
|
-
r.chatsLoading && !((Ne = r.chats) != null && Ne.length) ? (c(), m("p",
|
|
4548
|
+
r.chatsLoading && !((Ne = r.chats) != null && Ne.length) ? (c(), m("p", ta, w(b(a)("reportV5.reportAi.chat.loadingChats")), 1)) : r.chatsError ? (c(), m("p", na, w(r.chatsError), 1)) : (Re = r.chats) != null && Re.length ? (c(!0), m(fe, { key: 3 }, me(we.value, (s) => (c(), m("section", {
|
|
4586
4549
|
key: s.key,
|
|
4587
|
-
class:
|
|
4550
|
+
class: et(_.value ? "mb-16" : "")
|
|
4588
4551
|
}, [
|
|
4589
|
-
s.label ? (c(), m("p",
|
|
4552
|
+
s.label ? (c(), m("p", aa, w(s.label), 1)) : P("", !0),
|
|
4590
4553
|
(c(!0), m(fe, null, me(s.chats, (d) => (c(), m("button", {
|
|
4591
4554
|
key: d.id,
|
|
4592
4555
|
"data-testid": "report-canvas-chat-list-item",
|
|
@@ -4596,48 +4559,48 @@ const Br = (t) => ce(
|
|
|
4596
4559
|
title: d.title,
|
|
4597
4560
|
onClick: (S) => N(d.id)
|
|
4598
4561
|
}, [
|
|
4599
|
-
C("span",
|
|
4562
|
+
C("span", ia, w(d.title), 1),
|
|
4600
4563
|
C("time", {
|
|
4601
4564
|
datetime: d.lastMessageAt,
|
|
4602
4565
|
class: "fm-typo-en-body-sm-400 shrink-0 text-fm-color-typo-secondary"
|
|
4603
|
-
}, w(X(d)), 9,
|
|
4604
|
-
], 8,
|
|
4605
|
-
], 2))), 128)) : (c(), m("p",
|
|
4566
|
+
}, w(X(d)), 9, sa)
|
|
4567
|
+
], 8, oa))), 128))
|
|
4568
|
+
], 2))), 128)) : (c(), m("p", ra, w(b(a)("reportV5.reportAi.chat.noChats")), 1)),
|
|
4606
4569
|
_.value ? r.chatsCursor ? (c(), m("button", {
|
|
4607
4570
|
key: 5,
|
|
4608
4571
|
"data-testid": "report-canvas-chat-list-more",
|
|
4609
4572
|
class: "chat-row fm-typo-en-body-sm-600 rounded-md px-8 py-12 text-fm-color-typo-secondary",
|
|
4610
4573
|
disabled: r.chatsLoading,
|
|
4611
4574
|
onClick: p[1] || (p[1] = (s) => o("loadMoreChats"))
|
|
4612
|
-
}, w(b(a)("reportV5.reportAi.chat.loadMoreChats")), 9,
|
|
4575
|
+
}, w(b(a)("reportV5.reportAi.chat.loadMoreChats")), 9, fa)) : P("", !0) : (c(), m("button", {
|
|
4613
4576
|
key: 4,
|
|
4614
4577
|
"data-testid": "report-canvas-chat-see-all",
|
|
4615
4578
|
class: "chat-row fm-typo-en-body-sm-600 mt-8 rounded-md px-8 py-12 text-fm-color-typo-secondary",
|
|
4616
4579
|
disabled: r.chatsLoading,
|
|
4617
4580
|
onClick: E
|
|
4618
|
-
}, w(b(a)("reportV5.reportAi.chat.seeAll")), 9,
|
|
4619
|
-
], 8,
|
|
4620
|
-
r.error ? (c(), m("p",
|
|
4621
|
-
], 8,
|
|
4581
|
+
}, w(b(a)("reportV5.reportAi.chat.seeAll")), 9, la))
|
|
4582
|
+
], 8, Zr)) : P("", !0),
|
|
4583
|
+
r.error ? (c(), m("p", da, w(r.error), 1)) : P("", !0)
|
|
4584
|
+
], 8, Wr)) : (c(), m("div", ca, [
|
|
4622
4585
|
C("div", {
|
|
4623
4586
|
ref_key: "scroller",
|
|
4624
4587
|
ref: h,
|
|
4625
4588
|
class: "min-h-0 grow overflow-y-auto px-[20px] py-16",
|
|
4626
4589
|
onScroll: F
|
|
4627
4590
|
}, [
|
|
4628
|
-
M.value ? (c(), m("p",
|
|
4591
|
+
M.value ? (c(), m("p", ma, w(b(a)("reportV5.reportAi.chat.loadingChat")), 1)) : (c(), m(fe, { key: 1 }, [
|
|
4629
4592
|
r.earlier ? (c(), m("button", {
|
|
4630
4593
|
key: 0,
|
|
4631
4594
|
"data-testid": "report-canvas-load-earlier",
|
|
4632
4595
|
class: "fm-typo-en-body-sm-600 mb-16 w-full text-fm-color-typo-secondary disabled:opacity-50",
|
|
4633
4596
|
disabled: r.loadingEarlier,
|
|
4634
4597
|
onClick: p[2] || (p[2] = (s) => o("loadEarlier"))
|
|
4635
|
-
}, w(b(a)("reportV5.reportAi.chat.loadEarlier")), 9,
|
|
4598
|
+
}, w(b(a)("reportV5.reportAi.chat.loadEarlier")), 9, ua)) : P("", !0),
|
|
4636
4599
|
(c(!0), m(fe, null, me(g.value, (s, d) => (c(), m("div", {
|
|
4637
4600
|
key: s.id,
|
|
4638
4601
|
class: "mb-16"
|
|
4639
4602
|
}, [
|
|
4640
|
-
s.targets.length ? (c(), m("p",
|
|
4603
|
+
s.targets.length ? (c(), m("p", pa, w(b(a)("reportV5.reportAi.chat.commentOn", {
|
|
4641
4604
|
widget: [
|
|
4642
4605
|
...new Set(
|
|
4643
4606
|
s.targets.map(
|
|
@@ -4646,39 +4609,39 @@ const Br = (t) => ce(
|
|
|
4646
4609
|
)
|
|
4647
4610
|
].join(", ")
|
|
4648
4611
|
})), 1)) : P("", !0),
|
|
4649
|
-
s.role === "user" ? (c(), m("div",
|
|
4612
|
+
s.role === "user" ? (c(), m("div", ha, [
|
|
4650
4613
|
C("div", {
|
|
4651
4614
|
"data-testid": "report-canvas-user-message",
|
|
4652
|
-
class:
|
|
4615
|
+
class: et([
|
|
4653
4616
|
"fm-typo-en-body-md-400 max-w-[90%] whitespace-pre-wrap rounded-md px-12 py-8 !leading-[21px]",
|
|
4654
4617
|
l.value.has(s.id) ? "bg-fm-color-neutral-gray-100 text-fm-color-typo-secondary" : "bg-fm-color-system-info-100"
|
|
4655
4618
|
])
|
|
4656
4619
|
}, w(s.answer), 3),
|
|
4657
|
-
l.value.has(s.id) ? (c(), m("p",
|
|
4620
|
+
l.value.has(s.id) ? (c(), m("p", ga, [
|
|
4658
4621
|
Ce(w(b(a)("reportV5.reportAi.chat.notSent")) + " ", 1),
|
|
4659
4622
|
C("button", {
|
|
4660
4623
|
"data-testid": "chat-message-resend",
|
|
4661
4624
|
class: "ml-4 underline disabled:opacity-50",
|
|
4662
4625
|
disabled: r.streaming || r.busy,
|
|
4663
4626
|
onClick: (S) => o("resend", s.id)
|
|
4664
|
-
}, w(b(a)("reportV5.reportAi.chat.resend")), 9,
|
|
4665
|
-
])) : U.value.has(s.id) ? (c(), m("p",
|
|
4627
|
+
}, w(b(a)("reportV5.reportAi.chat.resend")), 9, ba)
|
|
4628
|
+
])) : U.value.has(s.id) ? (c(), m("p", va, [
|
|
4666
4629
|
Ce(w(b(a)("reportV5.reportAi.chat.noReply")) + " ", 1),
|
|
4667
4630
|
C("button", {
|
|
4668
4631
|
"data-testid": "chat-message-ask-again",
|
|
4669
4632
|
class: "ml-4 underline disabled:opacity-50",
|
|
4670
4633
|
disabled: r.streaming || r.busy,
|
|
4671
4634
|
onClick: (S) => o("askAgain", s.id)
|
|
4672
|
-
}, w(b(a)("reportV5.reportAi.chat.resend")), 9,
|
|
4635
|
+
}, w(b(a)("reportV5.reportAi.chat.resend")), 9, ya)
|
|
4673
4636
|
])) : Z.value.has(s.turnId) ? (c(), m("button", {
|
|
4674
4637
|
key: 2,
|
|
4675
4638
|
"data-testid": "chat-turn-undo",
|
|
4676
4639
|
class: "fm-typo-en-body-sm-400 mt-4 text-fm-color-typo-secondary underline disabled:opacity-50",
|
|
4677
4640
|
disabled: r.undoing || r.streaming,
|
|
4678
4641
|
onClick: (S) => o("undo", s.turnId)
|
|
4679
|
-
}, w(b(a)("reportV5.reportCanvas.draft.undo")), 9,
|
|
4642
|
+
}, w(b(a)("reportV5.reportCanvas.draft.undo")), 9, xa)) : P("", !0)
|
|
4680
4643
|
])) : (c(), m(fe, { key: 2 }, [
|
|
4681
|
-
d === K.value || d === re.value ? (c(), ve(
|
|
4644
|
+
d === K.value || d === re.value ? (c(), ve(vt, it({
|
|
4682
4645
|
key: 0,
|
|
4683
4646
|
class: "mb-8",
|
|
4684
4647
|
ref_for: !0
|
|
@@ -4687,8 +4650,8 @@ const Br = (t) => ce(
|
|
|
4687
4650
|
onAskBuilder: de,
|
|
4688
4651
|
onCheckStatus: p[4] || (p[4] = (S) => o("checkStatus"))
|
|
4689
4652
|
}), null, 16)) : P("", !0),
|
|
4690
|
-
s.failure ? (c(), m("div",
|
|
4691
|
-
C("p",
|
|
4653
|
+
s.failure ? (c(), m("div", wa, [
|
|
4654
|
+
C("p", ka, [
|
|
4692
4655
|
ee(G, {
|
|
4693
4656
|
name: "error",
|
|
4694
4657
|
size: "sm",
|
|
@@ -4696,8 +4659,8 @@ const Br = (t) => ce(
|
|
|
4696
4659
|
}),
|
|
4697
4660
|
Ce(" " + w(b(a)("reportV5.reportAi.build.failed.title")), 1)
|
|
4698
4661
|
]),
|
|
4699
|
-
C("p",
|
|
4700
|
-
d === g.value.length - 1 && q(d) ? (c(), m("div",
|
|
4662
|
+
C("p", _a, w(b(a)(`reportV5.reportAi.build.failed.${b(Rn)(s.failure.code)}`)), 1),
|
|
4663
|
+
d === g.value.length - 1 && q(d) ? (c(), m("div", Ia, [
|
|
4701
4664
|
ee(ge, {
|
|
4702
4665
|
"data-testid": "report-canvas-try-again",
|
|
4703
4666
|
variant: "primary",
|
|
@@ -4713,17 +4676,17 @@ const Br = (t) => ce(
|
|
|
4713
4676
|
onClick: (S) => he(q(d))
|
|
4714
4677
|
}, null, 8, ["label", "disabled", "onClick"])
|
|
4715
4678
|
])) : P("", !0),
|
|
4716
|
-
s.failure.ref ? (c(), m("p",
|
|
4717
|
-
])) : s.blocks.length ? (c(), ve(
|
|
4679
|
+
s.failure.ref ? (c(), m("p", Sa, w(b(a)("reportV5.reportAi.build.failed.ref", { ref: s.failure.ref })), 1)) : P("", !0)
|
|
4680
|
+
])) : s.blocks.length ? (c(), ve(jr, {
|
|
4718
4681
|
key: 2,
|
|
4719
4682
|
"data-testid": "report-canvas-answer",
|
|
4720
4683
|
blocks: s.blocks,
|
|
4721
4684
|
preview: s.preview
|
|
4722
|
-
}, null, 8, ["blocks", "preview"])) : s.noSummary ? (c(), m("p",
|
|
4723
|
-
s.ms ? (c(), m("p",
|
|
4685
|
+
}, null, 8, ["blocks", "preview"])) : s.noSummary ? (c(), m("p", Aa, w(b(a)("reportV5.reportAi.chat.noSummary")), 1)) : P("", !0),
|
|
4686
|
+
s.ms ? (c(), m("p", Ca, w(b(a)("reportV5.reportAi.chat.took", { duration: b(Nn)(s.ms) })), 1)) : P("", !0)
|
|
4724
4687
|
], 64))
|
|
4725
4688
|
]))), 128)),
|
|
4726
|
-
ae.value ? (c(), ve(
|
|
4689
|
+
ae.value ? (c(), ve(vt, it({
|
|
4727
4690
|
key: 1,
|
|
4728
4691
|
class: "mb-16"
|
|
4729
4692
|
}, ne(-1), {
|
|
@@ -4731,7 +4694,7 @@ const Br = (t) => ce(
|
|
|
4731
4694
|
onAskBuilder: de,
|
|
4732
4695
|
onCheckStatus: p[6] || (p[6] = (s) => o("checkStatus"))
|
|
4733
4696
|
}), null, 16)) : P("", !0),
|
|
4734
|
-
r.error ? (c(), m("p",
|
|
4697
|
+
r.error ? (c(), m("p", Ea, w(r.error), 1)) : P("", !0)
|
|
4735
4698
|
], 64))
|
|
4736
4699
|
], 544),
|
|
4737
4700
|
z.value ? (c(), m("button", {
|
|
@@ -4741,8 +4704,8 @@ const Br = (t) => ce(
|
|
|
4741
4704
|
onClick: J
|
|
4742
4705
|
}, w(b(a)("reportV5.reportAi.chat.jumpToLatest")), 1)) : P("", !0)
|
|
4743
4706
|
])),
|
|
4744
|
-
C("div",
|
|
4745
|
-
ee(
|
|
4707
|
+
C("div", Ta, [
|
|
4708
|
+
ee(Rr, {
|
|
4746
4709
|
ref_key: "composer",
|
|
4747
4710
|
ref: y,
|
|
4748
4711
|
draft: k.value ? u.value : r.draft,
|
|
@@ -4761,16 +4724,16 @@ const Br = (t) => ce(
|
|
|
4761
4724
|
onStop: p[8] || (p[8] = (s) => o("stop"))
|
|
4762
4725
|
}, null, 8, ["draft", "target", "targets", "target-stale", "streaming", "blank", "stoppable", "stopping", "target-label", "placeholder"])
|
|
4763
4726
|
])
|
|
4764
|
-
], 40,
|
|
4727
|
+
], 40, $r);
|
|
4765
4728
|
};
|
|
4766
4729
|
}
|
|
4767
|
-
}),
|
|
4730
|
+
}), so = /* @__PURE__ */ Tt(Na, [["__scopeId", "data-v-cbe24113"]]);
|
|
4768
4731
|
function Ee(t) {
|
|
4769
4732
|
const { businessId: e } = ze(De());
|
|
4770
4733
|
if (!e.value) throw new Error("Business Id is not defined");
|
|
4771
4734
|
return `/${e.value}/report-ai/${t}`;
|
|
4772
4735
|
}
|
|
4773
|
-
const
|
|
4736
|
+
const Ra = (t, e = {}) => {
|
|
4774
4737
|
const n = new URLSearchParams();
|
|
4775
4738
|
e.sessionId && n.set("sessionId", e.sessionId), e.before && n.set("before", e.before);
|
|
4776
4739
|
const o = n.toString(), a = {
|
|
@@ -4778,84 +4741,84 @@ const $a = (t, e = {}) => {
|
|
|
4778
4741
|
url: `${Ee(t)}/chat${o ? `?${o}` : ""}`
|
|
4779
4742
|
};
|
|
4780
4743
|
return oe.fetch(a);
|
|
4781
|
-
},
|
|
4744
|
+
}, Ma = (t, e) => {
|
|
4782
4745
|
const n = {
|
|
4783
4746
|
fetchType: ie.Get,
|
|
4784
4747
|
url: `${Ee(t)}/chats${e ? `?cursor=${encodeURIComponent(e)}` : ""}`
|
|
4785
4748
|
};
|
|
4786
4749
|
return oe.fetch(n);
|
|
4787
|
-
},
|
|
4750
|
+
}, La = (t) => {
|
|
4788
4751
|
const e = {
|
|
4789
4752
|
fetchType: ie.Post,
|
|
4790
4753
|
url: `${Ee(t)}/chats`,
|
|
4791
4754
|
data: {}
|
|
4792
4755
|
};
|
|
4793
4756
|
return oe.fetch(e);
|
|
4794
|
-
},
|
|
4757
|
+
}, lo = (t, e) => {
|
|
4795
4758
|
const n = {
|
|
4796
4759
|
fetchType: ie.Get,
|
|
4797
4760
|
url: `${Ee(t)}/runs/latest${e ? `?sessionId=${e}` : ""}`
|
|
4798
4761
|
};
|
|
4799
4762
|
return oe.fetch(n);
|
|
4800
|
-
},
|
|
4763
|
+
}, fo = (t, e, n, o) => {
|
|
4801
4764
|
const a = {
|
|
4802
4765
|
fetchType: ie.Post,
|
|
4803
4766
|
url: `${Ee(t)}/runs/${e}/sections/${n}/retry`,
|
|
4804
4767
|
data: { timezone: o }
|
|
4805
4768
|
};
|
|
4806
4769
|
return oe.fetch(a);
|
|
4807
|
-
},
|
|
4770
|
+
}, Pa = (t, e) => {
|
|
4808
4771
|
const n = {
|
|
4809
4772
|
fetchType: ie.Post,
|
|
4810
4773
|
url: `${Ee(t)}/chat/stop`,
|
|
4811
4774
|
data: { sessionId: e }
|
|
4812
4775
|
};
|
|
4813
4776
|
return oe.fetch(n);
|
|
4814
|
-
},
|
|
4777
|
+
}, ja = (t, e) => `/${t}/report-ai/${e}/chat`, Je = 3e4, kt = 3e3, $a = "New chat", _t = 80, Da = (t) => ({
|
|
4815
4778
|
key: t,
|
|
4816
|
-
getChat: (e) =>
|
|
4817
|
-
listChats: (e) =>
|
|
4818
|
-
createChat: () =>
|
|
4819
|
-
stopChat: (e) =>
|
|
4820
|
-
chatPath: (e) =>
|
|
4821
|
-
}),
|
|
4779
|
+
getChat: (e) => Ra(t, e),
|
|
4780
|
+
listChats: (e) => Ma(t, e),
|
|
4781
|
+
createChat: () => La(t),
|
|
4782
|
+
stopChat: (e) => Pa(t, e),
|
|
4783
|
+
chatPath: (e) => ja(e, t)
|
|
4784
|
+
}), co = (t) => ({
|
|
4822
4785
|
key: `digest:${t}`,
|
|
4823
|
-
getChat: (e) =>
|
|
4824
|
-
listChats: (e) =>
|
|
4825
|
-
createChat: () =>
|
|
4826
|
-
stopChat: (e) =>
|
|
4827
|
-
chatPath: (e) =>
|
|
4786
|
+
getChat: (e) => Jt(t, e),
|
|
4787
|
+
listChats: (e) => Kt(t, e),
|
|
4788
|
+
createChat: () => Xt(t),
|
|
4789
|
+
stopChat: (e) => Yt(t, e),
|
|
4790
|
+
chatPath: (e) => Gt(e, t)
|
|
4828
4791
|
});
|
|
4829
|
-
function
|
|
4792
|
+
function Qe(t, e) {
|
|
4830
4793
|
return `report-canvas:chat:${t}:${e}`;
|
|
4831
4794
|
}
|
|
4832
|
-
function
|
|
4795
|
+
function Ba(t) {
|
|
4833
4796
|
try {
|
|
4834
4797
|
return window.localStorage.getItem(t) ?? void 0;
|
|
4835
4798
|
} catch {
|
|
4836
4799
|
return;
|
|
4837
4800
|
}
|
|
4838
4801
|
}
|
|
4839
|
-
function
|
|
4802
|
+
function Ze(t, e) {
|
|
4840
4803
|
try {
|
|
4841
4804
|
e ? window.localStorage.setItem(t, e) : window.localStorage.removeItem(t);
|
|
4842
4805
|
} catch {
|
|
4843
4806
|
}
|
|
4844
4807
|
}
|
|
4845
|
-
const
|
|
4808
|
+
const It = (t) => Array.isArray(t) ? t : t ? [t] : [], Lt = (t, e) => ({
|
|
4846
4809
|
text: t,
|
|
4847
4810
|
...e.length ? { target: e[0] } : {},
|
|
4848
4811
|
targets: e
|
|
4849
4812
|
});
|
|
4850
|
-
function
|
|
4851
|
-
return
|
|
4813
|
+
function St(t) {
|
|
4814
|
+
return Lt(
|
|
4852
4815
|
t.parts.filter((e) => e.type === "text").map((e) => String(e.text ?? "")).join(`
|
|
4853
4816
|
`),
|
|
4854
4817
|
t.parts.filter((e) => e.type === "data-edit-target").map((e) => e.data)
|
|
4855
4818
|
);
|
|
4856
4819
|
}
|
|
4857
|
-
function
|
|
4858
|
-
const { businessId: e, token: n } = ze(De()), o = typeof t == "string" ?
|
|
4820
|
+
function mo(t) {
|
|
4821
|
+
const { businessId: e, token: n } = ze(De()), o = typeof t == "string" ? Da(t) : t, a = T([]), i = T(), v = T(""), k = T(null), _ = T(!1), u = T([]), D = T(null), R = T(!1), A = T(""), M = T(!1), O = T(!1), E = T(""), j = T(null), N = T(""), L = T(!1), V = T([]), Y = T(!1), X = T(null), Z = T(!1), l = T(null), y = T(!1), g = B(() => Z.value || O.value && y.value), U = T(!1);
|
|
4859
4822
|
se([O, Z], ([f, s]) => {
|
|
4860
4823
|
!f && !s && (U.value = !1);
|
|
4861
4824
|
});
|
|
@@ -4873,11 +4836,11 @@ function go(t) {
|
|
|
4873
4836
|
ue.push(f);
|
|
4874
4837
|
}
|
|
4875
4838
|
let ne = 0;
|
|
4876
|
-
|
|
4839
|
+
Ct() && Et(() => {
|
|
4877
4840
|
ne += 1, clearTimeout(q), clearTimeout(K);
|
|
4878
4841
|
});
|
|
4879
4842
|
async function _e(f) {
|
|
4880
|
-
const s =
|
|
4843
|
+
const s = Qe(b(e.value), o.key), d = f ?? Ba(s), S = ne += 1;
|
|
4881
4844
|
clearTimeout(q), M.value = !0;
|
|
4882
4845
|
try {
|
|
4883
4846
|
let x;
|
|
@@ -4885,7 +4848,7 @@ function go(t) {
|
|
|
4885
4848
|
x = await o.getChat({ sessionId: d });
|
|
4886
4849
|
} catch ($) {
|
|
4887
4850
|
if (!d) throw $;
|
|
4888
|
-
|
|
4851
|
+
Ze(s, void 0), x = await o.getChat();
|
|
4889
4852
|
}
|
|
4890
4853
|
return S !== ne ? null : (pe(x), x.latestRun ?? null);
|
|
4891
4854
|
} catch (x) {
|
|
@@ -4895,7 +4858,7 @@ function go(t) {
|
|
|
4895
4858
|
}
|
|
4896
4859
|
}
|
|
4897
4860
|
function pe(f) {
|
|
4898
|
-
i.value = f.sessionId ?? void 0, v.value = f.title ?? "", a.value = f.messages, k.value = f.earlier ?? null, V.value = [], N.value = "",
|
|
4861
|
+
i.value = f.sessionId ?? void 0, v.value = f.title ?? "", a.value = f.messages, k.value = f.earlier ?? null, V.value = [], N.value = "", Ze(Qe(b(e.value), o.key), f.sessionId), he(f);
|
|
4899
4862
|
}
|
|
4900
4863
|
function he(f) {
|
|
4901
4864
|
clearTimeout(q), clearTimeout(K);
|
|
@@ -4908,7 +4871,7 @@ function go(t) {
|
|
|
4908
4871
|
const x = Date.parse(s.now) - Date.parse(s.since);
|
|
4909
4872
|
X.value = Date.now() - x;
|
|
4910
4873
|
const $ = (d == null ? void 0 : d.role) === "assistant" && d.inProgress ? d : void 0;
|
|
4911
|
-
$ && (E.value = $.id), j.value =
|
|
4874
|
+
$ && (E.value = $.id), j.value = En($), Y.value = x >= Je, Y.value || (K = setTimeout(() => Y.value = !0, Je - x)), q = setTimeout(() => void de(), kt);
|
|
4912
4875
|
}
|
|
4913
4876
|
async function de(f = !1) {
|
|
4914
4877
|
const s = ne, d = i.value;
|
|
@@ -4917,7 +4880,7 @@ function go(t) {
|
|
|
4917
4880
|
if (s !== ne || O.value || d !== i.value) return;
|
|
4918
4881
|
pe(S), (!S.pending || S.pending.stopped) && (te.forEach((x) => x()), ue.forEach((x) => x(S.latestRun ?? null)));
|
|
4919
4882
|
} catch {
|
|
4920
|
-
s === ne && (Z.value || f) && (q = setTimeout(() => void de(f),
|
|
4883
|
+
s === ne && (Z.value || f) && (q = setTimeout(() => void de(f), kt));
|
|
4921
4884
|
}
|
|
4922
4885
|
}
|
|
4923
4886
|
async function Te(f) {
|
|
@@ -4963,7 +4926,7 @@ function go(t) {
|
|
|
4963
4926
|
}
|
|
4964
4927
|
const z = /* @__PURE__ */ new Map();
|
|
4965
4928
|
function F(f, s) {
|
|
4966
|
-
i.value && z.set(i.value,
|
|
4929
|
+
i.value && z.set(i.value, Lt(f, It(s)));
|
|
4967
4930
|
}
|
|
4968
4931
|
function J() {
|
|
4969
4932
|
return i.value && z.get(i.value) || { text: "", targets: [] };
|
|
@@ -4985,11 +4948,11 @@ function go(t) {
|
|
|
4985
4948
|
}
|
|
4986
4949
|
function p(f) {
|
|
4987
4950
|
const s = a.value.find((d) => d.id === f && d.role === "user");
|
|
4988
|
-
return s ?
|
|
4951
|
+
return s ? St(s) : null;
|
|
4989
4952
|
}
|
|
4990
4953
|
function G(f) {
|
|
4991
4954
|
const s = a.value.find((d) => d.id === f);
|
|
4992
|
-
return !s || !V.value.includes(f) ? null : (a.value = a.value.filter((d) => d.id !== f), V.value = V.value.filter((d) => d !== f),
|
|
4955
|
+
return !s || !V.value.includes(f) ? null : (a.value = a.value.filter((d) => d.id !== f), V.value = V.value.filter((d) => d !== f), St(s));
|
|
4993
4956
|
}
|
|
4994
4957
|
function W(f, s) {
|
|
4995
4958
|
const d = a.value[a.value.length - 1];
|
|
@@ -5020,7 +4983,7 @@ function go(t) {
|
|
|
5020
4983
|
return !1;
|
|
5021
4984
|
}
|
|
5022
4985
|
function be(f, s) {
|
|
5023
|
-
f.named || (j.value =
|
|
4986
|
+
f.named || (j.value = gt(j.value, Rt(s)));
|
|
5024
4987
|
}
|
|
5025
4988
|
function Ne(f, s) {
|
|
5026
4989
|
const d = String(f.type ?? ""), S = s.id;
|
|
@@ -5081,12 +5044,12 @@ function go(t) {
|
|
|
5081
5044
|
}
|
|
5082
5045
|
if (d.startsWith("data-")) {
|
|
5083
5046
|
const x = d.slice(5), $ = f.data ?? {};
|
|
5084
|
-
x === "plan" && typeof $.sessionId == "string" && (s.acked = !0, y.value = !0, i.value = $.sessionId,
|
|
5047
|
+
x === "plan" && typeof $.sessionId == "string" && (s.acked = !0, y.value = !0, i.value = $.sessionId, Ze(Qe(b(e.value), o.key), $.sessionId)), x === "step" && typeof $.step == "string" ? (s.named = !0, j.value = gt(j.value, $.step)) : be(s, x), W(S, (Q) => Q.push({ type: d, data: $ })), re.forEach((Q) => Q({ name: x, data: $ }));
|
|
5085
5048
|
}
|
|
5086
5049
|
}
|
|
5087
5050
|
function Re(f) {
|
|
5088
|
-
if (v.value && v.value !==
|
|
5089
|
-
const s = f.length >
|
|
5051
|
+
if (v.value && v.value !== $a) return;
|
|
5052
|
+
const s = f.length > _t ? `${f.slice(0, _t - 1)}…` : f;
|
|
5090
5053
|
v.value = s, u.value = u.value.map(
|
|
5091
5054
|
(d) => d.id === i.value ? { ...d, title: s } : d
|
|
5092
5055
|
);
|
|
@@ -5094,7 +5057,7 @@ function go(t) {
|
|
|
5094
5057
|
async function Me(f, s) {
|
|
5095
5058
|
const d = f.trim();
|
|
5096
5059
|
if (!d || O.value || Z.value) return;
|
|
5097
|
-
const S =
|
|
5060
|
+
const S = It(s);
|
|
5098
5061
|
N.value = "", L.value = !1;
|
|
5099
5062
|
const x = {
|
|
5100
5063
|
id: lt(),
|
|
@@ -5113,11 +5076,11 @@ function go(t) {
|
|
|
5113
5076
|
], Re(d), y.value = !1, O.value = !0, j.value = null, Y.value = !1, l.value = null, X.value = Date.now(), E.value = `assistant-${Date.now()}`;
|
|
5114
5077
|
const $ = { id: E.value, acked: !1 }, Q = setTimeout(() => {
|
|
5115
5078
|
Y.value = !0;
|
|
5116
|
-
},
|
|
5117
|
-
let
|
|
5079
|
+
}, Je);
|
|
5080
|
+
let tt = !1;
|
|
5118
5081
|
try {
|
|
5119
5082
|
const le = await fetch(
|
|
5120
|
-
|
|
5083
|
+
Qt(o.chatPath(e.value)),
|
|
5121
5084
|
{
|
|
5122
5085
|
method: "POST",
|
|
5123
5086
|
headers: {
|
|
@@ -5142,21 +5105,21 @@ function go(t) {
|
|
|
5142
5105
|
console.warn("[report-canvas] chat rejected", { subject: o.key, status: le.status }), H(x.id);
|
|
5143
5106
|
return;
|
|
5144
5107
|
}
|
|
5145
|
-
const
|
|
5108
|
+
const Pt = le.body.getReader(), jt = new TextDecoder();
|
|
5146
5109
|
let qe = "";
|
|
5147
5110
|
for (; ; ) {
|
|
5148
|
-
const { done: Ae, value: Ve } = await
|
|
5111
|
+
const { done: Ae, value: Ve } = await Pt.read();
|
|
5149
5112
|
if (Ae) break;
|
|
5150
|
-
qe +=
|
|
5151
|
-
const
|
|
5113
|
+
qe += jt.decode(Ve, { stream: !0 });
|
|
5114
|
+
const nt = qe.split(`
|
|
5152
5115
|
|
|
5153
5116
|
`);
|
|
5154
|
-
qe =
|
|
5155
|
-
for (const
|
|
5156
|
-
for (const
|
|
5117
|
+
qe = nt.pop() ?? "";
|
|
5118
|
+
for (const $t of nt)
|
|
5119
|
+
for (const rt of $t.split(`
|
|
5157
5120
|
`)) {
|
|
5158
|
-
if (!
|
|
5159
|
-
const Fe =
|
|
5121
|
+
if (!rt.startsWith("data:")) continue;
|
|
5122
|
+
const Fe = rt.slice(5).trim();
|
|
5160
5123
|
if (!(!Fe || Fe === "[DONE]"))
|
|
5161
5124
|
try {
|
|
5162
5125
|
Ne(JSON.parse(Fe), $);
|
|
@@ -5165,9 +5128,9 @@ function go(t) {
|
|
|
5165
5128
|
}
|
|
5166
5129
|
}
|
|
5167
5130
|
} catch (le) {
|
|
5168
|
-
console.warn("[report-canvas] chat stream failed", { subject: o.key, err: le }), $.acked ? (L.value = !0,
|
|
5131
|
+
console.warn("[report-canvas] chat stream failed", { subject: o.key, err: le }), $.acked ? (L.value = !0, tt = !0) : H(x.id);
|
|
5169
5132
|
} finally {
|
|
5170
|
-
clearTimeout(Q), O.value = !1, j.value = null, Y.value = !1, X.value = null, te.forEach((le) => le()),
|
|
5133
|
+
clearTimeout(Q), O.value = !1, j.value = null, Y.value = !1, X.value = null, te.forEach((le) => le()), tt && de(!0);
|
|
5171
5134
|
}
|
|
5172
5135
|
}
|
|
5173
5136
|
return {
|
|
@@ -5209,8 +5172,8 @@ function go(t) {
|
|
|
5209
5172
|
onResumed: we
|
|
5210
5173
|
};
|
|
5211
5174
|
}
|
|
5212
|
-
const
|
|
5213
|
-
function
|
|
5175
|
+
const qa = 380, Va = 600, At = 'button:not([disabled]),textarea:not([disabled]),select:not([disabled]),a[href],[tabindex]:not([tabindex="-1"])';
|
|
5176
|
+
function uo(t, e) {
|
|
5214
5177
|
const n = T(), o = T(), a = T(0);
|
|
5215
5178
|
let i, v = !1;
|
|
5216
5179
|
Le(() => {
|
|
@@ -5219,20 +5182,20 @@ function bo(t, e) {
|
|
|
5219
5182
|
}), i.observe(n.value));
|
|
5220
5183
|
}), Pe(() => i == null ? void 0 : i.disconnect());
|
|
5221
5184
|
const k = B(
|
|
5222
|
-
() => !a.value || a.value >=
|
|
5185
|
+
() => !a.value || a.value >= qa + Va
|
|
5223
5186
|
), _ = B(() => t.value && !k.value && !e.value);
|
|
5224
5187
|
let u = null;
|
|
5225
5188
|
se(_, async (R) => {
|
|
5226
5189
|
var A, M, O;
|
|
5227
5190
|
if (R) {
|
|
5228
|
-
u = document.activeElement, await ke(), (M = (A = o.value) == null ? void 0 : A.querySelector(
|
|
5191
|
+
u = document.activeElement, await ke(), (M = (A = o.value) == null ? void 0 : A.querySelector(At)) == null || M.focus();
|
|
5229
5192
|
return;
|
|
5230
5193
|
}
|
|
5231
5194
|
(O = u == null ? void 0 : u.focus) == null || O.call(u), u = null;
|
|
5232
5195
|
});
|
|
5233
5196
|
function D(R) {
|
|
5234
5197
|
if (R.key !== "Tab" || !_.value || !o.value) return;
|
|
5235
|
-
const A = [...o.value.querySelectorAll(
|
|
5198
|
+
const A = [...o.value.querySelectorAll(At)];
|
|
5236
5199
|
if (!A.length) return;
|
|
5237
5200
|
const M = R.shiftKey ? A[0] : A[A.length - 1];
|
|
5238
5201
|
document.activeElement === M && (R.preventDefault(), (R.shiftKey ? A[A.length - 1] : A[0]).focus());
|
|
@@ -5240,20 +5203,20 @@ function bo(t, e) {
|
|
|
5240
5203
|
return Le(() => window.addEventListener("keydown", D, !0)), Pe(() => window.removeEventListener("keydown", D, !0)), { root: n, drawer: o, docked: k, modal: _ };
|
|
5241
5204
|
}
|
|
5242
5205
|
export {
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
|
|
5248
|
-
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5206
|
+
oo as R,
|
|
5207
|
+
io as a,
|
|
5208
|
+
uo as b,
|
|
5209
|
+
mo as c,
|
|
5210
|
+
co as d,
|
|
5211
|
+
so as e,
|
|
5212
|
+
fo as f,
|
|
5213
|
+
no as g,
|
|
5214
|
+
lo as h,
|
|
5215
|
+
eo as i,
|
|
5216
|
+
to as j,
|
|
5217
|
+
Ja as k,
|
|
5218
|
+
Qa as l,
|
|
5219
|
+
Za as p,
|
|
5220
|
+
ro as r,
|
|
5221
|
+
ao as u
|
|
5259
5222
|
};
|