@wssto2/vue-core 0.14.0 → 0.15.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 (125) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +2 -2
  3. package/bin/architecture/engine.mjs +11 -1
  4. package/bin/architecture/rules.mjs +95 -0
  5. package/bin/commands/check-architecture.mjs +8 -1
  6. package/bin/config.mjs +2 -0
  7. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-DEzXovsY.js → AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js} +1 -1
  8. package/dist/{Activity-C0HUEDUz.js → Activity-RAk3h7Aa.js} +5 -5
  9. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bsv5j5Z8.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-uO4EAmBb.js} +2 -2
  10. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-CrFhR9rJ.js → AlertDialog.vue_vue_type_script_setup_true_lang-WuGvAOrj.js} +1 -1
  11. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js → AsyncSection.vue_vue_type_script_setup_true_lang-CX8mpXRE.js} +1 -1
  12. package/dist/{Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js → Button.vue_vue_type_script_setup_true_lang-JrqhO99l.js} +1 -1
  13. package/dist/{Changes-CSaHgVuz.js → Changes-Dsar4rXS.js} +3 -3
  14. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-dIrdS_Gn.js → CollectionPage.vue_vue_type_script_setup_true_lang-qxeSTAKV.js} +10 -10
  15. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-J3PhyJAS.js → DataTable.vue_vue_type_script_setup_true_lang-DbRS37n3.js} +1 -1
  16. package/dist/{DateField.vue_vue_type_script_setup_true_lang-CKKG4JEg.js → DateField.vue_vue_type_script_setup_true_lang-DzCvYHAf.js} +2 -2
  17. package/dist/{DeadLetters-CHX4Ypgy.js → DeadLetters-vt9vhJD7.js} +5 -5
  18. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-B3WbLyNb.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-92szOrYd.js} +1 -1
  19. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-dsO1m9Mm.js +428 -0
  20. package/dist/{FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js → FormView.vue_vue_type_script_setup_true_lang-Bq_Qa4py.js} +1 -1
  21. package/dist/{General-v_24-zZw.js → General-Bu_ZIVbk.js} +7 -7
  22. package/dist/{IncidentRecord-BwSBNE37.js → IncidentRecord-CQdv_bN5.js} +12 -12
  23. package/dist/{IncidentsList-BqzRU5cZ.js → IncidentsList-DwQ0wuM8.js} +4 -4
  24. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CIwW7y4j.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CrGrjrlO.js} +1 -1
  25. package/dist/{Menu.vue_vue_type_script_setup_true_lang-wKc9gdCn.js → Menu.vue_vue_type_script_setup_true_lang-Cqu4Ebsb.js} +1 -1
  26. package/dist/{Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js → Modal.vue_vue_type_script_setup_true_lang-CZ7WrDwu.js} +2 -2
  27. package/dist/{NewRolePage-Dt0O0VSI.js → NewRolePage-C-wbA-uW.js} +4 -4
  28. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-CWCt9_dM.js → PersonAccess.vue_vue_type_script_setup_true_lang-BPDh9s2m.js} +8 -8
  29. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-Bqxj_uJ5.js → PhotoViewer.vue_vue_type_script_setup_true_lang-DmMg1T_V.js} +1 -1
  30. package/dist/{Popover.vue_vue_type_script_setup_true_lang-C20Hf3Hl.js → Popover.vue_vue_type_script_setup_true_lang-BK8HL_V0.js} +1 -1
  31. package/dist/{ProfilePage-DApTxq8C.js → ProfilePage-7Xk2hsNL.js} +13 -13
  32. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-SDgLjwEI.js → RecordHeader.vue_vue_type_script_setup_true_lang-CZtvUH5L.js} +1 -1
  33. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-DRC3h71-.js → ResourcePage.vue_vue_type_script_setup_true_lang-uLrX13ab.js} +4 -4
  34. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-d_aaeXTT.js → RoleEditor.vue_vue_type_script_setup_true_lang-V2D7fhR9.js} +6 -6
  35. package/dist/{RolePage-noy-wmNc.js → RolePage-Crp71rRb.js} +11 -11
  36. package/dist/{RolesPage-NRRainCw.js → RolesPage-DKXXnnDV.js} +5 -5
  37. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-DR0_NsqC.js → SectionList.vue_vue_type_script_setup_true_lang-CodyVezo.js} +1 -1
  38. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-D_08MS1-.js → SectionNavigator.vue_vue_type_script_setup_true_lang-5ogQCj8M.js} +3 -3
  39. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js → SelectField.vue_vue_type_script_setup_true_lang-CLkoPbGm.js} +3 -3
  40. package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-CGvJW3bi.js +127 -0
  41. package/dist/{ServiceAccountRecord-D_HduQoK.js → ServiceAccountRecord-Caj7mo3A.js} +13 -13
  42. package/dist/{ServiceAccountsList-CdSsqTGt.js → ServiceAccountsList-D-YqPi_h.js} +6 -6
  43. package/dist/{Sessions-CTjzMfNg.js → Sessions-Bv5GU5Oi.js} +6 -6
  44. package/dist/{SettingsPage-CpqASf_D.js → SettingsPage-lRWvsMYK.js} +12 -12
  45. package/dist/{Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js → Sheet.vue_vue_type_script_setup_true_lang-BG8HUNfs.js} +1 -1
  46. package/dist/{SignIn-D6tWsKf0.js → SignIn-m6PANavm.js} +5 -5
  47. package/dist/{SignInPage-BCNGI871.js → SignInPage-C9--4P11.js} +4 -4
  48. package/dist/{SignIns-BxGGA99u.js → SignIns-BhLnkY08.js} +3 -3
  49. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-BDlTAMsh.js → TimeField.vue_vue_type_script_setup_true_lang-C1mLvOkc.js} +2 -2
  50. package/dist/{Tooltip.vue_vue_type_script_setup_true_lang-Dtg5Y6pf.js → Tooltip.vue_vue_type_script_setup_true_lang-C1C1qeBj.js} +1 -1
  51. package/dist/{UserRecord-B0kG0-Tm.js → UserRecord-L3ahHNjb.js} +10 -10
  52. package/dist/{UsersList-KMgImERy.js → UsersList-C6u3YCCp.js} +3 -3
  53. package/dist/access/RestrictedPanel.vue.d.ts +20 -0
  54. package/dist/access/index.d.ts +1 -0
  55. package/dist/access/index.js +91 -31
  56. package/dist/app/application.d.ts +2 -2
  57. package/dist/app/current.d.ts +6 -0
  58. package/dist/app/index.d.ts +1 -1
  59. package/dist/app/index.js +17 -16
  60. package/dist/{application-CrXtiGdw.js → application-C900Wz0A.js} +6 -6
  61. package/dist/button/index.js +2 -2
  62. package/dist/client/client.d.ts +6 -0
  63. package/dist/client/index.js +1 -1
  64. package/dist/client-Do8v1I5l.js +193 -0
  65. package/dist/collection/index.js +8 -8
  66. package/dist/config/index.d.ts +21 -1
  67. package/dist/content/StatSummary.vue.d.ts +40 -0
  68. package/dist/content/index.d.ts +1 -0
  69. package/dist/content/index.js +245 -176
  70. package/dist/{contributions-obnyn03x.js → contributions-9CPT-Z5v.js} +1 -1
  71. package/dist/{current-B0lHKTWr.js → current-CslcEPXp.js} +8 -4
  72. package/dist/dialogStack-DbO4IiAq.js +46 -0
  73. package/dist/eslint/index.js +2 -2
  74. package/dist/form/index.js +22 -22
  75. package/dist/form/useForm.d.ts +1 -1
  76. package/dist/{guards-DGcSfTEh.js → guards-6fJxfUtk.js} +1 -1
  77. package/dist/{http-DOEfFCDA.js → http-D6qOS6xs.js} +1 -1
  78. package/dist/i18n/index.d.ts +5 -1
  79. package/dist/i18n/index.js +14 -13
  80. package/dist/i18n/serverMessages.d.ts +15 -1
  81. package/dist/identity/index.js +2 -2
  82. package/dist/incidents/index.js +1 -1
  83. package/dist/{index-D-2NNye6.js → index-D5DuvKP1.js} +24 -24
  84. package/dist/{index-Crz-j_Hu.js → index-_hDHxrt5.js} +105 -105
  85. package/dist/{index-DNeIZpXo.js → index-vES_D5ls.js} +8 -8
  86. package/dist/index.d.ts +1 -1
  87. package/dist/index.js +1 -1
  88. package/dist/modal/index.js +5 -5
  89. package/dist/{navigation-CctcxT51.js → navigation-DMJ6akat.js} +1 -1
  90. package/dist/{neighbors-Csfan8Ho.js → neighbors-DrEahe7B.js} +1 -1
  91. package/dist/notifications/index.js +1 -1
  92. package/dist/onboarding/index.js +1 -1
  93. package/dist/overlay/dialogStack.d.ts +3 -0
  94. package/dist/overlay/index.js +7 -7
  95. package/dist/page/index.js +4 -4
  96. package/dist/phone/index.d.ts +1 -1
  97. package/dist/phone/index.js +153 -141
  98. package/dist/phone/phone.d.ts +6 -0
  99. package/dist/platform/index.js +3 -3
  100. package/dist/{platform-DtISOEt7.js → platform-ORzRR3Tw.js} +1 -1
  101. package/dist/pwa/index.js +2 -2
  102. package/dist/resource/index.js +2 -2
  103. package/dist/router/index.js +3 -3
  104. package/dist/{rowLayout-Ohh5ng1u.js → rowLayout-QKfNHsML.js} +2 -2
  105. package/dist/{sections-fkW_IJLc.js → sections-DI_JhgQG.js} +1 -1
  106. package/dist/serverMessages-Ce8-MK4e.js +30 -0
  107. package/dist/shell/index.js +11 -11
  108. package/dist/{shortcut-DUR6yPWA.js → shortcut-oixX55SZ.js} +1 -1
  109. package/dist/state/index.js +2 -2
  110. package/dist/{state-CXMexi0l.js → state-QDaxntgR.js} +1 -1
  111. package/dist/styles.css +1 -1
  112. package/dist/testing/index.js +2 -2
  113. package/dist/{useCommand-Ch_nx1AQ.js → useCommand-DAMgQ5NE.js} +5 -5
  114. package/dist/{useDialog-DfNmqM-0.js → useDialog-B4_MpX2v.js} +1 -1
  115. package/dist/{useGroupSheet-CPjHydQV.js → useGroupSheet-Qqo3ywsS.js} +3 -3
  116. package/dist/{usePreferences-B8LIZp_f.js → usePreferences-BfMXVbSO.js} +1 -1
  117. package/dist/{useRecordDialog-DdkauXnU.js → useRecordDialog-QPKFH1Ww.js} +1 -1
  118. package/dist/{useResourceForm-Dl6YFYyz.js → useResourceForm-Oa6bk3NI.js} +1 -1
  119. package/dist/{useTypedEntry-tttjrClq.js → useTypedEntry-CITij2C_.js} +1 -1
  120. package/package.json +1 -1
  121. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js +0 -427
  122. package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DDcaju7L.js +0 -127
  123. package/dist/client-Dg303Pmc.js +0 -193
  124. package/dist/dialogStack-B5G6xHq0.js +0 -36
  125. package/dist/serverMessages-DnTqVS3h.js +0 -25
@@ -1,4 +1,18 @@
1
1
  import type { FormFailureKind } from "../form";
2
+ export interface ServerMessagesOptions {
3
+ /**
4
+ * The namespaces of the keys the server's validator writes (`validation_errors.required`): a field message that starts with one
5
+ * (and a dot) is a key, said with the app's text for it, else the library's `core.<key>`. Default `["validation_errors"]` (go-core's);
6
+ * `[]` leaves every such message as sent. A rule whose text needs a parameter the server does not send (`min`, `max`, `min_value`,
7
+ * `max_value`, `between`, `in`, `not_in`) reads as the namespace's `out_of_range`.
8
+ */
9
+ readonly prefixes?: readonly string[];
10
+ }
11
+ /** `describeFieldError` over a translator: the validator's keys by `prefixes`, then the app's `errors.<reason>` and the library's `core.errors.<reason>`; other text as sent. */
12
+ export declare function fieldMessageWith({ t, te }: {
13
+ t(key: string): string;
14
+ te(key: string): boolean;
15
+ }, { prefixes }?: ServerMessagesOptions): (message: string) => string;
2
16
  /**
3
17
  * What a form needs to speak any go-core refusal, in the app's language (an app's `errors.<reason>` first, then
4
18
  * `core.errors.<reason>`): the reason of a field (`identity.email.taken`) becomes a sentence (`describeFieldError`); a refusal of
@@ -9,7 +23,7 @@ import type { FormFailureKind } from "../form";
9
23
  * const messages = useServerMessages();
10
24
  * useForm({ ...messages, failureMessage: (kind, error) => myRefusal(error) ?? messages.failureMessage(kind, error), defaults, validator });
11
25
  */
12
- export declare function useServerMessages(): {
26
+ export declare function useServerMessages(options?: ServerMessagesOptions): {
13
27
  sentence: (error: unknown, fallback?: string) => string;
14
28
  describeFieldError: (message: string) => string;
15
29
  failureMessage: (kind: FormFailureKind, error: unknown) => string | undefined;
@@ -1,7 +1,7 @@
1
1
  import { i as a } from "../preferences-hYhrw8Uy.js";
2
- import { k as o, r as n, t as i, P as r, j as u, h as c, _ as d, q as S, i as g, U as A, v as f, w as l, x as p, y as m, z as I, A as R, o as x, B as y, C as P, n as U, s as v, e as D, g as E, b, f as w, D as F, E as B, c as C } from "../index-D-2NNye6.js";
2
+ import { k as o, r as n, t as i, P as r, j as u, h as c, _ as d, q as S, i as g, U as A, v as f, w as l, x as p, y as m, z as I, A as R, o as x, B as y, C as P, n as U, s as v, e as D, g as E, b, f as w, D as F, E as B, c as C } from "../index-D5DuvKP1.js";
3
3
  import { a as T, _ } from "../ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
4
- import { i as k, l as N, r as O, s as j, a as q, u as z } from "../usePreferences-B8LIZp_f.js";
4
+ import { i as k, l as N, r as O, s as j, a as q, u as z } from "../usePreferences-BfMXVbSO.js";
5
5
  import { s as K } from "../routes-Beyr5NQo.js";
6
6
  export {
7
7
  T as ActionRow,
@@ -1,4 +1,4 @@
1
- import { h as t, j as i, k as r, l as n, i as a } from "../index-Crz-j_Hu.js";
1
+ import { h as t, j as i, k as r, l as n, i as a } from "../index-_hDHxrt5.js";
2
2
  export {
3
3
  t as MAX_REPORTS_PER_SESSION,
4
4
  i as clientErrorReporter,
@@ -8,34 +8,34 @@ import { a as Y } from "./error-CD7x0Jrz.js";
8
8
  import { u as pe } from "./environment-Dva-SG8D.js";
9
9
  import { u as B } from "./describeError-B-NMa--w.js";
10
10
  import { t as z } from "./toast-CqSDTWRX.js";
11
- import { u as I, h as W, f as te } from "./platform-DtISOEt7.js";
12
- import { i as H, r as qe, l as Fe, s as Ne, a as Be } from "./usePreferences-B8LIZp_f.js";
11
+ import { u as I, h as W, f as te } from "./platform-ORzRR3Tw.js";
12
+ import { i as H, r as qe, l as Fe, s as Ne, a as Be } from "./usePreferences-BfMXVbSO.js";
13
13
  import { useI18n as C } from "vue-i18n";
14
14
  import { _ as fe } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
15
15
  import { useRouter as ge, useRoute as Ve, RouterLink as Me } from "vue-router";
16
16
  import { _ as _e } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
17
- import { _ as T } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
17
+ import { _ as T } from "./Button.vue_vue_type_script_setup_true_lang-JrqhO99l.js";
18
18
  import { u as De } from "./leaveGuard-Cc8yeLxM.js";
19
- import { _ as We } from "./FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js";
19
+ import { _ as We } from "./FormView.vue_vue_type_script_setup_true_lang-Bq_Qa4py.js";
20
20
  import { _ as L } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
21
21
  import { u as Ge } from "./mediaQuery-CygcXmFW.js";
22
- import { u as Xe } from "./useDialog-DfNmqM-0.js";
22
+ import { u as Xe } from "./useDialog-B4_MpX2v.js";
23
23
  import { c as Ye } from "./closeOverlays-CjVsIrpL.js";
24
- import { u as He, a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
24
+ import { u as He, a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-dsO1m9Mm.js";
25
25
  import { u as J } from "./format-Cp1h0vsC.js";
26
26
  import { b as Je } from "./routeResource-DlTsGTg_.js";
27
27
  import { _ as F } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
28
28
  import { g as U } from "./options-B48UiYsG.js";
29
- import { u as he, _ as be } from "./useCommand-Ch_nx1AQ.js";
30
- import { u as ye } from "./serverMessages-DnTqVS3h.js";
31
- import { _ as Qe } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
32
- import { d as Ze, r as et } from "./http-DOEfFCDA.js";
29
+ import { u as he, _ as be } from "./useCommand-DAMgQ5NE.js";
30
+ import { u as ye } from "./serverMessages-Ce8-MK4e.js";
31
+ import { _ as Qe } from "./SelectField.vue_vue_type_script_setup_true_lang-CLkoPbGm.js";
32
+ import { d as Ze, r as et } from "./http-D6qOS6xs.js";
33
33
  import { z as r } from "zod";
34
34
  import "./ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js";
35
35
  import { _ as G } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
36
- import { _ as tt } from "./DataTable.vue_vue_type_script_setup_true_lang-J3PhyJAS.js";
36
+ import { _ as tt } from "./DataTable.vue_vue_type_script_setup_true_lang-DbRS37n3.js";
37
37
  import { _ as nt } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
38
- import { _ as st } from "./AccessGate.vue_vue_type_script_setup_true_lang-DEzXovsY.js";
38
+ import { _ as st } from "./AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js";
39
39
  import "./routes-Beyr5NQo.js";
40
40
  const [ot, ve] = N("vue-core.identity"), rt = { hidden: "" }, at = /* @__PURE__ */ $({
41
41
  __name: "LocaleSync",
@@ -246,7 +246,7 @@ const ft = ["aria-labelledby"], gt = ["id"], _t = { class: "mt-1 text-subheadlin
246
246
  ]));
247
247
  }
248
248
  }), wt = X({
249
- login: { name: "login", path: "/login", component: () => import("./SignInPage-BCNGI871.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
249
+ login: { name: "login", path: "/login", component: () => import("./SignInPage-C9--4P11.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
250
250
  });
251
251
  function Xn(e = {}) {
252
252
  return ne({
@@ -381,7 +381,7 @@ function Hn(e) {
381
381
  };
382
382
  }
383
383
  const ke = X({
384
- index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-DApTxq8C.js"), meta: { titleKey: "core.profile.title" } }
384
+ index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-7Xk2hsNL.js"), meta: { titleKey: "core.profile.title" } }
385
385
  }), At = /* @__PURE__ */ $({
386
386
  __name: "ProfileMenuItem",
387
387
  setup(e) {
@@ -412,19 +412,19 @@ function jt(e, n) {
412
412
  return [...e.flatMap((s) => [s, ...o(s)]), ...n.filter((s) => s.after === void 0).map((s) => ce(s))];
413
413
  }
414
414
  const le = "iam.user:view", ts = "iam.user:manage", Kt = "iam.user.activity:view", Se = X({
415
- index: { name: "users.index", path: "/users", component: () => import("./UsersList-KMgImERy.js"), meta: { access: le, titleKey: "core.users.title" } },
415
+ index: { name: "users.index", path: "/users", component: () => import("./UsersList-C6u3YCCp.js"), meta: { access: le, titleKey: "core.users.title" } },
416
416
  record: {
417
417
  name: "users.record",
418
418
  path: "/users/:id",
419
- component: () => import("./UserRecord-B0kG0-Tm.js"),
419
+ component: () => import("./UserRecord-L3ahHNjb.js"),
420
420
  meta: { access: le, titleKey: "core.users.title", remountOnParam: "id" },
421
421
  children: [
422
- { name: "users.record.general", path: "general", component: () => import("./General-v_24-zZw.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
423
- { name: "users.record.signin", path: "signin", component: () => import("./SignIn-D6tWsKf0.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
424
- { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-CTjzMfNg.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
425
- { name: "users.record.signins", path: "signins", component: () => import("./SignIns-BxGGA99u.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
426
- { name: "users.record.changes", path: "changes", component: () => import("./Changes-CSaHgVuz.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
427
- { name: "users.record.activity", path: "activity", component: () => import("./Activity-C0HUEDUz.js"), meta: { access: Kt, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
422
+ { name: "users.record.general", path: "general", component: () => import("./General-Bu_ZIVbk.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
423
+ { name: "users.record.signin", path: "signin", component: () => import("./SignIn-m6PANavm.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
424
+ { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-Bv5GU5Oi.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
425
+ { name: "users.record.signins", path: "signins", component: () => import("./SignIns-BhLnkY08.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
426
+ { name: "users.record.changes", path: "changes", component: () => import("./Changes-Dsar4rXS.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
427
+ { name: "users.record.activity", path: "activity", component: () => import("./Activity-RAk3h7Aa.js"), meta: { access: Kt, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
428
428
  ]
429
429
  }
430
430
  });
@@ -1153,11 +1153,11 @@ const Jt = ["title"], Qt = { class: "font-mono" }, cs = /* @__PURE__ */ $({
1153
1153
  }, 8, ["permission"])) : k("", !0);
1154
1154
  }
1155
1155
  }), [cn, ms] = N("vue-core.serviceaccounts"), ue = "iam.serviceaccount:view", ps = "iam.serviceaccount:manage", fs = "iam.serviceaccount:revoke", de = X({
1156
- index: { name: "serviceaccounts.index", path: "/iam/service-accounts", component: () => import("./ServiceAccountsList-CdSsqTGt.js"), meta: { access: ue, titleKey: "core.serviceaccounts.title_plural" } },
1156
+ index: { name: "serviceaccounts.index", path: "/iam/service-accounts", component: () => import("./ServiceAccountsList-D-YqPi_h.js"), meta: { access: ue, titleKey: "core.serviceaccounts.title_plural" } },
1157
1157
  record: {
1158
1158
  name: "serviceaccounts.record",
1159
1159
  path: "/iam/service-accounts/:id",
1160
- component: () => import("./ServiceAccountRecord-D_HduQoK.js"),
1160
+ component: () => import("./ServiceAccountRecord-Caj7mo3A.js"),
1161
1161
  meta: { access: ue, titleKey: "core.serviceaccounts.title_plural", remountOnParam: "id" }
1162
1162
  }
1163
1163
  });
@@ -1,21 +1,21 @@
1
1
  import { r as _ } from "./route-goWMxDUN.js";
2
- import { d as V, p as U } from "./feature-DdUAfyi4.js";
3
- import { defineComponent as A, computed as O, onMounted as L, watch as X, openBlock as S, createBlock as I, unref as e, withCtx as y, createElementVNode as B, createVNode as c, mergeProps as l, createCommentVNode as R, ref as G } from "vue";
4
- import { d as F } from "./context-Ch1r4fdN.js";
5
- import { useI18n as M } from "vue-i18n";
6
- import { a as N } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
7
- import { _ as j } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
2
+ import { d as $, p as V } from "./feature-DdUAfyi4.js";
3
+ import { defineComponent as y, computed as k, onMounted as U, watch as L, openBlock as S, createBlock as I, unref as e, withCtx as T, createElementVNode as X, createVNode as c, mergeProps as l, createCommentVNode as A, ref as B } from "vue";
4
+ import { d as G } from "./context-Ch1r4fdN.js";
5
+ import { useI18n as q } from "vue-i18n";
6
+ import { a as O } from "./FormGroup.vue_vue_type_script_setup_true_lang-dsO1m9Mm.js";
7
+ import { _ as F } from "./SelectField.vue_vue_type_script_setup_true_lang-CLkoPbGm.js";
8
8
  import { _ as b } from "./TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js";
9
9
  import { _ as w } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
10
- import { u as K, _ as z } from "./useCommand-Ch_nx1AQ.js";
11
- import { t as H } from "./toast-CqSDTWRX.js";
12
- import { u as C } from "./platform-DtISOEt7.js";
13
- import { d as Q, r as W, a as Y } from "./http-DOEfFCDA.js";
14
- import { _ as J } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
15
- import { d as Z } from "./defineRoutes-BGAdiIrt.js";
16
- import { d as ee } from "./application-CrXtiGdw.js";
17
- import { R as te } from "./client-Dg303Pmc.js";
18
- import { a as ne } from "./error-CD7x0Jrz.js";
10
+ import { u as j, _ as K } from "./useCommand-DAMgQ5NE.js";
11
+ import { t as z } from "./toast-CqSDTWRX.js";
12
+ import { u as R } from "./platform-ORzRR3Tw.js";
13
+ import { d as H, r as Q, a as W } from "./http-D6qOS6xs.js";
14
+ import { _ as Y } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
15
+ import { d as J } from "./defineRoutes-BGAdiIrt.js";
16
+ import { d as Z } from "./application-C900Wz0A.js";
17
+ import { R as ee } from "./client-Do8v1I5l.js";
18
+ import { a as te } from "./error-CD7x0Jrz.js";
19
19
  const g = {
20
20
  index: _("GET", "/v1/incidents", { permission: "incident:view" }),
21
21
  show: _("GET", "/v1/incidents/:incidentID", { permission: "incident:view" }),
@@ -25,19 +25,19 @@ const g = {
25
25
  comment: _("POST", "/v1/incidents/:incidentID/comments", { permission: "incident:create" }),
26
26
  update: _("PATCH", "/v1/incidents/:incidentID", { permission: "incident:update" }),
27
27
  clientError: _("POST", "/v1/incidents/client-errors")
28
- }, [ie, D] = F("vue-core.incidents"), P = "incident:view", se = "incident:create", je = "incident:update", re = "incident:manage";
29
- function Ke(t) {
30
- return Q({
28
+ }, [ne, C] = G("vue-core.incidents"), N = "incident:view", ie = "incident:create", Fe = "incident:update", se = "incident:manage";
29
+ function je(t) {
30
+ return H({
31
31
  id: "incidents",
32
32
  stateVersion: 1,
33
- load: async (n, { signal: s }) => W(await t.request(g.index, Y(n), { signal: s }), n),
33
+ load: async (n, { signal: s }) => Q(await t.request(g.index, W(n), { signal: s }), n),
34
34
  key: (n) => n.id,
35
35
  query: { sorts: ["title", "last_seen_at"], filters: ["created_at", "status", "severity", "source"] },
36
36
  defaults: { sort: "last_seen_at", direction: "desc" }
37
37
  });
38
38
  }
39
- const oe = 10, T = (t) => ({ headers: { "Idempotency-Key": t } });
40
- function ae(t) {
39
+ const re = 10;
40
+ function oe(t) {
41
41
  return {
42
42
  show: async (n, s) => {
43
43
  const { data: r, meta: o } = await t.request(g.show, { incidentID: n }, s);
@@ -45,18 +45,18 @@ function ae(t) {
45
45
  },
46
46
  /** One page of an incident's occurrences, newest first (`incident:manage`). */
47
47
  occurrences: async (n, s, r) => {
48
- const { data: o, meta: i } = await t.request(g.occurrences, { incidentID: n, page: s, per_page: oe }, r);
48
+ const { data: o, meta: i } = await t.request(g.occurrences, { incidentID: n, page: s, per_page: re }, r);
49
49
  return { rows: o, meta: i };
50
50
  },
51
51
  /** The whole management form; the answer is the stored incident (without its people: the page reads again for them). */
52
- update: async (n, s, r) => (await t.request(g.update, { ...s, incidentID: n }, T(r))).data,
52
+ update: async (n, s, r) => (await t.request(g.update, { ...s, incidentID: n }, { idempotencyKey: r })).data,
53
53
  /** A report: the incident it opened or joined. */
54
- report: async (n, s) => (await t.request(g.report, n, T(s))).data.data,
55
- comment: async (n, s, r) => (await t.request(g.comment, { ...s, incidentID: n }, T(r))).data
54
+ report: async (n, s) => (await t.request(g.report, n, { idempotencyKey: s })).data.data,
55
+ comment: async (n, s, r) => (await t.request(g.comment, { ...s, incidentID: n }, { idempotencyKey: r })).data
56
56
  };
57
57
  }
58
- const ce = () => ae(C().http);
59
- function de(t, n) {
58
+ const ae = () => oe(R().http);
59
+ function ce(t, n) {
60
60
  return {
61
61
  safeParse(s) {
62
62
  const r = s, o = t.filter((i) => String(r[i] ?? "").trim() === "").map((i) => ({ path: [i], message: n }));
@@ -64,7 +64,7 @@ function de(t, n) {
64
64
  }
65
65
  };
66
66
  }
67
- function le(t) {
67
+ function de(t) {
68
68
  return {
69
69
  title: "",
70
70
  description: "",
@@ -82,8 +82,8 @@ function le(t) {
82
82
  extra_json: ""
83
83
  };
84
84
  }
85
- const ze = () => ({ body: "", visibility: "public" });
86
- function He() {
85
+ const Ke = () => ({ body: "", visibility: "public" });
86
+ function ze() {
87
87
  return {
88
88
  status: "",
89
89
  severity: "",
@@ -96,7 +96,7 @@ function He() {
96
96
  external_ticket_url: ""
97
97
  };
98
98
  }
99
- function Qe({ incident: t }) {
99
+ function He({ incident: t }) {
100
100
  return {
101
101
  status: t.status,
102
102
  severity: t.severity,
@@ -109,68 +109,68 @@ function Qe({ incident: t }) {
109
109
  external_ticket_url: t.external_ticket_url ?? ""
110
110
  };
111
111
  }
112
- const We = {
112
+ const Qe = {
113
113
  new: "core.incidents.statuses.new",
114
114
  triaged: "core.incidents.statuses.triaged",
115
115
  in_progress: "core.incidents.statuses.in_progress",
116
116
  resolved: "core.incidents.statuses.resolved",
117
117
  ignored: "core.incidents.statuses.ignored",
118
118
  duplicate: "core.incidents.statuses.duplicate"
119
- }, ue = {
119
+ }, le = {
120
120
  low: "core.incidents.severities.low",
121
121
  medium: "core.incidents.severities.medium",
122
122
  high: "core.incidents.severities.high",
123
123
  critical: "core.incidents.severities.critical"
124
- }, Ye = {
124
+ }, We = {
125
125
  user_report: "core.incidents.sources.user_report",
126
126
  runtime_error: "core.incidents.sources.runtime_error",
127
127
  client_error: "core.incidents.sources.client_error",
128
128
  mixed: "core.incidents.sources.mixed"
129
- }, Je = {
129
+ }, Ye = {
130
130
  new: "info",
131
131
  triaged: "warning",
132
132
  in_progress: "warning",
133
133
  resolved: "positive",
134
134
  ignored: "neutral",
135
135
  duplicate: "neutral"
136
- }, Ze = {
136
+ }, Je = {
137
137
  low: "neutral",
138
138
  medium: "info",
139
139
  high: "warning",
140
140
  critical: "critical"
141
- }, me = {
141
+ }, ue = {
142
142
  class: "flex flex-col gap-group-gap",
143
143
  "data-test": "incident-report"
144
- }, _e = /* @__PURE__ */ A({
144
+ }, me = /* @__PURE__ */ y({
145
145
  __name: "ReportDialog",
146
146
  props: {
147
147
  autoOpen: { type: Boolean }
148
148
  },
149
149
  emits: ["created", "close"],
150
150
  setup(t, { expose: n, emit: s }) {
151
- const r = t, o = s, { t: i } = M(), { access: d } = C(), u = ce(), { appVersion: E } = D(), h = O(() => d.can(re)), x = O(() => Object.entries(ue).map(([m, v]) => ({ value: m, label: i(v) }))), p = K({
152
- defaults: () => le(E),
153
- validator: de(["title", "description"], i("core.account.validation.required")),
151
+ const r = t, o = s, { t: i } = q(), { access: d } = R(), u = ae(), { appVersion: E } = C(), h = k(() => d.can(se)), x = k(() => Object.entries(le).map(([m, v]) => ({ value: m, label: i(v) }))), p = j({
152
+ defaults: () => de(E),
153
+ validator: ce(["title", "description"], i("core.account.validation.required")),
154
154
  run: (m, { idempotencyKey: v }) => u.report(m, v),
155
155
  done: (m) => {
156
- H.success(i("core.incidents.toasts.report_success")), o("created", m);
156
+ z.success(i("core.incidents.toasts.report_success")), o("created", m);
157
157
  }
158
- }), a = p.form, k = () => p.present(), $ = () => p.dismiss();
159
- return L(() => {
160
- r.autoOpen && k();
161
- }), X(() => p.open.value, (m, v) => {
158
+ }), a = p.form, D = () => p.present(), M = () => p.dismiss();
159
+ return U(() => {
160
+ r.autoOpen && D();
161
+ }), L(() => p.open.value, (m, v) => {
162
162
  v && !m && o("close");
163
- }), n({ show: k, hide: $ }), (m, v) => (S(), I(e(z), {
163
+ }), n({ show: D, hide: M }), (m, v) => (S(), I(e(K), {
164
164
  command: e(p),
165
165
  size: "md",
166
166
  title: e(i)("core.incidents.report_modal.title"),
167
167
  subtitle: e(i)("core.incidents.report_modal.description"),
168
168
  "confirm-label": e(i)("core.incidents.report_modal.submit")
169
169
  }, {
170
- default: y(() => [
171
- B("div", me, [
172
- c(e(N), null, {
173
- default: y(() => [
170
+ default: T(() => [
171
+ X("div", ue, [
172
+ c(e(O), null, {
173
+ default: T(() => [
174
174
  c(e(w), l(e(a).bind("title"), {
175
175
  label: e(i)("core.incidents.fields.title"),
176
176
  required: "",
@@ -182,18 +182,18 @@ const We = {
182
182
  rows: 4,
183
183
  "max-length": 2e4
184
184
  }), null, 16, ["label"]),
185
- c(e(j), l(e(a).bind("severity"), {
185
+ c(e(F), l(e(a).bind("severity"), {
186
186
  label: e(i)("core.incidents.fields.severity"),
187
187
  options: x.value
188
188
  }), null, 16, ["label", "options"])
189
189
  ]),
190
190
  _: 1
191
191
  }),
192
- h.value ? (S(), I(e(N), {
192
+ h.value ? (S(), I(e(O), {
193
193
  key: 0,
194
194
  header: e(i)("core.incidents.report_modal.advanced_fields")
195
195
  }, {
196
- default: y(() => [
196
+ default: T(() => [
197
197
  c(e(w), l(e(a).bind("affected_module"), {
198
198
  label: e(i)("core.incidents.fields.affected_module"),
199
199
  "max-length": 100
@@ -237,80 +237,80 @@ const We = {
237
237
  }), null, 16, ["label"])
238
238
  ]),
239
239
  _: 1
240
- }, 8, ["header"])) : R("", !0)
240
+ }, 8, ["header"])) : A("", !0)
241
241
  ])
242
242
  ]),
243
243
  _: 1
244
244
  }, 8, ["command", "title", "subtitle", "confirm-label"]));
245
245
  }
246
- }), pe = /* @__PURE__ */ A({
246
+ }), _e = /* @__PURE__ */ y({
247
247
  __name: "ReportHost",
248
248
  setup(t) {
249
- const { reporting: n } = D(), s = () => {
249
+ const { reporting: n } = C(), s = () => {
250
250
  n.value = !1;
251
251
  };
252
- return (r, o) => e(n) ? (S(), I(_e, {
252
+ return (r, o) => e(n) ? (S(), I(me, {
253
253
  key: 0,
254
254
  "auto-open": "",
255
255
  onClose: s
256
- })) : R("", !0);
256
+ })) : A("", !0);
257
257
  }
258
- }), fe = /* @__PURE__ */ A({
258
+ }), pe = /* @__PURE__ */ y({
259
259
  __name: "ReportMenuItem",
260
260
  setup(t) {
261
- const { t: n } = M(), { access: s } = C(), r = D();
262
- return (o, i) => e(s).can(e(se)) ? (S(), I(J, {
261
+ const { t: n } = q(), { access: s } = R(), r = C();
262
+ return (o, i) => e(s).can(e(ie)) ? (S(), I(Y, {
263
263
  key: 0,
264
264
  label: e(n)("core.incidents.report_modal.menu"),
265
265
  icon: "alertTriangle",
266
266
  "data-incident-report-menu-item": "",
267
267
  onClick: i[0] || (i[0] = (d) => e(r).reporting.value = !0)
268
- }, null, 8, ["label"])) : R("", !0);
268
+ }, null, 8, ["label"])) : A("", !0);
269
269
  }
270
- }), q = Z({
271
- index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-BqzRU5cZ.js"), meta: { access: P, titleKey: "core.incidents.title" } },
270
+ }), P = J({
271
+ index: { name: "incidents.index", path: "/incidents", component: () => import("./IncidentsList-DwQ0wuM8.js"), meta: { access: N, titleKey: "core.incidents.title" } },
272
272
  details: {
273
273
  name: "incidents.details",
274
274
  path: "/incidents/:incidentID",
275
- component: () => import("./IncidentRecord-BwSBNE37.js"),
275
+ component: () => import("./IncidentRecord-CQdv_bN5.js"),
276
276
  // Previous / next record swaps the id in place.
277
- meta: { access: P, titleKey: "core.incidents.title", remountOnParam: "incidentID" }
277
+ meta: { access: N, titleKey: "core.incidents.title", remountOnParam: "incidentID" }
278
278
  }
279
279
  });
280
- function et(t = {}) {
281
- return V({
280
+ function Ze(t = {}) {
281
+ return $({
282
282
  id: "incidents",
283
- routes: q.records,
284
- context: U(ie, { reporting: G(!1), appVersion: t.appVersion ?? "" }),
285
- navigation: t.destination ? [{ destination: t.destination, to: q.index, within: ["incidents.details"] }] : [],
283
+ routes: P.records,
284
+ context: V(ne, { reporting: B(!1), appVersion: t.appVersion ?? "" }),
285
+ navigation: t.destination ? [{ destination: t.destination, to: P.index, within: ["incidents.details"] }] : [],
286
286
  contributions: [
287
- { id: "incidents.report-menu", slot: "accountMenu", component: fe, scope: "authenticated", order: 40, optional: !0 },
288
- { id: "incidents.report-host", slot: "host", component: pe, scope: "authenticated", optional: !0 }
287
+ { id: "incidents.report-menu", slot: "accountMenu", component: pe, scope: "authenticated", order: 40, optional: !0 },
288
+ { id: "incidents.report-host", slot: "host", component: _e, scope: "authenticated", optional: !0 }
289
289
  ]
290
290
  });
291
291
  }
292
- const ge = 2e3, ve = 2e4, be = 255, Ee = 500, he = 100, we = 100, xe = 255, Se = 20, Ie = /* @__PURE__ */ new Set(["vue", "unhandledrejection", "window", "handled"]), f = (t, n) => t.slice(0, n), ye = (t) => /^script error\.?$/i.test(t.trim()), Te = (t) => t.split(`
292
+ const fe = 2e3, ge = 2e4, ve = 255, be = 500, Ee = 100, he = 100, we = 255, xe = 20, Se = /* @__PURE__ */ new Set(["vue", "unhandledrejection", "window", "handled"]), f = (t, n) => t.slice(0, n), Ie = (t) => /^script error\.?$/i.test(t.trim()), Te = (t) => t.split(`
293
293
  `).find((n) => /^\s*at\s|@\S/.test(n))?.trim() ?? "";
294
- function tt(t) {
295
- const { platform: n, appVersion: s = "", onError: r = ee } = t, o = /* @__PURE__ */ new Set();
294
+ function et(t) {
295
+ const { platform: n, appVersion: s = "", onError: r = Z } = t, o = /* @__PURE__ */ new Set();
296
296
  function i(d) {
297
297
  const { error: u } = d;
298
- if (!Ie.has(d.source) || !(u instanceof Error) || ne(u) || u.message.trim() === "" || ye(u.message)) return;
298
+ if (!Se.has(d.source) || !(u instanceof Error) || te(u) || u.message.trim() === "" || Ie(u.message)) return;
299
299
  const E = t.origin ?? globalThis.location?.origin, h = u.stack ?? "";
300
300
  if (!E || E === "null" || !h.includes(`${E}/`) || n.session.state.value.status !== "authenticated") return;
301
301
  const x = `${u.message}
302
302
  ${Te(h)}`;
303
- if (o.has(x) || o.size >= Se) return;
303
+ if (o.has(x) || o.size >= xe) return;
304
304
  o.add(x);
305
305
  const p = {
306
- message: f(u.message, ge),
306
+ message: f(u.message, fe),
307
307
  source: d.source,
308
- ...d.detail && { detail: f(d.detail, xe) },
309
- stack: f(h, ve),
310
- route: f((d.route ?? "").split(/[?#]/)[0] ?? "", be),
311
- browser: f(globalThis.navigator?.userAgent ?? "", Ee),
312
- app_version: f(s, he),
313
- request_ids: n.http.recentRequestIds().slice(-te).map((a) => f(a, we))
308
+ ...d.detail && { detail: f(d.detail, we) },
309
+ stack: f(h, ge),
310
+ route: f((d.route ?? "").split(/[?#]/)[0] ?? "", ve),
311
+ browser: f(globalThis.navigator?.userAgent ?? "", be),
312
+ app_version: f(s, Ee),
313
+ request_ids: n.http.recentRequestIds().slice(-ee).map((a) => f(a, he))
314
314
  };
315
315
  n.http.request(g.clientError, p).catch(() => {
316
316
  });
@@ -324,24 +324,24 @@ ${Te(h)}`;
324
324
  };
325
325
  }
326
326
  export {
327
- se as C,
328
- re as M,
329
- Ye as S,
330
- je as U,
331
- _e as _,
332
- Ke as a,
333
- Je as b,
334
- We as c,
335
- Ze as d,
336
- ue as e,
337
- He as f,
338
- ze as g,
339
- Se as h,
340
- q as i,
341
- tt as j,
327
+ ie as C,
328
+ se as M,
329
+ We as S,
330
+ Fe as U,
331
+ me as _,
332
+ je as a,
333
+ Ye as b,
334
+ Qe as c,
335
+ Je as d,
336
+ le as e,
337
+ ze as f,
338
+ Ke as g,
339
+ xe as h,
340
+ P as i,
341
+ et as j,
342
342
  g as k,
343
- et as l,
344
- Qe as m,
345
- de as r,
346
- ce as u
343
+ Ze as l,
344
+ He as m,
345
+ ce as r,
346
+ ae as u
347
347
  };
@@ -2,20 +2,20 @@ import { r as v } from "./route-goWMxDUN.js";
2
2
  import { d as ve, p as me } from "./feature-DdUAfyi4.js";
3
3
  import { ref as C, readonly as $, defineComponent as q, openBlock as _, createBlock as U, unref as s, shallowRef as z, withCtx as A, createTextVNode as X, toDisplayString as L, mergeProps as Z, computed as N, createElementBlock as S, createElementVNode as P, createCommentVNode as R, createVNode as T, Fragment as G, renderList as be, normalizeClass as H, useTemplateRef as he, createSlots as ye } from "vue";
4
4
  import { d as ge } from "./context-Ch1r4fdN.js";
5
- import { u as ee } from "./platform-DtISOEt7.js";
5
+ import { u as ee } from "./platform-ORzRR3Tw.js";
6
6
  import { d as te } from "./defineRoutes-BGAdiIrt.js";
7
7
  import { useI18n as I } from "vue-i18n";
8
8
  import { _ as _e } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-BIYgaihv.js";
9
- import { f as xe } from "./client-Dg303Pmc.js";
9
+ import { f as xe } from "./client-Do8v1I5l.js";
10
10
  import { u as we } from "./mediaQuery-CygcXmFW.js";
11
- import { _ as ke } from "./Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js";
12
- import { _ as Se } from "./Popover.vue_vue_type_script_setup_true_lang-C20Hf3Hl.js";
11
+ import { _ as ke } from "./Sheet.vue_vue_type_script_setup_true_lang-BG8HUNfs.js";
12
+ import { _ as Se } from "./Popover.vue_vue_type_script_setup_true_lang-BK8HL_V0.js";
13
13
  import { _ as J } from "./HeaderAction.vue_vue_type_script_setup_true_lang-Da59TLBh.js";
14
14
  import { useRouter as Te } from "vue-router";
15
- import { _ as K } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
15
+ import { _ as K } from "./Button.vue_vue_type_script_setup_true_lang-JrqhO99l.js";
16
16
  import { u as Ee } from "./format-Cp1h0vsC.js";
17
17
  import { _ as Pe } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
18
- import { _ as Ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
18
+ import { _ as Ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-CX8mpXRE.js";
19
19
  const E = {
20
20
  list: v("GET", "/v1/notifications"),
21
21
  unread: v("GET", "/v1/notifications/unread"),
@@ -135,9 +135,9 @@ function Me(n = ee().http, t = W()) {
135
135
  return { state: $(e), hash: $(i), busy: $(a), inspect: c, enable: u, disable: g };
136
136
  }
137
137
  const Ne = "events.deadletter:view", $t = "events.deadletter:retry", Y = te({
138
- index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-CHX4Ypgy.js"), meta: { access: Ne, titleKey: "core.notifications.dead_letters.title" } }
138
+ index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-vt9vhJD7.js"), meta: { access: Ne, titleKey: "core.notifications.dead_letters.title" } }
139
139
  }), j = te({
140
- index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-CpqASf_D.js"), meta: { titleKey: "core.notifications.settings.title" } }
140
+ index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-lRWvsMYK.js"), meta: { titleKey: "core.notifications.settings.title" } }
141
141
  }), Oe = /* @__PURE__ */ q({
142
142
  __name: "SettingsMenuItem",
143
143
  setup(n) {
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** The version of @wssto2/vue-core (kept equal to package.json by index.test.ts). */
2
- export declare const version = "0.14.0";
2
+ export declare const version = "0.15.1";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.14.0";
1
+ const o = "0.15.1";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -1,10 +1,10 @@
1
- import { _ as G } from "../DiscardChangesModal.vue_vue_type_script_setup_true_lang-B3WbLyNb.js";
2
- import { _ as b } from "../Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js";
3
- import { m as O } from "../Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js";
4
- import { _ as T } from "../Sheet.vue_vue_type_script_setup_true_lang-B91aRD_y.js";
1
+ import { _ as G } from "../DiscardChangesModal.vue_vue_type_script_setup_true_lang-92szOrYd.js";
2
+ import { _ as b } from "../Modal.vue_vue_type_script_setup_true_lang-CZ7WrDwu.js";
3
+ import { m as O } from "../Modal.vue_vue_type_script_setup_true_lang-CZ7WrDwu.js";
4
+ import { _ as T } from "../Sheet.vue_vue_type_script_setup_true_lang-BG8HUNfs.js";
5
5
  import { defineComponent as y, ref as k, computed as v, openBlock as t, createBlock as w, unref as i, withCtx as S, createElementVNode as r, createElementBlock as o, Fragment as c, renderList as u, toDisplayString as l, createCommentVNode as C } from "vue";
6
6
  import { useI18n as B } from "vue-i18n";
7
- import { a as M, u as $ } from "../shortcut-DUR6yPWA.js";
7
+ import { a as M, u as $ } from "../shortcut-oixX55SZ.js";
8
8
  const j = {
9
9
  class: "flex flex-col gap-5",
10
10
  "data-test": "shortcut-help"
@@ -1,6 +1,6 @@
1
1
  import { computed as k } from "vue";
2
2
  import { d as y } from "./context-Ch1r4fdN.js";
3
- import { h as N } from "./platform-DtISOEt7.js";
3
+ import { h as N } from "./platform-ORzRR3Tw.js";
4
4
  function F(l, a = {}) {
5
5
  const i = /* @__PURE__ */ new Map(), o = [];
6
6
  for (const e of l) {
@@ -1,7 +1,7 @@
1
1
  import { computed as j, ref as z, shallowRef as I, watch as F, getCurrentScope as J, onScopeDispose as Q } from "vue";
2
2
  import { useRoute as O } from "vue-router";
3
3
  import { i as N } from "./error-CD7x0Jrz.js";
4
- import { L as k, d as B, e as D, o as U, q as V } from "./state-CXMexi0l.js";
4
+ import { L as k, d as B, e as D, o as U, q as V } from "./state-QDaxntgR.js";
5
5
  function K(l, t, n, g) {
6
6
  return typeof t == "string" ? t : { ...t, query: { ...t.query, [n]: D(l, g) } };
7
7
  }