@wssto2/vue-core 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +3 -0
  2. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-DKX3PH2n.js → AccessGate.vue_vue_type_script_setup_true_lang-DcbZBINh.js} +1 -1
  3. package/dist/{AccountMenuItem.vue_vue_type_script_setup_true_lang-DIGqTLwd.js → AccountMenuItem.vue_vue_type_script_setup_true_lang-CPeNxh5K.js} +1 -1
  4. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-B7Lpfkf6.js → ActionRow.vue_vue_type_script_setup_true_lang-LlfIPWsJ.js} +2 -2
  5. package/dist/{Activity-DviO0VQ8.js → Activity-ylf1r2lv.js} +9 -9
  6. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CvAnzdc1.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js} +4 -4
  7. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-CJsMUIUg.js → AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js} +1 -1
  8. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-CCtthMRd.js → AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js} +4 -4
  9. package/dist/{Banner.vue_vue_type_script_setup_true_lang-Cib_YYpr.js → Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js} +1 -1
  10. package/dist/{Button.vue_vue_type_script_setup_true_lang-CYil8h9z.js → Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js} +1 -1
  11. package/dist/{Changes-DlT5mN9G.js → Changes-B1-2LPkp.js} +8 -8
  12. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-CXILftEc.js → CollectionPage.vue_vue_type_script_setup_true_lang-DU_jzTg7.js} +176 -172
  13. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-DSYgS9lC.js → DataTable.vue_vue_type_script_setup_true_lang-UH6f9puS.js} +1 -1
  14. package/dist/DateField.vue_vue_type_script_setup_true_lang-GVasv8ao.js +255 -0
  15. package/dist/DeadLetters-CcogaMTK.js +104 -0
  16. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-Cb3xJI1x.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-D1arePCZ.js} +1 -1
  17. package/dist/{EmptyState.vue_vue_type_script_setup_true_lang-C2ZYIT9F.js → EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js} +1 -1
  18. package/dist/{FormErrors.vue_vue_type_script_setup_true_lang-DVgNBQ8p.js → FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js} +1 -1
  19. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-0mfG8TkU.js → FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js} +10 -10
  20. package/dist/{FormView.vue_vue_type_script_setup_true_lang-Bz2m3AtF.js → FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js} +2 -2
  21. package/dist/{General-BD-Hcz0a.js → General-DSrflQib.js} +9 -9
  22. package/dist/HeaderAction.vue_vue_type_script_setup_true_lang-Cgji-Jrr.js +45 -0
  23. package/dist/{Icon.vue_vue_type_script_lang-VvcV2Bzo.js → Icon.vue_vue_type_script_lang-D7oC-d-S.js} +33 -29
  24. package/dist/{IconTile.vue_vue_type_script_setup_true_lang-D7QgnUyN.js → IconTile.vue_vue_type_script_setup_true_lang-BpIjgu5E.js} +1 -1
  25. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-C2udmeEA.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-Cv7KlA5y.js} +1 -1
  26. package/dist/{Menu.vue_vue_type_script_setup_true_lang-BNAjx9tj.js → Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js} +30 -26
  27. package/dist/{Modal.vue_vue_type_script_setup_true_lang-D7SwVPpL.js → Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js} +2 -2
  28. package/dist/{NewRolePage-Dla4YnMs.js → NewRolePage-Du9eyEG2.js} +4 -4
  29. package/dist/{NoAccess.vue_vue_type_script_setup_true_lang-8m9cNptR.js → NoAccess.vue_vue_type_script_setup_true_lang-DWxq-MTM.js} +1 -1
  30. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-CYRg7Kfg.js → NumberField.vue_vue_type_script_setup_true_lang-C7N5nq0P.js} +1 -1
  31. package/dist/{PageBar.vue_vue_type_script_setup_true_lang-Cfr5xsJx.js → PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js} +1 -1
  32. package/dist/{Panel.vue_vue_type_script_setup_true_lang-BCRxRK4D.js → Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js} +1 -1
  33. package/dist/PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js +46 -0
  34. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-B3Q4dhqJ.js → PhotoViewer.vue_vue_type_script_setup_true_lang-QPCW3Xi6.js} +1 -1
  35. package/dist/ProfilePage-BjvWyg_e.js +654 -0
  36. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-DKsaKlAq.js → RecordHeader.vue_vue_type_script_setup_true_lang-Ci4fs5s5.js} +2 -2
  37. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-CJcKa9SW.js → ResourcePage.vue_vue_type_script_setup_true_lang-KPVA-1fI.js} +5 -5
  38. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-DuEPOmjI.js → RoleEditor.vue_vue_type_script_setup_true_lang-Ci1Aqc37.js} +30 -29
  39. package/dist/{RolePage-bZzv_E4l.js → RolePage-BDD6volP.js} +13 -13
  40. package/dist/{RolesPage-BniZv0nB.js → RolesPage-Bzun0trr.js} +9 -9
  41. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-BKP_bge8.js → SectionList.vue_vue_type_script_setup_true_lang-DBheVDeX.js} +3 -3
  42. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-BgGEGxSI.js → SectionNavigator.vue_vue_type_script_setup_true_lang-L4TXI0wR.js} +6 -6
  43. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-BZ9UdgA1.js → SegmentedField.vue_vue_type_script_setup_true_lang-BMqWlpsL.js} +1 -1
  44. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BiGaEKBQ.js → SelectField.vue_vue_type_script_setup_true_lang-7O1BAx04.js} +15 -14
  45. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-DUQpr7gb.js → SessionList.vue_vue_type_script_setup_true_lang-D5KRitar.js} +4 -4
  46. package/dist/{Sessions-Co5-xdeb.js → Sessions-BOzz38WJ.js} +6 -6
  47. package/dist/SettingsPage-BXlYHt8u.js +255 -0
  48. package/dist/{Sheet.vue_vue_type_script_setup_true_lang-bHYzx7-J.js → Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js} +48 -45
  49. package/dist/{SignIn-BWwFbxki.js → SignIn-CenfvX8C.js} +7 -7
  50. package/dist/{SignInPage-FnLtoi2q.js → SignInPage-23sJGIXh.js} +6 -6
  51. package/dist/{SignInTable.vue_vue_type_script_setup_true_lang-Dnx3T_42.js → SignInTable.vue_vue_type_script_setup_true_lang-CEbAvZ_C.js} +1 -1
  52. package/dist/{SignIns-3UcI64_h.js → SignIns-DRaTo-T0.js} +6 -6
  53. package/dist/{SwipeActions.vue_vue_type_script_setup_true_lang-4I8m27ol.js → SwipeActions.vue_vue_type_script_setup_true_lang-BJIA2JfI.js} +1 -1
  54. package/dist/SwitchField.vue_vue_type_script_setup_true_lang-CM8yp9JQ.js +64 -0
  55. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-BeGaydRr.js → Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js} +1 -1
  56. package/dist/{TextField.vue_vue_type_script_setup_true_lang-C_FMf3Vc.js → TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js} +3 -3
  57. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-CqAWfABZ.js +68 -0
  58. package/dist/TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js +164 -0
  59. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-1RJGKxbD.js → Timestamp.vue_vue_type_script_setup_true_lang-FVRUr-9y.js} +1 -1
  60. package/dist/{UserRecord-Ci8HfwbX.js → UserRecord-BreLQOPG.js} +13 -13
  61. package/dist/{UsersList-vEJ-cgkT.js → UsersList-CKLqiOpt.js} +8 -8
  62. package/dist/{ViewTabs.vue_vue_type_script_setup_true_lang-ByqTU2JT.js → ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js} +1 -1
  63. package/dist/access/index.js +1 -1
  64. package/dist/access-DmAceEo5.js +42 -0
  65. package/dist/app/feature.d.ts +2 -0
  66. package/dist/app/index.js +11 -11
  67. package/dist/button/index.js +1 -1
  68. package/dist/{chrome-BS3xJcad.js → chrome-nUcmVu8G.js} +2 -2
  69. package/dist/client/index.js +11 -19
  70. package/dist/{client-Bw0aM5Gu.js → client-k9euDWF4.js} +19 -19
  71. package/dist/collection/definition.d.ts +3 -0
  72. package/dist/collection/index.js +6 -6
  73. package/dist/collection/useCollection.d.ts +2 -0
  74. package/dist/content/index.js +2 -2
  75. package/dist/{contributions-CDDg3fKp.js → contributions-DsfmDoRD.js} +1 -1
  76. package/dist/control-7EP4tjYy.js +313 -0
  77. package/dist/controls/index.js +4 -4
  78. package/dist/form/index.js +987 -1134
  79. package/dist/{guards-Cd1V28oG.js → guards-Dve61KjR.js} +1 -1
  80. package/dist/{http-DGGSKWvU.js → http-CNcDHSOj.js} +9 -8
  81. package/dist/i18n/index.js +20 -20
  82. package/dist/icon/core.d.ts +4 -0
  83. package/dist/icon/index.js +1 -1
  84. package/dist/identity/index.js +1 -1
  85. package/dist/index-0TeI4rVv.js +504 -0
  86. package/dist/{index-B2dbYZR9.js → index-BBdzJnvG.js} +15 -15
  87. package/dist/{index-BAcl44SC.js → index-CnVf6Uk_.js} +19 -19
  88. package/dist/index.d.ts +1 -1
  89. package/dist/index.js +1 -1
  90. package/dist/modal/Sheet.vue.d.ts +2 -0
  91. package/dist/modal/index.js +5 -5
  92. package/dist/modules/events/entities.d.ts +16 -0
  93. package/dist/modules/events/routes.d.ts +17 -0
  94. package/dist/modules/events/schemas.d.ts +16 -0
  95. package/dist/modules/notification/entities.d.ts +46 -0
  96. package/dist/modules/notification/routes.d.ts +26 -0
  97. package/dist/modules/notification/schemas.d.ts +25 -0
  98. package/dist/{navigation-BPWa63ge.js → navigation-Cm3iChlR.js} +1 -1
  99. package/dist/{neighbors-D0WRBxXI.js → neighbors-DpaIMQAL.js} +1 -1
  100. package/dist/notifications/InboxPanel.vue.d.ts +16 -0
  101. package/dist/notifications/MarkAllRead.vue.d.ts +7 -0
  102. package/dist/notifications/NotificationBell.vue.d.ts +2 -0
  103. package/dist/notifications/SettingsLink.vue.d.ts +6 -0
  104. package/dist/notifications/context.d.ts +20 -0
  105. package/dist/notifications/deadletters/DeadLetters.vue.d.ts +2 -0
  106. package/dist/notifications/deadletters/access.d.ts +3 -0
  107. package/dist/notifications/deadletters/list.d.ts +3 -0
  108. package/dist/notifications/deadletters/routes.d.ts +13 -0
  109. package/dist/notifications/feature.d.ts +31 -0
  110. package/dist/notifications/inbox.d.ts +62 -0
  111. package/dist/notifications/index.d.ts +13 -0
  112. package/dist/notifications/index.js +8 -0
  113. package/dist/notifications/settings/EmailPanel.vue.d.ts +14 -0
  114. package/dist/notifications/settings/QuietHoursPanel.vue.d.ts +14 -0
  115. package/dist/notifications/settings/SettingsMenuItem.vue.d.ts +2 -0
  116. package/dist/notifications/settings/SettingsPage.vue.d.ts +2 -0
  117. package/dist/notifications/settings/categoryText.d.ts +9 -0
  118. package/dist/notifications/settings/routes.d.ts +13 -0
  119. package/dist/notifications/settings/settings.d.ts +18 -0
  120. package/dist/notifications/settings/state.d.ts +16 -0
  121. package/dist/notifications/state.d.ts +27 -0
  122. package/dist/notifications/stream.d.ts +21 -0
  123. package/dist/options-Ba_0uLWN.js +18 -0
  124. package/dist/overlay/index.js +3 -3
  125. package/dist/page/chrome.d.ts +4 -1
  126. package/dist/page/index.d.ts +1 -1
  127. package/dist/page/index.js +25 -24
  128. package/dist/phone/index.js +68 -67
  129. package/dist/platform/index.js +2 -2
  130. package/dist/{platform-hunMqFdB.js → platform-q3cjODLx.js} +1 -1
  131. package/dist/resource/index.js +1 -1
  132. package/dist/route-goWMxDUN.js +13 -0
  133. package/dist/router/access.d.ts +1 -1
  134. package/dist/router/index.js +5 -5
  135. package/dist/router/pageRefresh.d.ts +6 -0
  136. package/dist/{rowLayout-BI7a3Kom.js → rowLayout-BqTEhEuy.js} +5 -5
  137. package/dist/{sections-BEqW1dOc.js → sections-D-kD98vu.js} +2 -2
  138. package/dist/shell/BackofficeShell.vue.d.ts +4 -1
  139. package/dist/shell/NavigationDrawer.vue.d.ts +1 -1
  140. package/dist/shell/PullToRefresh.vue.d.ts +2 -0
  141. package/dist/shell/ShellSidebar.vue.d.ts +2 -1
  142. package/dist/shell/backofficeShell.d.ts +3 -1
  143. package/dist/shell/index.js +638 -584
  144. package/dist/shell/pullToRefresh.d.ts +16 -0
  145. package/dist/shell/search.d.ts +3 -0
  146. package/dist/state/index.js +4 -4
  147. package/dist/{status-C9aXR-Jb.js → status-jB5r1cG2.js} +2 -2
  148. package/dist/styles.css +1 -1
  149. package/dist/{suggestions-BJAqOj4c.js → suggestions-BxMm6MQA.js} +1 -1
  150. package/dist/testing/index.js +1 -1
  151. package/dist/transport-BnP7WC0Y.js +4 -0
  152. package/dist/{useCommand-BgRwnYlV.js → useCommand-BkONMn3X.js} +2 -2
  153. package/dist/{useResourceForm-Bgc9jMcu.js → useResourceForm-D1hIpwW5.js} +1 -1
  154. package/dist/{useSaveChrome-chi6D3HY.js → useSaveChrome-DuWm0Czf.js} +1 -1
  155. package/dist/useTypedEntry-aTfPBAhw.js +857 -0
  156. package/package.json +8 -4
  157. package/dist/DateField.vue_vue_type_script_setup_true_lang-DMVjNsaM.js +0 -1099
  158. package/dist/ProfilePage-OJMQ8cr8.js +0 -691
  159. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-CU3KTKIJ.js +0 -127
  160. package/dist/access-DdRFrVV1.js +0 -40
  161. package/dist/options-BXkMR63B.js +0 -329
@@ -0,0 +1,255 @@
1
+ import { defineComponent as w, openBlock as u, createBlock as b, unref as e, withCtx as p, createElementBlock as g, toDisplayString as y, Fragment as $, renderList as Q, createElementVNode as P, createVNode as d, createTextVNode as U, createCommentVNode as S, computed as V, mergeProps as h, ref as D } from "vue";
2
+ import { useI18n as v } from "vue-i18n";
3
+ import { useRouter as I } from "vue-router";
4
+ import { a as j } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
5
+ import { t as T } from "./toast-D9Z5To38.js";
6
+ import { u as N } from "./fieldMessages-C3Rpbktw.js";
7
+ import { _ as A } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
8
+ import { _ as O } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
9
+ import { _ as R } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
10
+ import { e as G } from "./control-7EP4tjYy.js";
11
+ import { _ as Z } from "./SwitchField.vue_vue_type_script_setup_true_lang-CM8yp9JQ.js";
12
+ import { _ as J } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
13
+ import { u as K } from "./FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js";
14
+ import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js";
15
+ import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js";
16
+ import { a as k, n as X } from "./useTypedEntry-aTfPBAhw.js";
17
+ import { _ as Y } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
18
+ import { n as q } from "./index-0TeI4rVv.js";
19
+ import { u as ee } from "./platform-q3cjODLx.js";
20
+ import { u as te } from "./useLoad-CYRVx6HW.js";
21
+ function ne() {
22
+ const { t: s, te: t } = v();
23
+ return (n) => {
24
+ const m = `notifications.categories.${n}`, a = `${m}.description`;
25
+ return { label: t(`${m}.label`) ? s(`${m}.label`) : n, ...t(a) ? { description: s(a) } : {} };
26
+ };
27
+ }
28
+ const ae = {
29
+ key: 0,
30
+ class: "text-subheadline text-content-muted",
31
+ "data-email-unavailable": ""
32
+ }, oe = { class: "flex items-center gap-1.5 text-body text-content-muted" }, ie = ["data-category"], se = {
33
+ key: 2,
34
+ class: "mt-3 text-footnote text-content-muted",
35
+ "data-in-app": ""
36
+ }, re = /* @__PURE__ */ w({
37
+ __name: "EmailPanel",
38
+ props: {
39
+ preferences: {}
40
+ },
41
+ emits: ["change"],
42
+ setup(s, { emit: t }) {
43
+ const n = s, m = t, { t: a } = v(), r = ne();
44
+ return (f, c) => (u(), b(e(O), {
45
+ title: e(a)("core.notifications.settings.email.title"),
46
+ icon: "notification3Line",
47
+ "data-notification-email": ""
48
+ }, {
49
+ default: p(() => [
50
+ n.preferences.email_available ? (u(), b(e(R), {
51
+ key: 1,
52
+ footer: e(a)("core.notifications.settings.email.in_app"),
53
+ "data-in-app": ""
54
+ }, {
55
+ default: p(() => [
56
+ (u(!0), g($, null, Q(n.preferences.categories, (o) => (u(), g($, {
57
+ key: o.category
58
+ }, [
59
+ o.email.source === "enforced" ? (u(), b(e(G), {
60
+ key: 0,
61
+ "data-category": o.category,
62
+ layout: "setting",
63
+ label: e(r)(o.category).label,
64
+ sub: e(a)("core.notifications.settings.email.locked")
65
+ }, {
66
+ default: p(() => [
67
+ P("span", oe, [
68
+ d(e(J), {
69
+ name: "lockLine",
70
+ size: 14
71
+ }),
72
+ U(y(o.email.enabled ? e(a)("core.form.yes") : e(a)("core.form.no")), 1)
73
+ ])
74
+ ]),
75
+ _: 2
76
+ }, 1032, ["data-category", "label", "sub"])) : (u(), g("div", {
77
+ key: 1,
78
+ "data-category": o.category
79
+ }, [
80
+ d(e(Z), {
81
+ "model-value": o.email.enabled,
82
+ label: e(r)(o.category).label,
83
+ hint: e(r)(o.category).description,
84
+ "onUpdate:modelValue": (i) => m("change", o.category, i)
85
+ }, null, 8, ["model-value", "label", "hint", "onUpdate:modelValue"])
86
+ ], 8, ie))
87
+ ], 64))), 128))
88
+ ]),
89
+ _: 1
90
+ }, 8, ["footer"])) : (u(), g("p", ae, y(e(a)("core.notifications.settings.email.unavailable")), 1)),
91
+ n.preferences.email_available ? S("", !0) : (u(), g("p", se, y(e(a)("core.notifications.settings.email.in_app")), 1))
92
+ ]),
93
+ _: 1
94
+ }, 8, ["title"]));
95
+ }
96
+ });
97
+ function x(s, t) {
98
+ return { ...s, categories: s.categories.map((n) => n.category === t.category ? t : n) };
99
+ }
100
+ function ce(s, t, n) {
101
+ return x(s, { category: t, email: { enabled: n, source: "person" } });
102
+ }
103
+ function z(s) {
104
+ return X(Math.floor(s / 60), s % 60) ?? "00:00";
105
+ }
106
+ function H(s) {
107
+ const t = k(s);
108
+ return t === null ? null : t.hour * 60 + t.minute;
109
+ }
110
+ const L = (s) => ({ enabled: s.enabled, start: z(s.start), end: z(s.end) }), le = /* @__PURE__ */ w({
111
+ __name: "QuietHoursPanel",
112
+ props: {
113
+ quietHours: {},
114
+ timeZone: {},
115
+ submit: { type: Function }
116
+ },
117
+ setup(s) {
118
+ const t = s, { t: n } = v(), m = {
119
+ safeParse(c) {
120
+ const o = c, i = H(o.start), l = H(o.end), _ = [
121
+ ...i === null ? [{ path: ["start"], message: n("core.notifications.settings.quiet.required") }] : [],
122
+ ...l === null ? [{ path: ["end"], message: n("core.notifications.settings.quiet.required") }] : [],
123
+ ...i !== null && i === l ? [{ path: ["end"], message: n("core.notifications.settings.quiet.same") }] : []
124
+ ];
125
+ return _.length > 0 || i === null || l === null ? { success: !1, error: { issues: _ } } : { success: !0, data: { enabled: o.enabled, start: i, end: l } };
126
+ }
127
+ }, a = K({ ...N(), defaults: () => L(t.quietHours), validator: m }), r = V(() => {
128
+ const { enabled: c, start: o, end: i } = a.values, l = k(o), _ = k(i);
129
+ if (!c) return n("core.notifications.settings.quiet.summary_off");
130
+ if (!l || !_ || l.hour === _.hour && l.minute === _.minute) return "";
131
+ const C = ({ hour: F, minute: M }) => `${String(F).padStart(2, "0")}:${String(M).padStart(2, "0")}`, B = t.timeZone && t.timeZone !== "Local";
132
+ return n(`core.notifications.settings.quiet.${B ? "summary_on" : "summary_on_no_zone"}`, { start: C(l), end: C(_), zone: t.timeZone });
133
+ });
134
+ async function f() {
135
+ const c = await a.submit((o) => t.submit(o));
136
+ c.status === "saved" && (a.hydrate(L(c.value)), T.success(n("core.notifications.settings.quiet.saved")));
137
+ }
138
+ return (c, o) => (u(), b(e(O), {
139
+ title: e(n)("core.notifications.settings.quiet.title"),
140
+ icon: "moonLine",
141
+ "data-notification-quiet-hours": ""
142
+ }, {
143
+ footer: p(() => [
144
+ d(Y, {
145
+ label: e(n)("core.notifications.settings.quiet.submit"),
146
+ processing: e(a).submitting.value,
147
+ dirty: e(a).dirty.value,
148
+ onSubmit: f,
149
+ onCancel: o[0] || (o[0] = (i) => e(a).reset())
150
+ }, null, 8, ["label", "processing", "dirty"])
151
+ ]),
152
+ default: p(() => [
153
+ d(e(W), {
154
+ form: e(a),
155
+ onSubmit: f
156
+ }, {
157
+ default: p(() => [
158
+ d(e(R), {
159
+ footer: r.value,
160
+ "data-quiet-summary": ""
161
+ }, {
162
+ default: p(() => [
163
+ d(e(Z), h(e(a).bind("enabled"), {
164
+ label: e(n)("core.notifications.settings.quiet.enabled")
165
+ }), null, 16, ["label"]),
166
+ e(a).values.enabled ? (u(), g($, { key: 0 }, [
167
+ d(e(E), h(e(a).bind("start"), {
168
+ label: e(n)("core.notifications.settings.quiet.start")
169
+ }), null, 16, ["label"]),
170
+ d(e(E), h(e(a).bind("end"), {
171
+ label: e(n)("core.notifications.settings.quiet.end")
172
+ }), null, 16, ["label"])
173
+ ], 64)) : S("", !0)
174
+ ]),
175
+ _: 1
176
+ }, 8, ["footer"])
177
+ ]),
178
+ _: 1
179
+ }, 8, ["form"])
180
+ ]),
181
+ _: 1
182
+ }, 8, ["title"]));
183
+ }
184
+ });
185
+ function ue(s = ee().http) {
186
+ const t = te(async ({ signal: r }) => (await s.request(q.preferences, void 0, { signal: r })).data), n = D([]);
187
+ async function m(r, f) {
188
+ const c = t.data.value, o = c?.categories.find((i) => i.category === r);
189
+ if (!(!c || !o || n.value.includes(r))) {
190
+ t.update(ce(c, r, f)), n.value = [...n.value, r];
191
+ try {
192
+ const { data: i } = await s.request(q.preferencesSetEmail, { category: r, email: f }), l = t.data.value;
193
+ l && t.update(x(l, i));
194
+ } catch (i) {
195
+ const l = t.data.value;
196
+ throw l && t.update(x(l, o)), i;
197
+ } finally {
198
+ n.value = n.value.filter((i) => i !== r);
199
+ }
200
+ }
201
+ }
202
+ async function a(r) {
203
+ const { data: f } = await s.request(q.quietHours, r), c = t.data.value;
204
+ return c && t.update({ ...c, quiet_hours: f }), f;
205
+ }
206
+ return { loaded: t, saving: n, setEmail: m, saveQuietHours: a };
207
+ }
208
+ const me = { class: "grid grid-cols-1 items-start gap-4 lg:grid-cols-2" }, Pe = /* @__PURE__ */ w({
209
+ __name: "SettingsPage",
210
+ setup(s) {
211
+ const { t } = v(), n = I(), m = N(), a = ue(), r = V(() => n.hasRoute("profile") ? { label: t("core.profile.menu"), to: { name: "profile" } } : void 0);
212
+ async function f(c, o) {
213
+ try {
214
+ await a.setEmail(c, o);
215
+ } catch (i) {
216
+ T.error(m.sentence(i, t("core.notifications.settings.email.save_failed")));
217
+ }
218
+ }
219
+ return (c, o) => (u(), b(e(j), {
220
+ title: e(t)("core.notifications.settings.title"),
221
+ description: e(t)("core.notifications.settings.description"),
222
+ back: r.value,
223
+ width: "content"
224
+ }, {
225
+ default: p(() => [
226
+ d(e(A), {
227
+ state: e(a).loaded.state.value,
228
+ "skeleton-rows": 6,
229
+ "is-empty": () => !1,
230
+ onRetry: o[0] || (o[0] = (i) => e(a).loaded.reload())
231
+ }, {
232
+ default: p(({ value: i }) => [
233
+ P("div", me, [
234
+ d(re, {
235
+ preferences: i,
236
+ onChange: f
237
+ }, null, 8, ["preferences"]),
238
+ i.email_available ? (u(), b(le, {
239
+ key: 0,
240
+ "quiet-hours": i.quiet_hours,
241
+ "time-zone": i.time_zone,
242
+ submit: e(a).saveQuietHours
243
+ }, null, 8, ["quiet-hours", "time-zone", "submit"])) : S("", !0)
244
+ ])
245
+ ]),
246
+ _: 1
247
+ }, 8, ["state"])
248
+ ]),
249
+ _: 1
250
+ }, 8, ["title", "description", "back"]));
251
+ }
252
+ });
253
+ export {
254
+ Pe as default
255
+ };
@@ -1,6 +1,6 @@
1
- import { defineComponent as j, ref as b, useId as A, watch as N, openBlock as o, createBlock as V, Teleport as M, createElementBlock as n, unref as e, createVNode as h, Transition as k, withCtx as _, normalizeStyle as w, createCommentVNode as r, normalizeClass as S, createElementVNode as i, mergeProps as C, renderSlot as v, toDisplayString as P } from "vue";
1
+ import { defineComponent as j, ref as b, useId as A, watch as N, openBlock as o, createBlock as V, Teleport as M, createElementBlock as n, unref as e, createVNode as v, Transition as k, withCtx as _, normalizeStyle as w, createCommentVNode as r, normalizeClass as S, createElementVNode as i, mergeProps as C, renderSlot as u, toDisplayString as P } from "vue";
2
2
  import { useI18n as T } from "vue-i18n";
3
- import { _ as W } from "./Icon.vue_vue_type_script_lang-VvcV2Bzo.js";
3
+ import { _ as W } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
4
  import { a as F } from "./mediaQuery-CygcXmFW.js";
5
5
  import { u as L } from "./useDialog-CXR3hN0G.js";
6
6
  import { u as O } from "./useSheetDrag-OsD6Eb6I.js";
@@ -8,48 +8,48 @@ const Q = ["aria-labelledby"], q = {
8
8
  key: 0,
9
9
  class: "flex justify-center pt-1.5",
10
10
  "aria-hidden": "true"
11
- }, G = ["id"], H = ["aria-label"], J = {
11
+ }, G = ["id"], H = { class: "ml-auto flex items-center gap-1" }, J = ["aria-label"], K = {
12
12
  key: 0,
13
13
  class: "shrink-0 border-t border-border-separator bg-surface-cell px-4 pt-3 pb-[max(0.75rem,var(--app-safe-bottom))]"
14
- }, ee = /* @__PURE__ */ j({
14
+ }, te = /* @__PURE__ */ j({
15
15
  __name: "Sheet",
16
16
  props: {
17
17
  title: { default: void 0 },
18
18
  grouped: { type: Boolean, default: !1 }
19
19
  },
20
20
  emits: ["presented", "dismissed"],
21
- setup(z, { expose: B, emit: D }) {
22
- const l = z, y = D, { t: I } = T(), t = F("(max-width: 1023px), (pointer: coarse)"), u = b(!1), $ = () => {
23
- c.value || (u.value = !1);
24
- }, m = b(null), g = b(null), f = A(), d = L(m, {
21
+ setup($, { expose: z, emit: B }) {
22
+ const l = $, y = B, { t: D } = T(), t = F("(max-width: 1023px), (pointer: coarse)"), m = b(!1), I = () => {
23
+ c.value || (m.value = !1);
24
+ }, f = b(null), g = b(null), p = A(), d = L(f, {
25
25
  initialFocus: "panel",
26
26
  onPresented: () => y("presented"),
27
27
  onDismissed: () => y("dismissed")
28
28
  }), { isOpen: c } = d;
29
- N(c, (a) => {
30
- a && (u.value = !0);
29
+ N(c, (s) => {
30
+ s && (m.value = !0);
31
31
  }, { flush: "sync" });
32
- const s = O({
32
+ const a = O({
33
33
  enabled: t,
34
- panel: m,
34
+ panel: f,
35
35
  body: g,
36
36
  onDismiss: () => (d.dismissWithoutAsking(), !0)
37
37
  });
38
38
  function E() {
39
- s.reset(), d.present();
39
+ a.reset(), d.present();
40
40
  }
41
- function p() {
41
+ function h() {
42
42
  d.dismissWithoutAsking();
43
43
  }
44
- return B({ present: E, dismiss: p }), (a, x) => (o(), V(M, { to: "body" }, [
45
- u.value ? (o(), n("div", {
44
+ return z({ present: E, dismiss: h }), (s, x) => (o(), V(M, { to: "body" }, [
45
+ m.value ? (o(), n("div", {
46
46
  key: 0,
47
47
  class: "relative z-9999",
48
48
  role: "dialog",
49
49
  "aria-modal": "true",
50
- "aria-labelledby": l.title ? e(f) : void 0
50
+ "aria-labelledby": l.title ? e(p) : void 0
51
51
  }, [
52
- h(k, {
52
+ v(k, {
53
53
  appear: "",
54
54
  "enter-active-class": "transition-opacity duration-motion-normal ease-motion-standard",
55
55
  "enter-from-class": "opacity-0",
@@ -60,62 +60,65 @@ const Q = ["aria-labelledby"], q = {
60
60
  e(c) ? (o(), n("div", {
61
61
  key: 0,
62
62
  class: "fixed inset-0 bg-scrim",
63
- style: w(e(s).backdropStyle.value),
63
+ style: w(e(a).backdropStyle.value),
64
64
  "aria-hidden": "true",
65
- onClick: p
65
+ onClick: h
66
66
  }, null, 4)) : r("", !0)
67
67
  ]),
68
68
  _: 1
69
69
  }),
70
- h(k, {
70
+ v(k, {
71
71
  appear: "",
72
72
  "enter-active-class": "transition-transform duration-motion-sheet ease-motion-sheet",
73
73
  "enter-from-class": e(t) ? "translate-y-full" : "translate-x-full",
74
74
  "leave-active-class": "pointer-events-none transition-transform duration-motion-normal ease-motion-standard",
75
75
  "leave-to-class": e(t) ? "translate-y-full" : "translate-x-full",
76
- onAfterLeave: $
76
+ onAfterLeave: I
77
77
  }, {
78
78
  default: _(() => [
79
79
  e(c) ? (o(), n("div", {
80
80
  key: 0,
81
81
  ref_key: "panel",
82
- ref: m,
82
+ ref: f,
83
83
  tabindex: "-1",
84
84
  "data-part": "panel",
85
85
  class: S(["fixed flex flex-col text-content-strong shadow-dialog outline-none", [
86
86
  l.grouped ? "bg-surface-page" : "bg-surface-cell",
87
87
  e(t) ? "inset-x-0 bottom-0 mx-auto max-h-[90dvh] w-full max-w-readable rounded-t-sheet" : "inset-y-0 right-0 w-full max-w-md",
88
- e(s).dragging.value ? "" : "transition-transform duration-motion-normal ease-motion-sheet"
88
+ e(a).dragging.value ? "" : "transition-transform duration-motion-normal ease-motion-sheet"
89
89
  ]]),
90
- style: w(e(s).panelStyle.value)
90
+ style: w(e(a).panelStyle.value)
91
91
  }, [
92
92
  i("div", C({
93
93
  class: ["shrink-0", e(t) ? "cursor-grab touch-none select-none" : ""]
94
- }, e(s).handleEvents), [
94
+ }, e(a).handleEvents), [
95
95
  e(t) ? (o(), n("div", q, [...x[0] || (x[0] = [
96
96
  i("span", { class: "h-1.25 w-9 rounded-full bg-fill-strong" }, null, -1)
97
97
  ])])) : r("", !0),
98
- v(a.$slots, "header", { titleId: e(f) }, () => [
98
+ u(s.$slots, "header", { titleId: e(p) }, () => [
99
99
  i("div", {
100
100
  class: S(["flex min-h-bar-height items-center justify-between gap-3 px-4", e(t) ? "pb-1" : "border-b border-border-separator"])
101
101
  }, [
102
102
  l.title ? (o(), n("h3", {
103
103
  key: 0,
104
- id: e(f),
104
+ id: e(p),
105
105
  class: "text-headline font-semibold"
106
106
  }, P(l.title), 9, G)) : r("", !0),
107
- i("button", {
108
- type: "button",
109
- "data-part": "close",
110
- "aria-label": e(I)("core.actions.close"),
111
- class: "hit-target -mr-1 ml-auto flex size-7 shrink-0 cursor-pointer items-center justify-center rounded-full bg-fill text-content-muted transition-colors duration-motion-fast hover:bg-fill-strong",
112
- onClick: p
113
- }, [
114
- h(e(W), {
115
- name: "close",
116
- size: 14
117
- })
118
- ], 8, H)
107
+ i("div", H, [
108
+ u(s.$slots, "actions"),
109
+ i("button", {
110
+ type: "button",
111
+ "data-part": "close",
112
+ "aria-label": e(D)("core.actions.close"),
113
+ class: "hit-target -mr-1 flex size-7 shrink-0 cursor-pointer items-center justify-center rounded-full bg-fill text-content-muted transition-colors duration-motion-fast hover:bg-fill-strong",
114
+ onClick: h
115
+ }, [
116
+ v(e(W), {
117
+ name: "close",
118
+ size: 14
119
+ })
120
+ ], 8, J)
121
+ ])
119
122
  ], 2)
120
123
  ])
121
124
  ], 16),
@@ -123,11 +126,11 @@ const Q = ["aria-labelledby"], q = {
123
126
  ref_key: "body",
124
127
  ref: g,
125
128
  class: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-4"
126
- }, e(s).bodyEvents), [
127
- v(a.$slots, "default")
129
+ }, e(a).bodyEvents), [
130
+ u(s.$slots, "default")
128
131
  ], 16),
129
- a.$slots.footer ? (o(), n("div", J, [
130
- v(a.$slots, "footer")
132
+ s.$slots.footer ? (o(), n("div", K, [
133
+ u(s.$slots, "footer")
131
134
  ])) : r("", !0)
132
135
  ], 6)) : r("", !0)
133
136
  ]),
@@ -138,5 +141,5 @@ const Q = ["aria-labelledby"], q = {
138
141
  }
139
142
  });
140
143
  export {
141
- ee as _
144
+ te as _
142
145
  };
@@ -1,17 +1,17 @@
1
1
  import { defineComponent as P, computed as f, ref as I, openBlock as m, createElementBlock as N, createVNode as n, unref as e, withCtx as r, createSlots as R, createBlock as _, createTextVNode as k, toDisplayString as v, createCommentVNode as d } from "vue";
2
2
  import { useI18n as A } from "vue-i18n";
3
- import { _ as B } from "./Button.vue_vue_type_script_setup_true_lang-CYil8h9z.js";
4
- import { _ as V } from "./IconTile.vue_vue_type_script_setup_true_lang-D7QgnUyN.js";
3
+ import { _ as B } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
+ import { _ as V } from "./IconTile.vue_vue_type_script_setup_true_lang-BpIjgu5E.js";
5
5
  import { u as D } from "./format-B8mJm946.js";
6
- import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-0mfG8TkU.js";
7
- import { e as b } from "./options-BXkMR63B.js";
6
+ import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
7
+ import { e as b } from "./control-7EP4tjYy.js";
8
8
  import { u as U } from "./describeError-Ctga6GcS.js";
9
- import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-BAcl44SC.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-CnVf6Uk_.js";
10
10
  import { t as h } from "./toast-D9Z5To38.js";
11
- import { u as j, h as G } from "./platform-hunMqFdB.js";
11
+ import { u as j, h as G } from "./platform-q3cjODLx.js";
12
12
  import { b as H } from "./routeResource-DstM0hvf.js";
13
13
  import { _ as J } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
14
- import { _ as K } from "./ActionRow.vue_vue_type_script_setup_true_lang-B7Lpfkf6.js";
14
+ import { _ as K } from "./ActionRow.vue_vue_type_script_setup_true_lang-LlfIPWsJ.js";
15
15
  import { _ as M } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
16
16
  const Q = {
17
17
  key: 0,
@@ -1,12 +1,12 @@
1
1
  import { defineComponent as d, openBlock as _, createElementBlock as g, createElementVNode as b, toDisplayString as n, unref as e, createVNode as t, withCtx as s, mergeProps as i, createTextVNode as w } from "vue";
2
2
  import { useI18n as x } from "vue-i18n";
3
3
  import { useRoute as y, useRouter as h } from "vue-router";
4
- import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-CYil8h9z.js";
5
- import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-BCRxRK4D.js";
6
- import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-Bz2m3AtF.js";
7
- import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-C_FMf3Vc.js";
8
- import { r as $ } from "./guards-Cd1V28oG.js";
9
- import { u as C, a as E } from "./index-BAcl44SC.js";
4
+ import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
5
+ import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
6
+ import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js";
7
+ import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
8
+ import { r as $ } from "./guards-Dve61KjR.js";
9
+ import { u as C, a as E } from "./index-CnVf6Uk_.js";
10
10
  const V = { class: "flex flex-1 flex-col items-center justify-center gap-8" }, k = { class: "text-xl font-semibold text-content-strong" }, H = /* @__PURE__ */ d({
11
11
  __name: "SignInPage",
12
12
  setup(q) {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as _, computed as p, openBlock as y, createElementBlock as g, createVNode as l, unref as i, withCtx as s, createElementVNode as a, toDisplayString as r, createTextVNode as h } from "vue";
2
2
  import { useI18n as b } from "vue-i18n";
3
- import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-DSYgS9lC.js";
3
+ import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-UH6f9puS.js";
4
4
  import { _ as v } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
5
5
  const w = {
6
6
  signed_in: { tone: "positive", byOther: !1 },
@@ -1,14 +1,14 @@
1
1
  import { defineComponent as g, ref as m, watch as p, openBlock as c, createElementBlock as v, createVNode as i, unref as e, withCtx as w, createBlock as x, createCommentVNode as y, createElementVNode as V, toDisplayString as $ } from "vue";
2
2
  import { useI18n as N } from "vue-i18n";
3
- import { P as S, i as b } from "./index-BAcl44SC.js";
4
- import { u as k } from "./platform-hunMqFdB.js";
3
+ import { P as S, i as b } from "./index-CnVf6Uk_.js";
4
+ import { u as k } from "./platform-q3cjODLx.js";
5
5
  import { b as I } from "./routeResource-DstM0hvf.js";
6
- import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-CCtthMRd.js";
6
+ import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
7
7
  import { u as C } from "./useLoad-CYRVx6HW.js";
8
- import { _ as E } from "./PageBar.vue_vue_type_script_setup_true_lang-Cfr5xsJx.js";
8
+ import { _ as E } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
9
9
  import { _ as B } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
10
- import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-Dnx3T_42.js";
11
- import { _ as h } from "./ViewTabs.vue_vue_type_script_setup_true_lang-ByqTU2JT.js";
10
+ import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-CEbAvZ_C.js";
11
+ import { _ as h } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js";
12
12
  const U = {
13
13
  class: "flex min-w-0 flex-col gap-group-gap",
14
14
  "data-person-signins": ""
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as D, computed as N, ref as p, watch as O, onBeforeUnmount as T, openBlock as f, createElementBlock as d, createElementVNode as b, normalizeStyle as x, Fragment as z, renderList as E, normalizeClass as _, createVNode as X, unref as $, createTextVNode as B, toDisplayString as V, renderSlot as Y } from "vue";
2
- import { _ as A } from "./Icon.vue_vue_type_script_lang-VvcV2Bzo.js";
2
+ import { _ as A } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
3
3
  import { p as I } from "./perDocument-DUuFrdGU.js";
4
4
  const R = ["aria-hidden"], W = ["href", "target", "rel", "tabindex", "data-action"], j = Symbol("vue-core:swipe-open-row"), F = () => I(j, () => p(null)), q = /* @__PURE__ */ D({
5
5
  __name: "SwipeActions",
@@ -0,0 +1,64 @@
1
+ import { defineComponent as p, useModel as b, computed as w, openBlock as v, createBlock as g, mergeProps as y, unref as a, withCtx as _, createElementVNode as t, renderSlot as k, normalizeClass as l, normalizeStyle as z, toDisplayString as B, mergeModels as S, mergeDefaults as x } from "vue";
2
+ import { useI18n as C } from "vue-i18n";
3
+ import { u as M, _ as V, f as D, b as E } from "./control-7EP4tjYy.js";
4
+ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria-label", "aria-describedby", "aria-invalid", "disabled"], P = { class: "sr-only" }, Z = /* @__PURE__ */ p({
5
+ __name: "SwitchField",
6
+ props: /* @__PURE__ */ S(/* @__PURE__ */ x({
7
+ label: {},
8
+ hint: {},
9
+ error: {},
10
+ required: { type: Boolean },
11
+ editable: { type: Boolean },
12
+ disabled: { type: Boolean },
13
+ lockedReason: {},
14
+ presentation: {},
15
+ name: {},
16
+ size: {}
17
+ }, { ...E, size: "md" }), {
18
+ modelValue: { type: Boolean, default: !1 },
19
+ modelModifiers: {}
20
+ }),
21
+ emits: ["update:modelValue"],
22
+ setup(s) {
23
+ const o = s, e = b(s, "modelValue"), { t: i } = C(), { editable: r } = M(o), n = {
24
+ sm: { "--switch-w": "1.75rem", "--switch-h": "1rem" },
25
+ md: { "--switch-w": "var(--app-switch-width)", "--switch-h": "var(--app-switch-height)" },
26
+ lg: { "--switch-w": "3.1875rem", "--switch-h": "1.9375rem" }
27
+ }, d = w(() => n[o.size]);
28
+ function c() {
29
+ !o.disabled && r.value && (e.value = !e.value);
30
+ }
31
+ return (u, $) => (v(), g(V, y(a(D)(o), {
32
+ value: e.value,
33
+ "row-layout": "setting"
34
+ }), {
35
+ default: _(({ id: m, describedby: h, invalid: f }) => [
36
+ t("div", F, [
37
+ k(u.$slots, "before"),
38
+ t("button", {
39
+ id: m,
40
+ type: "button",
41
+ role: "switch",
42
+ "aria-checked": e.value,
43
+ "aria-label": o.label,
44
+ "aria-describedby": h,
45
+ "aria-invalid": f || void 0,
46
+ disabled: o.disabled,
47
+ style: z(d.value),
48
+ class: l(["hit-target relative inline-flex h-(--switch-h) w-(--switch-w) shrink-0 cursor-pointer rounded-full transition-colors duration-motion-fast ease-motion-standard focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus disabled:cursor-not-allowed disabled:opacity-45", e.value ? "bg-control-on" : "bg-fill-strong"]),
49
+ onClick: c
50
+ }, [
51
+ t("span", {
52
+ class: l(["pointer-events-none absolute left-0.5 top-0.5 size-[calc(var(--switch-h)-0.25rem)] rounded-full bg-white shadow-knob transition-transform duration-motion-normal ease-motion-standard", e.value ? "translate-x-[calc(var(--switch-w)-var(--switch-h))]" : ""])
53
+ }, null, 2),
54
+ t("span", P, B(e.value ? a(i)("core.form.yes") : a(i)("core.form.no")), 1)
55
+ ], 14, I)
56
+ ])
57
+ ]),
58
+ _: 3
59
+ }, 16, ["value"]));
60
+ }
61
+ });
62
+ export {
63
+ Z as _
64
+ };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as B, useModel as M, useId as z, inject as K, useTemplateRef as I, computed as S, openBlock as o, createElementBlock as l, createElementVNode as f, Fragment as T, renderList as V, normalizeClass as r, unref as c, createTextVNode as j, toDisplayString as m, createCommentVNode as u, createBlock as h, renderSlot as R, mergeModels as D } from "vue";
2
2
  import { routerKey as q, routeLocationKey as F } from "vue-router";
3
- import { _ as y } from "./Icon.vue_vue_type_script_lang-VvcV2Bzo.js";
3
+ import { _ as y } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
4
  import { u as G } from "./mediaQuery-CygcXmFW.js";
5
5
  const H = ["aria-label"], P = ["aria-label"], J = ["id", "aria-selected", "tabindex", "aria-controls", "data-tab", "onClick", "onKeydown"], O = {
6
6
  key: 0,
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as H, useTemplateRef as P, computed as x, watch as Y, nextTick as Z, openBlock as n, createElementBlock as i, withModifiers as ee, normalizeStyle as te, unref as s, createElementVNode as m, toDisplayString as r, createCommentVNode as d, Fragment as E, renderList as oe, normalizeClass as q, createBlock as z, createTextVNode as F, useModel as se, ref as ne, mergeProps as ae, withCtx as ie, withDirectives as le, vModelDynamic as re, mergeModels as I, mergeDefaults as ce } from "vue";
2
2
  import { useI18n as K } from "vue-i18n";
3
3
  import { b as ue } from "./controlSurface-t7OEFESJ.js";
4
- import { a as de, g as pe, _ as me, f as fe, b as he } from "./options-BXkMR63B.js";
5
- import { _ as ve } from "./Icon.vue_vue_type_script_lang-VvcV2Bzo.js";
4
+ import { a as de, c as pe, _ as me, f as fe, b as he } from "./control-7EP4tjYy.js";
5
+ import { _ as ve } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
6
  import { u as ge } from "./anchored-Cj4--8dT.js";
7
- import { l as O, m as xe, u as ye, c as be } from "./suggestions-BJAqOj4c.js";
7
+ import { l as O, m as xe, u as ye, c as be } from "./suggestions-BxMm6MQA.js";
8
8
  const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-1.5" }, we = {
9
9
  key: 0,
10
10
  class: "px-2.5 pb-1 pt-1.5 text-caption font-semibold uppercase text-content-disabled",