@feedmepos/mf-report 5.29.2 → 5.30.0

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.
Files changed (33) hide show
  1. package/dist/{App-BZSznIVk.js → App-DLfT0eCF.js} +4 -4
  2. package/dist/{DateRangeSelect-DkvUo0cb.js → DateRangeSelect-B7WdpXF2.js} +1 -1
  3. package/dist/{Default.vue_vue_type_script_setup_true_lang-CpcW6e8f.js → Default.vue_vue_type_script_setup_true_lang-CL-aDO0k.js} +1 -1
  4. package/dist/DynamicWidget.vue_vue_type_script_setup_true_lang-CBQqry-z.js +5554 -0
  5. package/dist/GlobalFilterSelect.vue_vue_type_script_setup_true_lang-Dw7f7Ezy.js +2127 -0
  6. package/dist/{InsightView-BlBTxYPI.js → InsightView-C6C7JOZ6.js} +5 -5
  7. package/dist/{Integration-Cn0dO3bp.js → Integration-C-jTirOn.js} +3 -3
  8. package/dist/{Integrations-BbIEat5a.js → Integrations-GGOG7SoK.js} +2 -2
  9. package/dist/{Layout-CLOxLFnG.js → Layout-Bh9XKigp.js} +1 -1
  10. package/dist/{LocationSelect.vue_vue_type_script_setup_true_lang-BPBUsbFi.js → LocationSelect.vue_vue_type_script_setup_true_lang-rIw_bBJj.js} +2 -2
  11. package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-BUbVlzC2.js → MenuTab.vue_vue_type_script_setup_true_lang-Cd0znwmF.js} +5 -5
  12. package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang--ZqfguuE.js → NavigationTab.vue_vue_type_script_setup_true_lang-DfyDACQ_.js} +5 -5
  13. package/dist/{OverviewView-BnUQ_3U7.js → OverviewView-lMOe2TOC.js} +5 -5
  14. package/dist/{Report-BgvWo3nT.js → Report-D2Xn49J6.js} +3 -3
  15. package/dist/{ReportCanvasView-CPArvQyC.js → ReportCanvasView-CFD234l5.js} +419 -436
  16. package/dist/{ReportEditor-DMn20A0v.js → ReportEditor-CSCoj3H6.js} +7 -7
  17. package/dist/{ReportView-4ZwIkVpM.js → ReportView-CkWRa86t.js} +6 -6
  18. package/dist/{ReportViewRoute-CUXYY7p8.js → ReportViewRoute-BhtvTT7S.js} +2 -2
  19. package/dist/{Setting-rT9gqbLW.js → Setting-CoeUOLBq.js} +3 -3
  20. package/dist/{Template-BPWPq033.js → Template-CC5lUzPa.js} +3 -3
  21. package/dist/{TileEditor-D_Mdi1L7.js → TileEditor-DrbNsCcm.js} +6 -6
  22. package/dist/{TilePageStack.vue_vue_type_script_setup_true_lang-DPMdTPX0.js → TilePageStack.vue_vue_type_script_setup_true_lang-H9-q9z6X.js} +2 -2
  23. package/dist/{TransitionFade-BXD3t2SP.js → TransitionFade-BdCRphCd.js} +5 -5
  24. package/dist/{app-CECOMH9a.js → app-DQmVmRnR.js} +218 -206
  25. package/dist/app.js +1 -1
  26. package/dist/assets/{processTableData.worker-CUHdogDS.js → formatChartData.worker-t4_wCRf0.js} +62 -60
  27. package/dist/assets/{formatChartData.worker-M6h6qnIf.js → processTableData.worker-JSjN8c44.js} +62 -60
  28. package/dist/currency-D5C8SOmH.js +12 -0
  29. package/dist/{GlobalFilterSelect.vue_vue_type_script_setup_true_lang-DstuZr3i.js → index-DXT80H-V.js} +6897 -8853
  30. package/dist/{report-DSqxkGWu.js → report-Fll6MFsc.js} +1 -1
  31. package/dist/{useRestaurantPermission-Bj6HF5-f.js → useRestaurantPermission-D0zsFIys.js} +1 -1
  32. package/package.json +1 -1
  33. package/dist/DynamicWidget.vue_vue_type_script_setup_true_lang-D-v8cfNo.js +0 -5529
@@ -1,50 +1,51 @@
1
- import { defineComponent as je, computed as V, ref as T, createElementBlock as p, createCommentVNode as R, openBlock as c, createElementVNode as w, toDisplayString as k, unref as s, Fragment as ve, renderList as Se, onMounted as Me, watch as de, nextTick as Ee, resolveComponent as Ie, createVNode as Z, createTextVNode as Ft, normalizeClass as Pe, h as Ae, mergeModels as kt, useModel as _t, createBlock as me, withCtx as $e, mergeProps as St, onBeforeUnmount as De, shallowRef as gn, withDirectives as vn, isRef as It, vShow as yn } from "vue";
1
+ import { defineComponent as De, computed as V, ref as T, createElementBlock as p, createCommentVNode as R, openBlock as c, createElementVNode as w, toDisplayString as k, unref as s, Fragment as ve, renderList as Se, onMounted as Me, watch as de, nextTick as Ee, resolveComponent as Ie, createVNode as Z, createTextVNode as Ft, normalizeClass as Pe, h as Ae, mergeModels as kt, useModel as _t, createBlock as me, withCtx as $e, mergeProps as St, onBeforeUnmount as je, shallowRef as gn, withDirectives as vn, isRef as It, vShow as yn } from "vue";
2
2
  import { useRoute as xn, useRouter as wn } from "vue-router";
3
3
  import { u as Ve, _ as ut } from "./_plugin-vue_export-helper-C6QDExPN.js";
4
4
  import { storeToRefs as Oe } from "pinia";
5
- import { r as ue, F as pe, u as Ye, a as pt, V as kn, W as _n, h as Sn } from "./app-CECOMH9a.js";
6
- import { _ as In } from "./LocationSelect.vue_vue_type_script_setup_true_lang-BPBUsbFi.js";
7
- import { D as Cn } from "./DateRangeSelect-DkvUo0cb.js";
5
+ import { r as ue, F as pe, u as Ye, a as pt, V as kn, W as _n, h as Sn } from "./app-DQmVmRnR.js";
6
+ import { _ as In } from "./LocationSelect.vue_vue_type_script_setup_true_lang-rIw_bBJj.js";
7
+ import { D as Cn } from "./DateRangeSelect-B7WdpXF2.js";
8
8
  import { detectLocale as An } from "@feedmepos/mf-common";
9
- import { v as Ct, u as Tn } from "./report-DSqxkGWu.js";
10
- import { r as En } from "./i18n-DbyciK4x.js";
11
- const On = {
9
+ import { c as Tn } from "./currency-D5C8SOmH.js";
10
+ import { v as Ct, u as En } from "./report-Fll6MFsc.js";
11
+ import { r as On } from "./i18n-DbyciK4x.js";
12
+ const zn = {
12
13
  key: 0,
13
14
  class: "flex flex-col gap-4"
14
- }, zn = {
15
+ }, Nn = {
15
16
  key: 0,
16
17
  "data-testid": "report-canvas-activity",
17
18
  class: "flex items-start gap-8"
18
- }, Nn = { class: "min-w-0 grow" }, $n = {
19
+ }, $n = { class: "min-w-0 grow" }, Rn = {
19
20
  class: "fm-typo-en-body-md-400",
20
21
  role: "status"
21
- }, Rn = {
22
+ }, Ln = {
22
23
  key: 0,
23
24
  "data-testid": "report-canvas-prepared",
24
25
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
25
- }, Ln = {
26
+ }, Mn = {
26
27
  key: 1,
27
28
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
28
- }, Mn = {
29
+ }, Pn = {
29
30
  key: 1,
30
31
  "data-testid": "report-canvas-interrupted",
31
32
  class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
32
- }, Pn = {
33
+ }, jn = {
33
34
  key: 2,
34
35
  "data-testid": "report-canvas-stalled",
35
36
  class: "flex flex-col items-start gap-4"
36
- }, Dn = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-error" }, jn = {
37
+ }, Dn = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-error" }, Vn = {
37
38
  key: 3,
38
39
  "data-testid": "report-canvas-failed",
39
40
  class: "flex flex-col gap-4"
40
- }, Vn = { class: "min-w-0 grow" }, Fn = { class: "fm-typo-en-body-sm-600 truncate" }, Bn = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, qn = ["onClick"], Un = {
41
+ }, Fn = { class: "min-w-0 grow" }, qn = { class: "fm-typo-en-body-sm-600 truncate" }, Bn = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, Un = ["onClick"], Hn = {
41
42
  key: 4,
42
43
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-error"
43
- }, Hn = { key: 5 }, Wn = ["aria-expanded"], Gn = {
44
+ }, Wn = { key: 5 }, Gn = ["aria-expanded"], Yn = {
44
45
  key: 0,
45
46
  "data-testid": "report-canvas-details",
46
47
  class: "mt-4 flex flex-col gap-4"
47
- }, Yn = { class: "min-w-0 grow truncate" }, Kn = { class: "shrink-0" }, At = /* @__PURE__ */ je({
48
+ }, Jn = { class: "min-w-0 grow truncate" }, Kn = { class: "shrink-0" }, At = /* @__PURE__ */ De({
48
49
  __name: "ReportCanvasActivity",
49
50
  props: {
50
51
  active: { type: Boolean },
@@ -65,48 +66,48 @@ const On = {
65
66
  var x;
66
67
  return !!((x = t.run) != null && x.runId) && t.run.status !== "running";
67
68
  }), b = T(!1), L = V(() => t.phases.length > 0 || m.value.length > 0);
68
- return (x, N) => x.active || x.interrupted || x.stale || x.retryError || y.value.length || L.value ? (c(), p("div", On, [
69
- x.active ? (c(), p("div", zn, [
69
+ return (x, N) => x.active || x.interrupted || x.stale || x.retryError || y.value.length || L.value ? (c(), p("div", zn, [
70
+ x.active ? (c(), p("div", Nn, [
70
71
  N[2] || (N[2] = w("span", { class: "mt-2 h-12 w-12 shrink-0 animate-spin rounded-full border-2 border-fm-color-neutral-gray-200 border-t-fm-color-primary motion-reduce:animate-none" }, null, -1)),
71
- w("div", Nn, [
72
- w("p", $n, k(s(r)(`reportV5.reportAi.chat.phase.${x.phase}`)), 1),
73
- m.value.length ? (c(), p("p", Rn, k(s(r)("reportV5.reportAi.build.prepared", { done: h.value, total: m.value.length })), 1)) : R("", !0),
74
- x.slow ? (c(), p("p", Ln, k(s(r)("reportV5.reportAi.build.slow")), 1)) : R("", !0)
72
+ w("div", $n, [
73
+ w("p", Rn, k(s(r)(`reportV5.reportAi.chat.phase.${x.phase}`)), 1),
74
+ m.value.length ? (c(), p("p", Ln, k(s(r)("reportV5.reportAi.build.prepared", { done: h.value, total: m.value.length })), 1)) : R("", !0),
75
+ x.slow ? (c(), p("p", Mn, k(s(r)("reportV5.reportAi.build.slow")), 1)) : R("", !0)
75
76
  ])
76
77
  ])) : R("", !0),
77
- x.interrupted ? (c(), p("p", Mn, k(s(r)("reportV5.reportAi.build.interrupted")), 1)) : R("", !0),
78
- x.stale ? (c(), p("div", Pn, [
78
+ x.interrupted ? (c(), p("p", Pn, k(s(r)("reportV5.reportAi.build.interrupted")), 1)) : R("", !0),
79
+ x.stale ? (c(), p("div", jn, [
79
80
  w("p", Dn, k(s(r)("reportV5.reportAi.build.stalled")), 1),
80
81
  w("button", {
81
82
  class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary underline",
82
83
  onClick: N[0] || (N[0] = (E) => a("checkStatus"))
83
84
  }, k(s(r)("reportV5.reportAi.build.checkStatus")), 1)
84
85
  ])) : R("", !0),
85
- y.value.length ? (c(), p("ul", jn, [
86
+ y.value.length ? (c(), p("ul", Vn, [
86
87
  (c(!0), p(ve, null, Se(y.value, (E) => (c(), p("li", {
87
88
  key: E.id,
88
89
  class: "flex items-start gap-8"
89
90
  }, [
90
- w("div", Vn, [
91
- w("p", Fn, k(E.title), 1),
91
+ w("div", Fn, [
92
+ w("p", qn, k(E.title), 1),
92
93
  w("p", Bn, k(s(r)("reportV5.reportAi.build.failedWidget")), 1)
93
94
  ]),
94
95
  I.value ? (c(), p("button", {
95
96
  key: 0,
96
97
  class: "fm-typo-en-body-sm-600 shrink-0 text-fm-color-typo-secondary underline",
97
98
  onClick: (W) => a("retry", E.id)
98
- }, k(s(r)("reportV5.reportAi.build.retry")), 9, qn)) : R("", !0)
99
+ }, k(s(r)("reportV5.reportAi.build.retry")), 9, Un)) : R("", !0)
99
100
  ]))), 128))
100
101
  ])) : R("", !0),
101
- x.retryError ? (c(), p("p", Un, k(s(r)("reportV5.reportAi.build.retryFailed")), 1)) : R("", !0),
102
- L.value ? (c(), p("div", Hn, [
102
+ x.retryError ? (c(), p("p", Hn, k(s(r)("reportV5.reportAi.build.retryFailed")), 1)) : R("", !0),
103
+ L.value ? (c(), p("div", Wn, [
103
104
  w("button", {
104
105
  "data-testid": "report-canvas-details-toggle",
105
106
  class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary",
106
107
  "aria-expanded": b.value,
107
108
  onClick: N[1] || (N[1] = (E) => b.value = !b.value)
108
- }, k(b.value ? "▾" : "▸") + " " + k(s(r)("reportV5.reportAi.build.details")), 9, Wn),
109
- b.value ? (c(), p("div", Gn, [
109
+ }, k(b.value ? "▾" : "▸") + " " + k(s(r)("reportV5.reportAi.build.details")), 9, Gn),
110
+ b.value ? (c(), p("div", Yn, [
110
111
  (c(!0), p(ve, null, Se(x.phases, (E) => (c(), p("p", {
111
112
  key: E,
112
113
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
@@ -115,28 +116,28 @@ const On = {
115
116
  key: E.id,
116
117
  class: "fm-typo-en-body-sm-400 flex gap-8 text-fm-color-typo-secondary"
117
118
  }, [
118
- w("span", Yn, k(E.title), 1),
119
+ w("span", Jn, k(E.title), 1),
119
120
  w("span", Kn, k(s(r)(`reportV5.reportAi.build.state.${E.status}`)), 1)
120
121
  ]))), 128))
121
122
  ])) : R("", !0)
122
123
  ])) : R("", !0)
123
124
  ])) : R("", !0);
124
125
  }
125
- }), Jn = { class: "flex flex-col items-stretch gap-8 px-[20px] pb-16 pt-12" }, Xn = {
126
+ }), Xn = { class: "flex flex-col items-stretch gap-8 px-[20px] pb-16 pt-12" }, Qn = {
126
127
  key: 0,
127
128
  "data-testid": "chat-edit-target-context",
128
129
  class: "fm-typo-en-body-sm-400 line-clamp-1 text-fm-color-typo-secondary"
129
- }, Qn = {
130
+ }, Zn = {
130
131
  key: 1,
131
132
  role: "alert",
132
133
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-error"
133
- }, Zn = {
134
+ }, ea = {
134
135
  "data-testid": "report-canvas-chat-input",
135
136
  class: "rounded-lg border border-fm-color-border-secondary bg-fm-color-neutral-white p-16 focus-within:border-fm-color-primary"
136
- }, ea = ["value", "placeholder", "aria-label"], ta = { class: "mt-16 flex items-center gap-12" }, na = ["aria-label"], aa = { class: "fm-typo-en-body-sm-400 min-w-0 grow truncate" }, ra = {
137
+ }, ta = ["value", "placeholder", "aria-label"], na = { class: "mt-16 flex items-center gap-12" }, aa = ["aria-label"], ra = { class: "fm-typo-en-body-sm-400 min-w-0 grow truncate" }, oa = {
137
138
  key: 0,
138
139
  "data-testid": "chat-edit-target-element"
139
- }, oa = ["disabled", "aria-label"], ia = ["disabled", "aria-label"], sa = { class: "text-[12px] leading-16 text-fm-color-typo-secondary" }, Tt = 21, la = /* @__PURE__ */ je({
140
+ }, ia = ["disabled", "aria-label"], sa = ["disabled", "aria-label"], la = { class: "text-[12px] leading-16 text-fm-color-typo-secondary" }, Tt = 21, fa = /* @__PURE__ */ De({
140
141
  __name: "ReportCanvasComposer",
141
142
  props: {
142
143
  draft: {},
@@ -166,14 +167,14 @@ const On = {
166
167
  function W() {
167
168
  E.value && r("submit");
168
169
  }
169
- function j() {
170
+ function D() {
170
171
  var O;
171
172
  (O = I.value) == null || O.focus();
172
173
  }
173
- e({ focus: j });
174
+ e({ focus: D });
174
175
  const Y = V(() => {
175
- var J;
176
- const O = (J = a.target) == null ? void 0 : J.element;
176
+ var K;
177
+ const O = (K = a.target) == null ? void 0 : K.element;
177
178
  if (!O) return "";
178
179
  const G = (O.text || "").trim();
179
180
  return G ? G.slice(0, 40) : O.part || O.tag;
@@ -184,11 +185,11 @@ const On = {
184
185
  );
185
186
  return (O, G) => {
186
187
  var F;
187
- const J = Ie("FmIcon");
188
- return c(), p("div", Jn, [
189
- (F = O.target) != null && F.elementText ? (c(), p("p", Xn, " “" + k(O.target.elementText) + "” ", 1)) : R("", !0),
190
- O.targetStale && !O.streaming ? (c(), p("p", Qn, k(s(m)("reportV5.reportAi.chat.staleTarget")), 1)) : R("", !0),
191
- w("div", Zn, [
188
+ const K = Ie("FmIcon");
189
+ return c(), p("div", Xn, [
190
+ (F = O.target) != null && F.elementText ? (c(), p("p", Qn, " “" + k(O.target.elementText) + "” ", 1)) : R("", !0),
191
+ O.targetStale && !O.streaming ? (c(), p("p", Zn, k(s(m)("reportV5.reportAi.chat.staleTarget")), 1)) : R("", !0),
192
+ w("div", ea, [
192
193
  w("textarea", {
193
194
  ref_key: "field",
194
195
  ref: I,
@@ -199,10 +200,10 @@ const On = {
199
200
  class: "fm-typo-en-body-md-400 block w-full resize-none border-0 bg-transparent !leading-[21px] outline-none placeholder:text-fm-color-typo-secondary",
200
201
  onInput: x,
201
202
  onKeydown: N,
202
- onCompositionstart: G[0] || (G[0] = (B) => b.value = !0),
203
- onCompositionend: G[1] || (G[1] = (B) => b.value = !1)
204
- }, null, 40, ea),
205
- w("div", ta, [
203
+ onCompositionstart: G[0] || (G[0] = (q) => b.value = !0),
204
+ onCompositionend: G[1] || (G[1] = (q) => b.value = !1)
205
+ }, null, 40, ta),
206
+ w("div", na, [
206
207
  w("div", {
207
208
  "data-testid": "chat-edit-target",
208
209
  role: "status",
@@ -211,14 +212,14 @@ const On = {
211
212
  }) : s(m)("reportV5.reportAi.chat.entireReport"),
212
213
  class: "flex min-w-0 grow items-center gap-8 text-fm-color-typo-secondary"
213
214
  }, [
214
- Z(J, {
215
+ Z(K, {
215
216
  name: O.target ? "mode_comment" : "dashboard",
216
217
  size: "sm",
217
218
  outline: ""
218
219
  }, null, 8, ["name"]),
219
- w("p", aa, [
220
+ w("p", ra, [
220
221
  Ft(k(O.target ? O.target.label || s(m)("reportV5.reportAi.chat.selectedWidget") : s(m)("reportV5.reportAi.chat.entireReport")), 1),
221
- Y.value ? (c(), p("span", ra, " › " + k(Y.value), 1)) : R("", !0)
222
+ Y.value ? (c(), p("span", oa, " › " + k(Y.value), 1)) : R("", !0)
222
223
  ]),
223
224
  O.target ? (c(), p("button", {
224
225
  key: 0,
@@ -227,14 +228,14 @@ const On = {
227
228
  "aria-label": s(m)(
228
229
  O.target.element ? "reportV5.reportAi.chat.removeElement" : "reportV5.reportAi.chat.removeTarget"
229
230
  ),
230
- onClick: G[2] || (G[2] = (B) => r("clearTarget"))
231
+ onClick: G[2] || (G[2] = (q) => r("clearTarget"))
231
232
  }, [
232
- Z(J, {
233
+ Z(K, {
233
234
  name: "close",
234
235
  size: "sm"
235
236
  })
236
- ], 8, oa)) : R("", !0)
237
- ], 8, na),
237
+ ], 8, ia)) : R("", !0)
238
+ ], 8, aa),
238
239
  w("button", {
239
240
  "data-testid": "report-canvas-chat-send",
240
241
  class: Pe([
@@ -245,20 +246,20 @@ const On = {
245
246
  "aria-label": s(m)("reportV5.reportAi.chat.send"),
246
247
  onClick: W
247
248
  }, [
248
- Z(J, {
249
+ Z(K, {
249
250
  name: "arrow_forward",
250
251
  size: "sm"
251
252
  })
252
- ], 10, ia)
253
+ ], 10, sa)
253
254
  ])
254
255
  ]),
255
- w("p", sa, k(O.streaming && O.draft.trim() ? s(m)("reportV5.reportAi.chat.waitForUpdate") : s(m)("reportV5.reportAi.chat.newLineHint")), 1)
256
+ w("p", la, k(O.streaming && O.draft.trim() ? s(m)("reportV5.reportAi.chat.waitForUpdate") : s(m)("reportV5.reportAi.chat.newLineHint")), 1)
256
257
  ]);
257
258
  };
258
259
  }
259
- }), fa = "rounded-sm bg-fm-color-neutral-gray-100 px-4 font-mono text-[0.9em]";
260
+ }), da = "rounded-sm bg-fm-color-neutral-gray-100 px-4 font-mono text-[0.9em]";
260
261
  function Et(o) {
261
- return o.map((e) => e.type === "strong" ? Ae("strong", { class: "font-semibold" }, e.text) : e.type === "em" ? Ae("em", e.text) : e.type === "code" ? Ae("code", { class: fa }, e.text) : e.type === "link" ? Ae(
262
+ return o.map((e) => e.type === "strong" ? Ae("strong", { class: "font-semibold" }, e.text) : e.type === "em" ? Ae("em", e.text) : e.type === "code" ? Ae("code", { class: da }, e.text) : e.type === "link" ? Ae(
262
263
  "a",
263
264
  {
264
265
  href: e.href,
@@ -269,7 +270,7 @@ function Et(o) {
269
270
  e.text
270
271
  ) : e.text);
271
272
  }
272
- const da = (o) => Ae(
273
+ const ca = (o) => Ae(
273
274
  "div",
274
275
  { class: "fm-typo-en-body-md-400 flex flex-col items-stretch gap-8 !leading-[21px]" },
275
276
  (o.blocks ?? []).map((e) => e.type === "pre" ? Ae(
@@ -287,7 +288,7 @@ const da = (o) => Ae(
287
288
  { class: e.heading ? "fm-typo-en-body-md-600" : void 0 },
288
289
  Et(e.inline)
289
290
  ))
290
- ), ca = ["aria-expanded"], ma = /* @__PURE__ */ je({
291
+ ), ma = ["aria-expanded"], ua = /* @__PURE__ */ De({
291
292
  __name: "ReportCanvasMessage",
292
293
  props: {
293
294
  blocks: {},
@@ -301,17 +302,17 @@ const da = (o) => Ae(
301
302
  );
302
303
  const r = V(() => e.preview && !a.value ? e.preview : e.blocks);
303
304
  return (m, h) => (c(), p("div", null, [
304
- Z(s(da), { blocks: r.value }, null, 8, ["blocks"]),
305
+ Z(s(ca), { blocks: r.value }, null, 8, ["blocks"]),
305
306
  m.preview ? (c(), p("button", {
306
307
  key: 0,
307
308
  "data-testid": "report-canvas-full-reply",
308
309
  class: "fm-typo-en-body-sm-600 mt-4 text-fm-color-typo-secondary underline",
309
310
  "aria-expanded": a.value,
310
311
  onClick: h[0] || (h[0] = (y) => a.value = !a.value)
311
- }, k(s(t)(a.value ? "reportV5.reportAi.chat.showLess" : "reportV5.reportAi.chat.showFullReply")), 9, ca)) : R("", !0)
312
+ }, k(s(t)(a.value ? "reportV5.reportAi.chat.showLess" : "reportV5.reportAi.chat.showFullReply")), 9, ma)) : R("", !0)
312
313
  ]));
313
314
  }
314
- }), ua = /^(?:https?:\/\/|mailto:)[^\s]+$/i, rt = /`([^`]+)`|(!?)\[([^\]]*)\]\(([^)\s]*)\)|\*\*([\s\S]+?)\*\*|\*([^*\n]+)\*/g;
315
+ }), pa = /^(?:https?:\/\/|mailto:)[^\s]+$/i, rt = /`([^`]+)`|(!?)\[([^\]]*)\]\(([^)\s]*)\)|\*\*([\s\S]+?)\*\*|\*([^*\n]+)\*/g;
315
316
  function ot(o, e) {
316
317
  if (!e) return;
317
318
  const t = o[o.length - 1];
@@ -324,11 +325,11 @@ function it(o) {
324
325
  for (let a = rt.exec(o); a; a = rt.exec(o)) {
325
326
  ot(e, o.slice(t, a.index)), t = a.index + a[0].length;
326
327
  const [, r, m, h, y, I, b] = a;
327
- r !== void 0 ? e.push({ type: "code", text: r }) : h !== void 0 ? !m && ua.test(y) ? e.push({ type: "link", text: h || y, href: y }) : ot(e, a[0]) : I !== void 0 ? e.push({ type: "strong", text: I }) : b !== void 0 && e.push({ type: "em", text: b });
328
+ r !== void 0 ? e.push({ type: "code", text: r }) : h !== void 0 ? !m && pa.test(y) ? e.push({ type: "link", text: h || y, href: y }) : ot(e, a[0]) : I !== void 0 ? e.push({ type: "strong", text: I }) : b !== void 0 && e.push({ type: "em", text: b });
328
329
  }
329
330
  return ot(e, o.slice(t)), e;
330
331
  }
331
- const pa = /^\s*```/, ha = /^\s{0,3}(#{1,6})\s+(.*)$/, ba = /^\s*[-*+]\s+(.*)$/, ga = /^\s*\d{1,3}[.)]\s+(.*)$/;
332
+ const ha = /^\s*```/, ba = /^\s{0,3}(#{1,6})\s+(.*)$/, ga = /^\s*[-*+]\s+(.*)$/, va = /^\s*\d{1,3}[.)]\s+(.*)$/;
332
333
  function Ot(o) {
333
334
  const e = [], t = String(o ?? "").split(/\r?\n/);
334
335
  let a = [], r = null, m = null;
@@ -342,7 +343,7 @@ function Ot(o) {
342
343
  h(), y();
343
344
  }
344
345
  for (const b of t) {
345
- if (pa.test(b)) {
346
+ if (ha.test(b)) {
346
347
  m ? (e.push({ type: "pre", text: m.join(`
347
348
  `) }), m = null) : (I(), m = []);
348
349
  continue;
@@ -351,7 +352,7 @@ function Ot(o) {
351
352
  m.push(b);
352
353
  continue;
353
354
  }
354
- const L = ha.exec(b), x = ba.exec(b), N = ga.exec(b);
355
+ const L = ba.exec(b), x = ga.exec(b), N = va.exec(b);
355
356
  if (!b.trim())
356
357
  I();
357
358
  else if (L)
@@ -366,13 +367,13 @@ function Ot(o) {
366
367
  return m != null && m.length && e.push({ type: "pre", text: m.join(`
367
368
  `) }), I(), e;
368
369
  }
369
- function va(o, e) {
370
+ function ya(o, e) {
370
371
  const t = String(o ?? "").trim();
371
372
  if (t.length <= e) return t;
372
373
  const a = t.slice(0, e), r = a.lastIndexOf(" ");
373
374
  return `${(r > e * 0.6 ? a.slice(0, r) : a).trimEnd()}…`;
374
375
  }
375
- const zt = 600, ya = {
376
+ const zt = 600, xa = {
376
377
  discovery: "reviewing",
377
378
  grounding_probe: "reviewing",
378
379
  option_probe: "reviewing",
@@ -409,14 +410,14 @@ const zt = 600, ya = {
409
410
  lazy_forced: "updating",
410
411
  manifest_unbound: "updating",
411
412
  rendered: "loading"
412
- }, xa = /* @__PURE__ */ new Set(["plan", "edit-target", "error", "turn_stats"]);
413
- function Bt(o) {
414
- return o && ya[o] || "working";
413
+ }, wa = /* @__PURE__ */ new Set(["plan", "edit-target", "error", "turn_stats"]);
414
+ function qt(o) {
415
+ return o && xa[o] || "working";
415
416
  }
416
- function wa(o) {
417
+ function ka(o) {
417
418
  const e = [];
418
419
  for (const t of o) {
419
- const a = Bt(t);
420
+ const a = qt(t);
420
421
  e.includes(a) || e.push(a);
421
422
  }
422
423
  return e.slice(-4);
@@ -426,28 +427,28 @@ function st(o) {
426
427
 
427
428
  `);
428
429
  }
429
- function ka(o) {
430
+ function _a(o) {
430
431
  const e = [];
431
432
  for (const t of o) {
432
433
  const a = t.type.startsWith("tool-") || t.type.startsWith("data-") ? t.type.slice(5) : "";
433
- a && !xa.has(a) && e.push(a);
434
+ a && !wa.has(a) && e.push(a);
434
435
  }
435
436
  return e;
436
437
  }
437
- function _a(o) {
438
+ function Sa(o) {
438
439
  var a;
439
440
  const e = o.find((r) => r.type === "data-turn_stats"), t = (a = e == null ? void 0 : e.data) == null ? void 0 : a.ms;
440
441
  return typeof t == "number" && t >= 0 ? t : void 0;
441
442
  }
442
- function Sa(o) {
443
+ function Ia(o) {
443
444
  const e = o / 1e3;
444
445
  return e < 60 ? `${e.toFixed(1)}s` : `${Math.floor(e / 60)}m ${String(Math.round(e % 60)).padStart(2, "0")}s`;
445
446
  }
446
- function Ia(o) {
447
+ function Ca(o) {
447
448
  const e = o.find((t) => t.type === "data-edit-target");
448
449
  return e ? e.data : void 0;
449
450
  }
450
- function Ca(o) {
451
+ function Aa(o) {
451
452
  const e = [[]];
452
453
  for (const t of o)
453
454
  t.type === "step-start" ? e.push([]) : e[e.length - 1].push(t);
@@ -456,19 +457,19 @@ function Ca(o) {
456
457
  function Nt(o) {
457
458
  return o.some((e) => e.type.startsWith("tool-"));
458
459
  }
459
- function Aa(o, e = {}) {
460
+ function Ta(o, e = {}) {
460
461
  var a;
461
462
  const t = [];
462
463
  for (const r of o ?? []) {
463
- const m = r.parts ?? [], h = ka(m), y = Ia(m);
464
+ const m = r.parts ?? [], h = _a(m), y = Ca(m);
464
465
  if (r.role === "user") {
465
- const j = st(m);
466
+ const D = st(m);
466
467
  t.push({
467
468
  id: r.id,
468
469
  turnId: r.turnId ?? r.id,
469
470
  role: "user",
470
471
  target: y,
471
- answer: j,
472
+ answer: D,
472
473
  blocks: [],
473
474
  preview: null,
474
475
  signals: [],
@@ -477,7 +478,7 @@ function Aa(o, e = {}) {
477
478
  });
478
479
  continue;
479
480
  }
480
- const I = !!e.streamingId && r.id === e.streamingId, b = Ca(m), L = b[b.length - 1] ?? [], x = b.some(Nt), N = x && !m.some((j) => j.type === "step-start");
481
+ const I = !!e.streamingId && r.id === e.streamingId, b = Aa(m), L = b[b.length - 1] ?? [], x = b.some(Nt), N = x && !m.some((D) => D.type === "step-start");
481
482
  let E = "";
482
483
  I || (!x || N ? E = st(m) : Nt(L) || (E = st(L)));
483
484
  const W = !!E && (N || E.length > zt);
@@ -488,71 +489,71 @@ function Aa(o, e = {}) {
488
489
  target: y,
489
490
  answer: E,
490
491
  blocks: E ? Ot(E) : [],
491
- preview: W ? Ot(va(E, zt)) : null,
492
+ preview: W ? Ot(ya(E, zt)) : null,
492
493
  signals: h,
493
494
  pending: I,
494
495
  noSummary: !I && !E && x,
495
- ms: I ? void 0 : _a(m) ?? ((a = r.stats) == null ? void 0 : a.ms)
496
+ ms: I ? void 0 : Sa(m) ?? ((a = r.stats) == null ? void 0 : a.ms)
496
497
  });
497
498
  }
498
499
  return t;
499
500
  }
500
- const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12 border-b border-fm-color-border-secondary px-[20px]" }, Oa = { class: "min-w-0 grow" }, za = { class: "fm-typo-en-body-md-600" }, Na = {
501
+ const Ea = ["aria-label"], Oa = { class: "flex h-64 shrink-0 items-center gap-12 border-b border-fm-color-border-secondary px-[20px]" }, za = { class: "min-w-0 grow" }, Na = { class: "fm-typo-en-body-md-600" }, $a = {
501
502
  key: 0,
502
503
  class: "fm-typo-en-body-sm-400 truncate text-fm-color-typo-secondary"
503
- }, $a = ["disabled", "aria-label"], Ra = ["disabled", "aria-label", "title"], La = ["aria-label"], Ma = ["data-testid", "aria-label"], Pa = {
504
+ }, Ra = ["disabled", "aria-label"], La = ["disabled", "aria-label", "title"], Ma = ["aria-label"], Pa = ["data-testid", "aria-label"], ja = {
504
505
  key: 0,
505
506
  class: "mt-auto flex shrink-0 flex-col gap-24 pb-8 pt-32"
506
- }, Da = { class: "text-center" }, ja = { class: "text-[24px] font-semibold leading-tight tracking-tight text-fm-color-typo-primary" }, Va = { class: "fm-typo-en-body-sm-400 mt-12 text-fm-color-typo-secondary" }, Fa = {
507
+ }, Da = { class: "text-center" }, Va = { class: "text-[24px] font-semibold leading-tight tracking-tight text-fm-color-typo-primary" }, Fa = { class: "fm-typo-en-body-sm-400 mt-12 text-fm-color-typo-secondary" }, qa = {
507
508
  key: 0,
508
509
  class: "flex flex-col gap-4"
509
- }, Ba = ["disabled", "title", "onClick"], qa = ["aria-label"], Ua = { class: "fm-typo-en-body-sm-600 mb-12 text-fm-color-typo-secondary" }, Ha = {
510
+ }, Ba = ["disabled", "title", "onClick"], Ua = ["aria-label"], Ha = { class: "fm-typo-en-body-sm-600 mb-12 text-fm-color-typo-secondary" }, Wa = {
510
511
  key: 0,
511
512
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
512
- }, Wa = {
513
+ }, Ga = {
513
514
  key: 1,
514
515
  "data-testid": "report-canvas-chat-list-error",
515
516
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-error"
516
- }, Ga = {
517
+ }, Ya = {
517
518
  key: 2,
518
519
  class: "fm-typo-en-body-sm-400 py-12 text-fm-color-typo-secondary"
519
- }, Ya = {
520
+ }, Ja = {
520
521
  key: 0,
521
522
  class: "fm-typo-en-body-sm-400 mb-8 text-fm-color-typo-secondary"
522
- }, Ka = ["disabled", "aria-current", "title", "onClick"], Ja = { class: "fm-typo-en-body-md-400 min-w-0 grow truncate" }, Xa = ["datetime"], Qa = ["disabled"], Za = ["disabled"], er = {
523
+ }, Ka = ["disabled", "aria-current", "title", "onClick"], Xa = { class: "fm-typo-en-body-md-400 min-w-0 grow truncate" }, Qa = ["datetime"], Za = ["disabled"], er = ["disabled"], tr = {
523
524
  key: 2,
524
525
  "data-testid": "report-canvas-chat-error",
525
526
  class: "fm-typo-en-body-sm-400 mt-12 text-fm-color-typo-error"
526
- }, tr = {
527
+ }, nr = {
527
528
  key: 1,
528
529
  class: "relative flex min-h-0 grow flex-col"
529
- }, nr = {
530
+ }, ar = {
530
531
  key: 0,
531
532
  "data-testid": "report-canvas-chat-loading",
532
533
  class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
533
- }, ar = ["disabled"], rr = {
534
+ }, rr = ["disabled"], or = {
534
535
  key: 0,
535
536
  "data-testid": "chat-message-target",
536
537
  class: "fm-typo-en-body-sm-600 mb-4 text-right text-fm-color-typo-secondary"
537
- }, or = {
538
+ }, ir = {
538
539
  key: 1,
539
540
  class: "flex flex-col items-end"
540
- }, ir = {
541
+ }, sr = {
541
542
  key: 0,
542
543
  "data-testid": "chat-message-unsent",
543
544
  class: "fm-typo-en-body-sm-400 mt-4 text-fm-color-typo-secondary"
544
- }, sr = ["disabled", "onClick"], lr = ["disabled", "onClick"], fr = {
545
+ }, lr = ["disabled", "onClick"], fr = ["disabled", "onClick"], dr = {
545
546
  key: 2,
546
547
  class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
547
- }, dr = {
548
+ }, cr = {
548
549
  key: 3,
549
550
  "data-testid": "report-canvas-answer-duration",
550
551
  class: "fm-typo-en-body-sm-400 mt-4 text-fm-color-typo-secondary"
551
- }, cr = {
552
+ }, mr = {
552
553
  key: 2,
553
554
  "data-testid": "report-canvas-chat-error",
554
555
  class: "fm-typo-en-body-md-400 text-fm-color-typo-error"
555
- }, mr = { class: "shrink-0" }, $t = "New chat", ur = 24 * 60 * 60 * 1e3, pr = 80, hr = /* @__PURE__ */ je({
556
+ }, ur = { class: "shrink-0" }, $t = "New chat", pr = 24 * 60 * 60 * 1e3, hr = 80, br = /* @__PURE__ */ De({
556
557
  __name: "ReportCanvasChatPanel",
557
558
  props: /* @__PURE__ */ kt({
558
559
  messages: {},
@@ -611,7 +612,7 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
611
612
  function W() {
612
613
  y.value = !0, a("loadChats");
613
614
  }
614
- function j() {
615
+ function D() {
615
616
  y.value ? y.value = !1 : E();
616
617
  }
617
618
  function Y(n) {
@@ -643,18 +644,18 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
643
644
  n.setHours(0, 0, 0, 0);
644
645
  const i = [];
645
646
  for (const f of t.chats ?? []) {
646
- const A = new Date(f.lastMessageAt).getTime(), P = A >= n.getTime() ? "today" : A >= n.getTime() - ur ? "yesterday" : "earlier";
647
- (i.find((D) => D.key === P) ?? (i.push({ key: P, label: r(`reportV5.reportAi.chat.group.${P}`), chats: [] }), i[i.length - 1])).chats.push(f);
647
+ const A = new Date(f.lastMessageAt).getTime(), P = A >= n.getTime() ? "today" : A >= n.getTime() - pr ? "yesterday" : "earlier";
648
+ (i.find((j) => j.key === P) ?? (i.push({ key: P, label: r(`reportV5.reportAi.chat.group.${P}`), chats: [] }), i[i.length - 1])).chats.push(f);
648
649
  }
649
650
  return i;
650
651
  });
651
- function J(n) {
652
+ function K(n) {
652
653
  return new Date(n.lastMessageAt).toLocaleString(m.value, {
653
654
  month: "short",
654
655
  day: "numeric"
655
656
  });
656
657
  }
657
- const F = V(() => new Set(t.undoableTurnIds ?? [])), B = V(() => new Set(t.unsentIds ?? [])), _ = T();
658
+ const F = V(() => new Set(t.undoableTurnIds ?? [])), q = V(() => new Set(t.unsentIds ?? [])), _ = T();
658
659
  de(
659
660
  () => t.target,
660
661
  async (n) => {
@@ -664,15 +665,15 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
664
665
  { immediate: !0 }
665
666
  );
666
667
  const z = V(
667
- () => Aa(t.messages ?? [], {
668
+ () => Ta(t.messages ?? [], {
668
669
  streamingId: t.streaming ? t.turnId : void 0
669
670
  })
670
671
  ), g = V(
671
672
  () => t.streaming ? z.value.findIndex((n) => n.pending) : -1
672
- ), H = V(() => z.value.findIndex((n) => n.id === t.runAnchorId)), K = V(
673
+ ), H = V(() => z.value.findIndex((n) => n.id === t.runAnchorId)), J = V(
673
674
  () => g.value < 0 && (t.streaming || t.interrupted) || H.value < 0 && !!t.run
674
675
  ), ee = V(
675
- () => h.value || !t.earlier && !N.value && !z.value.length && !K.value
676
+ () => h.value || !t.earlier && !N.value && !z.value.length && !J.value
676
677
  ), X = V(() => (t.chats ?? []).slice(0, 3)), se = V(
677
678
  () => {
678
679
  var n;
@@ -696,7 +697,7 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
696
697
  active: i && t.streaming || f && ((A = t.run) == null ? void 0 : A.status) === "running" && !t.runStale,
697
698
  // a run card left behind by a newer streaming turn shows its own work, not that turn's phase
698
699
  phase: i || !t.streaming ? t.phase : "updating",
699
- phases: wa(((P = z.value[n]) == null ? void 0 : P.signals) ?? []),
700
+ phases: ka(((P = z.value[n]) == null ? void 0 : P.signals) ?? []),
700
701
  run: f ? t.run : null,
701
702
  slow: i && t.slow,
702
703
  stale: f && t.runStale,
@@ -720,7 +721,7 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
720
721
  const xe = T(), C = T(!0), u = T(!1);
721
722
  function S() {
722
723
  const n = xe.value;
723
- n && (C.value = n.scrollHeight - n.scrollTop - n.clientHeight <= pr, C.value && (u.value = !1));
724
+ n && (C.value = n.scrollHeight - n.scrollTop - n.clientHeight <= hr, C.value && (u.value = !1));
724
725
  }
725
726
  async function M() {
726
727
  await Ee();
@@ -749,10 +750,10 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
749
750
  "aria-label": s(r)("reportV5.reportAi.chat.title"),
750
751
  onKeydown: O
751
752
  }, [
752
- w("header", Ea, [
753
- w("div", Oa, [
754
- w("h2", za, k(s(r)("reportV5.reportAi.chat.title")), 1),
755
- !ee.value && n.chatTitle && n.chatTitle !== $t ? (c(), p("p", Na, k(n.chatTitle), 1)) : R("", !0)
753
+ w("header", Oa, [
754
+ w("div", za, [
755
+ w("h2", Na, k(s(r)("reportV5.reportAi.chat.title")), 1),
756
+ !ee.value && n.chatTitle && n.chatTitle !== $t ? (c(), p("p", $a, k(n.chatTitle), 1)) : R("", !0)
756
757
  ]),
757
758
  !h.value || y.value ? (c(), me(A, {
758
759
  key: 0,
@@ -765,13 +766,13 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
765
766
  class: "chat-icon-button flex h-[36px] w-[36px] shrink-0 items-center justify-center rounded-md text-fm-color-typo-secondary",
766
767
  disabled: n.busy,
767
768
  "aria-label": y.value ? s(r)("reportV5.reportAi.chat.recentChats") : s(r)("reportV5.reportAi.chat.openChats", { title: L.value }),
768
- onClick: j
769
+ onClick: D
769
770
  }, [
770
771
  Z(f, {
771
772
  name: "chevron_left",
772
773
  size: "md"
773
774
  })
774
- ], 8, $a)
775
+ ], 8, Ra)
775
776
  ]),
776
777
  _: 1
777
778
  }, 8, ["content"])) : R("", !0),
@@ -794,7 +795,7 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
794
795
  size: "md",
795
796
  outline: ""
796
797
  })
797
- ], 8, Ra)
798
+ ], 8, La)
798
799
  ]),
799
800
  _: 1
800
801
  }, 8, ["content"])),
@@ -807,13 +808,13 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
807
808
  "data-testid": "report-canvas-chat-close",
808
809
  class: "chat-icon-button flex h-[36px] w-[36px] shrink-0 items-center justify-center rounded-md text-fm-color-typo-secondary",
809
810
  "aria-label": s(r)("reportV5.reportAi.chat.hide"),
810
- onClick: i[0] || (i[0] = (D) => a("close"))
811
+ onClick: i[0] || (i[0] = (j) => a("close"))
811
812
  }, [
812
813
  Z(f, {
813
814
  name: "close",
814
815
  size: "md"
815
816
  })
816
- ], 8, La)
817
+ ], 8, Ma)
817
818
  ]),
818
819
  _: 1
819
820
  }, 8, ["content"])
@@ -824,23 +825,23 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
824
825
  class: "flex min-h-0 grow flex-col overflow-y-auto px-[20px] py-24",
825
826
  "aria-label": s(r)("reportV5.reportAi.chat.chats")
826
827
  }, [
827
- y.value ? R("", !0) : (c(), p("div", Pa, [
828
+ y.value ? R("", !0) : (c(), p("div", ja, [
828
829
  w("div", Da, [
829
- w("h3", ja, k(s(r)("reportV5.reportAi.chat.exploreTitle")), 1),
830
- w("p", Va, k(s(r)(
830
+ w("h3", Va, k(s(r)("reportV5.reportAi.chat.exploreTitle")), 1),
831
+ w("p", Fa, k(s(r)(
831
832
  n.blank ? "reportV5.reportAi.chat.placeholderNew" : "reportV5.reportAi.chat.exploreHint"
832
833
  )), 1)
833
834
  ]),
834
- le.value.length ? (c(), p("div", Fa, [
835
- (c(!0), p(ve, null, Se(le.value, (D) => (c(), p("button", {
836
- key: D.label,
835
+ le.value.length ? (c(), p("div", qa, [
836
+ (c(!0), p(ve, null, Se(le.value, (j) => (c(), p("button", {
837
+ key: j.label,
837
838
  "data-testid": "report-canvas-suggestion",
838
839
  class: "chat-row fm-typo-en-body-md-600 flex w-full items-center justify-between gap-12 rounded-md px-8 py-12 text-left text-fm-color-primary",
839
840
  disabled: n.busy,
840
- title: D.prompt,
841
- onClick: (re) => oe(D.prompt)
841
+ title: j.prompt,
842
+ onClick: (re) => oe(j.prompt)
842
843
  }, [
843
- w("span", null, k(D.label), 1),
844
+ w("span", null, k(j.label), 1),
844
845
  Z(f, {
845
846
  name: "chevron_right",
846
847
  size: "sm",
@@ -854,15 +855,15 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
854
855
  class: "shrink-0 pt-24",
855
856
  "aria-label": s(r)("reportV5.reportAi.chat.recentChats")
856
857
  }, [
857
- w("h3", Ua, k(s(r)(
858
+ w("h3", Ha, k(s(r)(
858
859
  y.value ? "reportV5.reportAi.chat.yourChats" : "reportV5.reportAi.chat.recentChats"
859
860
  )), 1),
860
- n.chatsLoading && !((P = n.chats) != null && P.length) ? (c(), p("p", Ha, k(s(r)("reportV5.reportAi.chat.loadingChats")), 1)) : n.chatsError ? (c(), p("p", Wa, k(n.chatsError), 1)) : ($ = n.chats) != null && $.length ? (c(!0), p(ve, { key: 3 }, Se(ce.value, (D) => (c(), p("section", {
861
- key: D.key,
861
+ n.chatsLoading && !((P = n.chats) != null && P.length) ? (c(), p("p", Wa, k(s(r)("reportV5.reportAi.chat.loadingChats")), 1)) : n.chatsError ? (c(), p("p", Ga, k(n.chatsError), 1)) : ($ = n.chats) != null && $.length ? (c(!0), p(ve, { key: 3 }, Se(ce.value, (j) => (c(), p("section", {
862
+ key: j.key,
862
863
  class: Pe(y.value ? "mb-16" : "")
863
864
  }, [
864
- D.label ? (c(), p("p", Ya, k(D.label), 1)) : R("", !0),
865
- (c(!0), p(ve, null, Se(D.chats, (re) => (c(), p("button", {
865
+ j.label ? (c(), p("p", Ja, k(j.label), 1)) : R("", !0),
866
+ (c(!0), p(ve, null, Se(j.chats, (re) => (c(), p("button", {
866
867
  key: re.id,
867
868
  "data-testid": "report-canvas-chat-list-item",
868
869
  class: "chat-row flex w-full items-center gap-12 rounded-md px-8 py-12 text-left",
@@ -871,73 +872,73 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
871
872
  title: re.title,
872
873
  onClick: (be) => Y(re.id)
873
874
  }, [
874
- w("span", Ja, k(re.title), 1),
875
+ w("span", Xa, k(re.title), 1),
875
876
  w("time", {
876
877
  datetime: re.lastMessageAt,
877
878
  class: "fm-typo-en-body-sm-400 shrink-0 text-fm-color-typo-secondary"
878
- }, k(J(re)), 9, Xa)
879
+ }, k(K(re)), 9, Qa)
879
880
  ], 8, Ka))), 128))
880
- ], 2))), 128)) : (c(), p("p", Ga, k(s(r)("reportV5.reportAi.chat.noChats")), 1)),
881
+ ], 2))), 128)) : (c(), p("p", Ya, k(s(r)("reportV5.reportAi.chat.noChats")), 1)),
881
882
  y.value ? n.chatsCursor ? (c(), p("button", {
882
883
  key: 5,
883
884
  "data-testid": "report-canvas-chat-list-more",
884
885
  class: "chat-row fm-typo-en-body-sm-600 rounded-md px-8 py-12 text-fm-color-typo-secondary",
885
886
  disabled: n.chatsLoading,
886
- onClick: i[1] || (i[1] = (D) => a("loadMoreChats"))
887
- }, k(s(r)("reportV5.reportAi.chat.loadMoreChats")), 9, Za)) : R("", !0) : (c(), p("button", {
887
+ onClick: i[1] || (i[1] = (j) => a("loadMoreChats"))
888
+ }, k(s(r)("reportV5.reportAi.chat.loadMoreChats")), 9, er)) : R("", !0) : (c(), p("button", {
888
889
  key: 4,
889
890
  "data-testid": "report-canvas-chat-see-all",
890
891
  class: "chat-row fm-typo-en-body-sm-600 mt-8 rounded-md px-8 py-12 text-fm-color-typo-secondary",
891
892
  disabled: n.chatsLoading,
892
893
  onClick: W
893
- }, k(s(r)("reportV5.reportAi.chat.seeAll")), 9, Qa))
894
- ], 8, qa)) : R("", !0),
895
- n.error ? (c(), p("p", er, k(n.error), 1)) : R("", !0)
896
- ], 8, Ma)) : (c(), p("div", tr, [
894
+ }, k(s(r)("reportV5.reportAi.chat.seeAll")), 9, Za))
895
+ ], 8, Ua)) : R("", !0),
896
+ n.error ? (c(), p("p", tr, k(n.error), 1)) : R("", !0)
897
+ ], 8, Pa)) : (c(), p("div", nr, [
897
898
  w("div", {
898
899
  ref_key: "scroller",
899
900
  ref: xe,
900
901
  class: "min-h-0 grow overflow-y-auto px-[20px] py-16",
901
902
  onScroll: S
902
903
  }, [
903
- N.value ? (c(), p("p", nr, k(s(r)("reportV5.reportAi.chat.loadingChat")), 1)) : (c(), p(ve, { key: 1 }, [
904
+ N.value ? (c(), p("p", ar, k(s(r)("reportV5.reportAi.chat.loadingChat")), 1)) : (c(), p(ve, { key: 1 }, [
904
905
  n.earlier ? (c(), p("button", {
905
906
  key: 0,
906
907
  "data-testid": "report-canvas-load-earlier",
907
908
  class: "fm-typo-en-body-sm-600 mb-16 w-full text-fm-color-typo-secondary disabled:opacity-50",
908
909
  disabled: n.loadingEarlier,
909
- onClick: i[2] || (i[2] = (D) => a("loadEarlier"))
910
- }, k(s(r)("reportV5.reportAi.chat.loadEarlier")), 9, ar)) : R("", !0),
911
- (c(!0), p(ve, null, Se(z.value, (D, re) => (c(), p("div", {
912
- key: D.id,
910
+ onClick: i[2] || (i[2] = (j) => a("loadEarlier"))
911
+ }, k(s(r)("reportV5.reportAi.chat.loadEarlier")), 9, rr)) : R("", !0),
912
+ (c(!0), p(ve, null, Se(z.value, (j, re) => (c(), p("div", {
913
+ key: j.id,
913
914
  class: "mb-16"
914
915
  }, [
915
- D.target ? (c(), p("p", rr, k(s(r)("reportV5.reportAi.chat.commentOn", {
916
- widget: D.target.label || s(r)("reportV5.reportAi.chat.selectedWidget")
916
+ j.target ? (c(), p("p", or, k(s(r)("reportV5.reportAi.chat.commentOn", {
917
+ widget: j.target.label || s(r)("reportV5.reportAi.chat.selectedWidget")
917
918
  })), 1)) : R("", !0),
918
- D.role === "user" ? (c(), p("div", or, [
919
+ j.role === "user" ? (c(), p("div", ir, [
919
920
  w("div", {
920
921
  "data-testid": "report-canvas-user-message",
921
922
  class: Pe([
922
923
  "fm-typo-en-body-md-400 max-w-[90%] whitespace-pre-wrap rounded-md px-12 py-8 !leading-[21px]",
923
- B.value.has(D.id) ? "bg-fm-color-neutral-gray-100 text-fm-color-typo-secondary" : "bg-fm-color-system-info-100"
924
+ q.value.has(j.id) ? "bg-fm-color-neutral-gray-100 text-fm-color-typo-secondary" : "bg-fm-color-system-info-100"
924
925
  ])
925
- }, k(D.answer), 3),
926
- B.value.has(D.id) ? (c(), p("p", ir, [
926
+ }, k(j.answer), 3),
927
+ q.value.has(j.id) ? (c(), p("p", sr, [
927
928
  Ft(k(s(r)("reportV5.reportAi.chat.notSent")) + " ", 1),
928
929
  w("button", {
929
930
  "data-testid": "chat-message-resend",
930
931
  class: "ml-4 underline disabled:opacity-50",
931
932
  disabled: n.streaming || n.busy,
932
- onClick: (be) => a("resend", D.id)
933
- }, k(s(r)("reportV5.reportAi.chat.resend")), 9, sr)
934
- ])) : F.value.has(D.turnId) ? (c(), p("button", {
933
+ onClick: (be) => a("resend", j.id)
934
+ }, k(s(r)("reportV5.reportAi.chat.resend")), 9, lr)
935
+ ])) : F.value.has(j.turnId) ? (c(), p("button", {
935
936
  key: 1,
936
937
  "data-testid": "chat-turn-undo",
937
938
  class: "fm-typo-en-body-sm-400 mt-4 text-fm-color-typo-secondary underline disabled:opacity-50",
938
939
  disabled: n.undoing || n.streaming,
939
- onClick: (be) => a("undo", D.turnId)
940
- }, k(s(r)("reportV5.reportCanvas.draft.undo")), 9, lr)) : R("", !0)
940
+ onClick: (be) => a("undo", j.turnId)
941
+ }, k(s(r)("reportV5.reportCanvas.draft.undo")), 9, fr)) : R("", !0)
941
942
  ])) : (c(), p(ve, { key: 2 }, [
942
943
  re === g.value || re === H.value ? (c(), me(At, St({
943
944
  key: 0,
@@ -947,23 +948,23 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
947
948
  onRetry: i[3] || (i[3] = (be) => a("retry", be)),
948
949
  onCheckStatus: i[4] || (i[4] = (be) => a("checkStatus"))
949
950
  }), null, 16)) : R("", !0),
950
- D.blocks.length ? (c(), me(ma, {
951
+ j.blocks.length ? (c(), me(ua, {
951
952
  key: 1,
952
953
  "data-testid": "report-canvas-answer",
953
- blocks: D.blocks,
954
- preview: D.preview
955
- }, null, 8, ["blocks", "preview"])) : D.noSummary ? (c(), p("p", fr, k(s(r)("reportV5.reportAi.chat.noSummary")), 1)) : R("", !0),
956
- D.ms ? (c(), p("p", dr, k(s(r)("reportV5.reportAi.chat.took", { duration: s(Sa)(D.ms) })), 1)) : R("", !0)
954
+ blocks: j.blocks,
955
+ preview: j.preview
956
+ }, null, 8, ["blocks", "preview"])) : j.noSummary ? (c(), p("p", dr, k(s(r)("reportV5.reportAi.chat.noSummary")), 1)) : R("", !0),
957
+ j.ms ? (c(), p("p", cr, k(s(r)("reportV5.reportAi.chat.took", { duration: s(Ia)(j.ms) })), 1)) : R("", !0)
957
958
  ], 64))
958
959
  ]))), 128)),
959
- K.value ? (c(), me(At, St({
960
+ J.value ? (c(), me(At, St({
960
961
  key: 1,
961
962
  class: "mb-16"
962
963
  }, ye(-1), {
963
- onRetry: i[5] || (i[5] = (D) => a("retry", D)),
964
- onCheckStatus: i[6] || (i[6] = (D) => a("checkStatus"))
964
+ onRetry: i[5] || (i[5] = (j) => a("retry", j)),
965
+ onCheckStatus: i[6] || (i[6] = (j) => a("checkStatus"))
965
966
  }), null, 16)) : R("", !0),
966
- n.error ? (c(), p("p", cr, k(n.error), 1)) : R("", !0)
967
+ n.error ? (c(), p("p", mr, k(n.error), 1)) : R("", !0)
967
968
  ], 64))
968
969
  ], 544),
969
970
  u.value ? (c(), p("button", {
@@ -973,8 +974,8 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
973
974
  onClick: M
974
975
  }, k(s(r)("reportV5.reportAi.chat.jumpToLatest")), 1)) : R("", !0)
975
976
  ])),
976
- w("div", mr, [
977
- Z(la, {
977
+ w("div", ur, [
978
+ Z(fa, {
978
979
  ref_key: "composer",
979
980
  ref: _,
980
981
  draft: h.value ? I.value : n.draft,
@@ -984,13 +985,13 @@ const Ta = ["aria-label"], Ea = { class: "flex h-64 shrink-0 items-center gap-12
984
985
  blank: n.blank,
985
986
  "onUpdate:draft": te,
986
987
  onSubmit: d,
987
- onClearTarget: i[7] || (i[7] = (D) => a("clearTarget"))
988
+ onClearTarget: i[7] || (i[7] = (j) => a("clearTarget"))
988
989
  }, null, 8, ["draft", "target", "target-stale", "streaming", "blank"])
989
990
  ])
990
- ], 40, Ta);
991
+ ], 40, Ea);
991
992
  };
992
993
  }
993
- }), br = /* @__PURE__ */ ut(hr, [["__scopeId", "data-v-0840b672"]]);
994
+ }), gr = /* @__PURE__ */ ut(br, [["__scopeId", "data-v-0840b672"]]);
994
995
  function ze(o) {
995
996
  const { businessId: e } = Oe(Ye());
996
997
  if (!e.value) throw new Error("Business Id is not defined");
@@ -1002,7 +1003,7 @@ const Rt = (o) => {
1002
1003
  url: ze(o)
1003
1004
  };
1004
1005
  return ue.fetch(e);
1005
- }, gr = (o, e, t, a, r) => {
1006
+ }, vr = (o, e, t, a, r) => {
1006
1007
  const m = {
1007
1008
  fetchType: pe.Post,
1008
1009
  url: `${ze(o)}/query/${e}`,
@@ -1010,65 +1011,65 @@ const Rt = (o) => {
1010
1011
  data: { params: t, timezone: a, state: r }
1011
1012
  };
1012
1013
  return ue.fetch(m);
1013
- }, vr = (o, e, t, a) => {
1014
+ }, yr = (o, e, t, a) => {
1014
1015
  const r = {
1015
1016
  fetchType: pe.Post,
1016
1017
  url: `${ze(o)}/section/${e}/ack`,
1017
1018
  data: { ...t, state: a }
1018
1019
  };
1019
1020
  return ue.fetch(r);
1020
- }, yr = (o) => ue.fetch({
1021
+ }, xr = (o) => ue.fetch({
1021
1022
  fetchType: pe.Post,
1022
1023
  url: `${ze(o)}/publish`,
1023
1024
  data: {}
1024
- }), xr = (o) => ue.fetch({
1025
+ }), wr = (o) => ue.fetch({
1025
1026
  fetchType: pe.Delete,
1026
1027
  url: `${ze(o)}/draft`
1027
- }), wr = (o, e) => ue.fetch({
1028
+ }), kr = (o, e) => ue.fetch({
1028
1029
  fetchType: pe.Post,
1029
1030
  url: `${ze(o)}/draft/undo`,
1030
1031
  data: { turnId: e }
1031
- }), kr = (o) => ue.fetch({
1032
+ }), _r = (o) => ue.fetch({
1032
1033
  fetchType: pe.Get,
1033
1034
  url: `${ze(o)}/versions`
1034
- }), _r = (o, e) => ue.fetch({
1035
+ }), Sr = (o, e) => ue.fetch({
1035
1036
  fetchType: pe.Post,
1036
1037
  url: `${ze(o)}/restore`,
1037
1038
  data: { versionId: e }
1038
- }), Sr = ["aria-label"], Ir = { class: "flex h-64 shrink-0 items-center gap-12 border-b border-fm-color-border-secondary px-[20px]" }, Cr = { class: "fm-typo-en-body-md-600 grow" }, Ar = ["aria-label", "disabled"], Tr = { class: "min-h-0 grow overflow-y-auto px-[20px] py-[20px]" }, Er = { class: "fm-typo-en-body-md-400 mb-[20px] text-fm-color-typo-secondary" }, Or = { class: "mb-24 rounded-[12px] border border-fm-color-border-secondary p-16" }, zr = { class: "mb-8 flex items-center gap-8" }, Nr = { class: "fm-typo-en-body-md-600 grow" }, $r = { class: "fm-typo-en-body-sm-600 rounded-md bg-fm-color-neutral-gray-100 px-8 py-4" }, Rr = {
1039
+ }), Ir = ["aria-label"], Cr = { class: "flex h-64 shrink-0 items-center gap-12 border-b border-fm-color-border-secondary px-[20px]" }, Ar = { class: "fm-typo-en-body-md-600 grow" }, Tr = ["aria-label", "disabled"], Er = { class: "min-h-0 grow overflow-y-auto px-[20px] py-[20px]" }, Or = { class: "fm-typo-en-body-md-400 mb-[20px] text-fm-color-typo-secondary" }, zr = { class: "mb-24 rounded-[12px] border border-fm-color-border-secondary p-16" }, Nr = { class: "mb-8 flex items-center gap-8" }, $r = { class: "fm-typo-en-body-md-600 grow" }, Rr = { class: "fm-typo-en-body-sm-600 rounded-md bg-fm-color-neutral-gray-100 px-8 py-4" }, Lr = {
1039
1040
  key: 0,
1040
1041
  class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
1041
- }, Lr = ["aria-label"], Mr = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Pr = {
1042
+ }, Mr = ["aria-label"], Pr = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, jr = {
1042
1043
  key: 1,
1043
1044
  role: "alert",
1044
1045
  class: "rounded-[12px] border border-fm-color-border-secondary p-[20px]"
1045
- }, Dr = { class: "fm-typo-en-body-md-600 mb-8" }, jr = { class: "fm-typo-en-body-md-400 mb-16 text-fm-color-typo-secondary" }, Vr = {
1046
+ }, Dr = { class: "fm-typo-en-body-md-600 mb-8" }, Vr = { class: "fm-typo-en-body-md-400 mb-16 text-fm-color-typo-secondary" }, Fr = {
1046
1047
  key: 2,
1047
1048
  class: "flex flex-col items-center rounded-[12px] bg-fm-color-neutral-gray-50 px-16 py-32 text-center"
1048
- }, Fr = { class: "fm-typo-en-body-md-600 mb-8" }, Br = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, qr = { class: "fm-typo-en-body-sm-600 mb-12 text-fm-color-typo-secondary" }, Ur = { class: "ml-4 border-l border-fm-color-border-secondary pl-16" }, Hr = ["aria-expanded", "aria-controls", "aria-current", "disabled", "onClick"], Wr = { class: "mb-4 flex items-center gap-8" }, Gr = ["datetime", "title"], Yr = {
1049
+ }, qr = { class: "fm-typo-en-body-md-600 mb-8" }, Br = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Ur = { class: "fm-typo-en-body-sm-600 mb-12 text-fm-color-typo-secondary" }, Hr = { class: "ml-4 border-l border-fm-color-border-secondary pl-16" }, Wr = ["aria-expanded", "aria-controls", "aria-current", "disabled", "onClick"], Gr = { class: "mb-4 flex items-center gap-8" }, Yr = ["datetime", "title"], Jr = {
1049
1050
  key: 0,
1050
1051
  "data-testid": "canvas-version-current",
1051
1052
  class: "fm-typo-en-body-sm-600 rounded-md bg-fm-color-neutral-gray-100 px-8 py-4 text-fm-color-typo-secondary"
1052
1053
  }, Kr = {
1053
1054
  key: 0,
1054
1055
  class: "fm-typo-en-body-md-600 block break-words text-fm-color-typo-secondary"
1055
- }, Jr = { class: "fm-typo-en-body-md-400 line-clamp-3 block break-words" }, Xr = {
1056
+ }, Xr = { class: "fm-typo-en-body-md-400 line-clamp-3 block break-words" }, Qr = {
1056
1057
  "data-testid": "canvas-version-author",
1057
1058
  class: "mt-8 flex items-center gap-8 text-fm-color-typo-secondary"
1058
- }, Qr = { class: "fm-typo-en-body-sm-400 line-clamp-1 break-words" }, Zr = { class: "shrink-0 border-t border-fm-color-border-secondary p-[20px]" }, eo = { class: "fm-typo-en-body-sm-400 mb-4 text-fm-color-typo-secondary" }, to = { class: "fm-typo-en-body-md-400 mb-16 max-h-[120px] overflow-y-auto whitespace-pre-wrap break-words" }, no = {
1059
+ }, Zr = { class: "fm-typo-en-body-sm-400 line-clamp-1 break-words" }, eo = { class: "shrink-0 border-t border-fm-color-border-secondary p-[20px]" }, to = { class: "fm-typo-en-body-sm-400 mb-4 text-fm-color-typo-secondary" }, no = { class: "fm-typo-en-body-md-400 mb-16 max-h-[120px] overflow-y-auto whitespace-pre-wrap break-words" }, ao = {
1059
1060
  key: 0,
1060
1061
  role: "alert",
1061
1062
  class: "fm-typo-en-body-md-400 mb-12 text-fm-color-typo-error"
1062
- }, ao = {
1063
+ }, ro = {
1063
1064
  key: 1,
1064
1065
  class: "fm-typo-en-body-md-400 mb-12 text-fm-color-typo-secondary"
1065
- }, ro = {
1066
+ }, oo = {
1066
1067
  key: 2,
1067
1068
  class: "flex items-center justify-end gap-8"
1068
- }, oo = ["disabled"], io = {
1069
+ }, io = ["disabled"], so = {
1069
1070
  key: 1,
1070
1071
  class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
1071
- }, so = { class: "fm-typo-en-body-sm-400 mt-12 text-fm-color-typo-secondary" }, lo = /* @__PURE__ */ je({
1072
+ }, lo = { class: "fm-typo-en-body-sm-400 mt-12 text-fm-color-typo-secondary" }, fo = /* @__PURE__ */ De({
1072
1073
  __name: "ReportCanvasHistory",
1073
1074
  props: {
1074
1075
  reportId: {},
@@ -1079,15 +1080,15 @@ const Rt = (o) => {
1079
1080
  },
1080
1081
  emits: ["close", "restored", "restoring"],
1081
1082
  setup(o, { emit: e }) {
1082
- const t = o, a = e, { t: r, locale: m } = Ve(), h = (C, u = {}) => r(`reportV5.reportCanvas.history.${C}`, u), y = T([]), I = T(!0), b = T(!1), L = T(!1), x = T(!1), N = T(!1), E = T(), W = T(), j = T(), Y = T(), U = V(() => y.value.find((C) => C.id === E.value)), O = V(() => t.hasDraft || t.busy || x.value);
1083
- let G = !0, J = null;
1083
+ const t = o, a = e, { t: r, locale: m } = Ve(), h = (C, u = {}) => r(`reportV5.reportCanvas.history.${C}`, u), y = T([]), I = T(!0), b = T(!1), L = T(!1), x = T(!1), N = T(!1), E = T(), W = T(), D = T(), Y = T(), U = V(() => y.value.find((C) => C.id === E.value)), O = V(() => t.hasDraft || t.busy || x.value);
1084
+ let G = !0, K = null;
1084
1085
  function F(C, u) {
1085
1086
  const S = new Date(C);
1086
1087
  return Number.isFinite(S.getTime()) ? new Intl.DateTimeFormat(m.value, { ...u, timeZone: t.timezone }).format(
1087
1088
  S
1088
1089
  ) : h("unknownDate");
1089
1090
  }
1090
- const B = (C) => F(C, { dateStyle: "medium", timeStyle: "short" }), _ = (C) => F(C, { hour: "numeric", minute: "2-digit", second: "2-digit" }), z = (C) => F(C, { year: "numeric", month: "2-digit", day: "2-digit" });
1091
+ const q = (C) => F(C, { dateStyle: "medium", timeStyle: "short" }), _ = (C) => F(C, { hour: "numeric", minute: "2-digit", second: "2-digit" }), z = (C) => F(C, { year: "numeric", month: "2-digit", day: "2-digit" });
1091
1092
  function g(C) {
1092
1093
  return z(C) === z((/* @__PURE__ */ new Date()).toISOString()) ? h("today") : F(C, { month: "long", day: "numeric", year: "numeric" });
1093
1094
  }
@@ -1098,17 +1099,17 @@ const Rt = (o) => {
1098
1099
  M ? M.versions.push(u) : C.push({ key: S, label: g(u.at), versions: [u] });
1099
1100
  }
1100
1101
  return C;
1101
- }), K = (C) => {
1102
+ }), J = (C) => {
1102
1103
  var u;
1103
1104
  return C.id === ((u = y.value[0]) == null ? void 0 : u.id);
1104
- }, ee = (C) => C.prompt.trim() || h("noPrompt"), X = (C) => C.restoredFrom ? h("restoredFrom", { at: B(C.restoredFrom) }) : "", se = (C) => [X(C), ee(C)].filter(Boolean).join(" "), ce = (C) => {
1105
+ }, ee = (C) => C.prompt.trim() || h("noPrompt"), X = (C) => C.restoredFrom ? h("restoredFrom", { at: q(C.restoredFrom) }) : "", se = (C) => [X(C), ee(C)].filter(Boolean).join(" "), ce = (C) => {
1105
1106
  var u, S;
1106
1107
  return ((u = C.author) == null ? void 0 : u.name) || ((S = C.author) == null ? void 0 : S.email) || h("unknownUser");
1107
1108
  };
1108
1109
  async function ye() {
1109
1110
  I.value = !0, b.value = !1;
1110
1111
  try {
1111
- const C = await kr(t.reportId);
1112
+ const C = await _r(t.reportId);
1112
1113
  G && (y.value = C);
1113
1114
  } catch {
1114
1115
  G && (b.value = !0);
@@ -1117,11 +1118,11 @@ const Rt = (o) => {
1117
1118
  }
1118
1119
  }
1119
1120
  function he(C) {
1120
- x.value || K(C) || (E.value = E.value === C.id ? void 0 : C.id, N.value = !1, L.value = !1);
1121
+ x.value || J(C) || (E.value = E.value === C.id ? void 0 : C.id, N.value = !1, L.value = !1);
1121
1122
  }
1122
1123
  async function le() {
1123
1124
  var C;
1124
- !U.value || O.value || (N.value = !0, await Ee(), (C = j.value) == null || C.focus());
1125
+ !U.value || O.value || (N.value = !0, await Ee(), (C = D.value) == null || C.focus());
1125
1126
  }
1126
1127
  async function oe() {
1127
1128
  var C;
@@ -1131,7 +1132,7 @@ const Rt = (o) => {
1131
1132
  if (!(!U.value || O.value || !N.value)) {
1132
1133
  x.value = !0, a("restoring", !0), L.value = !1;
1133
1134
  try {
1134
- const C = await _r(t.reportId, U.value.id);
1135
+ const C = await Sr(t.reportId, U.value.id);
1135
1136
  G && a("restored", C);
1136
1137
  } catch {
1137
1138
  G && (L.value = !0);
@@ -1147,9 +1148,9 @@ const Rt = (o) => {
1147
1148
  C && !x.value && (N.value = !1);
1148
1149
  }), Me(() => {
1149
1150
  var C;
1150
- J = document.activeElement, (C = W.value) == null || C.focus(), ye();
1151
- }), De(() => {
1152
- G = !1, J == null || J.focus();
1151
+ K = document.activeElement, (C = W.value) == null || C.focus(), ye();
1152
+ }), je(() => {
1153
+ G = !1, K == null || K.focus();
1153
1154
  }), (C, u) => {
1154
1155
  const S = Ie("FmIcon"), M = Ie("FmButton"), d = Ie("FmAvatar");
1155
1156
  return c(), p("aside", {
@@ -1158,13 +1159,13 @@ const Rt = (o) => {
1158
1159
  "aria-label": h("title"),
1159
1160
  onKeydown: xe
1160
1161
  }, [
1161
- w("header", Ir, [
1162
+ w("header", Cr, [
1162
1163
  Z(S, {
1163
1164
  name: "history",
1164
1165
  size: "md",
1165
1166
  class: "text-fm-color-typo-secondary"
1166
1167
  }),
1167
- w("h2", Cr, k(h("title")), 1),
1168
+ w("h2", Ar, k(h("title")), 1),
1168
1169
  w("button", {
1169
1170
  ref_key: "closeButton",
1170
1171
  ref: W,
@@ -1178,20 +1179,20 @@ const Rt = (o) => {
1178
1179
  name: "close",
1179
1180
  size: "md"
1180
1181
  })
1181
- ], 8, Ar)
1182
+ ], 8, Tr)
1182
1183
  ]),
1183
- w("div", Tr, [
1184
- w("p", Er, k(h("intro")), 1),
1185
- w("div", Or, [
1186
- w("div", zr, [
1184
+ w("div", Er, [
1185
+ w("p", Or, k(h("intro")), 1),
1186
+ w("div", zr, [
1187
+ w("div", Nr, [
1187
1188
  u[1] || (u[1] = w("span", {
1188
1189
  class: "h-8 w-8 rounded-full bg-fm-color-primary",
1189
1190
  "aria-hidden": "true"
1190
1191
  }, null, -1)),
1191
- w("span", Nr, k(h("current")), 1),
1192
- w("span", $r, k(h("published")), 1)
1192
+ w("span", $r, k(h("current")), 1),
1193
+ w("span", Rr, k(h("published")), 1)
1193
1194
  ]),
1194
- C.publishedAt ? (c(), p("p", Rr, k(B(C.publishedAt)), 1)) : R("", !0)
1195
+ C.publishedAt ? (c(), p("p", Lr, k(q(C.publishedAt)), 1)) : R("", !0)
1195
1196
  ]),
1196
1197
  I.value ? (c(), p("div", {
1197
1198
  key: 0,
@@ -1199,7 +1200,7 @@ const Rt = (o) => {
1199
1200
  class: "space-y-16",
1200
1201
  "aria-label": h("loading")
1201
1202
  }, [
1202
- w("p", Mr, k(h("loading")), 1),
1203
+ w("p", Pr, k(h("loading")), 1),
1203
1204
  (c(), p(ve, null, Se(3, (n) => w("div", {
1204
1205
  key: n,
1205
1206
  class: "rounded-lg border border-fm-color-border-secondary p-16",
@@ -1208,29 +1209,29 @@ const Rt = (o) => {
1208
1209
  w("div", { class: "mb-12 h-12 w-1/3 rounded bg-fm-color-neutral-gray-100" }, null, -1),
1209
1210
  w("div", { class: "h-12 w-3/4 rounded bg-fm-color-neutral-gray-100" }, null, -1)
1210
1211
  ]))), 64))
1211
- ], 8, Lr)) : b.value ? (c(), p("div", Pr, [
1212
+ ], 8, Mr)) : b.value ? (c(), p("div", jr, [
1212
1213
  w("p", Dr, k(h("loadFailed")), 1),
1213
- w("p", jr, k(h("loadFailedHint")), 1),
1214
+ w("p", Vr, k(h("loadFailedHint")), 1),
1214
1215
  Z(M, {
1215
1216
  variant: "secondary",
1216
1217
  label: h("retry"),
1217
1218
  onClick: ye
1218
1219
  }, null, 8, ["label"])
1219
- ])) : y.value.length ? R("", !0) : (c(), p("div", Vr, [
1220
+ ])) : y.value.length ? R("", !0) : (c(), p("div", Fr, [
1220
1221
  Z(S, {
1221
1222
  name: "history",
1222
1223
  size: "lg",
1223
1224
  class: "mb-12 text-fm-color-typo-secondary"
1224
1225
  }),
1225
- w("p", Fr, k(h("empty")), 1),
1226
+ w("p", qr, k(h("empty")), 1),
1226
1227
  w("p", Br, k(h("emptyHint")), 1)
1227
1228
  ])),
1228
1229
  (c(!0), p(ve, null, Se(I.value || b.value ? [] : H.value, (n) => (c(), p("section", {
1229
1230
  key: n.key,
1230
1231
  class: "mb-[20px]"
1231
1232
  }, [
1232
- w("h3", qr, k(n.label), 1),
1233
- w("ul", Ur, [
1233
+ w("h3", Ur, k(n.label), 1),
1234
+ w("ul", Hr, [
1234
1235
  (c(!0), p(ve, null, Se(n.versions, (i) => {
1235
1236
  var f, A, P;
1236
1237
  return c(), p("li", {
@@ -1249,17 +1250,17 @@ const Rt = (o) => {
1249
1250
  ]),
1250
1251
  "aria-expanded": E.value === i.id,
1251
1252
  "aria-controls": E.value === i.id ? "canvas-version-details" : void 0,
1252
- "aria-current": K(i) ? "true" : void 0,
1253
- disabled: x.value || K(i),
1253
+ "aria-current": J(i) ? "true" : void 0,
1254
+ disabled: x.value || J(i),
1254
1255
  onClick: ($) => he(i)
1255
1256
  }, [
1256
- w("span", Wr, [
1257
+ w("span", Gr, [
1257
1258
  w("time", {
1258
1259
  datetime: i.at,
1259
- title: B(i.at),
1260
+ title: q(i.at),
1260
1261
  class: "fm-typo-en-body-sm-400 grow text-fm-color-typo-secondary"
1261
- }, k(_(i.at)), 9, Gr),
1262
- K(i) ? (c(), p("span", Yr, k(h("currentBadge")), 1)) : E.value === i.id ? (c(), me(S, {
1262
+ }, k(_(i.at)), 9, Yr),
1263
+ J(i) ? (c(), p("span", Jr, k(h("currentBadge")), 1)) : E.value === i.id ? (c(), me(S, {
1263
1264
  key: 1,
1264
1265
  name: "check",
1265
1266
  size: "sm",
@@ -1267,22 +1268,22 @@ const Rt = (o) => {
1267
1268
  })) : R("", !0)
1268
1269
  ]),
1269
1270
  X(i) ? (c(), p("span", Kr, k(X(i)), 1)) : R("", !0),
1270
- w("span", Jr, k(ee(i)), 1),
1271
- w("span", Xr, [
1271
+ w("span", Xr, k(ee(i)), 1),
1272
+ w("span", Qr, [
1272
1273
  Z(d, {
1273
1274
  size: "sm",
1274
1275
  name: ((f = i.author) == null ? void 0 : f.name) || ((A = i.author) == null ? void 0 : A.email) || "?",
1275
1276
  src: (P = i.author) == null ? void 0 : P.photoUrl
1276
1277
  }, null, 8, ["name", "src"]),
1277
- w("span", Qr, k(ce(i)), 1)
1278
+ w("span", Zr, k(ce(i)), 1)
1278
1279
  ])
1279
- ], 10, Hr)
1280
+ ], 10, Wr)
1280
1281
  ]);
1281
1282
  }), 128))
1282
1283
  ])
1283
1284
  ]))), 128))
1284
1285
  ]),
1285
- w("footer", Zr, [
1286
+ w("footer", eo, [
1286
1287
  U.value ? (c(), p("div", {
1287
1288
  key: 0,
1288
1289
  id: "canvas-version-details",
@@ -1291,18 +1292,18 @@ const Rt = (o) => {
1291
1292
  tabindex: "-1",
1292
1293
  class: "history-details"
1293
1294
  }, [
1294
- w("p", eo, k(h("savedBy", { user: ce(U.value), at: B(U.value.at) })), 1),
1295
- w("p", to, k(N.value ? h("confirmHint") : se(U.value)), 1),
1296
- L.value ? (c(), p("p", no, k(h("restoreFailed")), 1)) : R("", !0),
1297
- C.hasDraft || C.busy ? (c(), p("p", ao, k(h(C.hasDraft ? "draftHint" : "busyHint")), 1)) : R("", !0),
1298
- N.value ? (c(), p("div", ro, [
1295
+ w("p", to, k(h("savedBy", { user: ce(U.value), at: q(U.value.at) })), 1),
1296
+ w("p", no, k(N.value ? h("confirmHint") : se(U.value)), 1),
1297
+ L.value ? (c(), p("p", ao, k(h("restoreFailed")), 1)) : R("", !0),
1298
+ C.hasDraft || C.busy ? (c(), p("p", ro, k(h(C.hasDraft ? "draftHint" : "busyHint")), 1)) : R("", !0),
1299
+ N.value ? (c(), p("div", oo, [
1299
1300
  w("button", {
1300
1301
  ref_key: "cancelButton",
1301
- ref: j,
1302
+ ref: D,
1302
1303
  class: "history-button fm-typo-en-body-md-600 rounded-lg px-16 py-12",
1303
1304
  disabled: x.value,
1304
1305
  onClick: oe
1305
- }, k(h("cancel")), 9, oo),
1306
+ }, k(h("cancel")), 9, io),
1306
1307
  Z(M, {
1307
1308
  "data-testid": "canvas-version-confirm",
1308
1309
  variant: "primary",
@@ -1320,52 +1321,34 @@ const Rt = (o) => {
1320
1321
  disabled: O.value,
1321
1322
  onClick: le
1322
1323
  }, null, 8, ["label", "disabled"]))
1323
- ], 512)) : (c(), p("p", io, k(h("selectHint")), 1)),
1324
- w("p", so, k(h("timezone", { timezone: C.timezone })), 1)
1324
+ ], 512)) : (c(), p("p", so, k(h("selectHint")), 1)),
1325
+ w("p", lo, k(h("timezone", { timezone: C.timezone })), 1)
1325
1326
  ])
1326
- ], 40, Sr);
1327
+ ], 40, Ir);
1327
1328
  };
1328
1329
  }
1329
- }), fo = /* @__PURE__ */ ut(lo, [["__scopeId", "data-v-7df5ac71"]]), co = ["@from", "@to", "@locationIds", "@timezone"], lt = ["@from", "@to", "@locationIds"], mo = ["@timezone"], uo = ["@locationIds"], po = 1, ho = 1500;
1330
- function bo(o) {
1330
+ }), co = /* @__PURE__ */ ut(fo, [["__scopeId", "data-v-7df5ac71"]]), mo = ["@from", "@to", "@locationIds", "@timezone"], lt = ["@from", "@to", "@locationIds"], uo = ["@timezone"], po = ["@locationIds"], ho = 1, bo = 1500;
1331
+ function go(o) {
1331
1332
  if (!(!(o instanceof kn) || o.status !== 429))
1332
- return Math.min(Math.max(o.retryAfterMs ?? ho, 500), 5e3);
1333
+ return Math.min(Math.max(o.retryAfterMs ?? bo, 500), 5e3);
1333
1334
  }
1334
- const go = {
1335
- MY: "MYR",
1336
- SG: "SGD",
1337
- TH: "THB",
1338
- ID: "IDR",
1339
- PH: "PHP",
1340
- VN: "VND",
1341
- BN: "BND",
1342
- KH: "KHR",
1343
- MM: "MMK",
1344
- AE: "AED",
1345
- MO: "MOP",
1346
- MV: "MVR",
1347
- AU: "AUD",
1348
- JP: "JPY",
1349
- TW: "TWD",
1350
- HK: "HKD"
1351
- };
1352
1335
  function Lt(o) {
1353
1336
  return o == null ? !0 : Array.isArray(o) ? o.length === 0 : o === "";
1354
1337
  }
1355
1338
  function vo(o) {
1356
- const e = pt(), { dateRange: t, selectedLocationIds: a, locations: r, timezone: m } = Oe(e), { country: h } = Oe(Ye()), y = T({}), I = T([]), b = T({}), L = gn({}), x = T(), N = T([]), E = [], W = [], j = { ids: "[]", date: "" };
1339
+ const e = pt(), { dateRange: t, selectedLocationIds: a, locations: r, timezone: m } = Oe(e), { country: h } = Oe(Ye()), y = T({}), I = T([]), b = T({}), L = gn({}), x = T(), N = T([]), E = [], W = [], D = { ids: "[]", date: "" };
1357
1340
  let Y = !1;
1358
1341
  const U = {}, O = {};
1359
1342
  function G(u) {
1360
1343
  E.push(u);
1361
1344
  }
1362
- function J(u) {
1345
+ function K(u) {
1363
1346
  W.push(u);
1364
1347
  }
1365
1348
  function F(u) {
1366
1349
  L.value = { ...L.value, [u.queryId]: u }, E.forEach((S) => S(u));
1367
1350
  }
1368
- function B(u) {
1351
+ function q(u) {
1369
1352
  const S = {};
1370
1353
  for (const M of u.params)
1371
1354
  S[M.name] = M.default ?? null;
@@ -1378,7 +1361,7 @@ function vo(o) {
1378
1361
  return { startDate: t.value.startDate, endDate: t.value.endDate };
1379
1362
  }
1380
1363
  function g() {
1381
- j.ids = JSON.stringify([...a.value]), j.date = JSON.stringify(z());
1364
+ D.ids = JSON.stringify([...a.value]), D.date = JSON.stringify(z());
1382
1365
  }
1383
1366
  function H() {
1384
1367
  const u = y.value["@from"], S = y.value["@to"];
@@ -1396,13 +1379,13 @@ function vo(o) {
1396
1379
  }
1397
1380
  g();
1398
1381
  }
1399
- function K() {
1382
+ function J() {
1400
1383
  const u = [...a.value], S = {}, M = { ...b.value };
1401
- JSON.stringify(z()) !== j.date && (S["@from"] = t.value.startDate ?? null, S["@to"] = t.value.endDate ?? null), JSON.stringify(u) !== j.ids ? (S["@locationIds"] = u, delete M["@locationIds"]) : M["@locationIds"] === "all" && (S["@locationIds"] = _()), Object.keys(S).length && te(S, M);
1384
+ JSON.stringify(z()) !== D.date && (S["@from"] = t.value.startDate ?? null, S["@to"] = t.value.endDate ?? null), JSON.stringify(u) !== D.ids ? (S["@locationIds"] = u, delete M["@locationIds"]) : M["@locationIds"] === "all" && (S["@locationIds"] = _()), Object.keys(S).length && te(S, M);
1402
1385
  }
1403
1386
  function ee() {
1404
1387
  de([t, a, r], () => {
1405
- Y && K();
1388
+ Y && J();
1406
1389
  });
1407
1390
  }
1408
1391
  function X() {
@@ -1419,7 +1402,7 @@ function vo(o) {
1419
1402
  // The portal's locale, not the browser's: the frame sets documentElement.lang from this,
1420
1403
  // and Rebus switches its line-height metrics on :lang(zh) / :lang(th).
1421
1404
  locale: An() || "en-US",
1422
- currency: go[(h.value || "").toUpperCase()] ?? ""
1405
+ currency: Tn(h.value)
1423
1406
  };
1424
1407
  }
1425
1408
  function ce(u, S) {
@@ -1446,7 +1429,7 @@ function vo(o) {
1446
1429
  });
1447
1430
  for (let n = 0; ; n++)
1448
1431
  try {
1449
- const i = await gr(
1432
+ const i = await vr(
1450
1433
  o,
1451
1434
  u.id,
1452
1435
  S,
@@ -1464,8 +1447,8 @@ function vo(o) {
1464
1447
  return;
1465
1448
  } catch (i) {
1466
1449
  if (U[u.id] !== M) return;
1467
- const f = bo(i);
1468
- if (f !== void 0 && n < po) {
1450
+ const f = go(i);
1451
+ if (f !== void 0 && n < ho) {
1469
1452
  if (await new Promise((A) => setTimeout(A, f)), U[u.id] !== M) return;
1470
1453
  continue;
1471
1454
  }
@@ -1513,8 +1496,8 @@ function vo(o) {
1513
1496
  const M = { ...y.value }, d = { ...b.value };
1514
1497
  let n = !1;
1515
1498
  for (const [i, f] of Object.entries(u)) {
1516
- if (!(i in M) || mo.includes(i)) continue;
1517
- const A = uo.includes(i) ? S == null ? void 0 : S[i] : void 0;
1499
+ if (!(i in M) || uo.includes(i)) continue;
1500
+ const A = po.includes(i) ? S == null ? void 0 : S[i] : void 0;
1518
1501
  d[i] !== A && (A ? d[i] = A : delete d[i], n = !0), JSON.stringify(M[i] ?? null) !== JSON.stringify(f ?? null) && (M[i] = f, n = !0);
1519
1502
  }
1520
1503
  return n ? (y.value = M, b.value = d, Object.keys(u).some((i) => lt.includes(i)) && H(), oe(), W.forEach((i) => i()), !0) : !1;
@@ -1523,7 +1506,7 @@ function vo(o) {
1523
1506
  x.value = u.state, N.value = u.queries, I.value = u.params, L.value = {};
1524
1507
  for (const S of Object.keys(U)) delete U[S];
1525
1508
  for (const S of Object.keys(O)) delete O[S];
1526
- B(u), Y = !0, oe();
1509
+ q(u), Y = !0, oe();
1527
1510
  }
1528
1511
  function C(u, S = []) {
1529
1512
  x.value = u.state, N.value = u.queries, I.value = u.params;
@@ -1557,8 +1540,8 @@ function vo(o) {
1557
1540
  run: oe,
1558
1541
  setParams: te,
1559
1542
  onResult: G,
1560
- onParamsChanged: J,
1561
- RESERVED: co
1543
+ onParamsChanged: K,
1544
+ RESERVED: mo
1562
1545
  };
1563
1546
  }
1564
1547
  const yo = `: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}
@@ -1573,16 +1556,16 @@ function xo(o) {
1573
1556
  }
1574
1557
  return `${"/".replace(/\/$/, "")}/${e}`;
1575
1558
  }
1576
- const qt = {
1559
+ const Bt = {
1577
1560
  "chart.js@4": "chart.js-4.js",
1578
1561
  "fm-ui@1": "fm-ui-1.js",
1579
1562
  "components@1": "components-1.js"
1580
1563
  }, ft = /* @__PURE__ */ new Map();
1581
1564
  function wo(o) {
1582
- return xo(`report-canvas-libs/${qt[o]}`);
1565
+ return xo(`report-canvas-libs/${Bt[o]}`);
1583
1566
  }
1584
1567
  async function Mt(o) {
1585
- const e = [...new Set(o)].filter((a) => qt[a]), t = {};
1568
+ const e = [...new Set(o)].filter((a) => Bt[a]), t = {};
1586
1569
  return await Promise.all(
1587
1570
  e.map(async (a) => {
1588
1571
  if (!ft.has(a)) {
@@ -4012,7 +3995,7 @@ function To(o) {
4012
3995
  ...a === null || typeof a == "number" && Number.isFinite(a) ? { value: a } : typeof a == "string" ? { value: a.slice(0, 64) } : {}
4013
3996
  };
4014
3997
  }
4015
- function Dt(o) {
3998
+ function jt(o) {
4016
3999
  const e = o;
4017
4000
  if (!e || typeof e != "object" || typeof e.tag != "string") return;
4018
4001
  const t = Array.isArray(e.path) ? e.path.filter((r) => Number.isSafeInteger(r) && r >= 0).slice(0, 32) : [], a = To(e.datum);
@@ -4040,7 +4023,7 @@ function Eo(o, e) {
4040
4023
  (z = y()) == null || z.postMessage(JSON.parse(JSON.stringify(_)), "*");
4041
4024
  }
4042
4025
  function b(_) {
4043
- var H, K;
4026
+ var H, J;
4044
4027
  const z = y();
4045
4028
  if (!z || _.source !== z) return;
4046
4029
  const g = _.data;
@@ -4053,7 +4036,7 @@ function Eo(o, e) {
4053
4036
  case "sectionSelected":
4054
4037
  if (!m || g.nonce !== m || typeof g.sectionId != "string" || !Number.isSafeInteger(g.version))
4055
4038
  return;
4056
- const ee = Dt(g.element), X = Array.isArray(g.widen) ? g.widen.slice(0, 4).map(Dt).filter((se) => !!se) : [];
4039
+ const ee = jt(g.element), X = Array.isArray(g.widen) ? g.widen.slice(0, 4).map(jt).filter((se) => !!se) : [];
4057
4040
  (H = e.onSelectSection) == null || H.call(
4058
4041
  e,
4059
4042
  {
@@ -4068,7 +4051,7 @@ function Eo(o, e) {
4068
4051
  );
4069
4052
  break;
4070
4053
  case "selectionCancelled":
4071
- m && g.nonce === m && ((K = e.onCancelSelection) == null || K.call(e));
4054
+ m && g.nonce === m && ((J = e.onCancelSelection) == null || J.call(e));
4072
4055
  break;
4073
4056
  case "setParams":
4074
4057
  e.onSetParams(g.values ?? {}, g.intent);
@@ -4124,8 +4107,8 @@ function Eo(o, e) {
4124
4107
  );
4125
4108
  }
4126
4109
  }
4127
- async function j(_, z, g) {
4128
- const H = await Mt(_.flatMap((ee) => ee.libs ?? [])), K = () => {
4110
+ async function D(_, z, g) {
4111
+ const H = await Mt(_.flatMap((ee) => ee.libs ?? [])), J = () => {
4129
4112
  I({
4130
4113
  type: "init",
4131
4114
  sections: _,
@@ -4136,7 +4119,7 @@ function Eo(o, e) {
4136
4119
  env: g
4137
4120
  }), E(), W(_);
4138
4121
  };
4139
- t.value ? K() : a = K;
4122
+ t.value ? J() : a = J;
4140
4123
  }
4141
4124
  async function Y(_) {
4142
4125
  const z = await Mt(_.flatMap((g) => g.libs ?? []));
@@ -4155,9 +4138,9 @@ function Eo(o, e) {
4155
4138
  }
4156
4139
  function G() {
4157
4140
  const _ = [...r.values()];
4158
- r.clear(), _.forEach(J);
4141
+ r.clear(), _.forEach(K);
4159
4142
  }
4160
- function J(_) {
4143
+ function K(_) {
4161
4144
  I({
4162
4145
  type: "rows",
4163
4146
  queryId: _.queryId,
@@ -4173,17 +4156,17 @@ function Eo(o, e) {
4173
4156
  r.set(_.queryId, _);
4174
4157
  return;
4175
4158
  }
4176
- J(_);
4159
+ K(_);
4177
4160
  }
4178
- Me(() => window.addEventListener("message", b)), De(() => {
4161
+ Me(() => window.addEventListener("message", b)), je(() => {
4179
4162
  window.removeEventListener("message", b), E();
4180
4163
  });
4181
- function B() {
4164
+ function q() {
4182
4165
  t.value = !1, a = null, m = void 0, r.clear(), E();
4183
4166
  }
4184
4167
  return {
4185
4168
  setCommentMode: (_, z) => {
4186
- var g, H, K;
4169
+ var g, H, J;
4187
4170
  return I({
4188
4171
  type: "commentMode",
4189
4172
  enabled: _,
@@ -4191,7 +4174,7 @@ function Eo(o, e) {
4191
4174
  sectionId: z.sectionId,
4192
4175
  part: (g = z.element) == null ? void 0 : g.part,
4193
4176
  path: ((H = z.element) == null ? void 0 : H.path) ?? [],
4194
- datum: ((K = z.element) == null ? void 0 : K.datum) && {
4177
+ datum: ((J = z.element) == null ? void 0 : J.datum) && {
4195
4178
  datasetIndex: z.element.datum.datasetIndex,
4196
4179
  index: z.element.datum.index
4197
4180
  }
@@ -4199,12 +4182,12 @@ function Eo(o, e) {
4199
4182
  });
4200
4183
  },
4201
4184
  ready: t,
4202
- init: j,
4185
+ init: D,
4203
4186
  swapSections: Y,
4204
4187
  pushParams: U,
4205
4188
  pushEnv: O,
4206
4189
  pushRows: F,
4207
- reset: B
4190
+ reset: q
4208
4191
  };
4209
4192
  }
4210
4193
  function He(o) {
@@ -4246,7 +4229,7 @@ const dt = (o, e = {}) => {
4246
4229
  data: { timezone: a }
4247
4230
  };
4248
4231
  return ue.fetch(r);
4249
- }, Ro = (o, e) => `/${o}/report-ai/${e}/chat`, Lo = 3e4, Mo = "New chat", jt = 80;
4232
+ }, Ro = (o, e) => `/${o}/report-ai/${e}/chat`, Lo = 3e4, Mo = "New chat", Dt = 80;
4250
4233
  function ct(o, e) {
4251
4234
  return `report-canvas:chat:${o}:${e}`;
4252
4235
  }
@@ -4263,14 +4246,14 @@ function mt(o, e) {
4263
4246
  } catch {
4264
4247
  }
4265
4248
  }
4266
- function Do(o) {
4267
- const { businessId: e, token: t } = Oe(Ye()), a = T([]), r = T(), m = T(""), h = T(null), y = T(!1), I = T([]), b = T(null), L = T(!1), x = T(""), N = T(!1), E = T(!1), W = T(""), j = T(""), Y = T(""), U = T(!1), O = T([]), G = T(!1), J = [];
4249
+ function jo(o) {
4250
+ const { businessId: e, token: t } = Oe(Ye()), a = T([]), r = T(), m = T(""), h = T(null), y = T(!1), I = T([]), b = T(null), L = T(!1), x = T(""), N = T(!1), E = T(!1), W = T(""), D = T(""), Y = T(""), U = T(!1), O = T([]), G = T(!1), K = [];
4268
4251
  function F(d) {
4269
- J.push(d);
4252
+ K.push(d);
4270
4253
  }
4271
- const B = [];
4254
+ const q = [];
4272
4255
  function _(d) {
4273
- B.push(d);
4256
+ q.push(d);
4274
4257
  }
4275
4258
  let z = 0;
4276
4259
  async function g(d) {
@@ -4294,7 +4277,7 @@ function Do(o) {
4294
4277
  function H(d) {
4295
4278
  r.value = d.sessionId ?? void 0, m.value = d.title ?? "", a.value = d.messages, h.value = d.earlier ?? null, O.value = [], Y.value = "", mt(ct(s(e.value), o), d.sessionId);
4296
4279
  }
4297
- async function K(d) {
4280
+ async function J(d) {
4298
4281
  return d === r.value || E.value ? null : g(d);
4299
4282
  }
4300
4283
  async function ee() {
@@ -4414,7 +4397,7 @@ function Do(o) {
4414
4397
  }
4415
4398
  if (i === "tool-input-start") {
4416
4399
  const A = String(d.toolName ?? ""), P = String(d.toolCallId ?? Ct());
4417
- j.value = A, te(
4400
+ D.value = A, te(
4418
4401
  f,
4419
4402
  ($) => $.push({ type: `tool-${A}`, toolCallId: P, state: "input-streaming" })
4420
4403
  );
@@ -4424,7 +4407,7 @@ function Do(o) {
4424
4407
  const A = String(d.toolCallId ?? ""), P = i === "tool-input-available" ? "input-available" : "output-available";
4425
4408
  te(f, ($) => {
4426
4409
  !C($, A, { state: P }) && typeof d.toolName == "string" && $.push({ type: `tool-${d.toolName}`, toolCallId: A, state: P });
4427
- }), typeof d.toolName == "string" && (j.value = d.toolName);
4410
+ }), typeof d.toolName == "string" && (D.value = d.toolName);
4428
4411
  return;
4429
4412
  }
4430
4413
  if (i === "tool-output-error") {
@@ -4441,12 +4424,12 @@ function Do(o) {
4441
4424
  }
4442
4425
  if (i.startsWith("data-")) {
4443
4426
  const A = i.slice(5), P = d.data ?? {};
4444
- A === "plan" && typeof P.sessionId == "string" && (n.acked = !0, r.value = P.sessionId, mt(ct(s(e.value), o), P.sessionId)), A !== "turn_stats" && (j.value = A), te(f, ($) => $.push({ type: i, data: P })), J.forEach(($) => $({ name: A, data: P }));
4427
+ A === "plan" && typeof P.sessionId == "string" && (n.acked = !0, r.value = P.sessionId, mt(ct(s(e.value), o), P.sessionId)), A !== "turn_stats" && (D.value = A), te(f, ($) => $.push({ type: i, data: P })), K.forEach(($) => $({ name: A, data: P }));
4445
4428
  }
4446
4429
  }
4447
4430
  function S(d) {
4448
4431
  if (m.value && m.value !== Mo) return;
4449
- const n = d.length > jt ? `${d.slice(0, jt - 1)}…` : d;
4432
+ const n = d.length > Dt ? `${d.slice(0, Dt - 1)}…` : d;
4450
4433
  m.value = n, I.value = I.value.map(
4451
4434
  (i) => i.id === r.value ? { ...i, title: n } : i
4452
4435
  );
@@ -4463,7 +4446,7 @@ function Do(o) {
4463
4446
  a.value = [
4464
4447
  ...a.value,
4465
4448
  n ? { ...f, parts: [...f.parts, { type: "data-edit-target", data: n }] } : f
4466
- ], S(i), E.value = !0, j.value = "", G.value = !1, W.value = `assistant-${Date.now()}`;
4449
+ ], S(i), E.value = !0, D.value = "", G.value = !1, W.value = `assistant-${Date.now()}`;
4467
4450
  const A = { id: W.value, acked: !1 }, P = setTimeout(() => {
4468
4451
  G.value = !0;
4469
4452
  }, Lo);
@@ -4492,18 +4475,18 @@ function Do(o) {
4492
4475
  console.warn("[report-canvas] chat rejected", { reportId: o, status: $.status }), le(f.id);
4493
4476
  return;
4494
4477
  }
4495
- const D = $.body.getReader(), re = new TextDecoder();
4478
+ const j = $.body.getReader(), re = new TextDecoder();
4496
4479
  let be = "";
4497
4480
  for (; ; ) {
4498
- const { done: Te, value: Fe } = await D.read();
4481
+ const { done: Te, value: Fe } = await j.read();
4499
4482
  if (Te) break;
4500
4483
  be += re.decode(Fe, { stream: !0 });
4501
- const Be = be.split(`
4484
+ const qe = be.split(`
4502
4485
 
4503
4486
  `);
4504
- be = Be.pop() ?? "";
4505
- for (const Ke of Be)
4506
- for (const We of Ke.split(`
4487
+ be = qe.pop() ?? "";
4488
+ for (const Je of qe)
4489
+ for (const We of Je.split(`
4507
4490
  `)) {
4508
4491
  if (!We.startsWith("data:")) continue;
4509
4492
  const Re = We.slice(5).trim();
@@ -4517,7 +4500,7 @@ function Do(o) {
4517
4500
  } catch ($) {
4518
4501
  console.warn("[report-canvas] chat stream failed", { reportId: o, err: $ }), A.acked ? U.value = !0 : le(f.id);
4519
4502
  } finally {
4520
- clearTimeout(P), E.value = !1, j.value = "", G.value = !1, B.forEach(($) => $());
4503
+ clearTimeout(P), E.value = !1, D.value = "", G.value = !1, q.forEach(($) => $());
4521
4504
  }
4522
4505
  }
4523
4506
  return {
@@ -4533,13 +4516,13 @@ function Do(o) {
4533
4516
  switching: N,
4534
4517
  streaming: E,
4535
4518
  turnId: W,
4536
- activity: j,
4519
+ activity: D,
4537
4520
  error: Y,
4538
4521
  interrupted: U,
4539
4522
  unsent: O,
4540
4523
  slow: G,
4541
4524
  load: g,
4542
- select: K,
4525
+ select: J,
4543
4526
  startChat: ee,
4544
4527
  loadChats: X,
4545
4528
  loadEarlier: se,
@@ -4551,7 +4534,7 @@ function Do(o) {
4551
4534
  onSettled: _
4552
4535
  };
4553
4536
  }
4554
- const jo = 2e3, Vo = 10 * 6e4;
4537
+ const Do = 2e3, Vo = 10 * 6e4;
4555
4538
  function Fo(o, e, t, a) {
4556
4539
  const { timezone: r } = Oe(pt()), m = T(null), h = T(null), y = T(!1), I = T(""), b = [];
4557
4540
  function L(F) {
@@ -4563,7 +4546,7 @@ function Fo(o, e, t, a) {
4563
4546
  }
4564
4547
  function E() {
4565
4548
  var F;
4566
- x !== void 0 || e.value || ((F = m.value) == null ? void 0 : F.status) === "running" && (x = window.setInterval(() => void W(), jo));
4549
+ x !== void 0 || e.value || ((F = m.value) == null ? void 0 : F.status) === "running" && (x = window.setInterval(() => void W(), Do));
4567
4550
  }
4568
4551
  async function W() {
4569
4552
  var F;
@@ -4572,16 +4555,16 @@ function Fo(o, e, t, a) {
4572
4555
  return;
4573
4556
  }
4574
4557
  try {
4575
- const { run: B } = await No(o, a == null ? void 0 : a.value);
4576
- B && j(B), ((F = m.value) == null ? void 0 : F.status) !== "running" ? N() : m.value.updatedAt && Date.now() - new Date(m.value.updatedAt).getTime() > Vo && (y.value = !0, N());
4558
+ const { run: q } = await No(o, a == null ? void 0 : a.value);
4559
+ q && D(q), ((F = m.value) == null ? void 0 : F.status) !== "running" ? N() : m.value.updatedAt && Date.now() - new Date(m.value.updatedAt).getTime() > Vo && (y.value = !0, N());
4577
4560
  } catch {
4578
4561
  }
4579
4562
  }
4580
- function j(F, B) {
4581
- B !== void 0 && (h.value = B);
4563
+ function D(F, q) {
4564
+ q !== void 0 && (h.value = q);
4582
4565
  const _ = F.sections.some((z) => {
4583
4566
  var H;
4584
- const g = (H = m.value) == null ? void 0 : H.sections.find((K) => K.id === z.id);
4567
+ const g = (H = m.value) == null ? void 0 : H.sections.find((J) => J.id === z.id);
4585
4568
  return z.status === "ok" && (g == null ? void 0 : g.status) !== "ok";
4586
4569
  });
4587
4570
  m.value = F, y.value = !1, _ && b.forEach((z) => z()), E();
@@ -4589,27 +4572,27 @@ function Fo(o, e, t, a) {
4589
4572
  function Y(F) {
4590
4573
  var _;
4591
4574
  if (F.name !== "build_run") return;
4592
- const B = F.data;
4593
- Array.isArray(B.sections) && j(
4575
+ const q = F.data;
4576
+ Array.isArray(q.sections) && D(
4594
4577
  {
4595
- runId: B.runId ? String(B.runId) : void 0,
4596
- status: B.status ?? "running",
4597
- sections: B.sections,
4578
+ runId: q.runId ? String(q.runId) : void 0,
4579
+ status: q.status ?? "running",
4580
+ sections: q.sections,
4598
4581
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
4599
4582
  },
4600
4583
  // first snapshot of this turn claims the anchor; later ones keep it
4601
- (_ = m.value) != null && _.runId && m.value.runId === B.runId ? void 0 : (t == null ? void 0 : t.value) ?? null
4584
+ (_ = m.value) != null && _.runId && m.value.runId === q.runId ? void 0 : (t == null ? void 0 : t.value) ?? null
4602
4585
  );
4603
4586
  }
4604
4587
  function U() {
4605
4588
  N(), m.value = null, h.value = null, y.value = !1, I.value = "";
4606
4589
  }
4607
4590
  function O(F) {
4608
- F && F.status !== "ok" && j(F, null);
4591
+ F && F.status !== "ok" && D(F, null);
4609
4592
  }
4610
4593
  async function G(F) {
4611
- var B;
4612
- if (!(!((B = m.value) != null && B.runId) || m.value.status === "running")) {
4594
+ var q;
4595
+ if (!(!((q = m.value) != null && q.runId) || m.value.status === "running")) {
4613
4596
  I.value = "";
4614
4597
  try {
4615
4598
  const { run: _ } = await $o(
@@ -4618,18 +4601,18 @@ function Fo(o, e, t, a) {
4618
4601
  F,
4619
4602
  s(r.value)
4620
4603
  );
4621
- j(_);
4604
+ D(_);
4622
4605
  } catch (_) {
4623
4606
  I.value = _ instanceof Error ? _.message : String(_);
4624
4607
  }
4625
4608
  }
4626
4609
  }
4627
- async function J() {
4610
+ async function K() {
4628
4611
  y.value = !1, await W();
4629
4612
  }
4630
- return De(N), { run: m, anchorId: h, stale: y, retryError: I, seed: O, clear: U, noteEvent: Y, retry: G, refresh: J, onLanded: L };
4613
+ return je(N), { run: m, anchorId: h, stale: y, retryError: I, seed: O, clear: U, noteEvent: Y, retry: G, refresh: K, onLanded: L };
4631
4614
  }
4632
- const Bo = 380, qo = 600, Vt = 'button:not([disabled]),textarea:not([disabled]),select:not([disabled]),a[href],[tabindex]:not([tabindex="-1"])';
4615
+ const qo = 380, Bo = 600, Vt = 'button:not([disabled]),textarea:not([disabled]),select:not([disabled]),a[href],[tabindex]:not([tabindex="-1"])';
4633
4616
  function Uo(o, e) {
4634
4617
  const t = T(), a = T(), r = T(0);
4635
4618
  let m, h = !1;
@@ -4637,9 +4620,9 @@ function Uo(o, e) {
4637
4620
  !t.value || typeof ResizeObserver > "u" || (m = new ResizeObserver(([x]) => {
4638
4621
  r.value = x.contentRect.width, !h && (h = !0, y.value || (o.value = !1));
4639
4622
  }), m.observe(t.value));
4640
- }), De(() => m == null ? void 0 : m.disconnect());
4623
+ }), je(() => m == null ? void 0 : m.disconnect());
4641
4624
  const y = V(
4642
- () => !r.value || r.value >= Bo + qo
4625
+ () => !r.value || r.value >= qo + Bo
4643
4626
  ), I = V(() => o.value && !y.value && !e.value);
4644
4627
  let b = null;
4645
4628
  de(I, async (x) => {
@@ -4657,12 +4640,12 @@ function Uo(o, e) {
4657
4640
  const E = x.shiftKey ? N[0] : N[N.length - 1];
4658
4641
  document.activeElement === E && (x.preventDefault(), (x.shiftKey ? N[N.length - 1] : N[0]).focus());
4659
4642
  }
4660
- return Me(() => window.addEventListener("keydown", L, !0)), De(() => window.removeEventListener("keydown", L, !0)), { root: t, drawer: a, docked: y, modal: I };
4643
+ return Me(() => window.addEventListener("keydown", L, !0)), je(() => window.removeEventListener("keydown", L, !0)), { root: t, drawer: a, docked: y, modal: I };
4661
4644
  }
4662
- const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = { class: "fm-typo-en-title-md-600 block min-w-0 max-w-full overflow-hidden text-ellipsis whitespace-nowrap" }, Yo = { class: "relative shrink-0" }, Ko = {
4645
+ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = { class: "fm-typo-en-title-md-600 block min-w-0 max-w-full overflow-hidden text-ellipsis whitespace-nowrap" }, Yo = { class: "relative shrink-0" }, Jo = {
4663
4646
  key: 0,
4664
4647
  class: "flex items-center gap-8 border-b border-fm-color-border-secondary px-16 py-8"
4665
- }, Jo = {
4648
+ }, Ko = {
4666
4649
  key: 0,
4667
4650
  class: "flex min-w-0 grow items-start overflow-x-auto scrollbar-hide"
4668
4651
  }, Xo = {
@@ -4688,52 +4671,52 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4688
4671
  }, li = {
4689
4672
  key: 4,
4690
4673
  class: "fm-typo-en-body-sm-400 p-16 text-fm-color-typo-error"
4691
- }, fi = ["srcdoc", "title"], di = ["role", "aria-modal", "aria-label"], ci = /* @__PURE__ */ je({
4674
+ }, fi = ["srcdoc", "title"], di = ["role", "aria-modal", "aria-label"], ci = /* @__PURE__ */ De({
4692
4675
  __name: "ReportCanvasView",
4693
4676
  props: {
4694
4677
  reportId: {},
4695
4678
  viewOnly: { type: Boolean }
4696
4679
  },
4697
4680
  setup(o) {
4698
- const e = o, t = xn(), a = wn(), { t: r, te: m } = Ve(), { currentReport: h } = Oe(Tn()), y = V(() => {
4681
+ const e = o, t = xn(), a = wn(), { t: r, te: m } = Ve(), { currentReport: h } = Oe(En()), y = V(() => {
4699
4682
  var l;
4700
- return En(r, m, (l = h.value) == null ? void 0 : l.name, "other");
4683
+ return On(r, m, (l = h.value) == null ? void 0 : l.name, "other");
4701
4684
  }), I = e.reportId || String(t.query.reportId ?? ""), b = T(), L = T(""), x = V(() => {
4702
4685
  var l;
4703
4686
  return ((l = b.value) == null ? void 0 : l.state) === "draft";
4704
4687
  }), N = V(() => {
4705
4688
  var l, v;
4706
4689
  return ((v = (l = b.value) == null ? void 0 : l.unpublishedTurnIds) == null ? void 0 : v.length) ?? 0;
4707
- }), E = T(!1), W = T(""), j = T(!1), Y = T(!1), U = T(!1);
4690
+ }), E = T(!1), W = T(""), D = T(!1), Y = T(!1), U = T(!1);
4708
4691
  function O() {
4709
- j.value = !0, g.value = !1;
4692
+ D.value = !0, g.value = !1;
4710
4693
  }
4711
4694
  function G() {
4712
- U.value || (j.value ? j.value = !1 : _.value = !1);
4695
+ U.value || (D.value ? D.value = !1 : _.value = !1);
4713
4696
  }
4714
- async function J(l) {
4715
- await Ge(() => Promise.resolve(l)), j.value = !1, Y.value = !0;
4697
+ async function K(l) {
4698
+ await Ge(() => Promise.resolve(l)), D.value = !1, Y.value = !0;
4716
4699
  }
4717
- const { isAdmin: F } = Sn(), B = V(() => !e.viewOnly && F.value), _ = T(!1), z = T(), g = T(!1), H = T(!1), K = T(), ee = T(), X = V({
4718
- get: () => H.value ? K.value : ee.value,
4700
+ const { isAdmin: F } = Sn(), q = V(() => !e.viewOnly && F.value), _ = T(!1), z = T(), g = T(!1), H = T(!1), J = T(), ee = T(), X = V({
4701
+ get: () => H.value ? J.value : ee.value,
4719
4702
  set: (l) => {
4720
- H.value ? K.value = l : ee.value = l;
4703
+ H.value ? J.value = l : ee.value = l;
4721
4704
  }
4722
4705
  }), se = V(
4723
4706
  () => {
4724
4707
  var l;
4725
4708
  return !!X.value && !((l = b.value) != null && l.sections.some(
4726
4709
  (v) => {
4727
- var q, Q;
4728
- return v.id === ((q = X.value) == null ? void 0 : q.sectionId) && v.version === ((Q = X.value) == null ? void 0 : Q.version);
4710
+ var B, Q;
4711
+ return v.id === ((B = X.value) == null ? void 0 : B.sectionId) && v.version === ((Q = X.value) == null ? void 0 : Q.version);
4729
4712
  }
4730
4713
  ));
4731
4714
  }
4732
4715
  ), ce = T({});
4733
4716
  function ye(l, v) {
4734
- var q;
4717
+ var B;
4735
4718
  return String(
4736
- ((q = l.config) == null ? void 0 : q.title) || ce.value[l.id] || r("reportV5.reportAi.chat.widgetNumber", { number: v + 1 })
4719
+ ((B = l.config) == null ? void 0 : B.title) || ce.value[l.id] || r("reportV5.reportAi.chat.widgetNumber", { number: v + 1 })
4737
4720
  );
4738
4721
  }
4739
4722
  const he = T([]), le = T([]), oe = V({
@@ -4748,8 +4731,8 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4748
4731
  function xe() {
4749
4732
  const l = X.value;
4750
4733
  if (!(l != null && l.element)) return te();
4751
- const { element: v, ...q } = l, Q = oe.value.shift();
4752
- X.value = Q ? { ...q, element: Q, elementText: Q.text ?? "", elementTag: Q.tag } : q;
4734
+ const { element: v, ...B } = l, Q = oe.value.shift();
4735
+ X.value = Q ? { ...B, element: Q, elementText: Q.text ?? "", elementTag: Q.tag } : B;
4753
4736
  }
4754
4737
  function C(l) {
4755
4738
  l.key === "Escape" && (g.value = !1);
@@ -4757,31 +4740,31 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4757
4740
  function u(l, v = []) {
4758
4741
  var Q;
4759
4742
  if (!g.value || we.value) return;
4760
- const q = (Q = b.value) == null ? void 0 : Q.sections.find((fe) => fe.id === l.sectionId);
4761
- !q || q.version !== l.version || (X.value = {
4743
+ const B = (Q = b.value) == null ? void 0 : Q.sections.find((fe) => fe.id === l.sectionId);
4744
+ !B || B.version !== l.version || (X.value = {
4762
4745
  ...l,
4763
4746
  viewParams: JSON.parse(JSON.stringify($.params.value)),
4764
4747
  viewIntent: JSON.parse(JSON.stringify($.intent.value)),
4765
- label: l.label || ye(q, b.value.sections.indexOf(q))
4748
+ label: l.label || ye(B, b.value.sections.indexOf(B))
4766
4749
  }, oe.value = v, g.value = !1, _.value = !0);
4767
4750
  }
4768
4751
  const S = T(""), M = T(""), d = T("");
4769
4752
  function n(l) {
4770
- return D.stashDraft(S.value, ee.value), ge.clear(), l().then(() => {
4771
- const v = D.recallDraft();
4753
+ return j.stashDraft(S.value, ee.value), ge.clear(), l().then(() => {
4754
+ const v = j.recallDraft();
4772
4755
  S.value = v.text, ee.value = v.target, le.value = [], g.value = !1;
4773
4756
  });
4774
4757
  }
4775
4758
  async function i(l) {
4776
4759
  if (vt.value) return;
4777
- const v = l ? K.value : void 0, q = l ? [...he.value] : [];
4760
+ const v = l ? J.value : void 0, B = l ? [...he.value] : [];
4778
4761
  let Q = !1;
4779
4762
  await n(async () => {
4780
- Q = await D.startChat();
4781
- }), Q && l && (H.value = !1, ee.value = v, le.value = q, K.value = void 0, he.value = [], S.value = l, await A());
4763
+ Q = await j.startChat();
4764
+ }), Q && l && (H.value = !1, ee.value = v, le.value = B, J.value = void 0, he.value = [], S.value = l, await A());
4782
4765
  }
4783
4766
  const f = (l) => n(async () => {
4784
- const v = await D.select(l);
4767
+ const v = await j.select(l);
4785
4768
  ge.seed(v);
4786
4769
  });
4787
4770
  async function A() {
@@ -4795,24 +4778,24 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4795
4778
  }
4796
4779
  }
4797
4780
  function P(l) {
4798
- const v = D.takeUnsent(l);
4781
+ const v = j.takeUnsent(l);
4799
4782
  if (v)
4800
4783
  return S.value = v.text, X.value = v.target, A();
4801
4784
  }
4802
- const $ = vo(I), D = Do(I), {
4785
+ const $ = vo(I), j = jo(I), {
4803
4786
  messages: re,
4804
4787
  sessionId: be,
4805
4788
  title: Te,
4806
4789
  chats: Fe,
4807
- chatsCursor: Be,
4808
- chatsLoading: Ke,
4790
+ chatsCursor: qe,
4791
+ chatsLoading: Je,
4809
4792
  chatsError: We,
4810
4793
  switching: Re,
4811
4794
  earlier: Yt,
4812
- loadingEarlier: Kt,
4795
+ loadingEarlier: Jt,
4813
4796
  streaming: we,
4814
4797
  turnId: ht,
4815
- activity: Jt,
4798
+ activity: Kt,
4816
4799
  error: bt,
4817
4800
  interrupted: Xt,
4818
4801
  unsent: Qt,
@@ -4821,7 +4804,7 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4821
4804
  send: tn,
4822
4805
  onLifecycle: nn,
4823
4806
  onSettled: an
4824
- } = D, { dateRange: Je, selectedLocationIds: Xe, locations: gt, timezone: rn } = Oe(pt()), ge = Fo(I, we, ht, be), vt = V(
4807
+ } = j, { dateRange: Ke, selectedLocationIds: Xe, locations: gt, timezone: rn } = Oe(pt()), ge = Fo(I, we, ht, be), vt = V(
4825
4808
  () => {
4826
4809
  var l;
4827
4810
  return we.value || Re.value || ((l = ge.run.value) == null ? void 0 : l.status) === "running";
@@ -4832,16 +4815,16 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4832
4815
  return ((l = b.value) == null ? void 0 : l.sections.filter((v) => v.id !== Ho)) ?? [];
4833
4816
  }
4834
4817
  ), xt = V(() => yt.value.length === 0), wt = V({
4835
- get: () => B.value && _.value || j.value,
4818
+ get: () => q.value && _.value || D.value,
4836
4819
  set: (l) => {
4837
- _.value = l, l || (j.value = !1);
4820
+ _.value = l, l || (D.value = !1);
4838
4821
  }
4839
4822
  }), { root: on, drawer: sn, docked: Qe, modal: Ze } = Uo(wt, g), ln = V(
4840
4823
  () => {
4841
4824
  var l;
4842
4825
  return ((l = b.value) == null ? void 0 : l.sections.some((v) => v.status === "pending")) ?? !1;
4843
4826
  }
4844
- ), fn = V(() => we.value ? Bt(Jt.value) : ln.value ? "loading" : "updating"), ke = Eo(z, {
4827
+ ), fn = V(() => we.value ? qt(Kt.value) : ln.value ? "loading" : "updating"), ke = Eo(z, {
4845
4828
  onSelectSection: u,
4846
4829
  onCancelSelection: () => {
4847
4830
  g.value = !1;
@@ -4849,35 +4832,35 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4849
4832
  onSetParams: (l, v) => {
4850
4833
  $.setParams(l, v);
4851
4834
  },
4852
- onSectionRendered: (l, v, q) => {
4853
- q && (ce.value = { ...ce.value, [l]: q }), et(l, v, "ok");
4835
+ onSectionRendered: (l, v, B) => {
4836
+ B && (ce.value = { ...ce.value, [l]: B }), et(l, v, "ok");
4854
4837
  },
4855
- onSectionError: (l, v, q) => {
4856
- console.warn("[report-canvas] section failed", { reportId: I, sectionId: l, message: q }), et(l, v, "error", q);
4838
+ onSectionError: (l, v, B) => {
4839
+ console.warn("[report-canvas] section failed", { reportId: I, sectionId: l, message: B }), et(l, v, "error", B);
4857
4840
  },
4858
- onSectionLayout: (l, v, q) => {
4841
+ onSectionLayout: (l, v, B) => {
4859
4842
  var fe;
4860
4843
  const Q = (fe = b.value) == null ? void 0 : fe.sections.find((ae) => ae.id === l);
4861
- (Q == null ? void 0 : Q.status) === "ok" && et(l, v, "ok", void 0, q);
4844
+ (Q == null ? void 0 : Q.status) === "ok" && et(l, v, "ok", void 0, B);
4862
4845
  }
4863
4846
  });
4864
4847
  $.onResult((l) => ke.pushRows(l)), $.onParamsChanged(() => ke.pushParams($.paramState())), $.bindStore(), de([g, X, ke.ready, we], () => {
4865
4848
  ke.setCommentMode(g.value && !we.value, X.value);
4866
4849
  });
4867
- async function et(l, v, q, Q, fe) {
4850
+ async function et(l, v, B, Q, fe) {
4868
4851
  var Ne, Ue;
4869
4852
  const ae = (Ne = b.value) == null ? void 0 : Ne.sections.find((Le) => Le.id === l);
4870
4853
  if (!ae || v !== ae.version) return;
4871
- const Ce = q === "error" ? Q ?? "the section failed to render" : void 0, _e = fe ?? ae.warnings ?? [];
4872
- if (!(ae.status === q && ae.error === Ce && (ae.warnings ?? []).join(`
4854
+ const Ce = B === "error" ? Q ?? "the section failed to render" : void 0, _e = fe ?? ae.warnings ?? [];
4855
+ if (!(ae.status === B && ae.error === Ce && (ae.warnings ?? []).join(`
4873
4856
  `) === _e.join(`
4874
4857
  `))) {
4875
- ae.status = q, ae.error = Ce, ae.warnings = _e.length ? _e : void 0;
4858
+ ae.status = B, ae.error = Ce, ae.warnings = _e.length ? _e : void 0;
4876
4859
  try {
4877
- await vr(
4860
+ await yr(
4878
4861
  I,
4879
4862
  l,
4880
- { version: v, status: q, error: Ce, warnings: _e },
4863
+ { version: v, status: B, error: Ce, warnings: _e },
4881
4864
  (Ue = b.value) == null ? void 0 : Ue.state
4882
4865
  );
4883
4866
  } catch (Le) {
@@ -4898,20 +4881,20 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4898
4881
  }
4899
4882
  }
4900
4883
  }
4901
- const dn = () => Ge(() => yr(I)), cn = () => Ge(() => xr(I)), mn = (l) => Ge(() => wr(I, l));
4884
+ const dn = () => Ge(() => xr(I)), cn = () => Ge(() => wr(I)), mn = (l) => Ge(() => kr(I, l));
4902
4885
  async function un() {
4903
4886
  try {
4904
4887
  L.value = "";
4905
4888
  const l = await Rt(I);
4906
- b.value = l, $.load(l), B.value && xt.value && Qe.value && (_.value = !0), await Ee(), await ke.init(l.sections, $.paramState(), $.env());
4889
+ b.value = l, $.load(l), q.value && xt.value && Qe.value && (_.value = !0), await Ee(), await ke.init(l.sections, $.paramState(), $.env());
4907
4890
  } catch (l) {
4908
4891
  L.value = l instanceof Error ? l.message : String(l);
4909
4892
  }
4910
4893
  }
4911
4894
  const tt = /* @__PURE__ */ new Set();
4912
- let qe = null, nt = !1;
4895
+ let Be = null, nt = !1;
4913
4896
  function at() {
4914
- return qe ? (nt = !0, qe) : (qe = (async () => {
4897
+ return Be ? (nt = !0, Be) : (Be = (async () => {
4915
4898
  do {
4916
4899
  nt = !1;
4917
4900
  try {
@@ -4921,23 +4904,23 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4921
4904
  }
4922
4905
  } while (nt);
4923
4906
  })().finally(() => {
4924
- qe = null;
4925
- }), qe);
4907
+ Be = null;
4908
+ }), Be);
4926
4909
  }
4927
4910
  async function pn() {
4928
4911
  var Ce, _e;
4929
4912
  const l = (((Ce = b.value) == null ? void 0 : Ce.sections) ?? []).map((ie) => ie.id), v = new Map(
4930
4913
  (((_e = b.value) == null ? void 0 : _e.sections) ?? []).map((ie) => [ie.id, ie.version])
4931
- ), q = await Rt(I);
4932
- b.value = q;
4914
+ ), B = await Rt(I);
4915
+ b.value = B;
4933
4916
  const Q = [...tt];
4934
- tt.clear(), $.applyCanvas(q, Q) && ke.pushParams($.paramState());
4935
- const fe = q.sections.map((ie) => ie.id);
4917
+ tt.clear(), $.applyCanvas(B, Q) && ke.pushParams($.paramState());
4918
+ const fe = B.sections.map((ie) => ie.id);
4936
4919
  if (fe.length !== l.length || fe.some((ie, Ne) => ie !== l[Ne])) {
4937
- await ke.init(q.sections, $.paramState(), $.env());
4920
+ await ke.init(B.sections, $.paramState(), $.env());
4938
4921
  return;
4939
4922
  }
4940
- const ae = q.sections.filter(
4923
+ const ae = B.sections.filter(
4941
4924
  (ie) => v.get(ie.id) !== ie.version
4942
4925
  );
4943
4926
  ae.length && await ke.swapSections(ae);
@@ -4952,10 +4935,10 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4952
4935
  () => Object.values($.results.value).some((l) => l.truncated)
4953
4936
  );
4954
4937
  return Me(async () => {
4955
- window.addEventListener("keydown", C), await un(), B.value && ge.seed(await en());
4956
- }), De(() => window.removeEventListener("keydown", C)), (l, v) => {
4938
+ window.addEventListener("keydown", C), await un(), q.value && ge.seed(await en());
4939
+ }), je(() => window.removeEventListener("keydown", C)), (l, v) => {
4957
4940
  var Ce, _e, ie, Ne, Ue, Le;
4958
- const q = Ie("FmTooltip"), Q = Ie("FmPageHead"), fe = Ie("FmButton"), ae = Ie("FmIcon");
4941
+ const B = Ie("FmTooltip"), Q = Ie("FmPageHead"), fe = Ie("FmButton"), ae = Ie("FmIcon");
4959
4942
  return c(), p("div", {
4960
4943
  ref_key: "root",
4961
4944
  ref: on,
@@ -4970,7 +4953,7 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4970
4953
  "onClick:back": v[0] || (v[0] = (ne) => s(a).push({ name: "reports", query: s(t).query }))
4971
4954
  }, {
4972
4955
  title: $e(() => [
4973
- Z(q, {
4956
+ Z(B, {
4974
4957
  content: y.value,
4975
4958
  placement: "bottom",
4976
4959
  "z-index": 2e3,
@@ -4985,8 +4968,8 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4985
4968
  _: 1
4986
4969
  }, 8, ["title"])),
4987
4970
  w("div", Yo, [
4988
- !l.viewOnly || ((Ce = b.value) == null ? void 0 : Ce.hostFilters) !== !1 ? (c(), p("div", Ko, [
4989
- ((_e = b.value) == null ? void 0 : _e.hostFilters) !== !1 ? (c(), p("div", Jo, [
4971
+ !l.viewOnly || ((Ce = b.value) == null ? void 0 : Ce.hostFilters) !== !1 ? (c(), p("div", Jo, [
4972
+ ((_e = b.value) == null ? void 0 : _e.hostFilters) !== !1 ? (c(), p("div", Ko, [
4990
4973
  Z(In, {
4991
4974
  modelValue: s(Xe),
4992
4975
  "onUpdate:modelValue": v[2] || (v[2] = (ne) => It(Xe) ? Xe.value = ne : null),
@@ -4994,8 +4977,8 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
4994
4977
  }, {
4995
4978
  default: $e(() => [
4996
4979
  Z(Cn, {
4997
- "date-range": s(Je),
4998
- "onUpdate:dateRange": v[1] || (v[1] = (ne) => It(Je) ? Je.value = ne : null)
4980
+ "date-range": s(Ke),
4981
+ "onUpdate:dateRange": v[1] || (v[1] = (ne) => It(Ke) ? Ke.value = ne : null)
4999
4982
  }, null, 8, ["date-range"])
5000
4983
  ]),
5001
4984
  _: 1
@@ -5008,10 +4991,10 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
5008
4991
  variant: "tertiary",
5009
4992
  "prepend-icon": "history",
5010
4993
  label: s(r)("reportV5.reportCanvas.draft.history"),
5011
- "aria-expanded": j.value,
4994
+ "aria-expanded": D.value,
5012
4995
  onClick: O
5013
4996
  }, null, 8, ["label", "aria-expanded"])) : R("", !0),
5014
- B.value ? (c(), me(q, {
4997
+ q.value ? (c(), me(B, {
5015
4998
  key: 1,
5016
4999
  placement: "bottom",
5017
5000
  content: s(r)(
@@ -5024,7 +5007,7 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
5024
5007
  class: Pe(["canvas-comment-target flex h-32 w-32 items-center justify-center rounded-md text-fm-color-typo-secondary disabled:opacity-50", g.value && "bg-fm-color-neutral-gray-100 text-fm-color-primary"]),
5025
5008
  "aria-pressed": g.value,
5026
5009
  "aria-label": s(r)("reportV5.reportAi.chat.commentWidget"),
5027
- disabled: s(we) || j.value,
5010
+ disabled: s(we) || D.value,
5028
5011
  onClick: v[3] || (v[3] = (ne) => g.value = !g.value)
5029
5012
  }, v[15] || (v[15] = [
5030
5013
  w("svg", {
@@ -5046,7 +5029,7 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
5046
5029
  ]),
5047
5030
  _: 1
5048
5031
  }, 8, ["content"])) : R("", !0),
5049
- B.value && !_.value && !j.value ? (c(), me(fe, {
5032
+ q.value && !_.value && !D.value ? (c(), me(fe, {
5050
5033
  key: 2,
5051
5034
  "data-testid": "report-canvas-chat-open",
5052
5035
  variant: "tertiary",
@@ -5121,19 +5104,19 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
5121
5104
  ),
5122
5105
  role: s(Ze) ? "dialog" : void 0,
5123
5106
  "aria-modal": s(Ze) ? "true" : void 0,
5124
- "aria-label": s(r)(j.value ? "reportV5.reportCanvas.draft.history" : "reportV5.reportAi.chat.title")
5107
+ "aria-label": s(r)(D.value ? "reportV5.reportCanvas.draft.history" : "reportV5.reportAi.chat.title")
5125
5108
  }, [
5126
- j.value ? (c(), me(fo, {
5109
+ D.value ? (c(), me(co, {
5127
5110
  key: 0,
5128
5111
  "report-id": s(I),
5129
5112
  "published-at": (Ue = b.value) == null ? void 0 : Ue.publishedAt,
5130
5113
  timezone: s($).env().timezone,
5131
5114
  "has-draft": x.value,
5132
5115
  busy: s(we) || E.value,
5133
- onClose: v[6] || (v[6] = (ne) => j.value = !1),
5134
- onRestored: J,
5116
+ onClose: v[6] || (v[6] = (ne) => D.value = !1),
5117
+ onRestored: K,
5135
5118
  onRestoring: v[7] || (v[7] = (ne) => U.value = ne)
5136
- }, null, 8, ["report-id", "published-at", "timezone", "has-draft", "busy"])) : (c(), me(br, {
5119
+ }, null, 8, ["report-id", "published-at", "timezone", "has-draft", "busy"])) : (c(), me(gr, {
5137
5120
  key: 1,
5138
5121
  "home-draft": M.value,
5139
5122
  "onUpdate:homeDraft": v[8] || (v[8] = (ne) => M.value = ne),
@@ -5160,13 +5143,13 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
5160
5143
  "chat-id": s(be),
5161
5144
  "chat-title": s(Te),
5162
5145
  chats: s(Fe),
5163
- "chats-cursor": s(Be),
5164
- "chats-loading": s(Ke),
5146
+ "chats-cursor": s(qe),
5147
+ "chats-loading": s(Je),
5165
5148
  "chats-error": s(We),
5166
5149
  switching: s(Re),
5167
5150
  busy: vt.value,
5168
5151
  earlier: s(Yt),
5169
- "loading-earlier": s(Kt),
5152
+ "loading-earlier": s(Jt),
5170
5153
  "onUpdate:draft": v[10] || (v[10] = (ne) => S.value = ne),
5171
5154
  onClearTarget: xe,
5172
5155
  onSubmit: A,
@@ -5177,15 +5160,15 @@ const Ho = "page_filters", Wo = { class: "flex min-w-0 grow flex-col" }, Go = {
5177
5160
  onCheckStatus: s(ge).refresh,
5178
5161
  onNewChat: i,
5179
5162
  onSelectChat: f,
5180
- onLoadChats: v[12] || (v[12] = (ne) => s(D).loadChats()),
5181
- onLoadMoreChats: v[13] || (v[13] = (ne) => s(D).loadChats(s(Be) ?? void 0)),
5182
- onLoadEarlier: v[14] || (v[14] = (ne) => s(D).loadEarlier())
5163
+ onLoadChats: v[12] || (v[12] = (ne) => s(j).loadChats()),
5164
+ onLoadMoreChats: v[13] || (v[13] = (ne) => s(j).loadChats(s(qe) ?? void 0)),
5165
+ onLoadEarlier: v[14] || (v[14] = (ne) => s(j).loadEarlier())
5183
5166
  }, null, 8, ["home-draft", "home-open", "messages", "draft", "target", "target-stale", "streaming", "turn-id", "phase", "slow", "error", "interrupted", "blank", "run", "run-anchor-id", "run-stale", "retry-error", "undoable-turn-ids", "undoing", "unsent-ids", "chat-id", "chat-title", "chats", "chats-cursor", "chats-loading", "chats-error", "switching", "busy", "earlier", "loading-earlier", "onRetry", "onCheckStatus"]))
5184
5167
  ], 10, di)) : R("", !0)
5185
5168
  ], 512);
5186
5169
  };
5187
5170
  }
5188
- }), ki = /* @__PURE__ */ ut(ci, [["__scopeId", "data-v-14b7e3fc"]]);
5171
+ }), _i = /* @__PURE__ */ ut(ci, [["__scopeId", "data-v-14b7e3fc"]]);
5189
5172
  export {
5190
- ki as default
5173
+ _i as default
5191
5174
  };