@wssto2/vue-core 0.9.4 → 0.11.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 (169) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js +64 -0
  3. package/dist/Activity-CdkJW68R.js +169 -0
  4. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js} +147 -159
  5. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-BdeOKqz_.js → AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js} +1 -1
  6. package/dist/BottomDockPortal.vue_vue_type_script_setup_true_lang-DmwR-2SP.js +17 -0
  7. package/dist/Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js +123 -0
  8. package/dist/Changes-DxK_QfiB.js +69 -0
  9. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-DHcekGNn.js → CollectionPage.vue_vue_type_script_setup_true_lang-x0jyJ01f.js} +19 -18
  10. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-8kBsNRuq.js → DataTable.vue_vue_type_script_setup_true_lang-C_ZytnW-.js} +1 -1
  11. package/dist/{DateField.vue_vue_type_script_setup_true_lang-BhKdCVFn.js → DateField.vue_vue_type_script_setup_true_lang-CeNwBbJT.js} +1 -1
  12. package/dist/{DeadLetters-Bb5pPlOY.js → DeadLetters-DnA7LP1w.js} +5 -6
  13. package/dist/DrawnCheck.vue_vue_type_script_setup_true_lang-9DzDJlIA.js +38 -0
  14. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js +427 -0
  15. package/dist/{FormView.vue_vue_type_script_setup_true_lang-aaNnMIOi.js → FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js} +2 -2
  16. package/dist/{General-BAG7S6wV.js → General-2matxl2Y.js} +23 -24
  17. package/dist/Highlight.vue_vue_type_script_setup_true_lang-DZGBmwcX.js +29 -0
  18. package/dist/{IncidentRecord-D8aOpNHo.js → IncidentRecord-Bt3G4HlX.js} +14 -15
  19. package/dist/{IncidentsList-C0cFl0Db.js → IncidentsList-2iwgqp9J.js} +3 -3
  20. package/dist/{Modal.vue_vue_type_script_setup_true_lang-BlHhdmMy.js → Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js} +9 -8
  21. package/dist/{NewRolePage-C6Iu-EQJ.js → NewRolePage-DhGFwvk3.js} +4 -4
  22. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-TGGAq8J-.js → NumberField.vue_vue_type_script_setup_true_lang-B3UrXNqH.js} +1 -1
  23. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-qz1tmYpF.js → PersonAccess.vue_vue_type_script_setup_true_lang-DbGZSNQc.js} +56 -56
  24. package/dist/ProfilePage-CpuyDBAv.js +685 -0
  25. package/dist/ProgressTrack.vue_vue_type_script_setup_true_lang-DrOm8k--.js +30 -0
  26. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-B9mN7UxZ.js → RecordHeader.vue_vue_type_script_setup_true_lang-DqGc3Jyo.js} +1 -1
  27. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-Cw8mGf_B.js → ResourcePage.vue_vue_type_script_setup_true_lang-DljhsTU4.js} +3 -3
  28. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CJPvOVDV.js → RoleEditor.vue_vue_type_script_setup_true_lang-C0FIotFA.js} +11 -12
  29. package/dist/{RolePage-Dj_ocMnM.js → RolePage-DaNv049g.js} +10 -10
  30. package/dist/{RolesPage-PXrs4O-1.js → RolesPage-6hlzJes_.js} +6 -6
  31. package/dist/SearchInput.vue_vue_type_script_setup_true_lang-w4eAqyZ9.js +32 -0
  32. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-CtdF1zuv.js → SectionList.vue_vue_type_script_setup_true_lang-DR0_NsqC.js} +1 -1
  33. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-B5ove3rM.js → SectionNavigator.vue_vue_type_script_setup_true_lang-Dh3sXUt_.js} +2 -2
  34. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-ChfDFAA2.js → SegmentedField.vue_vue_type_script_setup_true_lang-zv_AxpBn.js} +1 -1
  35. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BP8nAQwo.js → SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js} +3 -3
  36. package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-aWkKwxNe.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-FJbWxME_.js} +20 -20
  37. package/dist/{ServiceAccountRecord-bxX9yQkC.js → ServiceAccountRecord-0-JF5lRx.js} +24 -24
  38. package/dist/{ServiceAccountsList-BXE6htxk.js → ServiceAccountsList-DcsnOcf-.js} +32 -32
  39. package/dist/{Sessions--Gvc0kxw.js → Sessions-DgWhpk-i.js} +23 -24
  40. package/dist/{SettingsPage-DzDC7gD-.js → SettingsPage-BXPWATYU.js} +28 -30
  41. package/dist/{SignIn-CTI_699e.js → SignIn-DPoUwHZd.js} +9 -10
  42. package/dist/{SignInPage-HKC1bm2E.js → SignInPage-OyrVemro.js} +4 -4
  43. package/dist/SignIns-BMDrZVVp.js +64 -0
  44. package/dist/StatusLine.vue_vue_type_script_setup_true_lang-DsdQmLq6.js +56 -0
  45. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-BMA2YXTZ.js → SwitchField.vue_vue_type_script_setup_true_lang-Ds4q0bbl.js} +1 -1
  46. package/dist/{TextField.vue_vue_type_script_setup_true_lang-BFVsqcBX.js → TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js} +2 -2
  47. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-Dyh4Hhyl.js → TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js} +1 -1
  48. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-gGFfQLuK.js → TimeField.vue_vue_type_script_setup_true_lang-D-Em4glH.js} +1 -1
  49. package/dist/UserRecord-BW-gdCqi.js +202 -0
  50. package/dist/UsersList-B3ZF_1Dj.js +74 -0
  51. package/dist/access/index.js +4 -4
  52. package/dist/app/index.d.ts +1 -0
  53. package/dist/app/index.js +11 -10
  54. package/dist/app/languages.d.ts +8 -0
  55. package/dist/{application-BmXW6iW_.js → application-CuzT-0vW.js} +1 -1
  56. package/dist/button/index.js +6 -5
  57. package/dist/collection/Highlight.vue.d.ts +12 -0
  58. package/dist/collection/PickerModal.vue.d.ts +26 -0
  59. package/dist/collection/definition.d.ts +6 -6
  60. package/dist/collection/http.d.ts +6 -6
  61. package/dist/collection/index.d.ts +6 -1
  62. package/dist/collection/index.js +145 -85
  63. package/dist/collection/picker.d.ts +39 -0
  64. package/dist/collection/types.d.ts +9 -4
  65. package/dist/collection/useCollection.d.ts +5 -5
  66. package/dist/content/ActivityStream.vue.d.ts +62 -0
  67. package/dist/content/CommentThread.vue.d.ts +52 -0
  68. package/dist/content/Composer.vue.d.ts +36 -0
  69. package/dist/content/index.d.ts +3 -0
  70. package/dist/content/index.js +321 -56
  71. package/dist/controls/index.js +28 -54
  72. package/dist/form/index.js +132 -134
  73. package/dist/format/index.d.ts +1 -0
  74. package/dist/format/index.js +10 -6
  75. package/dist/format/slug.d.ts +8 -0
  76. package/dist/http-Dm0uXY9O.js +95 -0
  77. package/dist/i18n/index.d.ts +15 -0
  78. package/dist/i18n/index.js +89 -63
  79. package/dist/i18n/plural.d.ts +23 -0
  80. package/dist/i18n/serverMessages.d.ts +16 -0
  81. package/dist/identity/embed.d.ts +39 -0
  82. package/dist/identity/index.d.ts +22 -1
  83. package/dist/identity/index.js +40 -21
  84. package/dist/identity/session.d.ts +9 -1
  85. package/dist/identity/shared/ChangeFeed.vue.d.ts +6 -3
  86. package/dist/identity/users/context.d.ts +11 -0
  87. package/dist/identity/users/dialogs.d.ts +10 -0
  88. package/dist/identity/users/ext.d.ts +8 -0
  89. package/dist/identity/users/feature.d.ts +22 -1
  90. package/dist/identity/users/list.d.ts +12 -1
  91. package/dist/identity/users/personSections.d.ts +15 -6
  92. package/dist/identity/users/replace.d.ts +45 -0
  93. package/dist/identity/users/words.d.ts +28 -0
  94. package/dist/incidents/api.d.ts +1 -1
  95. package/dist/incidents/index.js +1 -1
  96. package/dist/{index-Dz0LkLM8.js → index-ClJeyW3F.js} +4 -4
  97. package/dist/index-Cq9TuOqH.js +1264 -0
  98. package/dist/{index-Dm-sdJJr.js → index-kEHY7hcG.js} +31 -32
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/keepAlive-ClGnsIzT.js +55 -0
  102. package/dist/modal/index.js +3 -3
  103. package/dist/modules/identity/entities.d.ts +7 -0
  104. package/dist/modules/identity/routes.d.ts +8 -4
  105. package/dist/modules/identity/schemas.d.ts +16 -0
  106. package/dist/{neighbors-DVfU9T0o.js → neighbors-OyvGi233.js} +2 -2
  107. package/dist/notifications/deadletters/list.d.ts +1 -1
  108. package/dist/notifications/index.js +1 -1
  109. package/dist/{options-QuOkMKVZ.js → options-B48UiYsG.js} +2 -2
  110. package/dist/page/index.js +11 -11
  111. package/dist/phone/index.js +1 -1
  112. package/dist/pwa/AndroidInstallBanner.vue.d.ts +18 -0
  113. package/dist/pwa/InstallQrSheet.vue.d.ts +21 -0
  114. package/dist/pwa/IosInstallGuide.vue.d.ts +19 -0
  115. package/dist/pwa/QrCode.vue.d.ts +16 -0
  116. package/dist/pwa/index.d.ts +4 -0
  117. package/dist/pwa/index.js +244 -24
  118. package/dist/resource/index.js +1 -1
  119. package/dist/rowLayout-BsKEzEME.js +650 -0
  120. package/dist/shell/DarkModeRow.vue.d.ts +15 -0
  121. package/dist/shell/OfflineNotice.vue.d.ts +2 -0
  122. package/dist/shell/QuickSearchButton.vue.d.ts +2 -0
  123. package/dist/shell/QuickSearchPalette.vue.d.ts +12 -0
  124. package/dist/shell/darkMode.d.ts +26 -0
  125. package/dist/shell/index.d.ts +10 -0
  126. package/dist/shell/index.js +954 -579
  127. package/dist/shell/offlineNotice.d.ts +3 -0
  128. package/dist/shell/quickSearch.d.ts +14 -0
  129. package/dist/shell/quickSearchControl.d.ts +69 -0
  130. package/dist/shortcut-DUR6yPWA.js +93 -0
  131. package/dist/state/BackgroundTaskCapsule.vue.d.ts +18 -0
  132. package/dist/state/backgroundTasks.d.ts +58 -0
  133. package/dist/state/index.d.ts +4 -0
  134. package/dist/state/index.js +194 -80
  135. package/dist/state/useCountUp.d.ts +9 -0
  136. package/dist/styles.css +1 -1
  137. package/dist/{suggestions-BVQhoXzS.js → suggestions-q_v3M7G6.js} +1 -1
  138. package/dist/testing/collection.d.ts +1 -1
  139. package/dist/{useCommand-Dc8Lgs9h.js → useCommand-Ch_nx1AQ.js} +4 -4
  140. package/dist/{useGroupSheet-DQ6cVG-z.js → useGroupSheet-CPjHydQV.js} +14 -15
  141. package/dist/{useRecordDialog-BTsbHY38.js → useRecordDialog-DdkauXnU.js} +1 -1
  142. package/dist/{useResourceForm-DJ4Q75pq.js → useResourceForm-Dl6YFYyz.js} +1 -1
  143. package/package.json +3 -2
  144. package/dist/ActionRow.vue_vue_type_script_setup_true_lang-Cg1lhpcA.js +0 -45
  145. package/dist/Activity-29hsZ28j.js +0 -156
  146. package/dist/Button.vue_vue_type_script_setup_true_lang-Dp7OB-eF.js +0 -192
  147. package/dist/Changes-Dxjdkd_5.js +0 -129
  148. package/dist/FormErrors.vue_vue_type_script_setup_true_lang-CIggKPtq.js +0 -295
  149. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js +0 -137
  150. package/dist/PageBar.vue_vue_type_script_setup_true_lang-qI94fjJv.js +0 -47
  151. package/dist/ProfilePage-BnohZIEg.js +0 -764
  152. package/dist/ProgressTrack.vue_vue_type_script_setup_true_lang-B6Prw9hi.js +0 -64
  153. package/dist/SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js +0 -23
  154. package/dist/SessionList.vue_vue_type_script_setup_true_lang-Cnyt5V8T.js +0 -133
  155. package/dist/SignIns-BcqBgWgN.js +0 -121
  156. package/dist/UserRecord-CtUPpbCt.js +0 -267
  157. package/dist/UsersList-BMkIgIg8.js +0 -155
  158. package/dist/definition-C7QuyV3i.js +0 -54
  159. package/dist/http-nz92KjdS.js +0 -42
  160. package/dist/identity/fieldMessages.d.ts +0 -15
  161. package/dist/identity/users/languages.d.ts +0 -4
  162. package/dist/index-CdtofdcJ.js +0 -501
  163. package/dist/keepAlive-z3IRFkQq.js +0 -46
  164. package/dist/languages-BShG9LpE.js +0 -10
  165. package/dist/rowLayout-CT8vWYgI.js +0 -663
  166. package/dist/signInEvents-DWShrJox.js +0 -30
  167. package/dist/status-BRA14qwX.js +0 -34
  168. package/dist/useWaitStatus-fsacMl4W.js +0 -24
  169. /package/dist/{fieldMessages-B6GHgi40.js → serverMessages-B6GHgi40.js} +0 -0
@@ -1,217 +1,223 @@
1
- import { defineComponent as z, provide as Q, computed as C, ref as N, useId as re, openBlock as d, createElementBlock as b, normalizeClass as $, unref as t, createVNode as h, createCommentVNode as S, createElementVNode as f, toDisplayString as D, createBlock as R, withDirectives as Be, Fragment as F, renderList as ne, vShow as je, withCtx as A, mergeProps as G, useTemplateRef as ae, renderSlot as I, createSlots as K, normalizeProps as W, guardReactiveProps as Y, inject as ge, onMounted as Ve, onBeforeUnmount as ye, normalizeStyle as oe, nextTick as ie, watch as q, onScopeDispose as ce, Teleport as Fe, shallowRef as Ke, h as ee } from "vue";
2
- import { useI18n as B } from "vue-i18n";
3
- import { _ as we } from "../Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
4
- import { _ as P, u as Xe, c as Ue } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
5
- import { _ as We } from "../Popover.vue_vue_type_script_setup_true_lang-C20Hf3Hl.js";
6
- import { u as xe, S as X } from "../contributions-CeG4bszd.js";
7
- import { u as Ye } from "../environment-Dva-SG8D.js";
8
- import { _ as He } from "../CountryFlag.vue_vue_type_script_setup_true_lang-Kry_vPPZ.js";
9
- import { l as pe } from "../languageName-CItV_SOv.js";
10
- import { t as _e } from "../toast-CqSDTWRX.js";
11
- import { u as J, h as ue } from "../platform-BQOX_Ntw.js";
12
- import { a as qe, _ as ve, h as ke } from "../AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
13
- import { _ as Ge } from "../Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js";
14
- import { _ as Qe } from "../LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CIwW7y4j.js";
15
- import { _ as Je } from "../Toaster.vue_vue_type_script_setup_true_lang-55boRLAj.js";
16
- import { _ as Ze } from "../BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js";
17
- import { b as $e } from "../chrome-nUcmVu8G.js";
18
- import { p as Se, A as et } from "../access-DmAceEo5.js";
19
- import { RouterLink as Le, useRoute as tt, useRouter as de } from "vue-router";
20
- import { u as nt } from "../navigation-TnVFYRaX.js";
21
- import { u as at } from "../leaveGuard-Cc8yeLxM.js";
22
- import { u as ot, S as st } from "../dialogStack-B5G6xHq0.js";
23
- import { a as H } from "../mediaQuery-CygcXmFW.js";
24
- import { u as lt } from "../useDialog-DfNmqM-0.js";
25
- import { _ as rt } from "../Menu.vue_vue_type_script_setup_true_lang-wKc9gdCn.js";
26
- import { W as it } from "../useWaitStatus-fsacMl4W.js";
27
- import { d as Ce } from "../feature-DdUAfyi4.js";
28
- import { _ as fa } from "../HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js";
29
- const ct = ["aria-expanded", "aria-controls"], ut = { class: "flex-1 whitespace-nowrap" }, dt = { class: "truncate" }, ft = ["id"], Ee = /* @__PURE__ */ z({
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";
2
+ import { useI18n as K } from "vue-i18n";
3
+ import { _ as Pe } from "../Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
4
+ import { _ as q, u as st, c as lt } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
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";
7
+ import { u as it } from "../environment-Dva-SG8D.js";
8
+ import { _ as ct } from "../CountryFlag.vue_vue_type_script_setup_true_lang-Kry_vPPZ.js";
9
+ import { l as Ae } from "../languageName-CItV_SOv.js";
10
+ import { t as Be } from "../toast-CqSDTWRX.js";
11
+ import { u as de, h as Ce } from "../platform-BQOX_Ntw.js";
12
+ import { a as ut, _ as $e, h as Ee } from "../AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
13
+ import { _ as dt } from "../Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js";
14
+ import { _ as ft } from "../LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CIwW7y4j.js";
15
+ import { _ as mt } from "../Toaster.vue_vue_type_script_setup_true_lang-55boRLAj.js";
16
+ import { _ as pt } from "../BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js";
17
+ import { b as je } from "../chrome-nUcmVu8G.js";
18
+ import { p as Ke, A as vt } from "../access-DmAceEo5.js";
19
+ import { RouterLink as Ve, useRoute as ht, useRouter as ge } from "vue-router";
20
+ import { u as bt } from "../navigation-TnVFYRaX.js";
21
+ import { u as gt } from "../leaveGuard-Cc8yeLxM.js";
22
+ import { u as yt, S as xt } from "../dialogStack-B5G6xHq0.js";
23
+ import { a as oe } from "../mediaQuery-CygcXmFW.js";
24
+ import { u as Fe } from "../useDialog-DfNmqM-0.js";
25
+ import { _ as kt } from "../Menu.vue_vue_type_script_setup_true_lang-wKc9gdCn.js";
26
+ import { W as _t, s as Ue, u as wt, b as $t } from "../shortcut-DUR6yPWA.js";
27
+ import { d as fe } from "../feature-DdUAfyi4.js";
28
+ import { _ as po } from "../HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js";
29
+ import { p as St } from "../perDocument-DUuFrdGU.js";
30
+ import { _ as De } from "../Highlight.vue_vue_type_script_setup_true_lang-DZGBmwcX.js";
31
+ import { _ as Lt } from "../SearchInput.vue_vue_type_script_setup_true_lang-w4eAqyZ9.js";
32
+ import { _ as Ct } from "../Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
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({
30
36
  __name: "AccountMenuContent",
31
37
  props: {
32
38
  appearance: {}
33
39
  },
34
40
  emits: ["close"],
35
41
  setup(e, { emit: a }) {
36
- const n = e, o = a, { t: r } = B(), { session: c } = J(), s = Ye(), i = xe();
37
- Q(qe, { appearance: n.appearance, close: () => o("close") });
38
- const l = n.appearance === "sheet", p = C(() => i.get("accountMenu").length > 0), g = s.locales.length > 1, v = N(!1), x = re(), _ = C(() => pe(s.locale.value)), w = (M) => s.localeFlags[M];
39
- async function E() {
42
+ const n = e, o = a, { t: i } = K(), { session: u } = de(), s = it(), c = qe();
43
+ 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];
45
+ async function C() {
40
46
  try {
41
- await c.signOut();
47
+ await u.signOut();
42
48
  } catch {
43
- _e.error(r("core.shell.account.sign_out_failed"));
49
+ Be.error(i("core.shell.account.sign_out_failed"));
44
50
  }
45
51
  }
46
- const m = l ? "overflow-hidden rounded-group bg-surface-cell shadow-group" : "";
47
- return (M, u) => (d(), b("div", {
48
- class: $(l ? "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"),
52
+ const v = d ? "overflow-hidden rounded-group bg-surface-cell shadow-group" : "";
53
+ return (z, f) => (l(), m("div", {
54
+ 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"),
49
55
  "data-shell-account-menu": ""
50
56
  }, [
51
- p.value ? (d(), b("div", {
57
+ b.value ? (l(), m("div", {
52
58
  key: 0,
53
- class: $(t(m))
59
+ class: T(t(v))
54
60
  }, [
55
- h(t(X), { name: "accountMenu" })
56
- ], 2)) : S("", !0),
57
- g ? (d(), b("div", {
61
+ p(t(J), { name: "accountMenu" })
62
+ ], 2)) : k("", !0),
63
+ g ? (l(), m("div", {
58
64
  key: 1,
59
- class: $(t(m))
65
+ class: T(t(v))
60
66
  }, [
61
- f("div", {
62
- class: $(l ? "relative" : "")
67
+ r("div", {
68
+ class: T(d ? "relative" : "")
63
69
  }, [
64
- f("button", {
70
+ r("button", {
65
71
  type: "button",
66
- "aria-expanded": v.value,
67
- "aria-controls": t(x),
72
+ "aria-expanded": h.value,
73
+ "aria-controls": t($),
68
74
  "data-account-language": "",
69
- class: $(["flex w-full cursor-pointer items-center gap-3 text-left transition-colors duration-motion-fast focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", l ? "min-h-row px-row-inset py-2 text-body active:bg-fill" : "rounded-md px-2 py-1.5 text-sm hover:bg-fill"]),
70
- onClick: u[0] || (u[0] = (T) => v.value = !v.value)
75
+ class: T(["flex w-full cursor-pointer items-center gap-3 text-left transition-colors duration-motion-fast focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", d ? "min-h-row px-row-inset py-2 text-body active:bg-fill" : "rounded-md px-2 py-1.5 text-sm hover:bg-fill"]),
76
+ onClick: f[0] || (f[0] = (I) => h.value = !h.value)
71
77
  }, [
72
- h(t(P), {
78
+ p(t(q), {
73
79
  name: "translate",
74
- size: l ? 22 : 16,
80
+ size: d ? 22 : 16,
75
81
  class: "shrink-0 text-content-muted"
76
82
  }, null, 8, ["size"]),
77
- f("span", ut, D(t(r)("core.shell.account.language")), 1),
78
- f("span", {
79
- class: $(["flex min-w-0 items-center gap-1.5 text-content-muted", l ? "" : "text-xs"])
83
+ r("span", At, M(t(i)("core.shell.account.language")), 1),
84
+ r("span", {
85
+ class: T(["flex min-w-0 items-center gap-1.5 text-content-muted", d ? "" : "text-xs"])
80
86
  }, [
81
- w(t(s).locale.value) ? (d(), R(He, {
87
+ y(t(s).locale.value) ? (l(), P(ct, {
82
88
  key: 0,
83
- country: w(t(s).locale.value)
84
- }, null, 8, ["country"])) : S("", !0),
85
- f("span", dt, D(_.value), 1)
89
+ country: y(t(s).locale.value)
90
+ }, null, 8, ["country"])) : k("", !0),
91
+ r("span", Dt, M(_.value), 1)
86
92
  ], 2),
87
- h(t(P), {
93
+ p(t(q), {
88
94
  name: "arrowDownSLine",
89
- size: l ? 18 : 16,
90
- class: $(["shrink-0 text-content-disabled transition-transform duration-motion-fast", v.value ? "rotate-180" : ""])
95
+ size: d ? 18 : 16,
96
+ class: T(["shrink-0 text-content-disabled transition-transform duration-motion-fast", h.value ? "rotate-180" : ""])
91
97
  }, null, 8, ["size", "class"])
92
- ], 10, ct)
98
+ ], 10, Mt)
93
99
  ], 2),
94
- Be(f("div", {
95
- id: t(x),
96
- class: $(l ? "" : "space-y-0.5 pl-4")
100
+ nt(r("div", {
101
+ id: t($),
102
+ class: T(d ? "" : "space-y-0.5 pl-4")
97
103
  }, [
98
- (d(!0), b(F, null, ne(t(s).locales, (T) => (d(), R(ve, {
99
- key: T,
100
- label: t(pe)(T),
101
- flag: w(T),
102
- selected: T === t(s).locale.value,
103
- onClick: (L) => t(s).setLocale(T)
104
+ (l(!0), m(U, null, se(t(s).locales, (I) => (l(), P($e, {
105
+ key: I,
106
+ label: t(Ae)(I),
107
+ flag: y(I),
108
+ selected: I === t(s).locale.value,
109
+ onClick: (E) => t(s).setLocale(I)
104
110
  }, null, 8, ["label", "flag", "selected", "onClick"]))), 128))
105
- ], 10, ft), [
106
- [je, v.value]
111
+ ], 10, zt), [
112
+ [at, h.value]
107
113
  ])
108
- ], 2)) : S("", !0),
109
- f("div", {
110
- class: $(t(m))
114
+ ], 2)) : k("", !0),
115
+ r("div", {
116
+ class: T(t(v))
111
117
  }, [
112
- h(ve, {
113
- label: t(r)("core.shell.account.sign_out"),
118
+ p($e, {
119
+ label: t(i)("core.shell.account.sign_out"),
114
120
  icon: "logoutBoxRLine",
115
121
  tone: "critical",
116
- onClick: E
122
+ onClick: C
117
123
  }, null, 8, ["label"])
118
124
  ], 2)
119
125
  ], 2));
120
126
  }
121
- }), mt = ["onClick"], pt = { class: "min-w-0 flex-1" }, vt = { class: "block truncate text-sm font-semibold text-white" }, ht = {
127
+ }), It = ["onClick"], Rt = { class: "min-w-0 flex-1" }, Ot = { class: "block truncate text-sm font-semibold text-white" }, Nt = {
122
128
  key: 0,
123
129
  class: "block truncate text-xs text-gray-300"
124
- }, bt = /* @__PURE__ */ z({
130
+ }, Pt = /* @__PURE__ */ R({
125
131
  __name: "AccountMenu",
126
132
  props: {
127
133
  identity: {}
128
134
  },
129
135
  setup(e) {
130
- const { t: a } = B();
131
- return (n, o) => (d(), R(t(We), {
136
+ const { t: a } = K();
137
+ return (n, o) => (l(), P(t(rt), {
132
138
  placement: "top-start",
133
139
  width: "sm",
134
140
  block: "",
135
141
  arrow: !1,
136
142
  label: t(a)("core.shell.account.open")
137
143
  }, {
138
- trigger: A(({ toggle: r, attrs: c, presented: s }) => [
139
- f("button", G({ type: "button" }, c, {
144
+ trigger: D(({ toggle: i, attrs: u, presented: s }) => [
145
+ r("button", le({ type: "button" }, u, {
140
146
  "data-shell-account": "",
141
147
  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 }],
142
- onClick: r
148
+ onClick: i
143
149
  }), [
144
- h(t(we), {
150
+ p(t(Pe), {
145
151
  name: e.identity.name,
146
152
  size: "md"
147
153
  }, null, 8, ["name"]),
148
- f("span", pt, [
149
- f("span", vt, D(e.identity.name), 1),
150
- e.identity.detail ? (d(), b("span", ht, D(e.identity.detail), 1)) : S("", !0)
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)
151
157
  ]),
152
- h(t(P), {
158
+ p(t(q), {
153
159
  name: "expandUpDownLine",
154
160
  size: 16,
155
161
  class: "shrink-0 text-gray-400"
156
162
  })
157
- ], 16, mt)
163
+ ], 16, It)
158
164
  ]),
159
- default: A(({ dismiss: r }) => [
160
- h(Ee, {
165
+ default: D(({ dismiss: i }) => [
166
+ p(We, {
161
167
  appearance: "popover",
162
- onClose: r
168
+ onClose: i
163
169
  }, null, 8, ["onClose"])
164
170
  ]),
165
171
  _: 1
166
172
  }, 8, ["label"]));
167
173
  }
168
- }), gt = /* @__PURE__ */ z({
174
+ }), qt = /* @__PURE__ */ R({
169
175
  __name: "AccountSheet",
170
176
  props: {
171
177
  identity: {}
172
178
  },
173
179
  setup(e, { expose: a }) {
174
- const n = ae("sheet");
175
- return a({ present: () => n.value?.present(), dismiss: () => n.value?.dismiss() }), (o, r) => (d(), R(t(Ge), {
180
+ const n = re("sheet");
181
+ return a({ present: () => n.value?.present(), dismiss: () => n.value?.dismiss() }), (o, i) => (l(), P(t(dt), {
176
182
  ref_key: "sheet",
177
183
  ref: n,
178
184
  title: e.identity.name,
179
185
  grouped: ""
180
186
  }, {
181
- default: A(() => [
182
- h(Ee, {
187
+ default: D(() => [
188
+ p(We, {
183
189
  appearance: "sheet",
184
- onClose: r[0] || (r[0] = (c) => n.value?.dismiss())
190
+ onClose: i[0] || (i[0] = (u) => n.value?.dismiss())
185
191
  })
186
192
  ]),
187
193
  _: 1
188
194
  }, 8, ["title"]));
189
195
  }
190
196
  });
191
- function yt() {
192
- const e = Xe(), a = (n, o) => Object.prototype.hasOwnProperty.call(n, o);
193
- return (n) => n && (e[n] !== void 0 || a(Ue, n)) ? n : null;
197
+ function Bt() {
198
+ const e = st(), a = (n, o) => Object.prototype.hasOwnProperty.call(n, o);
199
+ return (n) => n && (e[n] !== void 0 || a(lt, n)) ? n : null;
194
200
  }
195
- function Te(e) {
201
+ function Xe(e) {
196
202
  return e.button === 0 && !e.metaKey && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.defaultPrevented;
197
203
  }
198
- const Ae = (e) => e.to ? [e] : e.children.flatMap(Ae);
199
- function wt(e) {
204
+ const Ye = (e) => e.to ? [e] : e.children.flatMap(Ye);
205
+ function jt(e) {
200
206
  const a = [];
201
207
  for (const n of e) {
202
- const o = Ae(n);
208
+ const o = Ye(n);
203
209
  if (o.length === 0) continue;
204
- const r = !n.to && o.length > 1 ? n.label : null;
210
+ const i = !n.to && o.length > 1 ? n.label : null;
205
211
  a.push({
206
212
  key: n.key,
207
- heading: r,
208
- separated: r === null && a.length > 0,
209
- items: o.map((c) => ({ key: c.key, label: c.label, icon: c.icon, to: c.to, active: c.active }))
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 }))
210
216
  });
211
217
  }
212
218
  return a;
213
219
  }
214
- const xt = ["aria-label", "data-appearance"], _t = ["data-separated"], kt = ["id"], $t = ["aria-labelledby"], St = ["href", "aria-current", "onClick"], Lt = { class: "min-w-0 flex-1 truncate" }, he = "flex w-full items-center transition-colors focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-border-focus", Me = /* @__PURE__ */ z({
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({
215
221
  __name: "NavigationList",
216
222
  props: {
217
223
  items: { default: void 0 },
@@ -220,16 +226,16 @@ const xt = ["aria-label", "data-appearance"], _t = ["data-separated"], kt = ["id
220
226
  },
221
227
  emits: ["select"],
222
228
  setup(e, { emit: a }) {
223
- const n = e, o = a, { t: r } = B(), c = re(), s = n.items === void 0 ? nt() : null, i = yt(), l = C(() => wt(n.items ?? s?.value ?? []));
224
- function p(w, E, m) {
225
- if (n.appearance === "drawer" && Te(w)) {
226
- w.preventDefault(), o("select", m);
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 ?? []));
230
+ function b(y, C, v) {
231
+ if (n.appearance === "drawer" && Xe(y)) {
232
+ y.preventDefault(), o("select", v);
227
233
  return;
228
234
  }
229
- E(w);
235
+ C(y);
230
236
  }
231
237
  const g = {
232
- item: `${he} group gap-2.5 rounded-md px-2.5 py-1.5 text-sm`,
238
+ item: `${ze} group gap-2.5 rounded-md px-2.5 py-1.5 text-sm`,
233
239
  active: "bg-white/10 font-medium text-white ring-1 ring-inset ring-white/5",
234
240
  inactive: "font-normal text-gray-300 hover:bg-white/5 hover:text-white",
235
241
  iconActive: "text-primary-400",
@@ -237,68 +243,68 @@ const xt = ["aria-label", "data-appearance"], _t = ["data-separated"], kt = ["id
237
243
  heading: "px-2 pb-1 text-2xs font-semibold uppercase tracking-[0.08em] text-gray-400",
238
244
  // A hairline above the group, inset like the rows.
239
245
  separator: "before:mx-2 before:my-2.5 before:block before:border-t before:border-white/10"
240
- }, v = {
241
- item: `${he} min-h-[2.875rem] cursor-pointer gap-3.5 rounded-group px-3 text-left text-body duration-motion-fast`,
246
+ }, h = {
247
+ item: `${ze} min-h-[2.875rem] cursor-pointer gap-3.5 rounded-group px-3 text-left text-body duration-motion-fast`,
242
248
  active: "bg-tint-soft font-semibold text-content-link",
243
249
  inactive: "active:bg-fill",
244
250
  iconActive: "",
245
251
  iconInactive: "",
246
252
  heading: "px-3 pt-4.5 pb-1.5 text-subheadline text-content-muted",
247
253
  separator: "before:mx-3 before:my-3 before:block before:border-t before:border-border-separator"
248
- }, x = C(() => n.appearance === "rail" ? g : v), _ = C(() => n.appearance === "rail" ? 16 : 22);
249
- return (w, E) => (d(), b("nav", {
250
- "aria-label": e.label ?? t(r)("core.shell.menu"),
254
+ }, $ = 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"),
251
257
  "data-shell-navigation": "",
252
258
  "data-appearance": e.appearance
253
259
  }, [
254
- f("ul", null, [
255
- (d(!0), b(F, null, ne(l.value, (m, M) => (d(), b("li", {
256
- key: m.key,
257
- "data-separated": m.separated || void 0,
258
- class: $(m.separated ? x.value.separator : "")
260
+ r("ul", null, [
261
+ (l(!0), m(U, null, se(d.value, (v, z) => (l(), m("li", {
262
+ key: v.key,
263
+ "data-separated": v.separated || void 0,
264
+ class: T(v.separated ? $.value.separator : "")
259
265
  }, [
260
- m.heading ? (d(), b("p", {
266
+ v.heading ? (l(), m("p", {
261
267
  key: 0,
262
- id: `${t(c)}-${M}`,
263
- class: $([x.value.heading, e.appearance === "rail" ? M > 0 ? "pt-4" : "pt-1" : ""])
264
- }, D(m.heading), 11, kt)) : S("", !0),
265
- f("ul", {
266
- "aria-labelledby": m.heading ? `${t(c)}-${M}` : void 0,
267
- class: $(e.appearance === "rail" ? "space-y-0.5" : "")
268
+ id: `${t(u)}-${z}`,
269
+ 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,
273
+ class: T(e.appearance === "rail" ? "space-y-0.5" : "")
268
274
  }, [
269
- (d(!0), b(F, null, ne(m.items, (u) => (d(), b("li", {
270
- key: u.key
275
+ (l(!0), m(U, null, se(v.items, (f) => (l(), m("li", {
276
+ key: f.key
271
277
  }, [
272
- h(t(Le), {
278
+ p(t(Ve), {
273
279
  custom: "",
274
- to: u.to
280
+ to: f.to
275
281
  }, {
276
- default: A(({ href: T, navigate: L }) => [
277
- f("a", {
278
- href: T,
279
- "aria-current": u.active ? "page" : void 0,
282
+ default: D(({ href: I, navigate: E }) => [
283
+ r("a", {
284
+ href: I,
285
+ "aria-current": f.active ? "page" : void 0,
280
286
  "data-shell-destination": "",
281
- class: $([x.value.item, u.active ? x.value.active : x.value.inactive]),
282
- onClick: (k) => p(k, L, u.to)
287
+ class: T([$.value.item, f.active ? $.value.active : $.value.inactive]),
288
+ onClick: (x) => b(x, E, f.to)
283
289
  }, [
284
- t(i)(u.icon) ? (d(), R(t(P), {
290
+ t(c)(f.icon) ? (l(), P(t(q), {
285
291
  key: 0,
286
- name: t(i)(u.icon),
292
+ name: t(c)(f.icon),
287
293
  size: _.value,
288
- class: $(u.active ? x.value.iconActive : x.value.iconInactive)
289
- }, null, 8, ["name", "size", "class"])) : S("", !0),
290
- f("span", Lt, D(u.label), 1)
291
- ], 10, St)
294
+ class: T(f.active ? $.value.iconActive : $.value.iconInactive)
295
+ }, null, 8, ["name", "size", "class"])) : k("", !0),
296
+ r("span", Xt, M(f.label), 1)
297
+ ], 10, Wt)
292
298
  ]),
293
299
  _: 2
294
300
  }, 1032, ["to"])
295
301
  ]))), 128))
296
- ], 10, $t)
297
- ], 10, _t))), 128))
302
+ ], 10, Ut)
303
+ ], 10, Vt))), 128))
298
304
  ])
299
- ], 8, xt));
305
+ ], 8, Kt));
300
306
  }
301
- }), Ct = ["href", "aria-label", "onClick"], fe = /* @__PURE__ */ z({
307
+ }), Yt = ["href", "aria-label", "onClick"], Te = /* @__PURE__ */ R({
302
308
  inheritAttrs: !1,
303
309
  __name: "ShellBrand",
304
310
  props: {
@@ -308,51 +314,51 @@ const xt = ["aria-label", "data-appearance"], _t = ["data-separated"], kt = ["id
308
314
  },
309
315
  emits: ["select"],
310
316
  setup(e, { emit: a }) {
311
- const n = e, o = a, { t: r } = B(), { config: c } = J();
312
- function s(i, l) {
313
- if (n.intercept && Te(i)) {
314
- i.preventDefault(), o("select", n.to);
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);
315
321
  return;
316
322
  }
317
- l(i);
323
+ d(c);
318
324
  }
319
- return (i, l) => (d(), R(t(Le), {
325
+ return (c, d) => (l(), P(t(Ve), {
320
326
  custom: "",
321
327
  to: e.to
322
328
  }, {
323
- default: A(({ href: p, navigate: g }) => [
324
- f("a", G(i.$attrs, {
325
- href: p,
326
- "aria-label": t(r)("core.shell.home"),
329
+ default: D(({ href: b, navigate: g }) => [
330
+ r("a", le(c.$attrs, {
331
+ href: b,
332
+ "aria-label": t(i)("core.shell.home"),
327
333
  "data-shell-brand": "",
328
334
  class: "inline-block rounded-control focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus",
329
- onClick: (v) => s(v, g)
335
+ onClick: (h) => s(h, g)
330
336
  }), [
331
- I(i.$slots, "default", { tone: e.tone }, () => [
332
- f("span", {
333
- class: $(["block truncate text-headline font-semibold", e.tone === "light" ? "text-white" : "text-content-strong"])
334
- }, D(t(c).appName), 3)
337
+ j(c.$slots, "default", { tone: e.tone }, () => [
338
+ r("span", {
339
+ class: T(["block truncate text-headline font-semibold", e.tone === "light" ? "text-white" : "text-content-strong"])
340
+ }, M(t(u).appName), 3)
335
341
  ])
336
- ], 16, Ct)
342
+ ], 16, Yt)
337
343
  ]),
338
344
  _: 3
339
345
  }, 8, ["to"]));
340
346
  }
341
347
  });
342
- function Ie() {
343
- const e = xe();
344
- return C(() => e.get("search").length > 0);
348
+ function Qe() {
349
+ const e = qe();
350
+ return L(() => e.get("search").length > 0);
345
351
  }
346
- const Et = {
352
+ const Ht = {
347
353
  class: "flex h-full flex-col bg-surface-page text-content-strong",
348
354
  "data-shell-drawer-content": ""
349
- }, Tt = { 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))]" }, At = {
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 = {
350
356
  key: 0,
351
357
  class: "shrink-0 pr-4 pb-3 pl-[max(1.125rem,env(safe-area-inset-left))]"
352
- }, Mt = { class: "min-w-0 flex-1" }, It = { class: "block truncate text-headline font-semibold" }, zt = {
358
+ }, Jt = { class: "min-w-0 flex-1" }, Zt = { class: "block truncate text-headline font-semibold" }, en = {
353
359
  key: 0,
354
360
  class: "block truncate text-footnote text-content-muted"
355
- }, Dt = /* @__PURE__ */ z({
361
+ }, tn = /* @__PURE__ */ R({
356
362
  __name: "NavigationDrawer",
357
363
  props: {
358
364
  identity: {},
@@ -360,55 +366,55 @@ const Et = {
360
366
  },
361
367
  emits: ["select", "account"],
362
368
  setup(e, { emit: a }) {
363
- const n = a, { t: o } = B(), r = Ie();
364
- return (c, s) => (d(), b("div", Et, [
365
- f("div", Tt, [
366
- h(fe, {
369
+ const n = a, { t: o } = K(), i = Qe();
370
+ return (u, s) => (l(), m("div", Ht, [
371
+ r("div", Qt, [
372
+ p(Te, {
367
373
  to: e.home,
368
374
  tone: "brand",
369
375
  intercept: "",
370
376
  class: "max-w-36",
371
- onSelect: s[0] || (s[0] = (i) => n("select", i))
372
- }, K({ _: 2 }, [
373
- c.$slots.brand ? {
377
+ onSelect: s[0] || (s[0] = (c) => n("select", c))
378
+ }, G({ _: 2 }, [
379
+ u.$slots.brand ? {
374
380
  name: "default",
375
- fn: A((i) => [
376
- I(c.$slots, "brand", W(Y(i)))
381
+ fn: D((c) => [
382
+ j(u.$slots, "brand", ne(ae(c)))
377
383
  ]),
378
384
  key: "0"
379
385
  } : void 0
380
386
  ]), 1032, ["to"])
381
387
  ]),
382
- t(r) ? (d(), b("div", At, [
383
- h(t(X), { name: "search" })
384
- ])) : S("", !0),
385
- s[3] || (s[3] = f("div", {
388
+ t(i) ? (l(), m("div", Gt, [
389
+ p(t(J), { name: "search" })
390
+ ])) : k("", !0),
391
+ s[3] || (s[3] = r("div", {
386
392
  class: "mx-5.5 shrink-0 border-t border-border-separator",
387
393
  role: "presentation"
388
394
  }, null, -1)),
389
- h(Me, {
395
+ p(He, {
390
396
  appearance: "drawer",
391
397
  label: t(o)("core.shell.menu"),
392
398
  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)]",
393
- onSelect: s[1] || (s[1] = (i) => n("select", i))
399
+ onSelect: s[1] || (s[1] = (c) => n("select", c))
394
400
  }, null, 8, ["label"]),
395
- I(c.$slots, "footer"),
396
- f("button", {
401
+ j(u.$slots, "footer"),
402
+ r("button", {
397
403
  type: "button",
398
404
  "data-shell-drawer-account": "",
399
405
  "aria-haspopup": "dialog",
400
406
  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",
401
- onClick: s[2] || (s[2] = (i) => n("account"))
407
+ onClick: s[2] || (s[2] = (c) => n("account"))
402
408
  }, [
403
- h(t(we), {
409
+ p(t(Pe), {
404
410
  name: e.identity.name,
405
411
  size: "lg"
406
412
  }, null, 8, ["name"]),
407
- f("span", Mt, [
408
- f("span", It, D(e.identity.name), 1),
409
- e.identity.detail ? (d(), b("span", zt, D(e.identity.detail), 1)) : S("", !0)
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)
410
416
  ]),
411
- h(t(P), {
417
+ p(t(q), {
412
418
  name: "arrowRightSLine",
413
419
  size: 18,
414
420
  class: "shrink-0 text-content-disabled"
@@ -416,35 +422,35 @@ const Et = {
416
422
  ])
417
423
  ]));
418
424
  }
419
- }), ze = Symbol("vue-core.navigationDrawer");
420
- function De() {
421
- return ge(ze, null);
425
+ }), Ge = Symbol("vue-core.navigationDrawer");
426
+ function Je() {
427
+ return Le(Ge, null);
422
428
  }
423
- const se = 72, Rt = 110, Ot = 0.5, Pt = 600;
424
- function Nt(e, a) {
429
+ const he = 72, nn = 110, an = 0.5, on = 600;
430
+ function sn(e, a) {
425
431
  const n = N(0), o = N(!1);
426
- let r = 0, c = 0, s = !1;
427
- function i(v) {
428
- s = !1, !(!a.enabled() || o.value || v.touches.length !== 1 || window.scrollY > 0) && (r = v.touches[0].clientX, c = v.touches[0].clientY, s = !0);
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);
429
435
  }
430
- function l(v) {
436
+ function d(h) {
431
437
  if (!s) return;
432
- const x = v.touches[0].clientX - r, _ = v.touches[0].clientY - c;
433
- if (_ <= 0 || Math.abs(x) > _ || window.scrollY > 0) {
438
+ const $ = h.touches[0].clientX - i, _ = h.touches[0].clientY - u;
439
+ if (_ <= 0 || Math.abs($) > _ || window.scrollY > 0) {
434
440
  n.value === 0 && (s = !1), n.value = 0;
435
441
  return;
436
442
  }
437
- n.value = Math.min(Rt, _ * Ot);
443
+ n.value = Math.min(nn, _ * an);
438
444
  }
439
- async function p() {
445
+ async function b() {
440
446
  if (s) {
441
- if (s = !1, n.value < se) {
447
+ if (s = !1, n.value < he) {
442
448
  n.value = 0;
443
449
  return;
444
450
  }
445
- o.value = !0, n.value = se;
451
+ o.value = !0, n.value = he;
446
452
  try {
447
- await Promise.all([e(), new Promise((v) => setTimeout(v, Pt))]);
453
+ await Promise.all([e(), new Promise((h) => setTimeout(h, on))]);
448
454
  } finally {
449
455
  o.value = !1, n.value = 0;
450
456
  }
@@ -453,277 +459,277 @@ function Nt(e, a) {
453
459
  function g() {
454
460
  s = !1, o.value || (n.value = 0);
455
461
  }
456
- return Ve(() => {
457
- window.addEventListener("touchstart", i, { passive: !0 }), window.addEventListener("touchmove", l, { passive: !0 }), window.addEventListener("touchend", p), window.addEventListener("touchcancel", g);
458
- }), ye(() => {
459
- window.removeEventListener("touchstart", i), window.removeEventListener("touchmove", l), window.removeEventListener("touchend", p), window.removeEventListener("touchcancel", g);
462
+ 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);
460
466
  }), { pull: n, refreshing: o };
461
467
  }
462
- const Bt = { 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" }, jt = /* @__PURE__ */ z({
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({
463
469
  __name: "PullToRefresh",
464
470
  setup(e) {
465
- const a = H("(display-mode: standalone)"), n = ot(), o = De(), r = at(), c = ge(Se, null), { pull: s, refreshing: i } = Nt(
471
+ const a = oe("(display-mode: standalone)"), n = yt(), o = Je(), i = gt(), u = Le(Ke, null), { pull: s, refreshing: c } = sn(
466
472
  async () => {
467
- r.hasUnsavedChanges() && !await r.confirm() || (c && c.value++, await ie());
473
+ i.hasUnsavedChanges() && !await i.confirm() || (u && u.value++, await be());
468
474
  },
469
475
  {
470
- enabled: () => c !== null && n.value === 0 && !o?.open.value && (a.value || navigator.standalone === !0)
476
+ enabled: () => u !== null && n.value === 0 && !o?.open.value && (a.value || navigator.standalone === !0)
471
477
  }
472
478
  );
473
- return (l, p) => t(s) > 0 || t(i) ? (d(), b("div", {
479
+ return (d, b) => t(s) > 0 || t(c) ? (l(), m("div", {
474
480
  key: 0,
475
481
  "aria-hidden": "true",
476
482
  "data-shell-pull-to-refresh": "",
477
483
  class: "pointer-events-none fixed inset-x-0 z-40 flex justify-center",
478
- style: oe({ top: `calc(env(safe-area-inset-top) + ${Math.max(t(s), 8)}px)` })
484
+ style: ve({ top: `calc(env(safe-area-inset-top) + ${Math.max(t(s), 8)}px)` })
479
485
  }, [
480
- f("span", Bt, [
481
- h(t(P), {
482
- name: t(i) ? "loader4Line" : "refreshLine",
486
+ r("span", ln, [
487
+ p(t(q), {
488
+ name: t(c) ? "loader4Line" : "refreshLine",
483
489
  size: 20,
484
- class: $(t(i) ? "animate-spin motion-reduce:animate-none" : ""),
485
- style: oe(t(i) ? void 0 : { transform: `rotate(${t(s) / t(se) * 270}deg)`, opacity: Math.min(1, t(s) / t(se)) })
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)) })
486
492
  }, null, 8, ["name", "class", "style"])
487
493
  ])
488
- ], 4)) : S("", !0);
494
+ ], 4)) : k("", !0);
489
495
  }
490
- }), Vt = {
496
+ }), cn = {
491
497
  key: 0,
492
498
  "data-shell-sidebar": "",
493
499
  class: "flex w-64 shrink-0 flex-col bg-anchor-900 dark:border-r dark:border-white/5 dark:bg-anchor-950"
494
- }, Ft = { class: "sticky top-[var(--shell-banner-h,0px)] z-30 flex h-[calc(100vh-var(--shell-banner-h,0px))] flex-col" }, Kt = { class: "flex items-center justify-between gap-2 pt-5 pr-2 pb-3 pl-4" }, Xt = { class: "flex shrink-0 items-center gap-1" }, Ut = {
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 = {
495
501
  key: 0,
496
502
  class: "px-2 pb-1"
497
- }, Wt = { class: "border-t border-white/10 p-2" }, Yt = /* @__PURE__ */ z({
503
+ }, pn = { class: "border-t border-white/10 p-2" }, vn = /* @__PURE__ */ R({
498
504
  __name: "ShellSidebar",
499
505
  props: {
500
506
  identity: {},
501
507
  home: {}
502
508
  },
503
509
  setup(e) {
504
- Q(ke, "rail");
505
- const a = H("(min-width: 48rem)"), n = Ie();
506
- return (o, r) => t(a) ? (d(), b("aside", Vt, [
507
- f("div", Ft, [
508
- f("div", Kt, [
509
- h(fe, {
510
+ ce(Ee, "rail");
511
+ 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, [
515
+ p(Te, {
510
516
  to: e.home,
511
517
  tone: "light",
512
518
  class: "min-w-0"
513
- }, K({ _: 2 }, [
519
+ }, G({ _: 2 }, [
514
520
  o.$slots.brand ? {
515
521
  name: "default",
516
- fn: A((c) => [
517
- I(o.$slots, "brand", W(Y(c)))
522
+ fn: D((u) => [
523
+ j(o.$slots, "brand", ne(ae(u)))
518
524
  ]),
519
525
  key: "0"
520
526
  } : void 0
521
527
  ]), 1032, ["to"]),
522
- f("div", Xt, [
523
- h(t(X), { name: "headerActions" })
528
+ r("div", fn, [
529
+ p(t(J), { name: "headerActions" })
524
530
  ])
525
531
  ]),
526
- t(n) ? (d(), b("div", Ut, [
527
- h(t(X), { name: "search" })
528
- ])) : S("", !0),
529
- h(Me, {
532
+ t(n) ? (l(), m("div", mn, [
533
+ p(t(J), { name: "search" })
534
+ ])) : k("", !0),
535
+ p(He, {
530
536
  appearance: "rail",
531
537
  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)]"
532
538
  }),
533
- I(o.$slots, "footer"),
534
- f("div", Wt, [
535
- h(bt, { identity: e.identity }, null, 8, ["identity"])
539
+ j(o.$slots, "footer"),
540
+ r("div", pn, [
541
+ p(Pt, { identity: e.identity }, null, 8, ["identity"])
536
542
  ])
537
543
  ])
538
- ])) : S("", !0);
544
+ ])) : k("", !0);
539
545
  }
540
- }), Ht = 20, qt = 8, be = 0.5, Gt = 40;
541
- function Qt({ offset: e, startOffset: a, width: n, velocity: o }) {
542
- if (Math.abs(e - a) > Gt) {
543
- if (o > be) return !0;
544
- if (o < -be) return !1;
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) {
549
+ if (o > Ie) return !0;
550
+ if (o < -Ie) return !1;
545
551
  }
546
552
  return e > n / 2;
547
553
  }
548
- function Jt(e) {
554
+ function xn(e) {
549
555
  const a = N(0), n = N(!1);
550
- let o = !1, r = null, c = 0, s = 0, i = 0, l = 0, p = 0, g = 0;
551
- function v(L, k) {
552
- o = !0, r = null, c = l = L.clientX, s = L.clientY, i = k, p = performance.now(), g = 0;
556
+ let o = !1, i = null, u = 0, s = 0, c = 0, d = 0, b = 0, g = 0;
557
+ function h(E, x) {
558
+ o = !0, i = null, u = d = E.clientX, s = E.clientY, c = x, b = performance.now(), g = 0;
553
559
  }
554
- function x(L) {
555
- const k = L.touches[0];
556
- if (!o || !k) return;
557
- const O = k.clientX - c, Z = k.clientY - s;
558
- if (!r) {
559
- if (Math.max(Math.abs(O), Math.abs(Z)) < qt) return;
560
- if (r = Math.abs(O) > Math.abs(Z) ? "x" : "y", r === "y" || i === 0 && O < 0) {
560
+ function $(E) {
561
+ const x = E.touches[0];
562
+ 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) {
561
567
  o = !1;
562
568
  return;
563
569
  }
564
- n.value = !0, a.value = i, e.onStart();
570
+ n.value = !0, a.value = c, e.onStart();
565
571
  }
566
- const U = performance.now();
567
- g = (k.clientX - l) / Math.max(U - p, 1), l = k.clientX, p = U, a.value = Math.min(e.width(), Math.max(0, i + O)), L.cancelable && L.preventDefault();
572
+ 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();
568
574
  }
569
575
  function _() {
570
- o && (o = !1, n.value && (n.value = !1, e.onSettle(Qt({ offset: a.value, startOffset: i, width: e.width(), velocity: g }))));
576
+ o && (o = !1, n.value && (n.value = !1, e.onSettle(yn({ offset: a.value, startOffset: c, width: e.width(), velocity: g }))));
571
577
  }
572
- function w() {
578
+ function y() {
573
579
  o = !1, n.value = !1;
574
580
  }
575
- function E(L) {
576
- const k = L.touches[0];
577
- !k || L.touches.length !== 1 || e.isOpen() || !e.canOpenFromEdge() || k.clientX > Ht || v(k, 0);
581
+ function C(E) {
582
+ const x = E.touches[0];
583
+ !x || E.touches.length !== 1 || e.isOpen() || !e.canOpenFromEdge() || x.clientX > hn || h(x, 0);
578
584
  }
579
- let m = !1;
580
- function M() {
581
- m || (m = !0, window.addEventListener("touchstart", E, { passive: !0 }), window.addEventListener("touchmove", x, { passive: !1 }), window.addEventListener("touchend", _), window.addEventListener("touchcancel", _));
585
+ let v = !1;
586
+ function z() {
587
+ v || (v = !0, window.addEventListener("touchstart", C, { passive: !0 }), window.addEventListener("touchmove", $, { passive: !1 }), window.addEventListener("touchend", _), window.addEventListener("touchcancel", _));
582
588
  }
583
- function u() {
584
- m && (m = !1, window.removeEventListener("touchstart", E), window.removeEventListener("touchmove", x), window.removeEventListener("touchend", _), window.removeEventListener("touchcancel", _), w());
589
+ function f() {
590
+ v && (v = !1, window.removeEventListener("touchstart", C), window.removeEventListener("touchmove", $), window.removeEventListener("touchend", _), window.removeEventListener("touchcancel", _), y());
585
591
  }
586
- return q(e.enabled, (L) => L ? M() : u(), { immediate: !0 }), ce(u), { offset: a, dragging: n, closeEvents: {
587
- onTouchstartPassive(L) {
588
- const k = L.touches[0];
589
- k && L.touches.length === 1 && e.isOpen() && v(k, e.width());
592
+ return Q(e.enabled, (E) => E ? z() : f(), { immediate: !0 }), ue(f), { offset: a, dragging: n, closeEvents: {
593
+ onTouchstartPassive(E) {
594
+ const x = E.touches[0];
595
+ x && E.touches.length === 1 && e.isOpen() && h(x, e.width());
590
596
  }
591
- }, cancel: w };
597
+ }, cancel: y };
592
598
  }
593
- const Zt = ["id", "aria-label"], en = ["data-drawer", "inert"], tn = /* @__PURE__ */ z({
599
+ const kn = ["id", "aria-label"], _n = ["data-drawer", "inert"], wn = /* @__PURE__ */ R({
594
600
  __name: "ShellStage",
595
601
  props: {
596
602
  enabled: { type: Boolean }
597
603
  },
598
604
  setup(e) {
599
- const a = e, { t: n } = B(), o = tt(), r = de(), c = H("(max-width: 47.999rem)"), s = H("(display-mode: standalone)"), i = H("(prefers-reduced-motion: reduce)"), l = C(() => a.enabled && c.value), p = ae("stage"), g = ae("scroller"), v = N(null), x = re(), _ = N(!1), w = N(!1), E = N(!1);
600
- let m = 0, M = !1, u, T = null;
601
- const L = () => v.value?.offsetWidth ?? 0, k = Jt({
602
- enabled: () => l.value,
603
- width: L,
604
- isOpen: () => E.value,
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);
606
+ let v = 0, z = !1, f, I = null;
607
+ const E = () => h.value?.offsetWidth ?? 0, x = xn({
608
+ enabled: () => d.value,
609
+ width: E,
610
+ isOpen: () => C.value,
605
611
  canOpenFromEdge: () => s.value || navigator.standalone === !0,
606
612
  onStart: () => {
607
- clearTimeout(u), me();
613
+ clearTimeout(f), ee();
608
614
  },
609
- onSettle: (y) => y ? _.value = !0 : V()
610
- }), O = C(() => k.dragging.value ? k.offset.value : E.value ? L() : 0), Z = C(() => L() ? O.value / L() : 0), U = lt(v, {
615
+ onSettle: (S) => S ? _.value = !0 : F()
616
+ }), B = L(() => x.dragging.value ? x.offset.value : C.value ? E() : 0), Z = L(() => E() ? B.value / E() : 0), Y = Fe(h, {
611
617
  initialFocus: "panel",
612
- onEscape: () => V()
618
+ onEscape: () => F()
613
619
  });
614
- function Re() {
615
- const y = getComputedStyle(document.documentElement).getPropertyValue("--app-motion-drawer").trim();
616
- return y.endsWith("ms") ? parseFloat(y) : parseFloat(y) * 1e3 || 0;
620
+ function ye() {
621
+ const S = getComputedStyle(document.documentElement).getPropertyValue("--app-motion-drawer").trim();
622
+ return S.endsWith("ms") ? parseFloat(S) : parseFloat(S) * 1e3 || 0;
617
623
  }
618
- function me() {
619
- const y = p.value, j = g.value;
620
- w.value || !y || !j || (m = window.scrollY, M = !1, Object.assign(y.style, { position: "fixed", inset: "0", overflow: "hidden", zIndex: "10" }), Object.assign(j.style, { position: "absolute", inset: "0", overflow: "hidden" }), j.scrollTop = m, w.value = !0);
624
+ function ee() {
625
+ const S = b.value, V = g.value;
626
+ y.value || !S || !V || (v = window.scrollY, z = !1, Object.assign(S.style, { position: "fixed", inset: "0", overflow: "hidden", zIndex: "10" }), Object.assign(V.style, { position: "absolute", inset: "0", overflow: "hidden" }), V.scrollTop = v, y.value = !0);
621
627
  }
622
- function le() {
623
- const y = p.value, j = g.value;
624
- !w.value || !y || !j || (Object.assign(y.style, { position: "", inset: "", overflow: "", zIndex: "", transform: "", transition: "", borderRadius: "" }), Object.assign(j.style, { position: "", inset: "", overflow: "" }), w.value = !1, window.scrollTo({ top: M ? 0 : m, behavior: "instant" }));
628
+ function W() {
629
+ const S = b.value, V = g.value;
630
+ !y.value || !S || !V || (Object.assign(S.style, { position: "", inset: "", overflow: "", zIndex: "", transform: "", transition: "", borderRadius: "" }), Object.assign(V.style, { position: "", inset: "", overflow: "" }), y.value = !1, window.scrollTo({ top: z ? 0 : v, behavior: "instant" }));
625
631
  }
626
- q([O, () => k.dragging.value, w], () => {
627
- const y = p.value;
628
- !y || !w.value || (y.style.transform = `translate3d(${O.value}px, 0, 0)`, y.style.borderRadius = O.value > 0 ? "2.5rem" : "", y.style.transition = k.dragging.value || i.value ? "none" : "transform var(--app-motion-drawer) var(--app-motion-sheet-easing), border-radius var(--app-motion-drawer) var(--app-motion-sheet-easing)");
632
+ Q([B, () => x.dragging.value, y], () => {
633
+ 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)");
629
635
  }, { flush: "sync" });
630
- function Oe() {
631
- if (!l.value) {
636
+ function H() {
637
+ if (!d.value) {
632
638
  _.value = !1;
633
639
  return;
634
640
  }
635
- clearTimeout(u), T = null, me(), p.value?.offsetWidth, E.value = !0, U.present(), ie(() => {
636
- v.value?.querySelector('[aria-current="page"]')?.focus({ preventScroll: !0 });
641
+ clearTimeout(f), I = null, ee(), b.value?.offsetWidth, C.value = !0, Y.present(), be(() => {
642
+ h.value?.querySelector('[aria-current="page"]')?.focus({ preventScroll: !0 });
637
643
  });
638
644
  }
639
- function V(y) {
640
- if (y && (T = y), _.value) {
645
+ function F(S) {
646
+ if (S && (I = S), _.value) {
641
647
  _.value = !1;
642
648
  return;
643
649
  }
644
- E.value = !1, U.dismissWithoutAsking(), clearTimeout(u), u = setTimeout(Pe, Re() + 30);
650
+ C.value = !1, Y.dismissWithoutAsking(), clearTimeout(f), f = setTimeout(xe, ye() + 30);
645
651
  }
646
- function Pe() {
647
- le();
648
- const y = T;
649
- T = null, y?.();
652
+ function xe() {
653
+ W();
654
+ const S = I;
655
+ I = null, S?.();
650
656
  }
651
- q(_, (y) => y ? Oe() : V()), q(l, (y) => {
652
- y || (k.cancel(), clearTimeout(u), T = null, _.value = !1, E.value = !1, U.dismissWithoutAsking(), le());
653
- }), q(() => o.fullPath, () => {
654
- w.value && (M = !0), E.value && V();
657
+ Q(_, (S) => S ? H() : F()), Q(d, (S) => {
658
+ S || (x.cancel(), clearTimeout(f), I = null, _.value = !1, C.value = !1, Y.dismissWithoutAsking(), W());
659
+ }), Q(() => o.fullPath, () => {
660
+ y.value && (z = !0), C.value && F();
655
661
  });
656
- function Ne(y) {
657
- r.push(y).catch(() => {
658
- }).finally(() => V());
662
+ function me(S) {
663
+ i.push(S).catch(() => {
664
+ }).finally(() => F());
659
665
  }
660
- return Q(ze, {
661
- available: l,
666
+ return ce(Ge, {
667
+ available: d,
662
668
  open: _,
663
- panelId: x,
669
+ panelId: $,
664
670
  present: () => {
665
- l.value && (_.value = !0);
671
+ d.value && (_.value = !0);
666
672
  },
667
- dismiss: V
668
- }), ye(() => {
669
- clearTimeout(u), le();
670
- }), (y, j) => (d(), b(F, null, [
671
- l.value ? (d(), b("div", G({
673
+ dismiss: F
674
+ }), Re(() => {
675
+ clearTimeout(f), W();
676
+ }), (S, V) => (l(), m(U, null, [
677
+ d.value ? (l(), m("div", le({
672
678
  key: 0,
673
- id: t(x),
679
+ id: t($),
674
680
  ref_key: "panel",
675
- ref: v,
681
+ ref: h,
676
682
  role: "dialog",
677
683
  "aria-modal": "true",
678
684
  "aria-label": t(n)("core.shell.menu"),
679
685
  tabindex: "-1",
680
686
  "data-shell-drawer": "",
681
- class: ["fixed inset-y-0 left-0 z-0 w-[min(82vw,20rem)] outline-none", w.value ? "visible" : "invisible"],
682
- style: t(i) ? { opacity: E.value || t(k).dragging.value ? 1 : 0, transition: "opacity var(--app-motion-drawer) linear" } : void 0
683
- }, t(k).closeEvents), [
684
- I(y.$slots, "drawer", {
685
- select: Ne,
686
- dismiss: V
687
+ 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
689
+ }, t(x).closeEvents), [
690
+ j(S.$slots, "drawer", {
691
+ select: me,
692
+ dismiss: F
687
693
  })
688
- ], 16, Zt)) : S("", !0),
689
- f("div", {
694
+ ], 16, kn)) : k("", !0),
695
+ r("div", {
690
696
  ref_key: "stage",
691
- ref: p,
697
+ ref: b,
692
698
  "data-shell-stage": "",
693
- "data-drawer": E.value ? "open" : void 0,
694
- class: $(["flex flex-1 flex-col", w.value ? "overscroll-none bg-surface-page shadow-dialog" : ""]),
695
- inert: E.value || t(k).dragging.value || void 0
699
+ "data-drawer": C.value ? "open" : void 0,
700
+ class: T(["flex flex-1 flex-col", y.value ? "overscroll-none bg-surface-page shadow-dialog" : ""]),
701
+ inert: C.value || t(x).dragging.value || void 0
696
702
  }, [
697
- f("div", {
703
+ r("div", {
698
704
  ref_key: "scroller",
699
705
  ref: g,
700
706
  class: "flex flex-1 flex-col"
701
707
  }, [
702
- I(y.$slots, "default")
708
+ j(S.$slots, "default")
703
709
  ], 512),
704
- w.value ? (d(), b("div", {
710
+ y.value ? (l(), m("div", {
705
711
  key: 0,
706
712
  "aria-hidden": "true",
707
713
  class: "pointer-events-none fixed inset-0 z-50 bg-scrim",
708
- style: oe({ opacity: Z.value * 0.55 })
709
- }, null, 4)) : S("", !0)
710
- ], 10, en),
711
- w.value && O.value > 0 ? (d(), b("div", G({
714
+ style: ve({ opacity: Z.value * 0.55 })
715
+ }, null, 4)) : k("", !0)
716
+ ], 10, _n),
717
+ y.value && B.value > 0 ? (l(), m("div", le({
712
718
  key: 1,
713
719
  "aria-hidden": "true",
714
720
  "data-shell-stage-cover": "",
715
721
  class: "fixed inset-y-0 right-0 z-20",
716
- style: { left: `${O.value}px` }
717
- }, t(k).closeEvents, {
718
- onClick: j[0] || (j[0] = (zn) => V())
719
- }), null, 16)) : S("", !0)
722
+ style: { left: `${B.value}px` }
723
+ }, t(x).closeEvents, {
724
+ onClick: V[0] || (V[0] = (Me) => F())
725
+ }), null, 16)) : k("", !0)
720
726
  ], 64));
721
727
  }
722
- }), nn = ["aria-label", "aria-expanded", "aria-controls"], an = /* @__PURE__ */ z({
728
+ }), $n = ["aria-label", "aria-expanded", "aria-controls"], Sn = /* @__PURE__ */ R({
723
729
  __name: "NavigationMenuButton",
724
730
  setup(e) {
725
- const a = De(), { t: n } = B();
726
- return (o, r) => t(a)?.available.value ? (d(), b("button", {
731
+ const a = Je(), { t: n } = K();
732
+ return (o, i) => t(a)?.available.value ? (l(), m("button", {
727
733
  key: 0,
728
734
  type: "button",
729
735
  "data-shell-menu-button": "",
@@ -732,164 +738,164 @@ const Zt = ["id", "aria-label"], en = ["data-drawer", "inert"], tn = /* @__PURE_
732
738
  "aria-controls": t(a).panelId,
733
739
  "aria-haspopup": "dialog",
734
740
  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",
735
- onClick: r[0] || (r[0] = (c) => t(a).present())
741
+ onClick: i[0] || (i[0] = (u) => t(a).present())
736
742
  }, [
737
- h(t(P), {
743
+ p(t(q), {
738
744
  name: "menuLines",
739
745
  size: 20
740
746
  })
741
- ], 8, nn)) : S("", !0);
747
+ ], 8, $n)) : k("", !0);
742
748
  }
743
- }), on = { class: "grid min-h-bar-height grid-cols-[minmax(0,1fr)_auto_minmax(0,1fr)] items-center gap-1" }, sn = { class: "flex min-w-0 items-center justify-start" }, ln = ["data-page-action", "disabled"], rn = { class: "truncate" }, cn = { class: "ml-1 flex items-center gap-1" }, un = { class: "flex min-w-0 items-center justify-end" }, dn = ["data-page-action", "aria-label", "disabled", "onClick"], fn = ["data-page-action", "disabled", "aria-label", "aria-busy", "onClick"], mn = { class: "truncate" }, pn = ["aria-label", "onClick"], vn = /* @__PURE__ */ z({
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({
744
750
  __name: "ShellTopBar",
745
751
  props: {
746
752
  home: {}
747
753
  },
748
754
  setup(e) {
749
- const { t: a } = B(), n = de(), o = $e(), { session: r } = J(), c = H("(max-width: 47.999rem)");
750
- Q(ke, "bar");
751
- const s = C(() => ue(r.state.value) !== null), i = C(() => !s.value || c.value), l = C(() => s.value ? o.back.value : null), p = C(() => s.value ? o.leading.value : null), g = C(() => o.navTitle.value ?? o.title.value), v = C(() => s.value && !!g.value && (!!o.navTitle.value || !o.titleInView.value)), x = C(() => s.value ? o.actions.value : []), _ = C(() => x.value.filter((m) => m.placement === "primary" && m.tone !== "critical")), w = C(
752
- () => x.value.filter((m) => !_.value.includes(m)).map((m) => ({ id: m.id, label: m.label, icon: m.icon, tone: m.tone, disabled: m.disabled, processing: m.processing, onSelect: m.onClick }))
755
+ const { t: a } = K(), n = ge(), o = je(), { session: i } = de(), u = oe("(max-width: 47.999rem)");
756
+ 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(
758
+ () => $.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 }))
753
759
  );
754
- function E() {
755
- l.value && n.push(l.value.to);
760
+ function C() {
761
+ d.value && n.push(d.value.to);
756
762
  }
757
- return (m, M) => i.value ? (d(), b("header", {
763
+ return (v, z) => c.value ? (l(), m("header", {
758
764
  key: 0,
759
765
  "data-shell-top-bar": "",
760
- class: $(["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", v.value ? "border-border-separator" : "border-transparent"] : "border-b border-border-separator bg-surface-cell"])
766
+ 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"])
761
767
  }, [
762
- f("div", on, [
763
- f("div", sn, [
764
- p.value ? (d(), b("button", {
768
+ r("div", Ln, [
769
+ r("div", Cn, [
770
+ b.value ? (l(), m("button", {
765
771
  key: 0,
766
772
  type: "button",
767
773
  "data-shell-bar-leading": "",
768
- "data-page-action": p.value.id,
769
- disabled: p.value.disabled || p.value.processing,
774
+ "data-page-action": b.value.id,
775
+ disabled: b.value.disabled || b.value.processing,
770
776
  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",
771
- onClick: M[0] || (M[0] = (u) => p.value.onClick())
777
+ onClick: z[0] || (z[0] = (f) => b.value.onClick())
772
778
  }, [
773
- f("span", rn, D(p.value.label), 1)
774
- ], 8, ln)) : l.value ? (d(), b("button", {
779
+ r("span", Tn, M(b.value.label), 1)
780
+ ], 8, En)) : d.value ? (l(), m("button", {
775
781
  key: 1,
776
782
  type: "button",
777
783
  "data-shell-bar-back": "",
778
784
  "data-page-back": "",
779
785
  class: "hit-target inline-flex min-w-0 cursor-pointer items-center rounded-control pr-2 text-body text-content-link active:opacity-60",
780
- onClick: E
786
+ onClick: C
781
787
  }, [
782
- h(t(P), {
788
+ p(t(q), {
783
789
  name: "arrowLeftSLine",
784
790
  size: 28,
785
791
  class: "-mr-0.5 shrink-0"
786
792
  }),
787
- f("span", {
788
- class: $(["truncate", v.value ? "sr-only" : ""])
789
- }, D(l.value.label), 3)
790
- ])) : s.value ? (d(), b(F, { key: 2 }, [
791
- h(an),
792
- f("span", cn, [
793
- h(t(X), { name: "headerActions" })
793
+ r("span", {
794
+ class: T(["truncate", h.value ? "sr-only" : ""])
795
+ }, M(d.value.label), 3)
796
+ ])) : s.value ? (l(), m(U, { key: 2 }, [
797
+ p(Sn),
798
+ r("span", Mn, [
799
+ p(t(J), { name: "headerActions" })
794
800
  ])
795
- ], 64)) : (d(), R(fe, {
801
+ ], 64)) : (l(), P(Te, {
796
802
  key: 3,
797
803
  to: e.home,
798
804
  tone: "brand",
799
- class: $(["px-2 transition-opacity", v.value ? "opacity-0" : "opacity-100"])
800
- }, K({ _: 2 }, [
801
- m.$slots.brand ? {
805
+ class: T(["px-2 transition-opacity", h.value ? "opacity-0" : "opacity-100"])
806
+ }, G({ _: 2 }, [
807
+ v.$slots.brand ? {
802
808
  name: "default",
803
- fn: A((u) => [
804
- I(m.$slots, "brand", W(Y(u)))
809
+ fn: D((f) => [
810
+ j(v.$slots, "brand", ne(ae(f)))
805
811
  ]),
806
812
  key: "0"
807
813
  } : void 0
808
814
  ]), 1032, ["to", "class"]))
809
815
  ]),
810
- f("span", {
816
+ r("span", {
811
817
  "aria-hidden": "true",
812
818
  "data-shell-bar-title": "",
813
- class: $(["pointer-events-none truncate text-center text-headline font-semibold transition-opacity duration-motion-normal", v.value ? "max-w-[42vw] opacity-100" : "max-w-0 opacity-0"])
814
- }, D(g.value), 3),
815
- f("div", un, [
816
- s.value ? (d(), b(F, { key: 0 }, [
817
- (d(!0), b(F, null, ne(_.value, (u) => (d(), b(F, {
818
- key: u.id
819
+ 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
+ }, 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, {
824
+ key: f.id
819
825
  }, [
820
- u.compact === "icon" && u.icon ? (d(), b("button", {
826
+ f.compact === "icon" && f.icon ? (l(), m("button", {
821
827
  key: 0,
822
828
  type: "button",
823
- "data-page-action": u.id,
824
- "aria-label": u.label,
825
- disabled: u.disabled || u.processing,
829
+ "data-page-action": f.id,
830
+ "aria-label": f.label,
831
+ disabled: f.disabled || f.processing,
826
832
  class: "hit-target mx-1 flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-full bg-tint-soft text-content-link disabled:opacity-45",
827
- onClick: (T) => u.onClick()
833
+ onClick: (I) => f.onClick()
828
834
  }, [
829
- h(t(P), {
830
- name: u.processing ? "loader4Line" : u.icon,
835
+ p(t(q), {
836
+ name: f.processing ? "loader4Line" : f.icon,
831
837
  size: 18,
832
- class: $(u.processing ? "animate-spin" : "")
838
+ class: T(f.processing ? "animate-spin" : "")
833
839
  }, null, 8, ["name", "class"])
834
- ], 8, dn)) : (d(), b("button", {
840
+ ], 8, Dn)) : (l(), m("button", {
835
841
  key: 1,
836
842
  type: "button",
837
- "data-page-action": u.id,
838
- disabled: u.disabled || u.processing,
839
- "aria-label": u.shortLabel ? u.label : void 0,
840
- "aria-busy": u.processing || void 0,
843
+ "data-page-action": f.id,
844
+ disabled: f.disabled || f.processing,
845
+ "aria-label": f.shortLabel ? f.label : void 0,
846
+ "aria-busy": f.processing || void 0,
841
847
  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",
842
- onClick: (T) => u.onClick()
848
+ onClick: (I) => f.onClick()
843
849
  }, [
844
- u.processing ? (d(), R(t(P), {
850
+ f.processing ? (l(), P(t(q), {
845
851
  key: 0,
846
852
  name: "loader4Line",
847
853
  size: 16,
848
854
  class: "animate-spin"
849
- })) : S("", !0),
850
- f("span", mn, D(u.shortLabel ?? u.label), 1)
851
- ], 8, fn))
855
+ })) : k("", !0),
856
+ r("span", In, M(f.shortLabel ?? f.label), 1)
857
+ ], 8, zn))
852
858
  ], 64))), 128)),
853
- w.value.length ? (d(), R(t(rt), {
859
+ y.value.length ? (l(), P(t(kt), {
854
860
  key: 0,
855
- items: w.value,
861
+ items: y.value,
856
862
  label: t(a)("core.page.more_actions")
857
863
  }, {
858
- trigger: A(({ toggle: u, attrs: T }) => [
859
- f("button", G({ type: "button" }, T, {
864
+ trigger: D(({ toggle: f, attrs: I }) => [
865
+ r("button", le({ type: "button" }, I, {
860
866
  "aria-label": t(a)("core.page.more_actions"),
861
867
  "data-shell-bar-more": "",
862
868
  "data-page-overflow": "",
863
869
  class: "hit-target flex size-9 cursor-pointer items-center justify-center rounded-full text-content-link",
864
- onClick: u
870
+ onClick: f
865
871
  }), [
866
- h(t(P), {
872
+ p(t(q), {
867
873
  name: "moreLine",
868
874
  size: 22
869
875
  })
870
- ], 16, pn)
876
+ ], 16, Rn)
871
877
  ]),
872
878
  _: 1
873
- }, 8, ["items", "label"])) : S("", !0)
874
- ], 64)) : S("", !0),
875
- I(m.$slots, "end")
879
+ }, 8, ["items", "label"])) : k("", !0)
880
+ ], 64)) : k("", !0),
881
+ j(v.$slots, "end")
876
882
  ])
877
883
  ])
878
- ], 2)) : S("", !0);
884
+ ], 2)) : k("", !0);
879
885
  }
880
886
  });
881
- function hn(e) {
887
+ function Nn(e) {
882
888
  const { name: a, email: n } = e;
883
889
  return { name: typeof a == "string" && a !== "" ? a : String(e.id), detail: typeof n == "string" ? n : null };
884
890
  }
885
- function bn(e) {
886
- const { session: a } = J(), n = e ?? hn;
887
- return C(() => {
888
- const o = ue(a.state.value);
891
+ function Pn(e) {
892
+ const { session: a } = de(), n = e ?? Nn;
893
+ return L(() => {
894
+ const o = Ce(a.state.value);
889
895
  return o ? n(o.user) : null;
890
896
  });
891
897
  }
892
- const gn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-content antialiased" }, yn = ["aria-label"], wn = { class: "flex flex-1" }, xn = { class: "flex min-w-0 flex-1 overflow-x-clip" }, _n = { "data-dialog-inert-skip": "" }, kn = /* @__PURE__ */ z({
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({
893
899
  __name: "BackofficeShell",
894
900
  props: {
895
901
  home: { default: void 0 },
@@ -898,95 +904,95 @@ const gn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
898
904
  pullToRefresh: { type: Boolean, default: !0 }
899
905
  },
900
906
  setup(e) {
901
- const a = e, { t: n } = B(), { session: o } = J(), r = $e(), c = bn(a.identity);
902
- Q(Se, N(0));
903
- const s = C(() => ue(o.state.value) !== null), i = ae("accountSheet");
904
- return (l, p) => (d(), b("div", gn, [
905
- e.progress?.visible.value ? (d(), b("div", {
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", {
906
912
  key: 0,
907
913
  role: "progressbar",
908
914
  "aria-label": t(n)("core.state.loading"),
909
915
  "data-shell-progress": "",
910
916
  class: "fixed inset-x-0 top-0 z-10000 flex h-1 justify-center bg-primary-800"
911
- }, [...p[0] || (p[0] = [
912
- f("div", { class: "animate-grow-and-shrink-width bg-primary-600 motion-reduce:w-full motion-reduce:animate-none motion-reduce:opacity-60" }, null, -1)
913
- ])], 8, yn)) : S("", !0),
914
- h(t(X), { name: "banner" }),
915
- h(tn, { enabled: s.value }, K({
916
- default: A(() => [
917
- e.pullToRefresh && s.value ? (d(), R(jt, { key: 0 })) : S("", !0),
918
- h(vn, { home: e.home }, K({ _: 2 }, [
919
- l.$slots.brand ? {
917
+ }, [...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
+ p(t(J), { name: "banner" }),
921
+ p(wn, { enabled: s.value }, G({
922
+ default: D(() => [
923
+ e.pullToRefresh && s.value ? (l(), P(rn, { key: 0 })) : k("", !0),
924
+ p(On, { home: e.home }, G({ _: 2 }, [
925
+ d.$slots.brand ? {
920
926
  name: "brand",
921
- fn: A((g) => [
922
- I(l.$slots, "brand", W(Y(g)))
927
+ fn: D((g) => [
928
+ j(d.$slots, "brand", ne(ae(g)))
923
929
  ]),
924
930
  key: "0"
925
931
  } : void 0,
926
- l.$slots["top-bar-end"] ? {
932
+ d.$slots["top-bar-end"] ? {
927
933
  name: "end",
928
- fn: A(() => [
929
- I(l.$slots, "top-bar-end")
934
+ fn: D(() => [
935
+ j(d.$slots, "top-bar-end")
930
936
  ]),
931
937
  key: "1"
932
938
  } : void 0
933
939
  ]), 1032, ["home"]),
934
- f("div", wn, [
935
- t(c) ? (d(), R(Yt, {
940
+ r("div", jn, [
941
+ t(u) ? (l(), P(vn, {
936
942
  key: 0,
937
- identity: t(c),
943
+ identity: t(u),
938
944
  home: e.home
939
- }, K({ _: 2 }, [
940
- l.$slots.brand ? {
945
+ }, G({ _: 2 }, [
946
+ d.$slots.brand ? {
941
947
  name: "brand",
942
- fn: A((g) => [
943
- I(l.$slots, "brand", W(Y(g)))
948
+ fn: D((g) => [
949
+ j(d.$slots, "brand", ne(ae(g)))
944
950
  ]),
945
951
  key: "0"
946
952
  } : void 0,
947
- l.$slots.footer ? {
953
+ d.$slots.footer ? {
948
954
  name: "footer",
949
- fn: A(() => [
950
- I(l.$slots, "footer")
955
+ fn: D(() => [
956
+ j(d.$slots, "footer")
951
957
  ]),
952
958
  key: "1"
953
959
  } : void 0
954
- ]), 1032, ["identity", "home"])) : S("", !0),
955
- f("div", xn, [
956
- f("main", {
957
- class: $(["flex min-w-0 flex-1 flex-col", t(r).hasShell.value ? "" : "p-4 md:px-8 md:py-6"]),
958
- style: oe(t(r).hasShell.value ? void 0 : { paddingBottom: "calc(var(--bottom-dock-h, 0px) + 1rem)" })
960
+ ]), 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)" })
959
965
  }, [
960
- h(t(et))
966
+ p(t(vt))
961
967
  ], 6)
962
968
  ])
963
969
  ]),
964
- h(t(Ze), {
965
- class: $(s.value ? "md:left-64" : "")
970
+ p(t(pt), {
971
+ class: T(s.value ? "md:left-64" : "")
966
972
  }, null, 8, ["class"])
967
973
  ]),
968
974
  _: 2
969
975
  }, [
970
- t(c) ? {
976
+ t(u) ? {
971
977
  name: "drawer",
972
- fn: A(({ select: g, dismiss: v }) => [
973
- h(Dt, {
974
- identity: t(c),
978
+ fn: D(({ select: g, dismiss: h }) => [
979
+ p(tn, {
980
+ identity: t(u),
975
981
  home: e.home,
976
982
  onSelect: g,
977
- onAccount: (x) => v(() => i.value?.present())
978
- }, K({ _: 2 }, [
979
- l.$slots.brand ? {
983
+ onAccount: ($) => h(() => c.value?.present())
984
+ }, G({ _: 2 }, [
985
+ d.$slots.brand ? {
980
986
  name: "brand",
981
- fn: A((x) => [
982
- I(l.$slots, "brand", W(Y(x)))
987
+ fn: D(($) => [
988
+ j(d.$slots, "brand", ne(ae($)))
983
989
  ]),
984
990
  key: "0"
985
991
  } : void 0,
986
- l.$slots.footer ? {
992
+ d.$slots.footer ? {
987
993
  name: "footer",
988
- fn: A(() => [
989
- I(l.$slots, "footer")
994
+ fn: D(() => [
995
+ j(d.$slots, "footer")
990
996
  ]),
991
997
  key: "1"
992
998
  } : void 0
@@ -995,24 +1001,24 @@ const gn = { class: "flex min-h-screen flex-col bg-surface-page text-base text-c
995
1001
  key: "0"
996
1002
  } : void 0
997
1003
  ]), 1032, ["enabled"]),
998
- t(c) ? (d(), R(gt, {
1004
+ t(u) ? (l(), P(qt, {
999
1005
  key: 1,
1000
1006
  ref_key: "accountSheet",
1001
- ref: i,
1002
- identity: t(c)
1003
- }, null, 8, ["identity"])) : S("", !0),
1004
- (d(), R(Fe, { to: "body" }, [
1005
- f("div", _n, [
1006
- h(t(Je))
1007
+ ref: c,
1008
+ identity: t(u)
1009
+ }, null, 8, ["identity"])) : k("", !0),
1010
+ (l(), P(Oe, { to: "body" }, [
1011
+ r("div", Vn, [
1012
+ p(t(mt))
1007
1013
  ])
1008
1014
  ])),
1009
- h(Qe),
1010
- h(t(X), { name: "host" })
1015
+ p(ft),
1016
+ p(t(J), { name: "host" })
1011
1017
  ]));
1012
1018
  }
1013
1019
  });
1014
- function $n(e = it) {
1015
- const a = Ke(!1);
1020
+ function Un(e = _t) {
1021
+ const a = Ne(!1);
1016
1022
  let n;
1017
1023
  return {
1018
1024
  visible: a,
@@ -1024,13 +1030,13 @@ function $n(e = it) {
1024
1030
  }
1025
1031
  };
1026
1032
  }
1027
- function ra(e = {}) {
1028
- const a = $n(), { brand: n, footer: o, topBarEnd: r } = e;
1029
- return { component: z({
1033
+ function so(e = {}) {
1034
+ const a = Un(), { brand: n, footer: o, topBarEnd: i } = e;
1035
+ return { component: R({
1030
1036
  name: "BackofficeShell",
1031
1037
  setup() {
1032
- return () => ee(
1033
- kn,
1038
+ return () => te(
1039
+ Fn,
1034
1040
  {
1035
1041
  home: e.home,
1036
1042
  // The application's session produces U; the shell reads it as the SessionUser it is guaranteed to be.
@@ -1039,36 +1045,36 @@ function ra(e = {}) {
1039
1045
  pullToRefresh: e.pullToRefresh
1040
1046
  },
1041
1047
  {
1042
- ...n && { brand: (s) => ee(n, s) },
1043
- ...o && { footer: () => ee(o) },
1044
- ...r && { "top-bar-end": () => ee(r) }
1048
+ ...n && { brand: (s) => te(n, s) },
1049
+ ...o && { footer: () => te(o) },
1050
+ ...i && { "top-bar-end": () => te(i) }
1045
1051
  }
1046
1052
  );
1047
1053
  }
1048
1054
  }), slots: ["headerActions", "search", "accountMenu", "banner", "host"], progress: a };
1049
1055
  }
1050
- const Sn = 30 * 6e4, Ln = 6e4;
1051
- function Cn(e, a) {
1056
+ const Wn = 30 * 6e4, Xn = 6e4;
1057
+ function Yn(e, a) {
1052
1058
  const n = new DOMParser().parseFromString(e, "text/html").querySelectorAll('script[type="module"][src]');
1053
1059
  return Array.from(n, (o) => new URL(o.getAttribute("src") ?? "", a).pathname).sort();
1054
1060
  }
1055
- function En() {
1061
+ function Hn() {
1056
1062
  return Array.from(document.querySelectorAll('script[type="module"][src]'), (e) => new URL(e.src, location.href).pathname).sort();
1057
1063
  }
1058
- function Tn(e) {
1059
- return z({
1064
+ function Qn(e) {
1065
+ return R({
1060
1066
  name: "AppUpdateNotice",
1061
1067
  setup() {
1062
1068
  if (e.enabled === !1) return () => null;
1063
- const { t: a } = B(), n = e.url ?? "/", o = En();
1064
- let r = !1, c = 0;
1069
+ const { t: a } = K(), n = e.url ?? "/", o = Hn();
1070
+ let i = !1, u = 0;
1065
1071
  async function s() {
1066
- if (!(r || o.length === 0 || !navigator.onLine || document.visibilityState !== "visible") && !(Date.now() - c < Ln)) {
1067
- c = Date.now();
1072
+ if (!(i || o.length === 0 || !navigator.onLine || document.visibilityState !== "visible") && !(Date.now() - u < Xn)) {
1073
+ u = Date.now();
1068
1074
  try {
1069
- const p = await fetch(n, { cache: "no-store", credentials: "include" }), g = p.ok ? Cn(await p.text(), location.href) : [];
1075
+ const b = await fetch(n, { cache: "no-store", credentials: "include" }), g = b.ok ? Yn(await b.text(), location.href) : [];
1070
1076
  if (g.length === 0 || g.join() === o.join()) return;
1071
- r = !0, _e.info(a("core.shell.update.available"), {
1077
+ i = !0, Be.info(a("core.shell.update.available"), {
1072
1078
  duration: 1 / 0,
1073
1079
  action: { label: a("core.shell.update.reload"), onClick: () => location.reload() }
1074
1080
  });
@@ -1076,88 +1082,457 @@ function Tn(e) {
1076
1082
  }
1077
1083
  }
1078
1084
  }
1079
- const i = () => void s();
1080
- document.addEventListener("visibilitychange", i);
1081
- const l = setInterval(s, e.checkEveryMs ?? Sn);
1082
- return ce(() => {
1083
- document.removeEventListener("visibilitychange", i), clearInterval(l);
1085
+ const c = () => void s();
1086
+ document.addEventListener("visibilitychange", c);
1087
+ const d = setInterval(s, e.checkEveryMs ?? Wn);
1088
+ return ue(() => {
1089
+ document.removeEventListener("visibilitychange", c), clearInterval(d);
1084
1090
  }), () => null;
1085
1091
  }
1086
1092
  });
1087
1093
  }
1088
- function ia(e = {}) {
1089
- return Ce({
1094
+ function lo(e = {}) {
1095
+ return fe({
1090
1096
  id: "vue-core.app-updates",
1091
- contributions: [{ id: "vue-core.app-updates", slot: "host", component: Tn(e), scope: "always" }]
1097
+ contributions: [{ id: "vue-core.app-updates", slot: "host", component: Qn(e), scope: "always" }]
1092
1098
  });
1093
1099
  }
1094
- const An = 1e3, te = (e) => e.path.split("/").filter(Boolean).length;
1095
- function Mn(e) {
1100
+ const Gn = 1e3, pe = (e) => e.path.split("/").filter(Boolean).length;
1101
+ function Jn(e) {
1096
1102
  if (typeof document > "u" || typeof document.startViewTransition != "function") return () => {
1097
1103
  };
1098
1104
  let a = null;
1099
- const n = () => window.matchMedia("(max-width: 1023px)").matches && !window.matchMedia("(prefers-reduced-motion: reduce)").matches && !document.body.classList.contains(st), o = e.beforeResolve((i, l) => {
1100
- if (r(), !l.matched.length || i.path === l.path || !n()) return;
1101
- const p = te(i) > te(l) ? "forward" : te(i) < te(l) ? "back" : null;
1102
- if (!p) return;
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;
1108
+ if (!b) return;
1103
1109
  const g = document.documentElement;
1104
- return g.dataset.navDirection = p, new Promise((v) => {
1105
- const x = document.startViewTransition(
1110
+ return g.dataset.navDirection = b, new Promise((h) => {
1111
+ const $ = document.startViewTransition(
1106
1112
  () => new Promise((_) => {
1107
- const w = setTimeout(_, An);
1113
+ const y = setTimeout(_, Gn);
1108
1114
  a = () => {
1109
- clearTimeout(w), _();
1110
- }, v();
1115
+ clearTimeout(y), _();
1116
+ }, h();
1111
1117
  })
1112
1118
  );
1113
- x.ready.catch(() => {
1114
- }), x.finished.catch(() => {
1119
+ $.ready.catch(() => {
1120
+ }), $.finished.catch(() => {
1115
1121
  }).finally(() => {
1116
- g.dataset.navDirection === p && delete g.dataset.navDirection;
1122
+ g.dataset.navDirection === b && delete g.dataset.navDirection;
1117
1123
  });
1118
1124
  });
1119
1125
  });
1120
- function r() {
1121
- const i = a;
1122
- a = null, i && ie().then(i);
1126
+ function i() {
1127
+ const c = a;
1128
+ a = null, c && be().then(c);
1123
1129
  }
1124
- const c = e.afterEach(r), s = e.onError(r);
1130
+ const u = e.afterEach(i), s = e.onError(i);
1125
1131
  return () => {
1126
- o(), c(), s(), delete document.documentElement.dataset.navDirection, a?.(), a = null;
1132
+ o(), u(), s(), delete document.documentElement.dataset.navDirection, a?.(), a = null;
1127
1133
  };
1128
1134
  }
1129
- const In = z({
1135
+ const Zn = R({
1130
1136
  name: "ViewTransitions",
1131
1137
  setup() {
1132
- return ce(Mn(de())), () => null;
1138
+ return ue(Jn(ge())), () => null;
1133
1139
  }
1134
1140
  });
1135
- function ca() {
1136
- return Ce({
1141
+ function ro() {
1142
+ return fe({
1137
1143
  id: "vue-core.view-transitions",
1138
- contributions: [{ id: "vue-core.view-transitions", slot: "host", component: In, scope: "always" }]
1144
+ contributions: [{ id: "vue-core.view-transitions", slot: "host", component: Zn, scope: "always" }]
1145
+ });
1146
+ }
1147
+ const ea = Symbol("vue-core:quick-search");
1148
+ function Ze() {
1149
+ const e = St(ea, () => Ne(!1));
1150
+ return { isOpen: e, open: () => e.value = !0, close: () => e.value = !1 };
1151
+ }
1152
+ const ta = { class: "flex-1 truncate" }, na = /* @__PURE__ */ R({
1153
+ __name: "QuickSearchButton",
1154
+ 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
+ type: "button",
1158
+ "data-test": "quick-search-button",
1159
+ 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())
1161
+ }, [
1162
+ p(t(q), {
1163
+ name: "search",
1164
+ size: 16,
1165
+ class: "shrink-0"
1166
+ }),
1167
+ r("span", ta, M(t(a)("core.shell.search.open")) + "…", 1),
1168
+ r("kbd", {
1169
+ 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)
1171
+ ], 2));
1172
+ }
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 = {
1174
+ key: 0,
1175
+ class: "px-3 py-3"
1176
+ }, la = {
1177
+ key: 1,
1178
+ class: "flex flex-col items-center gap-1 px-6 py-10 text-center",
1179
+ "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 = {
1181
+ key: 2,
1182
+ class: "px-3 py-3 text-subheadline text-content-destructive",
1183
+ role: "alert"
1184
+ }, pa = {
1185
+ key: 3,
1186
+ class: "px-3 py-2 text-footnote text-content-muted",
1187
+ "data-test": "quick-search-unavailable"
1188
+ }, va = {
1189
+ key: 4,
1190
+ 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({
1192
+ __name: "QuickSearchPalette",
1193
+ props: {
1194
+ search: {},
1195
+ suggest: { type: Function, default: void 0 },
1196
+ recent: { type: Function, default: void 0 },
1197
+ onChoose: { type: Function, default: void 0 },
1198
+ placeholder: { default: void 0 },
1199
+ hint: { default: void 0 },
1200
+ noneHint: { default: void 0 },
1201
+ minLength: { default: 2 },
1202
+ delayMs: { default: 180 }
1203
+ },
1204
+ 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
+ } });
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
+ let z = null, f;
1211
+ const I = $t(_), E = L(() => g.value.trim()), x = L(() => E.value.length >= a.minLength);
1212
+ function B() {
1213
+ clearTimeout(f), z?.abort(), z = null, _.value = !1;
1214
+ }
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(E, (w) => {
1218
+ if (B(), C.value = 0, w.length < a.minLength) {
1219
+ h.value = null, $.value = "", y.value = !1;
1220
+ return;
1221
+ }
1222
+ f = setTimeout(() => void Z(w), a.delayMs);
1223
+ });
1224
+ async function Z(w) {
1225
+ const A = new AbortController();
1226
+ z = A, _.value = !0, y.value = !1;
1227
+ try {
1228
+ const X = await a.search(w, A.signal);
1229
+ A.signal.aborted || (h.value = X, $.value = w);
1230
+ } catch {
1231
+ A.signal.aborted || (y.value = !0);
1232
+ } finally {
1233
+ z === A && (z = null, _.value = !1);
1234
+ }
1235
+ }
1236
+ const Y = L(() => x.value && h.value ? h.value.groups : []), ye = L(() => x.value ? a.suggest?.(E.value) ?? [] : []), ee = L(() => x.value ? [...Y.value, ...ye.value].filter((w) => w.rows.length > 0) : v.value.length ? [{ key: "recent", label: n("core.shell.search.recent"), rows: v.value }] : []), W = L(() => ee.value.flatMap((w) => w.rows)), H = L(() => new Map(W.value.map((w, A) => [w, A]))), F = L(() => x.value && $.value === E.value && !_.value && !y.value), xe = L(() => F.value && !Y.value.some((w) => w.rows.length > 0)), me = L(() => x.value ? h.value?.unavailable ?? [] : []);
1237
+ function S(w) {
1238
+ W.value.length && (C.value = (C.value + w + W.value.length) % W.value.length, be(() => s.value?.querySelector(`[data-index="${C.value}"]`)?.scrollIntoView({ block: "nearest" })));
1239
+ }
1240
+ function V(w, A = !1) {
1241
+ if (w) {
1242
+ if (a.onChoose?.(w), A) {
1243
+ window.open(o.resolve(w.to).href, "_blank", "noopener");
1244
+ return;
1245
+ }
1246
+ b(), o.push(w.to);
1247
+ }
1248
+ }
1249
+ function Me(w) {
1250
+ w.key === "ArrowDown" || w.key === "ArrowUp" ? (w.preventDefault(), S(w.key === "ArrowDown" ? 1 : -1)) : w.key === "Enter" && !w.isComposing && (w.preventDefault(), V(W.value[C.value], w.metaKey || w.ctrlKey));
1251
+ }
1252
+ const et = {
1253
+ neutral: "bg-surface-inverse text-content-inverse-accent",
1254
+ accent: "bg-control-on text-white",
1255
+ action: "bg-tint-soft text-content-link"
1256
+ }, tt = L(() => Ue({ key: "k", mod: !0 })[0]);
1257
+ return (w, A) => (l(), P(Oe, { to: "body" }, [
1258
+ p(we, {
1259
+ "enter-active-class": "transition-opacity duration-motion-normal ease-motion-standard",
1260
+ "enter-from-class": "opacity-0",
1261
+ "leave-active-class": "transition-opacity duration-motion-fast ease-motion-standard",
1262
+ "leave-to-class": "opacity-0"
1263
+ }, {
1264
+ default: D(() => [
1265
+ t(c) ? (l(), m("div", {
1266
+ key: 0,
1267
+ class: "fixed inset-0 z-9999 bg-scrim",
1268
+ "aria-hidden": "true",
1269
+ onClick: A[0] || (A[0] = (X) => t(b)())
1270
+ })) : k("", !0)
1271
+ ]),
1272
+ _: 1
1273
+ }),
1274
+ p(we, {
1275
+ "enter-active-class": "transition duration-motion-sheet ease-motion-sheet",
1276
+ "enter-from-class": "opacity-0 -translate-y-2 scale-98",
1277
+ "leave-active-class": "transition duration-motion-fast ease-motion-standard",
1278
+ "leave-to-class": "opacity-0 scale-98"
1279
+ }, {
1280
+ default: D(() => [
1281
+ t(c) ? (l(), m("div", {
1282
+ key: 0,
1283
+ ref_key: "panel",
1284
+ ref: u,
1285
+ role: "dialog",
1286
+ "aria-modal": "true",
1287
+ "aria-label": t(n)("core.shell.search.title"),
1288
+ tabindex: "-1",
1289
+ class: "fixed inset-x-0 top-0 z-9999 mx-auto flex h-dvh w-full flex-col overflow-hidden bg-surface-overlay text-content-strong shadow-dialog outline-none md:top-[12vh] md:h-auto md:max-h-[72vh] md:max-w-[40rem] md:rounded-dialog",
1290
+ "data-test": "quick-search",
1291
+ onKeydown: Me
1292
+ }, [
1293
+ r("div", oa, [
1294
+ p(t(q), {
1295
+ name: "search",
1296
+ size: 20,
1297
+ class: "shrink-0 text-content-muted"
1298
+ }),
1299
+ p(t(Lt), le({
1300
+ modelValue: g.value,
1301
+ "onUpdate:modelValue": A[1] || (A[1] = (X) => g.value = X),
1302
+ label: t(n)("core.shell.search.title"),
1303
+ placeholder: _e(a.placeholder) ?? t(n)("core.shell.search.placeholder")
1304
+ }, {
1305
+ role: "combobox",
1306
+ "aria-expanded": "true",
1307
+ "aria-controls": "quick-search-results",
1308
+ "aria-activedescendant": W.value.length ? `quick-search-row-${C.value}` : void 0,
1309
+ "data-test": "quick-search-input"
1310
+ }), null, 16, ["modelValue", "label", "placeholder"]),
1311
+ r("button", {
1312
+ type: "button",
1313
+ class: "hit-target shrink-0 cursor-pointer rounded-control px-1 text-body text-content-link md:hidden",
1314
+ onClick: A[2] || (A[2] = (X) => t(b)())
1315
+ }, 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))
1317
+ ]),
1318
+ r("div", {
1319
+ id: "quick-search-results",
1320
+ ref_key: "list",
1321
+ ref: s,
1322
+ role: "listbox",
1323
+ class: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 py-2 md:px-3",
1324
+ "data-test": "quick-search-results"
1325
+ }, [
1326
+ t(I).visible.value && !F.value ? (l(), m("div", sa, [
1327
+ p(t(Et), {
1328
+ text: t(n)("core.shell.search.searching")
1329
+ }, null, 8, ["text"])
1330
+ ])) : 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)
1334
+ ])) : k("", !0),
1335
+ (l(!0), m(U, null, se(ee.value, (X) => (l(), m(U, {
1336
+ key: X.key
1337
+ }, [
1338
+ r("p", {
1339
+ class: "px-3 pt-2.5 pb-1.5 text-footnote font-semibold text-content-muted uppercase",
1340
+ "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,
1345
+ 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)
1352
+ }, [
1353
+ r("span", {
1354
+ class: T(["flex size-8 shrink-0 items-center justify-center rounded-lg", et[O.tile ?? "neutral"]])
1355
+ }, [
1356
+ p(t(q), {
1357
+ name: O.icon,
1358
+ size: 16
1359
+ }, null, 8, ["name"])
1360
+ ], 2),
1361
+ r("span", da, [
1362
+ r("span", fa, [
1363
+ p(De, {
1364
+ text: O.title,
1365
+ search: x.value ? E.value : ""
1366
+ }, null, 8, ["text", "search"])
1367
+ ]),
1368
+ O.meta ? (l(), m("span", {
1369
+ key: 0,
1370
+ class: T(["truncate text-footnote text-content-muted", O.mono ? "font-mono tracking-tight" : ""])
1371
+ }, [
1372
+ p(De, {
1373
+ text: O.meta,
1374
+ search: x.value ? E.value : ""
1375
+ }, null, 8, ["text", "search"])
1376
+ ], 2)) : k("", !0)
1377
+ ]),
1378
+ O.badge ? (l(), P(t(Ct), {
1379
+ key: 0,
1380
+ tone: O.badge.tone,
1381
+ class: "hidden shrink-0 sm:inline-flex"
1382
+ }, {
1383
+ default: D(() => [
1384
+ ie(M(O.badge.label), 1)
1385
+ ]),
1386
+ _: 2
1387
+ }, 1032, ["tone"])) : k("", !0),
1388
+ H.value.get(O) === C.value ? (l(), P(t(q), {
1389
+ key: 1,
1390
+ name: "arrowRightSLine",
1391
+ size: 16,
1392
+ class: "hidden shrink-0 text-content-muted md:inline"
1393
+ })) : k("", !0)
1394
+ ], 42, ua))), 128))
1395
+ ], 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)
1399
+ ], 512),
1400
+ r("div", ha, [
1401
+ r("span", null, [
1402
+ A[4] || (A[4] = r("kbd", { class: "font-semibold" }, "↑ ↓", -1)),
1403
+ ie(" " + M(t(n)("core.shell.search.select")), 1)
1404
+ ]),
1405
+ r("span", null, [
1406
+ A[5] || (A[5] = r("kbd", { class: "font-semibold" }, "↵", -1)),
1407
+ ie(" " + M(t(n)("core.shell.search.open_row")), 1)
1408
+ ]),
1409
+ r("span", null, [
1410
+ r("kbd", ba, M(tt.value) + " ↵", 1),
1411
+ ie(" " + M(t(n)("core.shell.search.new_tab")), 1)
1412
+ ])
1413
+ ])
1414
+ ], 40, aa)) : k("", !0)
1415
+ ]),
1416
+ _: 1
1417
+ })
1418
+ ]));
1419
+ }
1420
+ });
1421
+ function ya(e) {
1422
+ return R({ name: "QuickSearch", setup: () => () => te(ga, e) });
1423
+ }
1424
+ function io(e) {
1425
+ return fe({
1426
+ id: "vue-core.quick-search",
1427
+ 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
+ ]
1431
+ });
1432
+ }
1433
+ const xa = /* @__PURE__ */ R({
1434
+ __name: "DarkModeRow",
1435
+ props: {
1436
+ dark: { type: Boolean }
1437
+ },
1438
+ emits: ["toggle"],
1439
+ 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"),
1443
+ icon: "moonLine",
1444
+ checked: n.dark,
1445
+ onClick: s[0] || (s[0] = (c) => o("toggle"))
1446
+ }, null, 8, ["label", "checked"]));
1447
+ }
1448
+ }), ka = { light: "#ffffff", dark: "#18181B" };
1449
+ function _a(e, a = ka) {
1450
+ document.documentElement.classList.toggle("dark", e), document.querySelector('meta[name="theme-color"]')?.setAttribute("content", e ? a.dark : a.light);
1451
+ }
1452
+ function co(e) {
1453
+ const a = R({
1454
+ name: "DarkModeSwitch",
1455
+ setup: () => () => te(xa, { dark: e.dark(), onToggle: () => void e.set(!e.dark()) })
1456
+ });
1457
+ return fe({
1458
+ id: "vue-core.dark-mode",
1459
+ contributions: [{ id: "vue-core.dark-mode.row", slot: "accountMenu", component: a, scope: "authenticated" }],
1460
+ // 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 }) }]
1462
+ });
1463
+ }
1464
+ const wa = {
1465
+ key: 0,
1466
+ role: "status",
1467
+ "data-test": "offline-notice",
1468
+ 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({
1470
+ __name: "OfflineNotice",
1471
+ setup(e) {
1472
+ const { t: a } = K(), n = N(navigator.onLine), o = () => n.value = navigator.onLine;
1473
+ return window.addEventListener("online", o), window.addEventListener("offline", o), ue(() => {
1474
+ window.removeEventListener("online", o), window.removeEventListener("offline", o);
1475
+ }), (i, u) => (l(), P(t(Tt), null, {
1476
+ default: D(() => [
1477
+ p(we, {
1478
+ "enter-active-class": "transition duration-motion-normal ease-motion-standard",
1479
+ "enter-from-class": "translate-y-2 opacity-0",
1480
+ "leave-active-class": "transition duration-motion-fast ease-motion-standard",
1481
+ "leave-to-class": "translate-y-2 opacity-0"
1482
+ }, {
1483
+ default: D(() => [
1484
+ n.value ? k("", !0) : (l(), m("div", wa, [
1485
+ r("div", $a, [
1486
+ p(t(q), {
1487
+ name: "errorWarningLine",
1488
+ size: 16
1489
+ }),
1490
+ ie(" " + M(t(a)("core.shell.offline")), 1)
1491
+ ])
1492
+ ]))
1493
+ ]),
1494
+ _: 1
1495
+ })
1496
+ ]),
1497
+ _: 1
1498
+ }));
1499
+ }
1500
+ });
1501
+ function uo() {
1502
+ return fe({
1503
+ id: "vue-core.offline-notice",
1504
+ contributions: [{ id: "vue-core.offline-notice", slot: "host", component: Sa, scope: "always" }]
1139
1505
  });
1140
1506
  }
1141
1507
  export {
1142
- bt as AccountMenu,
1143
- ve as AccountMenuItem,
1144
- gt as AccountSheet,
1145
- kn as BackofficeShell,
1146
- fa as HeaderAction,
1147
- Dt as NavigationDrawer,
1148
- Me as NavigationList,
1149
- an as NavigationMenuButton,
1150
- fe as ShellBrand,
1151
- Yt as ShellSidebar,
1152
- tn as ShellStage,
1153
- vn as ShellTopBar,
1154
- ia as appUpdates,
1155
- ra as backofficeShell,
1156
- $n as createNavigationProgress,
1157
- hn as defaultIdentity,
1158
- wt as groupNavigation,
1159
- Mn as installViewTransitions,
1160
- De as useNavigationDrawer,
1161
- bn as useShellIdentity,
1162
- ca as viewTransitions
1508
+ Pt as AccountMenu,
1509
+ $e as AccountMenuItem,
1510
+ qt as AccountSheet,
1511
+ Fn as BackofficeShell,
1512
+ xa as DarkModeRow,
1513
+ po as HeaderAction,
1514
+ tn as NavigationDrawer,
1515
+ He as NavigationList,
1516
+ Sn as NavigationMenuButton,
1517
+ Sa as OfflineNotice,
1518
+ na as QuickSearchButton,
1519
+ ga as QuickSearchPalette,
1520
+ 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,
1534
+ Je as useNavigationDrawer,
1535
+ Ze as useQuickSearch,
1536
+ Pn as useShellIdentity,
1537
+ ro as viewTransitions
1163
1538
  };