@wssto2/vue-core 0.12.1 → 0.13.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 (122) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +4 -2
  3. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-CzQbD2Pc.js → AccessGate.vue_vue_type_script_setup_true_lang-DEzXovsY.js} +1 -1
  4. package/dist/{Activity-CdkJW68R.js → Activity-ChfxdvXf.js} +24 -23
  5. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-lPj9hPqV.js} +33 -33
  6. package/dist/{Changes-DxK_QfiB.js → Changes-BCa43_mO.js} +18 -17
  7. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-x0jyJ01f.js → CollectionPage.vue_vue_type_script_setup_true_lang-C1GCvyZx.js} +6 -6
  8. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-C_ZytnW-.js → DataTable.vue_vue_type_script_setup_true_lang-B9r9M5Gt.js} +1 -1
  9. package/dist/{DateField.vue_vue_type_script_setup_true_lang-CeNwBbJT.js → DateField.vue_vue_type_script_setup_true_lang-B5UUY1OO.js} +2 -2
  10. package/dist/{DeadLetters-DnA7LP1w.js → DeadLetters-wFTqhISU.js} +5 -5
  11. package/dist/{General-2matxl2Y.js → General-jW7u4MjH.js} +16 -15
  12. package/dist/{IncidentRecord-Bt3G4HlX.js → IncidentRecord-CXzgLKqI.js} +6 -6
  13. package/dist/{IncidentsList-2iwgqp9J.js → IncidentsList-D1MySyXb.js} +6 -6
  14. package/dist/{NewRolePage-DhGFwvk3.js → NewRolePage-CQ5UVaHs.js} +3 -3
  15. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-B3UrXNqH.js → NumberField.vue_vue_type_script_setup_true_lang-YVgf5CP6.js} +1 -1
  16. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-DbGZSNQc.js → PersonAccess.vue_vue_type_script_setup_true_lang-CWCt9_dM.js} +2 -2
  17. package/dist/{ProfilePage-CpuyDBAv.js → ProfilePage-Ca3x3UAH.js} +79 -77
  18. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-DqGc3Jyo.js → RecordHeader.vue_vue_type_script_setup_true_lang-Do_ATJwT.js} +1 -1
  19. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-DljhsTU4.js → ResourcePage.vue_vue_type_script_setup_true_lang-Coz91xht.js} +1 -1
  20. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-C0FIotFA.js → RoleEditor.vue_vue_type_script_setup_true_lang-d_aaeXTT.js} +2 -2
  21. package/dist/{RolePage-DaNv049g.js → RolePage-BUj1w1m1.js} +5 -5
  22. package/dist/{RolesPage-6hlzJes_.js → RolesPage-NKzBUsrM.js} +3 -3
  23. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-Dh3sXUt_.js → SectionNavigator.vue_vue_type_script_setup_true_lang-DfKEhTFv.js} +2 -2
  24. package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-FJbWxME_.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-4nbhEpv_.js} +10 -9
  25. package/dist/{ServiceAccountRecord-0-JF5lRx.js → ServiceAccountRecord-ClbyeLhL.js} +8 -8
  26. package/dist/{ServiceAccountsList-DcsnOcf-.js → ServiceAccountsList-B2VDnYxD.js} +5 -5
  27. package/dist/{Sessions-DgWhpk-i.js → Sessions-BjkciyHH.js} +23 -21
  28. package/dist/{SettingsPage-BXPWATYU.js → SettingsPage-Csb14qsx.js} +7 -7
  29. package/dist/{SignIn-DPoUwHZd.js → SignIn-DPFMv4C7.js} +14 -12
  30. package/dist/{SignInPage-OyrVemro.js → SignInPage-DukoFqkt.js} +2 -2
  31. package/dist/{SignIns-BMDrZVVp.js → SignIns-DvdpNkiS.js} +23 -22
  32. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-D-Em4glH.js → TimeField.vue_vue_type_script_setup_true_lang-DpDXHH7u.js} +2 -2
  33. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-ClZAAUMd.js → Timestamp.vue_vue_type_script_setup_true_lang-DlEUKWra.js} +1 -1
  34. package/dist/{UserRecord-BW-gdCqi.js → UserRecord-B9SeSWQh.js} +57 -55
  35. package/dist/{UsersList-B3ZF_1Dj.js → UsersList-CREG8q3l.js} +4 -4
  36. package/dist/access/index.js +4 -4
  37. package/dist/app/application.d.ts +14 -6
  38. package/dist/app/current.d.ts +11 -0
  39. package/dist/app/environment.d.ts +8 -0
  40. package/dist/app/index.d.ts +1 -0
  41. package/dist/app/index.js +14 -12
  42. package/dist/application-DomS6sbx.js +435 -0
  43. package/dist/collection/http.d.ts +16 -1
  44. package/dist/collection/index.d.ts +1 -1
  45. package/dist/collection/index.js +34 -32
  46. package/dist/content/Money.vue.d.ts +1 -1
  47. package/dist/content/index.js +151 -158
  48. package/dist/{contributions-CeG4bszd.js → contributions-obnyn03x.js} +1 -1
  49. package/dist/current-B0lHKTWr.js +17 -0
  50. package/dist/form/DateField.vue.d.ts +2 -2
  51. package/dist/form/DateTimeField.vue.d.ts +2 -2
  52. package/dist/form/MoneyField.vue.d.ts +1 -1
  53. package/dist/form/NumberField.vue.d.ts +1 -1
  54. package/dist/form/date/MonthYearPanel.vue.d.ts +1 -1
  55. package/dist/form/date/days.d.ts +3 -3
  56. package/dist/form/index.d.ts +2 -0
  57. package/dist/form/index.js +1111 -1081
  58. package/dist/form/zodErrorMap.d.ts +35 -0
  59. package/dist/format/format.d.ts +51 -6
  60. package/dist/format/index.d.ts +1 -1
  61. package/dist/format/index.js +1 -1
  62. package/dist/format-DoKs29bZ.js +118 -0
  63. package/dist/{guards-Biv_SlGn.js → guards-DGcSfTEh.js} +1 -1
  64. package/dist/http-DOEfFCDA.js +107 -0
  65. package/dist/i18n/index.js +15 -15
  66. package/dist/identity/index.d.ts +2 -0
  67. package/dist/identity/index.js +43 -40
  68. package/dist/identity/usePreferences.d.ts +19 -0
  69. package/dist/incidents/clientErrorReporter.d.ts +2 -1
  70. package/dist/incidents/index.js +1 -1
  71. package/dist/{index-kEHY7hcG.js → index-CRxU_Wh2.js} +61 -61
  72. package/dist/{index-Cq9TuOqH.js → index-DZikGJ8L.js} +457 -511
  73. package/dist/{index-ClJeyW3F.js → index-D_yyd4C2.js} +4 -4
  74. package/dist/index.d.ts +1 -1
  75. package/dist/index.js +1 -1
  76. package/dist/internal/intlLocale.d.ts +5 -2
  77. package/dist/modules/identity/entities.d.ts +4 -0
  78. package/dist/modules/identity/routes.d.ts +5 -2
  79. package/dist/modules/identity/schemas.d.ts +6 -2
  80. package/dist/{navigation-TnVFYRaX.js → navigation-CctcxT51.js} +1 -1
  81. package/dist/{neighbors-OyvGi233.js → neighbors-Csfan8Ho.js} +1 -1
  82. package/dist/notifications/index.js +1 -1
  83. package/dist/onboarding/Tip.vue.d.ts +41 -0
  84. package/dist/onboarding/index.d.ts +1 -0
  85. package/dist/onboarding/index.js +145 -0
  86. package/dist/onboarding/tips.d.ts +5 -0
  87. package/dist/page/index.js +3 -3
  88. package/dist/phone/index.js +74 -74
  89. package/dist/phone/phone.d.ts +3 -3
  90. package/dist/platform/httpSession.d.ts +1 -1
  91. package/dist/platform/index.d.ts +2 -0
  92. package/dist/platform/index.js +16 -13
  93. package/dist/platform/preferences.d.ts +35 -0
  94. package/dist/platform/session.d.ts +6 -1
  95. package/dist/platform-DtISOEt7.js +284 -0
  96. package/dist/playwright/session.d.ts +2 -0
  97. package/dist/preferences-hYhrw8Uy.js +91 -0
  98. package/dist/resource/index.d.ts +1 -0
  99. package/dist/resource/index.js +24 -8
  100. package/dist/resource/read.d.ts +16 -0
  101. package/dist/router/index.js +3 -3
  102. package/dist/{rowLayout-BsKEzEME.js → rowLayout-y1IB_h2r.js} +2 -2
  103. package/dist/{sections-CvUwZ-S1.js → sections-fkW_IJLc.js} +1 -1
  104. package/dist/{serverMessages-B6GHgi40.js → serverMessages-Ddghrewh.js} +1 -1
  105. package/dist/shell/darkMode.d.ts +13 -8
  106. package/dist/shell/index.js +396 -384
  107. package/dist/{state-6KSYsVw0.js → state-CXMexi0l.js} +1 -1
  108. package/dist/styles.css +1 -1
  109. package/dist/testing/app.d.ts +11 -0
  110. package/dist/testing/format.d.ts +4 -2
  111. package/dist/testing/index.d.ts +1 -1
  112. package/dist/testing/index.js +96 -89
  113. package/dist/testing/platform.d.ts +2 -0
  114. package/dist/usePreferences-B8LIZp_f.js +47 -0
  115. package/dist/{useTypedEntry-C_Bk4sI0.js → useTypedEntry-DKs8I1yP.js} +279 -280
  116. package/package.json +6 -2
  117. package/src/styles/components.css +17 -0
  118. package/dist/application-CuzT-0vW.js +0 -420
  119. package/dist/format-D8KUBmbS.js +0 -87
  120. package/dist/http-Dm0uXY9O.js +0 -95
  121. package/dist/intlLocale-CeRU44qJ.js +0 -4
  122. package/dist/platform-BQOX_Ntw.js +0 -283
@@ -1,14 +1,14 @@
1
- import { defineComponent as R, provide as ce, computed as L, ref as N, useId as Se, openBlock as l, createElementBlock as m, normalizeClass as T, unref as t, createVNode as p, createCommentVNode as k, createElementVNode as r, toDisplayString as M, createBlock as P, withDirectives as nt, Fragment as U, renderList as se, vShow as at, withCtx as D, mergeProps as le, useTemplateRef as re, renderSlot as j, createSlots as G, normalizeProps as ne, guardReactiveProps as ae, inject as Le, onMounted as ot, onBeforeUnmount as Re, normalizeStyle as ve, nextTick as be, watch as Q, onScopeDispose as ue, Teleport as Oe, shallowRef as Ne, h as te, Transition as we, toValue as _e, createTextVNode as ie } from "vue";
1
+ import { defineComponent as O, provide as ce, computed as L, ref as P, useId as Se, openBlock as r, createElementBlock as m, normalizeClass as T, unref as t, createVNode as p, createCommentVNode as k, createElementVNode as i, toDisplayString as M, createBlock as N, withDirectives as nt, Fragment as U, renderList as se, vShow as at, withCtx as D, mergeProps as le, useTemplateRef as re, renderSlot as j, createSlots as G, normalizeProps as ne, guardReactiveProps as ae, inject as Le, onMounted as ot, onBeforeUnmount as Oe, normalizeStyle as ve, nextTick as be, watch as Q, onScopeDispose as ue, Teleport as Re, shallowRef as Pe, h as te, Transition as we, toValue as _e, createTextVNode as ie } from "vue";
2
2
  import { useI18n as K } from "vue-i18n";
3
- import { _ as Pe } from "../Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
3
+ import { _ as Ne } from "../Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
4
4
  import { _ as q, u as st, c as lt } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
5
5
  import { _ as rt } from "../Popover.vue_vue_type_script_setup_true_lang-C20Hf3Hl.js";
6
- import { u as qe, S as J } from "../contributions-CeG4bszd.js";
6
+ import { u as qe, S as J } from "../contributions-obnyn03x.js";
7
7
  import { u as it } from "../environment-Dva-SG8D.js";
8
8
  import { _ as ct } from "../CountryFlag.vue_vue_type_script_setup_true_lang-Kry_vPPZ.js";
9
9
  import { l as Ae } from "../languageName-CItV_SOv.js";
10
10
  import { t as Be } from "../toast-CqSDTWRX.js";
11
- import { u as de, h as Ce } from "../platform-BQOX_Ntw.js";
11
+ import { u as de, h as Ce } from "../platform-DtISOEt7.js";
12
12
  import { a as ut, _ as $e, h as Ee } from "../AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
13
13
  import { _ as dt } from "../Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js";
14
14
  import { _ as ft } from "../LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CIwW7y4j.js";
@@ -17,7 +17,7 @@ import { _ as pt } from "../BottomDock.vue_vue_type_script_setup_true_lang-CjN7x
17
17
  import { b as je } from "../chrome-nUcmVu8G.js";
18
18
  import { p as Ke, A as vt } from "../access-DmAceEo5.js";
19
19
  import { RouterLink as Ve, useRoute as ht, useRouter as ge } from "vue-router";
20
- import { u as bt } from "../navigation-TnVFYRaX.js";
20
+ import { u as bt } from "../navigation-CctcxT51.js";
21
21
  import { u as gt } from "../leaveGuard-Cc8yeLxM.js";
22
22
  import { u as yt, S as xt } from "../dialogStack-B5G6xHq0.js";
23
23
  import { a as oe } from "../mediaQuery-CygcXmFW.js";
@@ -25,49 +25,51 @@ import { u as Fe } from "../useDialog-DfNmqM-0.js";
25
25
  import { _ as kt } from "../Menu.vue_vue_type_script_setup_true_lang-wKc9gdCn.js";
26
26
  import { W as _t, s as Ue, u as wt, b as $t } from "../shortcut-DUR6yPWA.js";
27
27
  import { d as fe } from "../feature-DdUAfyi4.js";
28
- import { _ as po } from "../HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js";
28
+ import { _ as go } from "../HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js";
29
29
  import { p as St } from "../perDocument-DUuFrdGU.js";
30
30
  import { _ as De } from "../Highlight.vue_vue_type_script_setup_true_lang-DZGBmwcX.js";
31
31
  import { _ as Lt } from "../SearchInput.vue_vue_type_script_setup_true_lang-w4eAqyZ9.js";
32
32
  import { _ as Ct } from "../Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
33
33
  import { _ as Et } from "../StatusLine.vue_vue_type_script_setup_true_lang-DsdQmLq6.js";
34
- import { _ as Tt } from "../BottomDockPortal.vue_vue_type_script_setup_true_lang-DmwR-2SP.js";
35
- const Mt = ["aria-expanded", "aria-controls"], At = { class: "flex-1 whitespace-nowrap" }, Dt = { class: "truncate" }, zt = ["id"], We = /* @__PURE__ */ R({
34
+ import { u as Tt } from "../usePreferences-B8LIZp_f.js";
35
+ import { p as Mt } from "../preferences-hYhrw8Uy.js";
36
+ import { _ as At } from "../BottomDockPortal.vue_vue_type_script_setup_true_lang-DmwR-2SP.js";
37
+ const Dt = ["aria-expanded", "aria-controls"], zt = { class: "flex-1 whitespace-nowrap" }, It = { class: "truncate" }, Ot = ["id"], We = /* @__PURE__ */ O({
36
38
  __name: "AccountMenuContent",
37
39
  props: {
38
40
  appearance: {}
39
41
  },
40
42
  emits: ["close"],
41
43
  setup(e, { emit: a }) {
42
- const n = e, o = a, { t: i } = K(), { session: u } = de(), s = it(), c = qe();
44
+ const n = e, o = a, { t: l } = K(), { session: c } = de(), s = it(), u = qe();
43
45
  ce(ut, { appearance: n.appearance, close: () => o("close") });
44
- const d = n.appearance === "sheet", b = L(() => c.get("accountMenu").length > 0), g = s.locales.length > 1, h = N(!1), $ = Se(), _ = L(() => Ae(s.locale.value)), y = (z) => s.localeFlags[z];
46
+ const d = n.appearance === "sheet", b = L(() => u.get("accountMenu").length > 0), g = s.locales.length > 1, h = P(!1), $ = Se(), _ = L(() => Ae(s.locale.value)), y = (z) => s.localeFlags[z];
45
47
  async function C() {
46
48
  try {
47
- await u.signOut();
49
+ await c.signOut();
48
50
  } catch {
49
- Be.error(i("core.shell.account.sign_out_failed"));
51
+ Be.error(l("core.shell.account.sign_out_failed"));
50
52
  }
51
53
  }
52
54
  const v = d ? "overflow-hidden rounded-group bg-surface-cell shadow-group" : "";
53
- return (z, f) => (l(), m("div", {
55
+ return (z, f) => (r(), m("div", {
54
56
  class: T(d ? "flex flex-col gap-group-gap text-content-strong" : "-m-1.5 space-y-1 *:not-first:border-t *:not-first:border-border-separator *:not-first:pt-1"),
55
57
  "data-shell-account-menu": ""
56
58
  }, [
57
- b.value ? (l(), m("div", {
59
+ b.value ? (r(), m("div", {
58
60
  key: 0,
59
61
  class: T(t(v))
60
62
  }, [
61
63
  p(t(J), { name: "accountMenu" })
62
64
  ], 2)) : k("", !0),
63
- g ? (l(), m("div", {
65
+ g ? (r(), m("div", {
64
66
  key: 1,
65
67
  class: T(t(v))
66
68
  }, [
67
- r("div", {
69
+ i("div", {
68
70
  class: T(d ? "relative" : "")
69
71
  }, [
70
- r("button", {
72
+ i("button", {
71
73
  type: "button",
72
74
  "aria-expanded": h.value,
73
75
  "aria-controls": t($),
@@ -80,43 +82,43 @@ const Mt = ["aria-expanded", "aria-controls"], At = { class: "flex-1 whitespace-
80
82
  size: d ? 22 : 16,
81
83
  class: "shrink-0 text-content-muted"
82
84
  }, null, 8, ["size"]),
83
- r("span", At, M(t(i)("core.shell.account.language")), 1),
84
- r("span", {
85
+ i("span", zt, M(t(l)("core.shell.account.language")), 1),
86
+ i("span", {
85
87
  class: T(["flex min-w-0 items-center gap-1.5 text-content-muted", d ? "" : "text-xs"])
86
88
  }, [
87
- y(t(s).locale.value) ? (l(), P(ct, {
89
+ y(t(s).locale.value) ? (r(), N(ct, {
88
90
  key: 0,
89
91
  country: y(t(s).locale.value)
90
92
  }, null, 8, ["country"])) : k("", !0),
91
- r("span", Dt, M(_.value), 1)
93
+ i("span", It, M(_.value), 1)
92
94
  ], 2),
93
95
  p(t(q), {
94
96
  name: "arrowDownSLine",
95
97
  size: d ? 18 : 16,
96
98
  class: T(["shrink-0 text-content-disabled transition-transform duration-motion-fast", h.value ? "rotate-180" : ""])
97
99
  }, null, 8, ["size", "class"])
98
- ], 10, Mt)
100
+ ], 10, Dt)
99
101
  ], 2),
100
- nt(r("div", {
102
+ nt(i("div", {
101
103
  id: t($),
102
104
  class: T(d ? "" : "space-y-0.5 pl-4")
103
105
  }, [
104
- (l(!0), m(U, null, se(t(s).locales, (I) => (l(), P($e, {
106
+ (r(!0), m(U, null, se(t(s).locales, (I) => (r(), N($e, {
105
107
  key: I,
106
108
  label: t(Ae)(I),
107
109
  flag: y(I),
108
110
  selected: I === t(s).locale.value,
109
111
  onClick: (E) => t(s).setLocale(I)
110
112
  }, null, 8, ["label", "flag", "selected", "onClick"]))), 128))
111
- ], 10, zt), [
113
+ ], 10, Ot), [
112
114
  [at, h.value]
113
115
  ])
114
116
  ], 2)) : k("", !0),
115
- r("div", {
117
+ i("div", {
116
118
  class: T(t(v))
117
119
  }, [
118
120
  p($e, {
119
- label: t(i)("core.shell.account.sign_out"),
121
+ label: t(l)("core.shell.account.sign_out"),
120
122
  icon: "logoutBoxRLine",
121
123
  tone: "critical",
122
124
  onClick: C
@@ -124,61 +126,61 @@ const Mt = ["aria-expanded", "aria-controls"], At = { class: "flex-1 whitespace-
124
126
  ], 2)
125
127
  ], 2));
126
128
  }
127
- }), It = ["onClick"], Rt = { class: "min-w-0 flex-1" }, Ot = { class: "block truncate text-sm font-semibold text-white" }, Nt = {
129
+ }), Rt = ["onClick"], Pt = { class: "min-w-0 flex-1" }, Nt = { class: "block truncate text-sm font-semibold text-white" }, qt = {
128
130
  key: 0,
129
131
  class: "block truncate text-xs text-gray-300"
130
- }, Pt = /* @__PURE__ */ R({
132
+ }, Bt = /* @__PURE__ */ O({
131
133
  __name: "AccountMenu",
132
134
  props: {
133
135
  identity: {}
134
136
  },
135
137
  setup(e) {
136
138
  const { t: a } = K();
137
- return (n, o) => (l(), P(t(rt), {
139
+ return (n, o) => (r(), N(t(rt), {
138
140
  placement: "top-start",
139
141
  width: "sm",
140
142
  block: "",
141
143
  arrow: !1,
142
144
  label: t(a)("core.shell.account.open")
143
145
  }, {
144
- trigger: D(({ toggle: i, attrs: u, presented: s }) => [
145
- r("button", le({ type: "button" }, u, {
146
+ trigger: D(({ toggle: l, attrs: c, presented: s }) => [
147
+ i("button", le({ type: "button" }, c, {
146
148
  "data-shell-account": "",
147
149
  class: ["flex w-full cursor-pointer items-center gap-3 rounded-md px-2 py-2 text-left transition-colors hover:bg-white/5 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", { "bg-white/10": s }],
148
- onClick: i
150
+ onClick: l
149
151
  }), [
150
- p(t(Pe), {
152
+ p(t(Ne), {
151
153
  name: e.identity.name,
152
154
  size: "md"
153
155
  }, null, 8, ["name"]),
154
- r("span", Rt, [
155
- r("span", Ot, M(e.identity.name), 1),
156
- e.identity.detail ? (l(), m("span", Nt, M(e.identity.detail), 1)) : k("", !0)
156
+ i("span", Pt, [
157
+ i("span", Nt, M(e.identity.name), 1),
158
+ e.identity.detail ? (r(), m("span", qt, M(e.identity.detail), 1)) : k("", !0)
157
159
  ]),
158
160
  p(t(q), {
159
161
  name: "expandUpDownLine",
160
162
  size: 16,
161
163
  class: "shrink-0 text-gray-400"
162
164
  })
163
- ], 16, It)
165
+ ], 16, Rt)
164
166
  ]),
165
- default: D(({ dismiss: i }) => [
167
+ default: D(({ dismiss: l }) => [
166
168
  p(We, {
167
169
  appearance: "popover",
168
- onClose: i
170
+ onClose: l
169
171
  }, null, 8, ["onClose"])
170
172
  ]),
171
173
  _: 1
172
174
  }, 8, ["label"]));
173
175
  }
174
- }), qt = /* @__PURE__ */ R({
176
+ }), jt = /* @__PURE__ */ O({
175
177
  __name: "AccountSheet",
176
178
  props: {
177
179
  identity: {}
178
180
  },
179
181
  setup(e, { expose: a }) {
180
182
  const n = re("sheet");
181
- return a({ present: () => n.value?.present(), dismiss: () => n.value?.dismiss() }), (o, i) => (l(), P(t(dt), {
183
+ return a({ present: () => n.value?.present(), dismiss: () => n.value?.dismiss() }), (o, l) => (r(), N(t(dt), {
182
184
  ref_key: "sheet",
183
185
  ref: n,
184
186
  title: e.identity.name,
@@ -187,14 +189,14 @@ const Mt = ["aria-expanded", "aria-controls"], At = { class: "flex-1 whitespace-
187
189
  default: D(() => [
188
190
  p(We, {
189
191
  appearance: "sheet",
190
- onClose: i[0] || (i[0] = (u) => n.value?.dismiss())
192
+ onClose: l[0] || (l[0] = (c) => n.value?.dismiss())
191
193
  })
192
194
  ]),
193
195
  _: 1
194
196
  }, 8, ["title"]));
195
197
  }
196
198
  });
197
- function Bt() {
199
+ function Kt() {
198
200
  const e = st(), a = (n, o) => Object.prototype.hasOwnProperty.call(n, o);
199
201
  return (n) => n && (e[n] !== void 0 || a(lt, n)) ? n : null;
200
202
  }
@@ -202,22 +204,22 @@ function Xe(e) {
202
204
  return e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.defaultPrevented;
203
205
  }
204
206
  const Ye = (e) => e.to ? [e] : e.children.flatMap(Ye);
205
- function jt(e) {
207
+ function Vt(e) {
206
208
  const a = [];
207
209
  for (const n of e) {
208
210
  const o = Ye(n);
209
211
  if (o.length === 0) continue;
210
- const i = !n.to && o.length > 1 ? n.label : null;
212
+ const l = !n.to && o.length > 1 ? n.label : null;
211
213
  a.push({
212
214
  key: n.key,
213
- heading: i,
214
- separated: i === null && a.length > 0,
215
- items: o.map((u) => ({ key: u.key, label: u.label, icon: u.icon, to: u.to, active: u.active }))
215
+ heading: l,
216
+ separated: l === null && a.length > 0,
217
+ items: o.map((c) => ({ key: c.key, label: c.label, icon: c.icon, to: c.to, active: c.active }))
216
218
  });
217
219
  }
218
220
  return a;
219
221
  }
220
- const Kt = ["aria-label", "data-appearance"], Vt = ["data-separated"], Ft = ["id"], Ut = ["aria-labelledby"], Wt = ["href", "aria-current", "onClick"], Xt = { class: "min-w-0 flex-1 truncate" }, ze = "flex w-full items-center transition-colors focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", He = /* @__PURE__ */ R({
222
+ const Ft = ["aria-label", "data-appearance"], Ut = ["data-separated"], Wt = ["id"], Xt = ["aria-labelledby"], Yt = ["href", "aria-current", "onClick"], Ht = { class: "min-w-0 flex-1 truncate" }, ze = "flex w-full items-center transition-colors focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", He = /* @__PURE__ */ O({
221
223
  __name: "NavigationList",
222
224
  props: {
223
225
  items: { default: void 0 },
@@ -226,7 +228,7 @@ const Kt = ["aria-label", "data-appearance"], Vt = ["data-separated"], Ft = ["id
226
228
  },
227
229
  emits: ["select"],
228
230
  setup(e, { emit: a }) {
229
- const n = e, o = a, { t: i } = K(), u = Se(), s = n.items === void 0 ? bt() : null, c = Bt(), d = L(() => jt(n.items ?? s?.value ?? []));
231
+ const n = e, o = a, { t: l } = K(), c = Se(), s = n.items === void 0 ? bt() : null, u = Kt(), d = L(() => Vt(n.items ?? s?.value ?? []));
230
232
  function b(y, C, v) {
231
233
  if (n.appearance === "drawer" && Xe(y)) {
232
234
  y.preventDefault(), o("select", v);
@@ -252,27 +254,27 @@ const Kt = ["aria-label", "data-appearance"], Vt = ["data-separated"], Ft = ["id
252
254
  heading: "px-3 pt-4.5 pb-1.5 text-subheadline text-content-muted",
253
255
  separator: "before:mx-3 before:my-3 before:block before:border-t before:border-border-separator"
254
256
  }, $ = L(() => n.appearance === "rail" ? g : h), _ = L(() => n.appearance === "rail" ? 16 : 22);
255
- return (y, C) => (l(), m("nav", {
256
- "aria-label": e.label ?? t(i)("core.shell.menu"),
257
+ return (y, C) => (r(), m("nav", {
258
+ "aria-label": e.label ?? t(l)("core.shell.menu"),
257
259
  "data-shell-navigation": "",
258
260
  "data-appearance": e.appearance
259
261
  }, [
260
- r("ul", null, [
261
- (l(!0), m(U, null, se(d.value, (v, z) => (l(), m("li", {
262
+ i("ul", null, [
263
+ (r(!0), m(U, null, se(d.value, (v, z) => (r(), m("li", {
262
264
  key: v.key,
263
265
  "data-separated": v.separated || void 0,
264
266
  class: T(v.separated ? $.value.separator : "")
265
267
  }, [
266
- v.heading ? (l(), m("p", {
268
+ v.heading ? (r(), m("p", {
267
269
  key: 0,
268
- id: `${t(u)}-${z}`,
270
+ id: `${t(c)}-${z}`,
269
271
  class: T([$.value.heading, e.appearance === "rail" ? z > 0 ? "pt-4" : "pt-1" : ""])
270
- }, M(v.heading), 11, Ft)) : k("", !0),
271
- r("ul", {
272
- "aria-labelledby": v.heading ? `${t(u)}-${z}` : void 0,
272
+ }, M(v.heading), 11, Wt)) : k("", !0),
273
+ i("ul", {
274
+ "aria-labelledby": v.heading ? `${t(c)}-${z}` : void 0,
273
275
  class: T(e.appearance === "rail" ? "space-y-0.5" : "")
274
276
  }, [
275
- (l(!0), m(U, null, se(v.items, (f) => (l(), m("li", {
277
+ (r(!0), m(U, null, se(v.items, (f) => (r(), m("li", {
276
278
  key: f.key
277
279
  }, [
278
280
  p(t(Ve), {
@@ -280,31 +282,31 @@ const Kt = ["aria-label", "data-appearance"], Vt = ["data-separated"], Ft = ["id
280
282
  to: f.to
281
283
  }, {
282
284
  default: D(({ href: I, navigate: E }) => [
283
- r("a", {
285
+ i("a", {
284
286
  href: I,
285
287
  "aria-current": f.active ? "page" : void 0,
286
288
  "data-shell-destination": "",
287
289
  class: T([$.value.item, f.active ? $.value.active : $.value.inactive]),
288
290
  onClick: (x) => b(x, E, f.to)
289
291
  }, [
290
- t(c)(f.icon) ? (l(), P(t(q), {
292
+ t(u)(f.icon) ? (r(), N(t(q), {
291
293
  key: 0,
292
- name: t(c)(f.icon),
294
+ name: t(u)(f.icon),
293
295
  size: _.value,
294
296
  class: T(f.active ? $.value.iconActive : $.value.iconInactive)
295
297
  }, null, 8, ["name", "size", "class"])) : k("", !0),
296
- r("span", Xt, M(f.label), 1)
297
- ], 10, Wt)
298
+ i("span", Ht, M(f.label), 1)
299
+ ], 10, Yt)
298
300
  ]),
299
301
  _: 2
300
302
  }, 1032, ["to"])
301
303
  ]))), 128))
302
- ], 10, Ut)
303
- ], 10, Vt))), 128))
304
+ ], 10, Xt)
305
+ ], 10, Ut))), 128))
304
306
  ])
305
- ], 8, Kt));
307
+ ], 8, Ft));
306
308
  }
307
- }), Yt = ["href", "aria-label", "onClick"], Te = /* @__PURE__ */ R({
309
+ }), Qt = ["href", "aria-label", "onClick"], Te = /* @__PURE__ */ O({
308
310
  inheritAttrs: !1,
309
311
  __name: "ShellBrand",
310
312
  props: {
@@ -314,32 +316,32 @@ const Kt = ["aria-label", "data-appearance"], Vt = ["data-separated"], Ft = ["id
314
316
  },
315
317
  emits: ["select"],
316
318
  setup(e, { emit: a }) {
317
- const n = e, o = a, { t: i } = K(), { config: u } = de();
318
- function s(c, d) {
319
- if (n.intercept && Xe(c)) {
320
- c.preventDefault(), o("select", n.to);
319
+ const n = e, o = a, { t: l } = K(), { config: c } = de();
320
+ function s(u, d) {
321
+ if (n.intercept && Xe(u)) {
322
+ u.preventDefault(), o("select", n.to);
321
323
  return;
322
324
  }
323
- d(c);
325
+ d(u);
324
326
  }
325
- return (c, d) => (l(), P(t(Ve), {
327
+ return (u, d) => (r(), N(t(Ve), {
326
328
  custom: "",
327
329
  to: e.to
328
330
  }, {
329
331
  default: D(({ href: b, navigate: g }) => [
330
- r("a", le(c.$attrs, {
332
+ i("a", le(u.$attrs, {
331
333
  href: b,
332
- "aria-label": t(i)("core.shell.home"),
334
+ "aria-label": t(l)("core.shell.home"),
333
335
  "data-shell-brand": "",
334
336
  class: "inline-block rounded-control focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus",
335
337
  onClick: (h) => s(h, g)
336
338
  }), [
337
- j(c.$slots, "default", { tone: e.tone }, () => [
338
- r("span", {
339
+ j(u.$slots, "default", { tone: e.tone }, () => [
340
+ i("span", {
339
341
  class: T(["block truncate text-headline font-semibold", e.tone === "light" ? "text-white" : "text-content-strong"])
340
- }, M(t(u).appName), 3)
342
+ }, M(t(c).appName), 3)
341
343
  ])
342
- ], 16, Yt)
344
+ ], 16, Qt)
343
345
  ]),
344
346
  _: 3
345
347
  }, 8, ["to"]));
@@ -349,16 +351,16 @@ function Qe() {
349
351
  const e = qe();
350
352
  return L(() => e.get("search").length > 0);
351
353
  }
352
- const Ht = {
354
+ const Gt = {
353
355
  class: "flex h-full flex-col bg-surface-page text-content-strong",
354
356
  "data-shell-drawer-content": ""
355
- }, Qt = { class: "shrink-0 pt-[calc(max(0.75rem,env(safe-area-inset-top))+0.75rem)] pr-4 pb-4 pl-[max(1.375rem,env(safe-area-inset-left))]" }, Gt = {
357
+ }, Jt = { class: "shrink-0 pt-[calc(max(0.75rem,env(safe-area-inset-top))+0.75rem)] pr-4 pb-4 pl-[max(1.375rem,env(safe-area-inset-left))]" }, Zt = {
356
358
  key: 0,
357
359
  class: "shrink-0 pr-4 pb-3 pl-[max(1.125rem,env(safe-area-inset-left))]"
358
- }, Jt = { class: "min-w-0 flex-1" }, Zt = { class: "block truncate text-headline font-semibold" }, en = {
360
+ }, en = { class: "min-w-0 flex-1" }, tn = { class: "block truncate text-headline font-semibold" }, nn = {
359
361
  key: 0,
360
362
  class: "block truncate text-footnote text-content-muted"
361
- }, tn = /* @__PURE__ */ R({
363
+ }, an = /* @__PURE__ */ O({
362
364
  __name: "NavigationDrawer",
363
365
  props: {
364
366
  identity: {},
@@ -366,29 +368,29 @@ const Ht = {
366
368
  },
367
369
  emits: ["select", "account"],
368
370
  setup(e, { emit: a }) {
369
- const n = a, { t: o } = K(), i = Qe();
370
- return (u, s) => (l(), m("div", Ht, [
371
- r("div", Qt, [
371
+ const n = a, { t: o } = K(), l = Qe();
372
+ return (c, s) => (r(), m("div", Gt, [
373
+ i("div", Jt, [
372
374
  p(Te, {
373
375
  to: e.home,
374
376
  tone: "brand",
375
377
  intercept: "",
376
378
  class: "max-w-36",
377
- onSelect: s[0] || (s[0] = (c) => n("select", c))
379
+ onSelect: s[0] || (s[0] = (u) => n("select", u))
378
380
  }, G({ _: 2 }, [
379
- u.$slots.brand ? {
381
+ c.$slots.brand ? {
380
382
  name: "default",
381
- fn: D((c) => [
382
- j(u.$slots, "brand", ne(ae(c)))
383
+ fn: D((u) => [
384
+ j(c.$slots, "brand", ne(ae(u)))
383
385
  ]),
384
386
  key: "0"
385
387
  } : void 0
386
388
  ]), 1032, ["to"])
387
389
  ]),
388
- t(i) ? (l(), m("div", Gt, [
390
+ t(l) ? (r(), m("div", Zt, [
389
391
  p(t(J), { name: "search" })
390
392
  ])) : k("", !0),
391
- s[3] || (s[3] = r("div", {
393
+ s[3] || (s[3] = i("div", {
392
394
  class: "mx-5.5 shrink-0 border-t border-border-separator",
393
395
  role: "presentation"
394
396
  }, null, -1)),
@@ -396,23 +398,23 @@ const Ht = {
396
398
  appearance: "drawer",
397
399
  label: t(o)("core.shell.menu"),
398
400
  class: "min-h-0 flex-1 overflow-y-auto overscroll-contain pt-2 pr-2.5 pb-3 pl-[max(0.625rem,env(safe-area-inset-left))] [mask-image:linear-gradient(to_bottom,black_calc(100%-1.5rem),transparent)]",
399
- onSelect: s[1] || (s[1] = (c) => n("select", c))
401
+ onSelect: s[1] || (s[1] = (u) => n("select", u))
400
402
  }, null, 8, ["label"]),
401
- j(u.$slots, "footer"),
402
- r("button", {
403
+ j(c.$slots, "footer"),
404
+ i("button", {
403
405
  type: "button",
404
406
  "data-shell-drawer-account": "",
405
407
  "aria-haspopup": "dialog",
406
408
  class: "flex shrink-0 cursor-pointer items-center gap-3 border-t border-border-separator pt-3 pr-4 pb-[max(1rem,env(safe-area-inset-bottom))] pl-[max(1.125rem,env(safe-area-inset-left))] text-left transition-colors duration-motion-fast active:bg-fill focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus",
407
- onClick: s[2] || (s[2] = (c) => n("account"))
409
+ onClick: s[2] || (s[2] = (u) => n("account"))
408
410
  }, [
409
- p(t(Pe), {
411
+ p(t(Ne), {
410
412
  name: e.identity.name,
411
413
  size: "lg"
412
414
  }, null, 8, ["name"]),
413
- r("span", Jt, [
414
- r("span", Zt, M(e.identity.name), 1),
415
- e.identity.detail ? (l(), m("span", en, M(e.identity.detail), 1)) : k("", !0)
415
+ i("span", en, [
416
+ i("span", tn, M(e.identity.name), 1),
417
+ e.identity.detail ? (r(), m("span", nn, M(e.identity.detail), 1)) : k("", !0)
416
418
  ]),
417
419
  p(t(q), {
418
420
  name: "arrowRightSLine",
@@ -426,21 +428,21 @@ const Ht = {
426
428
  function Je() {
427
429
  return Le(Ge, null);
428
430
  }
429
- const he = 72, nn = 110, an = 0.5, on = 600;
430
- function sn(e, a) {
431
- const n = N(0), o = N(!1);
432
- let i = 0, u = 0, s = !1;
433
- function c(h) {
434
- s = !1, !(!a.enabled() || o.value || h.touches.length !== 1 || window.scrollY > 0) && (i = h.touches[0].clientX, u = h.touches[0].clientY, s = !0);
431
+ const he = 72, on = 110, sn = 0.5, ln = 600;
432
+ function rn(e, a) {
433
+ const n = P(0), o = P(!1);
434
+ let l = 0, c = 0, s = !1;
435
+ function u(h) {
436
+ s = !1, !(!a.enabled() || o.value || h.touches.length !== 1 || window.scrollY > 0) && (l = h.touches[0].clientX, c = h.touches[0].clientY, s = !0);
435
437
  }
436
438
  function d(h) {
437
439
  if (!s) return;
438
- const $ = h.touches[0].clientX - i, _ = h.touches[0].clientY - u;
440
+ const $ = h.touches[0].clientX - l, _ = h.touches[0].clientY - c;
439
441
  if (_ <= 0 || Math.abs($) > _ || window.scrollY > 0) {
440
442
  n.value === 0 && (s = !1), n.value = 0;
441
443
  return;
442
444
  }
443
- n.value = Math.min(nn, _ * an);
445
+ n.value = Math.min(on, _ * sn);
444
446
  }
445
447
  async function b() {
446
448
  if (s) {
@@ -450,7 +452,7 @@ function sn(e, a) {
450
452
  }
451
453
  o.value = !0, n.value = he;
452
454
  try {
453
- await Promise.all([e(), new Promise((h) => setTimeout(h, on))]);
455
+ await Promise.all([e(), new Promise((h) => setTimeout(h, ln))]);
454
456
  } finally {
455
457
  o.value = !1, n.value = 0;
456
458
  }
@@ -460,47 +462,47 @@ function sn(e, a) {
460
462
  s = !1, o.value || (n.value = 0);
461
463
  }
462
464
  return ot(() => {
463
- window.addEventListener("touchstart", c, { passive: !0 }), window.addEventListener("touchmove", d, { passive: !0 }), window.addEventListener("touchend", b), window.addEventListener("touchcancel", g);
464
- }), Re(() => {
465
- window.removeEventListener("touchstart", c), window.removeEventListener("touchmove", d), window.removeEventListener("touchend", b), window.removeEventListener("touchcancel", g);
465
+ window.addEventListener("touchstart", u, { passive: !0 }), window.addEventListener("touchmove", d, { passive: !0 }), window.addEventListener("touchend", b), window.addEventListener("touchcancel", g);
466
+ }), Oe(() => {
467
+ window.removeEventListener("touchstart", u), window.removeEventListener("touchmove", d), window.removeEventListener("touchend", b), window.removeEventListener("touchcancel", g);
466
468
  }), { pull: n, refreshing: o };
467
469
  }
468
- const ln = { class: "flex size-9 items-center justify-center rounded-full bg-surface-raised text-primary-700 shadow-md ring-1 ring-border-separator dark:text-primary-300" }, rn = /* @__PURE__ */ R({
470
+ const cn = { class: "flex size-9 items-center justify-center rounded-full bg-surface-raised text-primary-700 shadow-md ring-1 ring-border-separator dark:text-primary-300" }, un = /* @__PURE__ */ O({
469
471
  __name: "PullToRefresh",
470
472
  setup(e) {
471
- const a = oe("(display-mode: standalone)"), n = yt(), o = Je(), i = gt(), u = Le(Ke, null), { pull: s, refreshing: c } = sn(
473
+ const a = oe("(display-mode: standalone)"), n = yt(), o = Je(), l = gt(), c = Le(Ke, null), { pull: s, refreshing: u } = rn(
472
474
  async () => {
473
- i.hasUnsavedChanges() && !await i.confirm() || (u && u.value++, await be());
475
+ l.hasUnsavedChanges() && !await l.confirm() || (c && c.value++, await be());
474
476
  },
475
477
  {
476
- enabled: () => u !== null && n.value === 0 && !o?.open.value && (a.value || navigator.standalone === !0)
478
+ enabled: () => c !== null && n.value === 0 && !o?.open.value && (a.value || navigator.standalone === !0)
477
479
  }
478
480
  );
479
- return (d, b) => t(s) > 0 || t(c) ? (l(), m("div", {
481
+ return (d, b) => t(s) > 0 || t(u) ? (r(), m("div", {
480
482
  key: 0,
481
483
  "aria-hidden": "true",
482
484
  "data-shell-pull-to-refresh": "",
483
485
  class: "pointer-events-none fixed inset-x-0 z-40 flex justify-center",
484
486
  style: ve({ top: `calc(env(safe-area-inset-top) + ${Math.max(t(s), 8)}px)` })
485
487
  }, [
486
- r("span", ln, [
488
+ i("span", cn, [
487
489
  p(t(q), {
488
- name: t(c) ? "loader4Line" : "refreshLine",
490
+ name: t(u) ? "loader4Line" : "refreshLine",
489
491
  size: 20,
490
- class: T(t(c) ? "animate-spin motion-reduce:animate-none" : ""),
491
- style: ve(t(c) ? void 0 : { transform: `rotate(${t(s) / t(he) * 270}deg)`, opacity: Math.min(1, t(s) / t(he)) })
492
+ class: T(t(u) ? "animate-spin motion-reduce:animate-none" : ""),
493
+ style: ve(t(u) ? void 0 : { transform: `rotate(${t(s) / t(he) * 270}deg)`, opacity: Math.min(1, t(s) / t(he)) })
492
494
  }, null, 8, ["name", "class", "style"])
493
495
  ])
494
496
  ], 4)) : k("", !0);
495
497
  }
496
- }), cn = {
498
+ }), dn = {
497
499
  key: 0,
498
500
  "data-shell-sidebar": "",
499
501
  class: "flex w-64 shrink-0 flex-col bg-anchor-900 dark:border-r dark:border-white/5 dark:bg-anchor-950"
500
- }, un = { class: "sticky top-[var(--shell-banner-h,0px)] z-30 flex h-[calc(100vh-var(--shell-banner-h,0px))] flex-col" }, dn = { class: "flex items-center justify-between gap-2 pt-5 pr-2 pb-3 pl-4" }, fn = { class: "flex shrink-0 items-center gap-1" }, mn = {
502
+ }, fn = { class: "sticky top-[var(--shell-banner-h,0px)] z-30 flex h-[calc(100vh-var(--shell-banner-h,0px))] flex-col" }, mn = { class: "flex items-center justify-between gap-2 pt-5 pr-2 pb-3 pl-4" }, pn = { class: "flex shrink-0 items-center gap-1" }, vn = {
501
503
  key: 0,
502
504
  class: "px-2 pb-1"
503
- }, pn = { class: "border-t border-white/10 p-2" }, vn = /* @__PURE__ */ R({
505
+ }, hn = { class: "border-t border-white/10 p-2" }, bn = /* @__PURE__ */ O({
504
506
  __name: "ShellSidebar",
505
507
  props: {
506
508
  identity: {},
@@ -509,9 +511,9 @@ const ln = { class: "flex size-9 items-center justify-center rounded-full bg-sur
509
511
  setup(e) {
510
512
  ce(Ee, "rail");
511
513
  const a = oe("(min-width: 48rem)"), n = Qe();
512
- return (o, i) => t(a) ? (l(), m("aside", cn, [
513
- r("div", un, [
514
- r("div", dn, [
514
+ return (o, l) => t(a) ? (r(), m("aside", dn, [
515
+ i("div", fn, [
516
+ i("div", mn, [
515
517
  p(Te, {
516
518
  to: e.home,
517
519
  tone: "light",
@@ -519,17 +521,17 @@ const ln = { class: "flex size-9 items-center justify-center rounded-full bg-sur
519
521
  }, G({ _: 2 }, [
520
522
  o.$slots.brand ? {
521
523
  name: "default",
522
- fn: D((u) => [
523
- j(o.$slots, "brand", ne(ae(u)))
524
+ fn: D((c) => [
525
+ j(o.$slots, "brand", ne(ae(c)))
524
526
  ]),
525
527
  key: "0"
526
528
  } : void 0
527
529
  ]), 1032, ["to"]),
528
- r("div", fn, [
530
+ i("div", pn, [
529
531
  p(t(J), { name: "headerActions" })
530
532
  ])
531
533
  ]),
532
- t(n) ? (l(), m("div", mn, [
534
+ t(n) ? (r(), m("div", vn, [
533
535
  p(t(J), { name: "search" })
534
536
  ])) : k("", !0),
535
537
  p(He, {
@@ -537,50 +539,50 @@ const ln = { class: "flex size-9 items-center justify-center rounded-full bg-sur
537
539
  class: "scrollbar-subtle min-h-0 flex-1 overflow-y-auto px-2 pt-3 pb-3 [mask-image:linear-gradient(to_bottom,transparent,black_12px,black_calc(100%-12px),transparent)]"
538
540
  }),
539
541
  j(o.$slots, "footer"),
540
- r("div", pn, [
541
- p(Pt, { identity: e.identity }, null, 8, ["identity"])
542
+ i("div", hn, [
543
+ p(Bt, { identity: e.identity }, null, 8, ["identity"])
542
544
  ])
543
545
  ])
544
546
  ])) : k("", !0);
545
547
  }
546
- }), hn = 20, bn = 8, Ie = 0.5, gn = 40;
547
- function yn({ offset: e, startOffset: a, width: n, velocity: o }) {
548
- if (Math.abs(e - a) > gn) {
548
+ }), gn = 20, yn = 8, Ie = 0.5, xn = 40;
549
+ function kn({ offset: e, startOffset: a, width: n, velocity: o }) {
550
+ if (Math.abs(e - a) > xn) {
549
551
  if (o > Ie) return !0;
550
552
  if (o < -Ie) return !1;
551
553
  }
552
554
  return e > n / 2;
553
555
  }
554
- function xn(e) {
555
- const a = N(0), n = N(!1);
556
- let o = !1, i = null, u = 0, s = 0, c = 0, d = 0, b = 0, g = 0;
556
+ function _n(e) {
557
+ const a = P(0), n = P(!1);
558
+ let o = !1, l = null, c = 0, s = 0, u = 0, d = 0, b = 0, g = 0;
557
559
  function h(E, x) {
558
- o = !0, i = null, u = d = E.clientX, s = E.clientY, c = x, b = performance.now(), g = 0;
560
+ o = !0, l = null, c = d = E.clientX, s = E.clientY, u = x, b = performance.now(), g = 0;
559
561
  }
560
562
  function $(E) {
561
563
  const x = E.touches[0];
562
564
  if (!o || !x) return;
563
- const B = x.clientX - u, Z = x.clientY - s;
564
- if (!i) {
565
- if (Math.max(Math.abs(B), Math.abs(Z)) < bn) return;
566
- if (i = Math.abs(B) > Math.abs(Z) ? "x" : "y", i === "y" || c === 0 && B < 0) {
565
+ const B = x.clientX - c, Z = x.clientY - s;
566
+ if (!l) {
567
+ if (Math.max(Math.abs(B), Math.abs(Z)) < yn) return;
568
+ if (l = Math.abs(B) > Math.abs(Z) ? "x" : "y", l === "y" || u === 0 && B < 0) {
567
569
  o = !1;
568
570
  return;
569
571
  }
570
- n.value = !0, a.value = c, e.onStart();
572
+ n.value = !0, a.value = u, e.onStart();
571
573
  }
572
574
  const Y = performance.now();
573
- g = (x.clientX - d) / Math.max(Y - b, 1), d = x.clientX, b = Y, a.value = Math.min(e.width(), Math.max(0, c + B)), E.cancelable && E.preventDefault();
575
+ g = (x.clientX - d) / Math.max(Y - b, 1), d = x.clientX, b = Y, a.value = Math.min(e.width(), Math.max(0, u + B)), E.cancelable && E.preventDefault();
574
576
  }
575
577
  function _() {
576
- o && (o = !1, n.value && (n.value = !1, e.onSettle(yn({ offset: a.value, startOffset: c, width: e.width(), velocity: g }))));
578
+ o && (o = !1, n.value && (n.value = !1, e.onSettle(kn({ offset: a.value, startOffset: u, width: e.width(), velocity: g }))));
577
579
  }
578
580
  function y() {
579
581
  o = !1, n.value = !1;
580
582
  }
581
583
  function C(E) {
582
584
  const x = E.touches[0];
583
- !x || E.touches.length !== 1 || e.isOpen() || !e.canOpenFromEdge() || x.clientX > hn || h(x, 0);
585
+ !x || E.touches.length !== 1 || e.isOpen() || !e.canOpenFromEdge() || x.clientX > gn || h(x, 0);
584
586
  }
585
587
  let v = !1;
586
588
  function z() {
@@ -596,15 +598,15 @@ function xn(e) {
596
598
  }
597
599
  }, cancel: y };
598
600
  }
599
- const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE__ */ R({
601
+ const wn = ["id", "aria-label"], $n = ["data-drawer", "inert"], Sn = /* @__PURE__ */ O({
600
602
  __name: "ShellStage",
601
603
  props: {
602
604
  enabled: { type: Boolean }
603
605
  },
604
606
  setup(e) {
605
- const a = e, { t: n } = K(), o = ht(), i = ge(), u = oe("(max-width: 47.999rem)"), s = oe("(display-mode: standalone)"), c = oe("(prefers-reduced-motion: reduce)"), d = L(() => a.enabled && u.value), b = re("stage"), g = re("scroller"), h = N(null), $ = Se(), _ = N(!1), y = N(!1), C = N(!1);
607
+ const a = e, { t: n } = K(), o = ht(), l = ge(), c = oe("(max-width: 47.999rem)"), s = oe("(display-mode: standalone)"), u = oe("(prefers-reduced-motion: reduce)"), d = L(() => a.enabled && c.value), b = re("stage"), g = re("scroller"), h = P(null), $ = Se(), _ = P(!1), y = P(!1), C = P(!1);
606
608
  let v = 0, z = !1, f, I = null;
607
- const E = () => h.value?.offsetWidth ?? 0, x = xn({
609
+ const E = () => h.value?.offsetWidth ?? 0, x = _n({
608
610
  enabled: () => d.value,
609
611
  width: E,
610
612
  isOpen: () => C.value,
@@ -631,7 +633,7 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
631
633
  }
632
634
  Q([B, () => x.dragging.value, y], () => {
633
635
  const S = b.value;
634
- !S || !y.value || (S.style.transform = `translate3d(${B.value}px, 0, 0)`, S.style.borderRadius = B.value > 0 ? "2.5rem" : "", S.style.transition = x.dragging.value || c.value ? "none" : "transform var(--app-motion-drawer) var(--app-motion-sheet-easing), border-radius var(--app-motion-drawer) var(--app-motion-sheet-easing)");
636
+ !S || !y.value || (S.style.transform = `translate3d(${B.value}px, 0, 0)`, S.style.borderRadius = B.value > 0 ? "2.5rem" : "", S.style.transition = x.dragging.value || u.value ? "none" : "transform var(--app-motion-drawer) var(--app-motion-sheet-easing), border-radius var(--app-motion-drawer) var(--app-motion-sheet-easing)");
635
637
  }, { flush: "sync" });
636
638
  function H() {
637
639
  if (!d.value) {
@@ -660,7 +662,7 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
660
662
  y.value && (z = !0), C.value && F();
661
663
  });
662
664
  function me(S) {
663
- i.push(S).catch(() => {
665
+ l.push(S).catch(() => {
664
666
  }).finally(() => F());
665
667
  }
666
668
  return ce(Ge, {
@@ -671,10 +673,10 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
671
673
  d.value && (_.value = !0);
672
674
  },
673
675
  dismiss: F
674
- }), Re(() => {
676
+ }), Oe(() => {
675
677
  clearTimeout(f), W();
676
- }), (S, V) => (l(), m(U, null, [
677
- d.value ? (l(), m("div", le({
678
+ }), (S, V) => (r(), m(U, null, [
679
+ d.value ? (r(), m("div", le({
678
680
  key: 0,
679
681
  id: t($),
680
682
  ref_key: "panel",
@@ -685,14 +687,14 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
685
687
  tabindex: "-1",
686
688
  "data-shell-drawer": "",
687
689
  class: ["fixed inset-y-0 left-0 z-0 w-[min(82vw,20rem)] outline-none", y.value ? "visible" : "invisible"],
688
- style: t(c) ? { opacity: C.value || t(x).dragging.value ? 1 : 0, transition: "opacity var(--app-motion-drawer) linear" } : void 0
690
+ style: t(u) ? { opacity: C.value || t(x).dragging.value ? 1 : 0, transition: "opacity var(--app-motion-drawer) linear" } : void 0
689
691
  }, t(x).closeEvents), [
690
692
  j(S.$slots, "drawer", {
691
693
  select: me,
692
694
  dismiss: F
693
695
  })
694
- ], 16, kn)) : k("", !0),
695
- r("div", {
696
+ ], 16, wn)) : k("", !0),
697
+ i("div", {
696
698
  ref_key: "stage",
697
699
  ref: b,
698
700
  "data-shell-stage": "",
@@ -700,21 +702,21 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
700
702
  class: T(["flex flex-1 flex-col", y.value ? "overscroll-none bg-surface-page shadow-dialog" : ""]),
701
703
  inert: C.value || t(x).dragging.value || void 0
702
704
  }, [
703
- r("div", {
705
+ i("div", {
704
706
  ref_key: "scroller",
705
707
  ref: g,
706
708
  class: "flex flex-1 flex-col"
707
709
  }, [
708
710
  j(S.$slots, "default")
709
711
  ], 512),
710
- y.value ? (l(), m("div", {
712
+ y.value ? (r(), m("div", {
711
713
  key: 0,
712
714
  "aria-hidden": "true",
713
715
  class: "pointer-events-none fixed inset-0 z-50 bg-scrim",
714
716
  style: ve({ opacity: Z.value * 0.55 })
715
717
  }, null, 4)) : k("", !0)
716
- ], 10, _n),
717
- y.value && B.value > 0 ? (l(), m("div", le({
718
+ ], 10, $n),
719
+ y.value && B.value > 0 ? (r(), m("div", le({
718
720
  key: 1,
719
721
  "aria-hidden": "true",
720
722
  "data-shell-stage-cover": "",
@@ -725,11 +727,11 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
725
727
  }), null, 16)) : k("", !0)
726
728
  ], 64));
727
729
  }
728
- }), $n = ["aria-label", "aria-expanded", "aria-controls"], Sn = /* @__PURE__ */ R({
730
+ }), Ln = ["aria-label", "aria-expanded", "aria-controls"], Cn = /* @__PURE__ */ O({
729
731
  __name: "NavigationMenuButton",
730
732
  setup(e) {
731
733
  const a = Je(), { t: n } = K();
732
- return (o, i) => t(a)?.available.value ? (l(), m("button", {
734
+ return (o, l) => t(a)?.available.value ? (r(), m("button", {
733
735
  key: 0,
734
736
  type: "button",
735
737
  "data-shell-menu-button": "",
@@ -738,36 +740,36 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
738
740
  "aria-controls": t(a).panelId,
739
741
  "aria-haspopup": "dialog",
740
742
  class: "relative my-1 ml-2 flex size-11 shrink-0 cursor-pointer items-center justify-center rounded-full bg-surface-cell text-content-strong shadow-float transition-transform duration-motion-fast active:scale-95 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus",
741
- onClick: i[0] || (i[0] = (u) => t(a).present())
743
+ onClick: l[0] || (l[0] = (c) => t(a).present())
742
744
  }, [
743
745
  p(t(q), {
744
746
  name: "menuLines",
745
747
  size: 20
746
748
  })
747
- ], 8, $n)) : k("", !0);
749
+ ], 8, Ln)) : k("", !0);
748
750
  }
749
- }), Ln = { class: "grid min-h-bar-height grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-1" }, Cn = { class: "flex min-w-0 items-center justify-start" }, En = ["data-page-action", "disabled"], Tn = { class: "truncate" }, Mn = { class: "ml-1 flex items-center gap-1" }, An = { class: "flex min-w-0 items-center justify-end" }, Dn = ["data-page-action", "aria-label", "disabled", "onClick"], zn = ["data-page-action", "disabled", "aria-label", "aria-busy", "onClick"], In = { class: "truncate" }, Rn = ["aria-label", "onClick"], On = /* @__PURE__ */ R({
751
+ }), En = { class: "grid min-h-bar-height grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-1" }, Tn = { class: "flex min-w-0 items-center justify-start" }, Mn = ["data-page-action", "disabled"], An = { class: "truncate" }, Dn = { class: "ml-1 flex items-center gap-1" }, zn = { class: "flex min-w-0 items-center justify-end" }, In = ["data-page-action", "aria-label", "disabled", "onClick"], On = ["data-page-action", "disabled", "aria-label", "aria-busy", "onClick"], Rn = { class: "truncate" }, Pn = ["aria-label", "onClick"], Nn = /* @__PURE__ */ O({
750
752
  __name: "ShellTopBar",
751
753
  props: {
752
754
  home: {}
753
755
  },
754
756
  setup(e) {
755
- const { t: a } = K(), n = ge(), o = je(), { session: i } = de(), u = oe("(max-width: 47.999rem)");
757
+ const { t: a } = K(), n = ge(), o = je(), { session: l } = de(), c = oe("(max-width: 47.999rem)");
756
758
  ce(Ee, "bar");
757
- const s = L(() => Ce(i.state.value) !== null), c = L(() => !s.value || u.value), d = L(() => s.value ? o.back.value : null), b = L(() => s.value ? o.leading.value : null), g = L(() => o.navTitle.value ?? o.title.value), h = L(() => s.value && !!g.value && (!!o.navTitle.value || !o.titleInView.value)), $ = L(() => s.value ? o.actions.value : []), _ = L(() => $.value.filter((v) => v.placement === "primary" && v.tone !== "critical")), y = L(
759
+ const s = L(() => Ce(l.state.value) !== null), u = L(() => !s.value || c.value), d = L(() => s.value ? o.back.value : null), b = L(() => s.value ? o.leading.value : null), g = L(() => o.navTitle.value ?? o.title.value), h = L(() => s.value && !!g.value && (!!o.navTitle.value || !o.titleInView.value)), $ = L(() => s.value ? o.actions.value : []), _ = L(() => $.value.filter((v) => v.placement === "primary" && v.tone !== "critical")), y = L(
758
760
  () => $.value.filter((v) => !_.value.includes(v)).map((v) => ({ id: v.id, label: v.label, icon: v.icon, tone: v.tone, disabled: v.disabled, processing: v.processing, onSelect: v.onClick }))
759
761
  );
760
762
  function C() {
761
763
  d.value && n.push(d.value.to);
762
764
  }
763
- return (v, z) => c.value ? (l(), m("header", {
765
+ return (v, z) => u.value ? (r(), m("header", {
764
766
  key: 0,
765
767
  "data-shell-top-bar": "",
766
768
  class: T(["pt-[max(0.25rem,env(safe-area-inset-top))] pr-[max(0.5rem,env(safe-area-inset-right))] pb-1 pl-[max(0.5rem,env(safe-area-inset-left))] text-content-strong", s.value ? ["sticky top-[var(--shell-banner-h,0px)] z-30 border-b bg-surface-page/85 backdrop-blur-xl transition-colors duration-motion-normal", h.value ? "border-border-separator" : "border-transparent"] : "border-b border-border-separator bg-surface-cell"])
767
769
  }, [
768
- r("div", Ln, [
769
- r("div", Cn, [
770
- b.value ? (l(), m("button", {
770
+ i("div", En, [
771
+ i("div", Tn, [
772
+ b.value ? (r(), m("button", {
771
773
  key: 0,
772
774
  type: "button",
773
775
  "data-shell-bar-leading": "",
@@ -776,8 +778,8 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
776
778
  class: "hit-target inline-flex min-w-0 cursor-pointer items-center rounded-control px-2 text-body text-content-link disabled:text-content-disabled",
777
779
  onClick: z[0] || (z[0] = (f) => b.value.onClick())
778
780
  }, [
779
- r("span", Tn, M(b.value.label), 1)
780
- ], 8, En)) : d.value ? (l(), m("button", {
781
+ i("span", An, M(b.value.label), 1)
782
+ ], 8, Mn)) : d.value ? (r(), m("button", {
781
783
  key: 1,
782
784
  type: "button",
783
785
  "data-shell-bar-back": "",
@@ -790,15 +792,15 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
790
792
  size: 28,
791
793
  class: "-mr-0.5 shrink-0"
792
794
  }),
793
- r("span", {
795
+ i("span", {
794
796
  class: T(["truncate", h.value ? "sr-only" : ""])
795
797
  }, M(d.value.label), 3)
796
- ])) : s.value ? (l(), m(U, { key: 2 }, [
797
- p(Sn),
798
- r("span", Mn, [
798
+ ])) : s.value ? (r(), m(U, { key: 2 }, [
799
+ p(Cn),
800
+ i("span", Dn, [
799
801
  p(t(J), { name: "headerActions" })
800
802
  ])
801
- ], 64)) : (l(), P(Te, {
803
+ ], 64)) : (r(), N(Te, {
802
804
  key: 3,
803
805
  to: e.home,
804
806
  tone: "brand",
@@ -813,17 +815,17 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
813
815
  } : void 0
814
816
  ]), 1032, ["to", "class"]))
815
817
  ]),
816
- r("span", {
818
+ i("span", {
817
819
  "aria-hidden": "true",
818
820
  "data-shell-bar-title": "",
819
821
  class: T(["pointer-events-none truncate text-center text-headline font-semibold transition-opacity duration-motion-normal", h.value ? "max-w-[42vw] opacity-100" : "max-w-0 opacity-0"])
820
822
  }, M(g.value), 3),
821
- r("div", An, [
822
- s.value ? (l(), m(U, { key: 0 }, [
823
- (l(!0), m(U, null, se(_.value, (f) => (l(), m(U, {
823
+ i("div", zn, [
824
+ s.value ? (r(), m(U, { key: 0 }, [
825
+ (r(!0), m(U, null, se(_.value, (f) => (r(), m(U, {
824
826
  key: f.id
825
827
  }, [
826
- f.compact === "icon" && f.icon ? (l(), m("button", {
828
+ f.compact === "icon" && f.icon ? (r(), m("button", {
827
829
  key: 0,
828
830
  type: "button",
829
831
  "data-page-action": f.id,
@@ -837,7 +839,7 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
837
839
  size: 18,
838
840
  class: T(f.processing ? "animate-spin" : "")
839
841
  }, null, 8, ["name", "class"])
840
- ], 8, Dn)) : (l(), m("button", {
842
+ ], 8, In)) : (r(), m("button", {
841
843
  key: 1,
842
844
  type: "button",
843
845
  "data-page-action": f.id,
@@ -847,22 +849,22 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
847
849
  class: "hit-target flex min-w-0 shrink cursor-pointer items-center gap-1 rounded-control px-2 text-body font-semibold text-content-link disabled:text-content-disabled",
848
850
  onClick: (I) => f.onClick()
849
851
  }, [
850
- f.processing ? (l(), P(t(q), {
852
+ f.processing ? (r(), N(t(q), {
851
853
  key: 0,
852
854
  name: "loader4Line",
853
855
  size: 16,
854
856
  class: "animate-spin"
855
857
  })) : k("", !0),
856
- r("span", In, M(f.shortLabel ?? f.label), 1)
857
- ], 8, zn))
858
+ i("span", Rn, M(f.shortLabel ?? f.label), 1)
859
+ ], 8, On))
858
860
  ], 64))), 128)),
859
- y.value.length ? (l(), P(t(kt), {
861
+ y.value.length ? (r(), N(t(kt), {
860
862
  key: 0,
861
863
  items: y.value,
862
864
  label: t(a)("core.page.more_actions")
863
865
  }, {
864
866
  trigger: D(({ toggle: f, attrs: I }) => [
865
- r("button", le({ type: "button" }, I, {
867
+ i("button", le({ type: "button" }, I, {
866
868
  "aria-label": t(a)("core.page.more_actions"),
867
869
  "data-shell-bar-more": "",
868
870
  "data-page-overflow": "",
@@ -873,7 +875,7 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
873
875
  name: "moreLine",
874
876
  size: 22
875
877
  })
876
- ], 16, Rn)
878
+ ], 16, Pn)
877
879
  ]),
878
880
  _: 1
879
881
  }, 8, ["items", "label"])) : k("", !0)
@@ -884,18 +886,18 @@ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE_
884
886
  ], 2)) : k("", !0);
885
887
  }
886
888
  });
887
- function Nn(e) {
889
+ function qn(e) {
888
890
  const { name: a, email: n } = e;
889
891
  return { name: typeof a == "string" && a !== "" ? a : String(e.id), detail: typeof n == "string" ? n : null };
890
892
  }
891
- function Pn(e) {
892
- const { session: a } = de(), n = e ?? Nn;
893
+ function Bn(e) {
894
+ const { session: a } = de(), n = e ?? qn;
893
895
  return L(() => {
894
896
  const o = Ce(a.state.value);
895
897
  return o ? n(o.user) : null;
896
898
  });
897
899
  }
898
- const qn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-content antialiased" }, Bn = ["aria-label"], jn = { class: "flex flex-1" }, Kn = { class: "flex min-w-0 flex-1 overflow-x-clip" }, Vn = { "data-dialog-inert-skip": "" }, Fn = /* @__PURE__ */ R({
900
+ const jn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-content antialiased" }, Kn = ["aria-label"], Vn = { class: "flex flex-1" }, Fn = { class: "flex min-w-0 flex-1 overflow-x-clip" }, Un = { "data-dialog-inert-skip": "" }, Wn = /* @__PURE__ */ O({
899
901
  __name: "BackofficeShell",
900
902
  props: {
901
903
  home: { default: void 0 },
@@ -904,24 +906,24 @@ const qn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
904
906
  pullToRefresh: { type: Boolean, default: !0 }
905
907
  },
906
908
  setup(e) {
907
- const a = e, { t: n } = K(), { session: o } = de(), i = je(), u = Pn(a.identity);
908
- ce(Ke, N(0));
909
- const s = L(() => Ce(o.state.value) !== null), c = re("accountSheet");
910
- return (d, b) => (l(), m("div", qn, [
911
- e.progress?.visible.value ? (l(), m("div", {
909
+ const a = e, { t: n } = K(), { session: o } = de(), l = je(), c = Bn(a.identity);
910
+ ce(Ke, P(0));
911
+ const s = L(() => Ce(o.state.value) !== null), u = re("accountSheet");
912
+ return (d, b) => (r(), m("div", jn, [
913
+ e.progress?.visible.value ? (r(), m("div", {
912
914
  key: 0,
913
915
  role: "progressbar",
914
916
  "aria-label": t(n)("core.state.loading"),
915
917
  "data-shell-progress": "",
916
918
  class: "fixed inset-x-0 top-0 z-10000 flex h-1 justify-center bg-primary-800"
917
919
  }, [...b[0] || (b[0] = [
918
- r("div", { class: "animate-grow-and-shrink-width bg-primary-600 motion-reduce:w-full motion-reduce:animate-none motion-reduce:opacity-60" }, null, -1)
919
- ])], 8, Bn)) : k("", !0),
920
+ i("div", { class: "animate-grow-and-shrink-width bg-primary-600 motion-reduce:w-full motion-reduce:animate-none motion-reduce:opacity-60" }, null, -1)
921
+ ])], 8, Kn)) : k("", !0),
920
922
  p(t(J), { name: "banner" }),
921
- p(wn, { enabled: s.value }, G({
923
+ p(Sn, { enabled: s.value }, G({
922
924
  default: D(() => [
923
- e.pullToRefresh && s.value ? (l(), P(rn, { key: 0 })) : k("", !0),
924
- p(On, { home: e.home }, G({ _: 2 }, [
925
+ e.pullToRefresh && s.value ? (r(), N(un, { key: 0 })) : k("", !0),
926
+ p(Nn, { home: e.home }, G({ _: 2 }, [
925
927
  d.$slots.brand ? {
926
928
  name: "brand",
927
929
  fn: D((g) => [
@@ -937,10 +939,10 @@ const qn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
937
939
  key: "1"
938
940
  } : void 0
939
941
  ]), 1032, ["home"]),
940
- r("div", jn, [
941
- t(u) ? (l(), P(vn, {
942
+ i("div", Vn, [
943
+ t(c) ? (r(), N(bn, {
942
944
  key: 0,
943
- identity: t(u),
945
+ identity: t(c),
944
946
  home: e.home
945
947
  }, G({ _: 2 }, [
946
948
  d.$slots.brand ? {
@@ -958,10 +960,10 @@ const qn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
958
960
  key: "1"
959
961
  } : void 0
960
962
  ]), 1032, ["identity", "home"])) : k("", !0),
961
- r("div", Kn, [
962
- r("main", {
963
- class: T(["flex min-w-0 flex-1 flex-col", t(i).hasShell.value ? "" : "p-4 md:px-8 md:py-6"]),
964
- style: ve(t(i).hasShell.value ? void 0 : { paddingBottom: "calc(var(--bottom-dock-h, 0px) + 1rem)" })
963
+ i("div", Fn, [
964
+ i("main", {
965
+ class: T(["flex min-w-0 flex-1 flex-col", t(l).hasShell.value ? "" : "p-4 md:px-8 md:py-6"]),
966
+ style: ve(t(l).hasShell.value ? void 0 : { paddingBottom: "calc(var(--bottom-dock-h, 0px) + 1rem)" })
965
967
  }, [
966
968
  p(t(vt))
967
969
  ], 6)
@@ -973,14 +975,14 @@ const qn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
973
975
  ]),
974
976
  _: 2
975
977
  }, [
976
- t(u) ? {
978
+ t(c) ? {
977
979
  name: "drawer",
978
980
  fn: D(({ select: g, dismiss: h }) => [
979
- p(tn, {
980
- identity: t(u),
981
+ p(an, {
982
+ identity: t(c),
981
983
  home: e.home,
982
984
  onSelect: g,
983
- onAccount: ($) => h(() => c.value?.present())
985
+ onAccount: ($) => h(() => u.value?.present())
984
986
  }, G({ _: 2 }, [
985
987
  d.$slots.brand ? {
986
988
  name: "brand",
@@ -1001,14 +1003,14 @@ const qn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
1001
1003
  key: "0"
1002
1004
  } : void 0
1003
1005
  ]), 1032, ["enabled"]),
1004
- t(u) ? (l(), P(qt, {
1006
+ t(c) ? (r(), N(jt, {
1005
1007
  key: 1,
1006
1008
  ref_key: "accountSheet",
1007
- ref: c,
1008
- identity: t(u)
1009
+ ref: u,
1010
+ identity: t(c)
1009
1011
  }, null, 8, ["identity"])) : k("", !0),
1010
- (l(), P(Oe, { to: "body" }, [
1011
- r("div", Vn, [
1012
+ (r(), N(Re, { to: "body" }, [
1013
+ i("div", Un, [
1012
1014
  p(t(mt))
1013
1015
  ])
1014
1016
  ])),
@@ -1017,8 +1019,8 @@ const qn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
1017
1019
  ]));
1018
1020
  }
1019
1021
  });
1020
- function Un(e = _t) {
1021
- const a = Ne(!1);
1022
+ function Xn(e = _t) {
1023
+ const a = Pe(!1);
1022
1024
  let n;
1023
1025
  return {
1024
1026
  visible: a,
@@ -1030,13 +1032,13 @@ function Un(e = _t) {
1030
1032
  }
1031
1033
  };
1032
1034
  }
1033
- function so(e = {}) {
1034
- const a = Un(), { brand: n, footer: o, topBarEnd: i } = e;
1035
- return { component: R({
1035
+ function co(e = {}) {
1036
+ const a = Xn(), { brand: n, footer: o, topBarEnd: l } = e;
1037
+ return { component: O({
1036
1038
  name: "BackofficeShell",
1037
1039
  setup() {
1038
1040
  return () => te(
1039
- Fn,
1041
+ Wn,
1040
1042
  {
1041
1043
  home: e.home,
1042
1044
  // The application's session produces U; the shell reads it as the SessionUser it is guaranteed to be.
@@ -1047,34 +1049,34 @@ function so(e = {}) {
1047
1049
  {
1048
1050
  ...n && { brand: (s) => te(n, s) },
1049
1051
  ...o && { footer: () => te(o) },
1050
- ...i && { "top-bar-end": () => te(i) }
1052
+ ...l && { "top-bar-end": () => te(l) }
1051
1053
  }
1052
1054
  );
1053
1055
  }
1054
1056
  }), slots: ["headerActions", "search", "accountMenu", "banner", "host"], progress: a };
1055
1057
  }
1056
- const Wn = 30 * 6e4, Xn = 6e4;
1057
- function Yn(e, a) {
1058
+ const Yn = 30 * 6e4, Hn = 6e4;
1059
+ function Qn(e, a) {
1058
1060
  const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll('script[type="module"][src]');
1059
1061
  return Array.from(n, (o) => new URL(o.getAttribute("src") ?? "", a).pathname).sort();
1060
1062
  }
1061
- function Hn() {
1063
+ function Gn() {
1062
1064
  return Array.from(document.querySelectorAll('script[type="module"][src]'), (e) => new URL(e.src, location.href).pathname).sort();
1063
1065
  }
1064
- function Qn(e) {
1065
- return R({
1066
+ function Jn(e) {
1067
+ return O({
1066
1068
  name: "AppUpdateNotice",
1067
1069
  setup() {
1068
1070
  if (e.enabled === !1) return () => null;
1069
- const { t: a } = K(), n = e.url ?? "/", o = Hn();
1070
- let i = !1, u = 0;
1071
+ const { t: a } = K(), n = e.url ?? "/", o = Gn();
1072
+ let l = !1, c = 0;
1071
1073
  async function s() {
1072
- if (!(i || o.length === 0 || !navigator.onLine || document.visibilityState !== "visible") && !(Date.now() - u < Xn)) {
1073
- u = Date.now();
1074
+ if (!(l || o.length === 0 || !navigator.onLine || document.visibilityState !== "visible") && !(Date.now() - c < Hn)) {
1075
+ c = Date.now();
1074
1076
  try {
1075
- const b = await fetch(n, { cache: "no-store", credentials: "include" }), g = b.ok ? Yn(await b.text(), location.href) : [];
1077
+ const b = await fetch(n, { cache: "no-store", credentials: "include" }), g = b.ok ? Qn(await b.text(), location.href) : [];
1076
1078
  if (g.length === 0 || g.join() === o.join()) return;
1077
- i = !0, Be.info(a("core.shell.update.available"), {
1079
+ l = !0, Be.info(a("core.shell.update.available"), {
1078
1080
  duration: 1 / 0,
1079
1081
  action: { label: a("core.shell.update.reload"), onClick: () => location.reload() }
1080
1082
  });
@@ -1082,35 +1084,35 @@ function Qn(e) {
1082
1084
  }
1083
1085
  }
1084
1086
  }
1085
- const c = () => void s();
1086
- document.addEventListener("visibilitychange", c);
1087
- const d = setInterval(s, e.checkEveryMs ?? Wn);
1087
+ const u = () => void s();
1088
+ document.addEventListener("visibilitychange", u);
1089
+ const d = setInterval(s, e.checkEveryMs ?? Yn);
1088
1090
  return ue(() => {
1089
- document.removeEventListener("visibilitychange", c), clearInterval(d);
1091
+ document.removeEventListener("visibilitychange", u), clearInterval(d);
1090
1092
  }), () => null;
1091
1093
  }
1092
1094
  });
1093
1095
  }
1094
- function lo(e = {}) {
1096
+ function uo(e = {}) {
1095
1097
  return fe({
1096
1098
  id: "vue-core.app-updates",
1097
- contributions: [{ id: "vue-core.app-updates", slot: "host", component: Qn(e), scope: "always" }]
1099
+ contributions: [{ id: "vue-core.app-updates", slot: "host", component: Jn(e), scope: "always" }]
1098
1100
  });
1099
1101
  }
1100
- const Gn = 1e3, pe = (e) => e.path.split("/").filter(Boolean).length;
1101
- function Jn(e) {
1102
+ const Zn = 1e3, pe = (e) => e.path.split("/").filter(Boolean).length;
1103
+ function ea(e) {
1102
1104
  if (typeof document > "u" || typeof document.startViewTransition != "function") return () => {
1103
1105
  };
1104
1106
  let a = null;
1105
- const n = () => window.matchMedia("(max-width: 1023px)").matches && !window.matchMedia("(prefers-reduced-motion: reduce)").matches && !document.body.classList.contains(xt), o = e.beforeResolve((c, d) => {
1106
- if (i(), !d.matched.length || c.path === d.path || !n()) return;
1107
- const b = pe(c) > pe(d) ? "forward" : pe(c) < pe(d) ? "back" : null;
1107
+ const n = () => window.matchMedia("(max-width: 1023px)").matches && !window.matchMedia("(prefers-reduced-motion: reduce)").matches && !document.body.classList.contains(xt), o = e.beforeResolve((u, d) => {
1108
+ if (l(), !d.matched.length || u.path === d.path || !n()) return;
1109
+ const b = pe(u) > pe(d) ? "forward" : pe(u) < pe(d) ? "back" : null;
1108
1110
  if (!b) return;
1109
1111
  const g = document.documentElement;
1110
1112
  return g.dataset.navDirection = b, new Promise((h) => {
1111
1113
  const $ = document.startViewTransition(
1112
1114
  () => new Promise((_) => {
1113
- const y = setTimeout(_, Gn);
1115
+ const y = setTimeout(_, Zn);
1114
1116
  a = () => {
1115
1117
  clearTimeout(y), _();
1116
1118
  }, h();
@@ -1123,72 +1125,72 @@ function Jn(e) {
1123
1125
  });
1124
1126
  });
1125
1127
  });
1126
- function i() {
1127
- const c = a;
1128
- a = null, c && be().then(c);
1128
+ function l() {
1129
+ const u = a;
1130
+ a = null, u && be().then(u);
1129
1131
  }
1130
- const u = e.afterEach(i), s = e.onError(i);
1132
+ const c = e.afterEach(l), s = e.onError(l);
1131
1133
  return () => {
1132
- o(), u(), s(), delete document.documentElement.dataset.navDirection, a?.(), a = null;
1134
+ o(), c(), s(), delete document.documentElement.dataset.navDirection, a?.(), a = null;
1133
1135
  };
1134
1136
  }
1135
- const Zn = R({
1137
+ const ta = O({
1136
1138
  name: "ViewTransitions",
1137
1139
  setup() {
1138
- return ue(Jn(ge())), () => null;
1140
+ return ue(ea(ge())), () => null;
1139
1141
  }
1140
1142
  });
1141
- function ro() {
1143
+ function fo() {
1142
1144
  return fe({
1143
1145
  id: "vue-core.view-transitions",
1144
- contributions: [{ id: "vue-core.view-transitions", slot: "host", component: Zn, scope: "always" }]
1146
+ contributions: [{ id: "vue-core.view-transitions", slot: "host", component: ta, scope: "always" }]
1145
1147
  });
1146
1148
  }
1147
- const ea = Symbol("vue-core:quick-search");
1149
+ const na = Symbol("vue-core:quick-search");
1148
1150
  function Ze() {
1149
- const e = St(ea, () => Ne(!1));
1151
+ const e = St(na, () => Pe(!1));
1150
1152
  return { isOpen: e, open: () => e.value = !0, close: () => e.value = !1 };
1151
1153
  }
1152
- const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1154
+ const aa = { class: "flex-1 truncate" }, oa = /* @__PURE__ */ O({
1153
1155
  __name: "QuickSearchButton",
1154
1156
  setup(e) {
1155
- const { t: a } = K(), n = Ze(), o = Le(Ee, "bar") === "rail", i = L(() => Ue({ key: "k", mod: !0 }).join(" "));
1156
- return (u, s) => (l(), m("button", {
1157
+ const { t: a } = K(), n = Ze(), o = Le(Ee, "bar") === "rail", l = L(() => Ue({ key: "k", mod: !0 }).join(" "));
1158
+ return (c, s) => (r(), m("button", {
1157
1159
  type: "button",
1158
1160
  "data-test": "quick-search-button",
1159
1161
  class: T(["flex h-9 w-full cursor-pointer items-center gap-2 rounded-control px-3 text-left text-callout transition-colors duration-motion-fast focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus", o ? "bg-gray-500/15 text-gray-400 hover:bg-gray-500/25" : "bg-fill text-content-muted hover:bg-fill-strong"]),
1160
- onClick: s[0] || (s[0] = (c) => t(n).open())
1162
+ onClick: s[0] || (s[0] = (u) => t(n).open())
1161
1163
  }, [
1162
1164
  p(t(q), {
1163
1165
  name: "search",
1164
1166
  size: 16,
1165
1167
  class: "shrink-0"
1166
1168
  }),
1167
- r("span", ta, M(t(a)("core.shell.search.open")) + "…", 1),
1168
- r("kbd", {
1169
+ i("span", aa, M(t(a)("core.shell.search.open")) + "…", 1),
1170
+ i("kbd", {
1169
1171
  class: T(["rounded border px-1.5 text-caption [@media(pointer:coarse)]:hidden", o ? "border-gray-500/30" : "border-border-separator"])
1170
- }, M(i.value), 3)
1172
+ }, M(l.value), 3)
1171
1173
  ], 2));
1172
1174
  }
1173
- }), aa = ["aria-label"], oa = { class: "flex items-center gap-3 border-b border-border-separator px-4 py-3 pt-[max(0.75rem,var(--app-safe-top))] md:px-5 md:py-4" }, sa = {
1175
+ }), sa = ["aria-label"], la = { class: "flex items-center gap-3 border-b border-border-separator px-4 py-3 pt-[max(0.75rem,var(--app-safe-top))] md:px-5 md:py-4" }, ra = {
1174
1176
  key: 0,
1175
1177
  class: "px-3 py-3"
1176
- }, la = {
1178
+ }, ia = {
1177
1179
  key: 1,
1178
1180
  class: "flex flex-col items-center gap-1 px-6 py-10 text-center",
1179
1181
  "data-test": "quick-search-empty"
1180
- }, ra = { class: "text-headline font-semibold" }, ia = { class: "max-w-sm text-subheadline text-content-muted" }, ca = ["data-test"], ua = ["id", "aria-selected", "data-index", "data-test", "onMousemove", "onClick"], da = { class: "flex min-w-0 flex-1 flex-col" }, fa = { class: "truncate text-body font-semibold" }, ma = {
1182
+ }, ca = { class: "text-headline font-semibold" }, ua = { class: "max-w-sm text-subheadline text-content-muted" }, da = ["data-test"], fa = ["id", "aria-selected", "data-index", "data-test", "onMousemove", "onClick"], ma = { class: "flex min-w-0 flex-1 flex-col" }, pa = { class: "truncate text-body font-semibold" }, va = {
1181
1183
  key: 2,
1182
1184
  class: "px-3 py-3 text-subheadline text-content-destructive",
1183
1185
  role: "alert"
1184
- }, pa = {
1186
+ }, ha = {
1185
1187
  key: 3,
1186
1188
  class: "px-3 py-2 text-footnote text-content-muted",
1187
1189
  "data-test": "quick-search-unavailable"
1188
- }, va = {
1190
+ }, ba = {
1189
1191
  key: 4,
1190
1192
  class: "px-3 py-8 text-center text-subheadline text-content-muted"
1191
- }, ha = { class: "hidden items-center gap-4 border-t border-border-separator px-5 py-2.5 text-footnote text-content-muted md:flex" }, ba = { class: "font-semibold" }, ga = /* @__PURE__ */ R({
1193
+ }, ga = { class: "hidden items-center gap-4 border-t border-border-separator px-5 py-2.5 text-footnote text-content-muted md:flex" }, ya = { class: "font-semibold" }, xa = /* @__PURE__ */ O({
1192
1194
  __name: "QuickSearchPalette",
1193
1195
  props: {
1194
1196
  search: {},
@@ -1202,18 +1204,18 @@ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1202
1204
  delayMs: { default: 180 }
1203
1205
  },
1204
1206
  setup(e) {
1205
- const a = e, { t: n } = K(), o = ge(), i = Ze(), u = re("panel"), s = re("list"), { isOpen: c, present: d, dismiss: b } = Fe(u, { onDismissed: () => {
1206
- B(), i.close();
1207
+ const a = e, { t: n } = K(), o = ge(), l = Ze(), c = re("panel"), s = re("list"), { isOpen: u, present: d, dismiss: b } = Fe(c, { onDismissed: () => {
1208
+ B(), l.close();
1207
1209
  } });
1208
- wt({ key: "k", mod: !0, group: "general", label: () => n("core.shell.search.title") }, () => i.open()), ue(() => i.close());
1209
- const g = N(""), h = N(null), $ = N(""), _ = N(!1), y = N(!1), C = N(0), v = N([]);
1210
+ wt({ key: "k", mod: !0, group: "general", label: () => n("core.shell.search.title") }, () => l.open()), ue(() => l.close());
1211
+ const g = P(""), h = P(null), $ = P(""), _ = P(!1), y = P(!1), C = P(0), v = P([]);
1210
1212
  let z = null, f;
1211
1213
  const I = $t(_), E = L(() => g.value.trim()), x = L(() => E.value.length >= a.minLength);
1212
1214
  function B() {
1213
1215
  clearTimeout(f), z?.abort(), z = null, _.value = !1;
1214
1216
  }
1215
- Q(i.isOpen, (w) => {
1216
- w ? (g.value = "", h.value = null, $.value = "", y.value = !1, C.value = 0, v.value = a.recent?.() ?? [], d()) : c.value && (B(), b());
1217
+ Q(l.isOpen, (w) => {
1218
+ w ? (g.value = "", h.value = null, $.value = "", y.value = !1, C.value = 0, v.value = a.recent?.() ?? [], d()) : u.value && (B(), b());
1217
1219
  }), Q(E, (w) => {
1218
1220
  if (B(), C.value = 0, w.length < a.minLength) {
1219
1221
  h.value = null, $.value = "", y.value = !1;
@@ -1254,7 +1256,7 @@ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1254
1256
  accent: "bg-control-on text-white",
1255
1257
  action: "bg-tint-soft text-content-link"
1256
1258
  }, tt = L(() => Ue({ key: "k", mod: !0 })[0]);
1257
- return (w, A) => (l(), P(Oe, { to: "body" }, [
1259
+ return (w, A) => (r(), N(Re, { to: "body" }, [
1258
1260
  p(we, {
1259
1261
  "enter-active-class": "transition-opacity duration-motion-normal ease-motion-standard",
1260
1262
  "enter-from-class": "opacity-0",
@@ -1262,7 +1264,7 @@ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1262
1264
  "leave-to-class": "opacity-0"
1263
1265
  }, {
1264
1266
  default: D(() => [
1265
- t(c) ? (l(), m("div", {
1267
+ t(u) ? (r(), m("div", {
1266
1268
  key: 0,
1267
1269
  class: "fixed inset-0 z-9999 bg-scrim",
1268
1270
  "aria-hidden": "true",
@@ -1278,10 +1280,10 @@ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1278
1280
  "leave-to-class": "opacity-0 scale-98"
1279
1281
  }, {
1280
1282
  default: D(() => [
1281
- t(c) ? (l(), m("div", {
1283
+ t(u) ? (r(), m("div", {
1282
1284
  key: 0,
1283
1285
  ref_key: "panel",
1284
- ref: u,
1286
+ ref: c,
1285
1287
  role: "dialog",
1286
1288
  "aria-modal": "true",
1287
1289
  "aria-label": t(n)("core.shell.search.title"),
@@ -1290,7 +1292,7 @@ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1290
1292
  "data-test": "quick-search",
1291
1293
  onKeydown: Me
1292
1294
  }, [
1293
- r("div", oa, [
1295
+ i("div", la, [
1294
1296
  p(t(q), {
1295
1297
  name: "search",
1296
1298
  size: 20,
@@ -1308,14 +1310,14 @@ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1308
1310
  "aria-activedescendant": W.value.length ? `quick-search-row-${C.value}` : void 0,
1309
1311
  "data-test": "quick-search-input"
1310
1312
  }), null, 16, ["modelValue", "label", "placeholder"]),
1311
- r("button", {
1313
+ i("button", {
1312
1314
  type: "button",
1313
1315
  class: "hit-target shrink-0 cursor-pointer rounded-control px-1 text-body text-content-link md:hidden",
1314
1316
  onClick: A[2] || (A[2] = (X) => t(b)())
1315
1317
  }, M(t(n)("core.actions.cancel")), 1),
1316
- A[3] || (A[3] = r("kbd", { class: "hidden shrink-0 rounded-md border border-border-separator px-1.5 py-0.5 text-caption text-content-muted md:inline" }, "esc", -1))
1318
+ A[3] || (A[3] = i("kbd", { class: "hidden shrink-0 rounded-md border border-border-separator px-1.5 py-0.5 text-caption text-content-muted md:inline" }, "esc", -1))
1317
1319
  ]),
1318
- r("div", {
1320
+ i("div", {
1319
1321
  id: "quick-search-results",
1320
1322
  ref_key: "list",
1321
1323
  ref: s,
@@ -1323,156 +1325,166 @@ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1323
1325
  class: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 py-2 md:px-3",
1324
1326
  "data-test": "quick-search-results"
1325
1327
  }, [
1326
- t(I).visible.value && !F.value ? (l(), m("div", sa, [
1328
+ t(I).visible.value && !F.value ? (r(), m("div", ra, [
1327
1329
  p(t(Et), {
1328
1330
  text: t(n)("core.shell.search.searching")
1329
1331
  }, null, 8, ["text"])
1330
1332
  ])) : k("", !0),
1331
- xe.value ? (l(), m("div", la, [
1332
- r("p", ra, M(t(n)("core.shell.search.none", { query: E.value })), 1),
1333
- r("p", ia, M(_e(a.noneHint) ?? t(n)("core.shell.search.none_hint")), 1)
1333
+ xe.value ? (r(), m("div", ia, [
1334
+ i("p", ca, M(t(n)("core.shell.search.none", { query: E.value })), 1),
1335
+ i("p", ua, M(_e(a.noneHint) ?? t(n)("core.shell.search.none_hint")), 1)
1334
1336
  ])) : k("", !0),
1335
- (l(!0), m(U, null, se(ee.value, (X) => (l(), m(U, {
1337
+ (r(!0), m(U, null, se(ee.value, (X) => (r(), m(U, {
1336
1338
  key: X.key
1337
1339
  }, [
1338
- r("p", {
1340
+ i("p", {
1339
1341
  class: "px-3 pt-2.5 pb-1.5 text-footnote font-semibold text-content-muted uppercase",
1340
1342
  "data-test": `quick-search-group-${X.key}`
1341
- }, M(X.label), 9, ca),
1342
- (l(!0), m(U, null, se(X.rows, (O) => (l(), m("div", {
1343
- id: `quick-search-row-${H.value.get(O)}`,
1344
- key: O.key,
1343
+ }, M(X.label), 9, da),
1344
+ (r(!0), m(U, null, se(X.rows, (R) => (r(), m("div", {
1345
+ id: `quick-search-row-${H.value.get(R)}`,
1346
+ key: R.key,
1345
1347
  role: "option",
1346
- "aria-selected": H.value.get(O) === C.value,
1347
- "data-index": H.value.get(O),
1348
- "data-test": `quick-search-row-${O.key}`,
1349
- class: T(["flex cursor-pointer animate-row-in items-center gap-3 rounded-control px-3 py-2.5", H.value.get(O) === C.value ? "bg-surface-selected" : "hover:bg-fill"]),
1350
- onMousemove: (ke) => C.value = H.value.get(O),
1351
- onClick: (ke) => V(O, ke.metaKey || ke.ctrlKey)
1348
+ "aria-selected": H.value.get(R) === C.value,
1349
+ "data-index": H.value.get(R),
1350
+ "data-test": `quick-search-row-${R.key}`,
1351
+ class: T(["flex cursor-pointer animate-row-in items-center gap-3 rounded-control px-3 py-2.5", H.value.get(R) === C.value ? "bg-surface-selected" : "hover:bg-fill"]),
1352
+ onMousemove: (ke) => C.value = H.value.get(R),
1353
+ onClick: (ke) => V(R, ke.metaKey || ke.ctrlKey)
1352
1354
  }, [
1353
- r("span", {
1354
- class: T(["flex size-8 shrink-0 items-center justify-center rounded-lg", et[O.tile ?? "neutral"]])
1355
+ i("span", {
1356
+ class: T(["flex size-8 shrink-0 items-center justify-center rounded-lg", et[R.tile ?? "neutral"]])
1355
1357
  }, [
1356
1358
  p(t(q), {
1357
- name: O.icon,
1359
+ name: R.icon,
1358
1360
  size: 16
1359
1361
  }, null, 8, ["name"])
1360
1362
  ], 2),
1361
- r("span", da, [
1362
- r("span", fa, [
1363
+ i("span", ma, [
1364
+ i("span", pa, [
1363
1365
  p(De, {
1364
- text: O.title,
1366
+ text: R.title,
1365
1367
  search: x.value ? E.value : ""
1366
1368
  }, null, 8, ["text", "search"])
1367
1369
  ]),
1368
- O.meta ? (l(), m("span", {
1370
+ R.meta ? (r(), m("span", {
1369
1371
  key: 0,
1370
- class: T(["truncate text-footnote text-content-muted", O.mono ? "font-mono tracking-tight" : ""])
1372
+ class: T(["truncate text-footnote text-content-muted", R.mono ? "font-mono tracking-tight" : ""])
1371
1373
  }, [
1372
1374
  p(De, {
1373
- text: O.meta,
1375
+ text: R.meta,
1374
1376
  search: x.value ? E.value : ""
1375
1377
  }, null, 8, ["text", "search"])
1376
1378
  ], 2)) : k("", !0)
1377
1379
  ]),
1378
- O.badge ? (l(), P(t(Ct), {
1380
+ R.badge ? (r(), N(t(Ct), {
1379
1381
  key: 0,
1380
- tone: O.badge.tone,
1382
+ tone: R.badge.tone,
1381
1383
  class: "hidden shrink-0 sm:inline-flex"
1382
1384
  }, {
1383
1385
  default: D(() => [
1384
- ie(M(O.badge.label), 1)
1386
+ ie(M(R.badge.label), 1)
1385
1387
  ]),
1386
1388
  _: 2
1387
1389
  }, 1032, ["tone"])) : k("", !0),
1388
- H.value.get(O) === C.value ? (l(), P(t(q), {
1390
+ H.value.get(R) === C.value ? (r(), N(t(q), {
1389
1391
  key: 1,
1390
1392
  name: "arrowRightSLine",
1391
1393
  size: 16,
1392
1394
  class: "hidden shrink-0 text-content-muted md:inline"
1393
1395
  })) : k("", !0)
1394
- ], 42, ua))), 128))
1396
+ ], 42, fa))), 128))
1395
1397
  ], 64))), 128)),
1396
- y.value ? (l(), m("p", ma, M(t(n)("core.shell.search.failed")), 1)) : k("", !0),
1397
- me.value.length ? (l(), m("p", pa, M(t(n)("core.shell.search.unavailable", { groups: me.value.join(", ") })), 1)) : k("", !0),
1398
- !ee.value.length && !x.value ? (l(), m("p", va, M(_e(a.hint) ?? t(n)("core.shell.search.hint")), 1)) : k("", !0)
1398
+ y.value ? (r(), m("p", va, M(t(n)("core.shell.search.failed")), 1)) : k("", !0),
1399
+ me.value.length ? (r(), m("p", ha, M(t(n)("core.shell.search.unavailable", { groups: me.value.join(", ") })), 1)) : k("", !0),
1400
+ !ee.value.length && !x.value ? (r(), m("p", ba, M(_e(a.hint) ?? t(n)("core.shell.search.hint")), 1)) : k("", !0)
1399
1401
  ], 512),
1400
- r("div", ha, [
1401
- r("span", null, [
1402
- A[4] || (A[4] = r("kbd", { class: "font-semibold" }, "↑ ↓", -1)),
1402
+ i("div", ga, [
1403
+ i("span", null, [
1404
+ A[4] || (A[4] = i("kbd", { class: "font-semibold" }, "↑ ↓", -1)),
1403
1405
  ie(" " + M(t(n)("core.shell.search.select")), 1)
1404
1406
  ]),
1405
- r("span", null, [
1406
- A[5] || (A[5] = r("kbd", { class: "font-semibold" }, "↵", -1)),
1407
+ i("span", null, [
1408
+ A[5] || (A[5] = i("kbd", { class: "font-semibold" }, "↵", -1)),
1407
1409
  ie(" " + M(t(n)("core.shell.search.open_row")), 1)
1408
1410
  ]),
1409
- r("span", null, [
1410
- r("kbd", ba, M(tt.value) + " ↵", 1),
1411
+ i("span", null, [
1412
+ i("kbd", ya, M(tt.value) + " ↵", 1),
1411
1413
  ie(" " + M(t(n)("core.shell.search.new_tab")), 1)
1412
1414
  ])
1413
1415
  ])
1414
- ], 40, aa)) : k("", !0)
1416
+ ], 40, sa)) : k("", !0)
1415
1417
  ]),
1416
1418
  _: 1
1417
1419
  })
1418
1420
  ]));
1419
1421
  }
1420
1422
  });
1421
- function ya(e) {
1422
- return R({ name: "QuickSearch", setup: () => () => te(ga, e) });
1423
+ function ka(e) {
1424
+ return O({ name: "QuickSearch", setup: () => () => te(xa, e) });
1423
1425
  }
1424
- function io(e) {
1426
+ function mo(e) {
1425
1427
  return fe({
1426
1428
  id: "vue-core.quick-search",
1427
1429
  contributions: [
1428
- { id: "vue-core.quick-search.button", slot: "search", component: na, scope: "authenticated", optional: !0 },
1429
- { id: "vue-core.quick-search.palette", slot: "host", component: ya(e), scope: "authenticated" }
1430
+ { id: "vue-core.quick-search.button", slot: "search", component: oa, scope: "authenticated", optional: !0 },
1431
+ { id: "vue-core.quick-search.palette", slot: "host", component: ka(e), scope: "authenticated" }
1430
1432
  ]
1431
1433
  });
1432
1434
  }
1433
- const xa = /* @__PURE__ */ R({
1435
+ const _a = /* @__PURE__ */ O({
1434
1436
  __name: "DarkModeRow",
1435
1437
  props: {
1436
1438
  dark: { type: Boolean }
1437
1439
  },
1438
1440
  emits: ["toggle"],
1439
1441
  setup(e, { emit: a }) {
1440
- const n = e, o = a, { t: i } = K();
1441
- return (u, s) => (l(), P($e, {
1442
- label: t(i)("core.shell.dark_mode"),
1442
+ const n = e, o = a, { t: l } = K();
1443
+ return (c, s) => (r(), N($e, {
1444
+ label: t(l)("core.shell.dark_mode"),
1443
1445
  icon: "moonLine",
1444
1446
  checked: n.dark,
1445
- onClick: s[0] || (s[0] = (c) => o("toggle"))
1447
+ onClick: s[0] || (s[0] = (u) => o("toggle"))
1446
1448
  }, null, 8, ["label", "checked"]));
1447
1449
  }
1448
- }), ka = { light: "#ffffff", dark: "#18181B" };
1449
- function _a(e, a = ka) {
1450
+ }), wa = { light: "#ffffff", dark: "#18181B" };
1451
+ function $a(e, a = wa) {
1450
1452
  document.documentElement.classList.toggle("dark", e), document.querySelector('meta[name="theme-color"]')?.setAttribute("content", e ? a.dark : a.light);
1451
1453
  }
1452
- function co(e) {
1453
- const a = R({
1454
+ function po(e = {}) {
1455
+ const a = O({
1454
1456
  name: "DarkModeSwitch",
1455
- setup: () => () => te(xa, { dark: e.dark(), onToggle: () => void e.set(!e.dark()) })
1457
+ setup() {
1458
+ const n = Tt(), o = e.dark ?? (() => n.value.value.dark_mode === !0), l = e.set ?? ((c) => void n.save({ dark_mode: c }));
1459
+ return () => te(_a, { dark: o(), onToggle: () => void l(!o()) });
1460
+ }
1456
1461
  });
1457
1462
  return fe({
1458
1463
  id: "vue-core.dark-mode",
1459
1464
  contributions: [{ id: "vue-core.dark-mode.row", slot: "accountMenu", component: a, scope: "authenticated" }],
1460
1465
  // Runs while the application is mounted, signed in or not; the watcher's stop handle is the effect's cleanup.
1461
- effects: [{ id: "vue-core.dark-mode", scope: "app", start: () => Q(e.dark, (n) => _a(n, e.themeColor), { immediate: !0 }) }]
1466
+ effects: [{
1467
+ id: "vue-core.dark-mode",
1468
+ scope: "app",
1469
+ start: ({ platform: n }) => {
1470
+ const o = Mt(n).value;
1471
+ return Q(e.dark ?? (() => o.value.dark_mode === !0), (l) => $a(l, e.themeColor), { immediate: !0 });
1472
+ }
1473
+ }]
1462
1474
  });
1463
1475
  }
1464
- const wa = {
1476
+ const Sa = {
1465
1477
  key: 0,
1466
1478
  role: "status",
1467
1479
  "data-test": "offline-notice",
1468
1480
  class: "dock-safe-area pointer-events-auto order-first mb-3 px-3"
1469
- }, $a = { class: "mx-auto flex max-w-md items-center justify-center gap-2 rounded-full bg-status-warning-surface px-4 py-2 text-subheadline font-semibold text-status-warning-content shadow-float" }, Sa = /* @__PURE__ */ R({
1481
+ }, La = { class: "mx-auto flex max-w-md items-center justify-center gap-2 rounded-full bg-status-warning-surface px-4 py-2 text-subheadline font-semibold text-status-warning-content shadow-float" }, Ca = /* @__PURE__ */ O({
1470
1482
  __name: "OfflineNotice",
1471
1483
  setup(e) {
1472
- const { t: a } = K(), n = N(navigator.onLine), o = () => n.value = navigator.onLine;
1484
+ const { t: a } = K(), n = P(navigator.onLine), o = () => n.value = navigator.onLine;
1473
1485
  return window.addEventListener("online", o), window.addEventListener("offline", o), ue(() => {
1474
1486
  window.removeEventListener("online", o), window.removeEventListener("offline", o);
1475
- }), (i, u) => (l(), P(t(Tt), null, {
1487
+ }), (l, c) => (r(), N(t(At), null, {
1476
1488
  default: D(() => [
1477
1489
  p(we, {
1478
1490
  "enter-active-class": "transition duration-motion-normal ease-motion-standard",
@@ -1481,8 +1493,8 @@ const wa = {
1481
1493
  "leave-to-class": "translate-y-2 opacity-0"
1482
1494
  }, {
1483
1495
  default: D(() => [
1484
- n.value ? k("", !0) : (l(), m("div", wa, [
1485
- r("div", $a, [
1496
+ n.value ? k("", !0) : (r(), m("div", Sa, [
1497
+ i("div", La, [
1486
1498
  p(t(q), {
1487
1499
  name: "errorWarningLine",
1488
1500
  size: 16
@@ -1498,41 +1510,41 @@ const wa = {
1498
1510
  }));
1499
1511
  }
1500
1512
  });
1501
- function uo() {
1513
+ function vo() {
1502
1514
  return fe({
1503
1515
  id: "vue-core.offline-notice",
1504
- contributions: [{ id: "vue-core.offline-notice", slot: "host", component: Sa, scope: "always" }]
1516
+ contributions: [{ id: "vue-core.offline-notice", slot: "host", component: Ca, scope: "always" }]
1505
1517
  });
1506
1518
  }
1507
1519
  export {
1508
- Pt as AccountMenu,
1520
+ Bt as AccountMenu,
1509
1521
  $e as AccountMenuItem,
1510
- qt as AccountSheet,
1511
- Fn as BackofficeShell,
1512
- xa as DarkModeRow,
1513
- po as HeaderAction,
1514
- tn as NavigationDrawer,
1522
+ jt as AccountSheet,
1523
+ Wn as BackofficeShell,
1524
+ _a as DarkModeRow,
1525
+ go as HeaderAction,
1526
+ an as NavigationDrawer,
1515
1527
  He as NavigationList,
1516
- Sn as NavigationMenuButton,
1517
- Sa as OfflineNotice,
1518
- na as QuickSearchButton,
1519
- ga as QuickSearchPalette,
1528
+ Cn as NavigationMenuButton,
1529
+ Ca as OfflineNotice,
1530
+ oa as QuickSearchButton,
1531
+ xa as QuickSearchPalette,
1520
1532
  Te as ShellBrand,
1521
- vn as ShellSidebar,
1522
- wn as ShellStage,
1523
- On as ShellTopBar,
1524
- lo as appUpdates,
1525
- _a as applyDarkMode,
1526
- so as backofficeShell,
1527
- Un as createNavigationProgress,
1528
- co as darkMode,
1529
- Nn as defaultIdentity,
1530
- jt as groupNavigation,
1531
- Jn as installViewTransitions,
1532
- uo as offlineNotice,
1533
- io as quickSearch,
1533
+ bn as ShellSidebar,
1534
+ Sn as ShellStage,
1535
+ Nn as ShellTopBar,
1536
+ uo as appUpdates,
1537
+ $a as applyDarkMode,
1538
+ co as backofficeShell,
1539
+ Xn as createNavigationProgress,
1540
+ po as darkMode,
1541
+ qn as defaultIdentity,
1542
+ Vt as groupNavigation,
1543
+ ea as installViewTransitions,
1544
+ vo as offlineNotice,
1545
+ mo as quickSearch,
1534
1546
  Je as useNavigationDrawer,
1535
1547
  Ze as useQuickSearch,
1536
- Pn as useShellIdentity,
1537
- ro as viewTransitions
1548
+ Bn as useShellIdentity,
1549
+ fo as viewTransitions
1538
1550
  };