@wssto2/vue-core 0.4.24 → 0.4.26

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 (58) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-DcbZBINh.js → AccessGate.vue_vue_type_script_setup_true_lang-J5HoyGNJ.js} +1 -1
  3. package/dist/{Activity-CI-l_OFl.js → Activity-B6R8Jghz.js} +2 -2
  4. package/dist/{Changes-BdR0R20V.js → Changes-BQG7IV49.js} +2 -2
  5. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-BNM_cbXa.js → CollectionPage.vue_vue_type_script_setup_true_lang-BrbQ0Y5d.js} +1 -1
  6. package/dist/{DeadLetters-CRTeoZS1.js → DeadLetters-CJZSWjsn.js} +4 -4
  7. package/dist/{General-hdmVP72B.js → General-tsRC866T.js} +2 -2
  8. package/dist/{NewRolePage-BPeKasOp.js → NewRolePage-L57Zg1Mg.js} +2 -2
  9. package/dist/PhotoViewer.vue_vue_type_script_setup_true_lang-CY5EZiyK.js +433 -0
  10. package/dist/{ProfilePage-Dq9lcO5O.js → ProfilePage-B9WUrImn.js} +2 -2
  11. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-B6g2760V.js → RoleEditor.vue_vue_type_script_setup_true_lang-Hr0WgL1K.js} +2 -2
  12. package/dist/{RolePage-BYH-0fVI.js → RolePage-uezn-Og1.js} +3 -3
  13. package/dist/{RolesPage-BRm5xDw7.js → RolesPage-DkMAJZR6.js} +2 -2
  14. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-BltrQnrQ.js → SectionNavigator.vue_vue_type_script_setup_true_lang-BYRc0-qh.js} +1 -1
  15. package/dist/{Sessions-B1eKG_I2.js → Sessions-BDu3nMmz.js} +2 -2
  16. package/dist/{SettingsPage-0P38Ty4w.js → SettingsPage-CA7YCy6K.js} +2 -2
  17. package/dist/{SignIn-Dp8Ji0_r.js → SignIn-DQzS20kM.js} +2 -2
  18. package/dist/{SignInPage-CiStJboK.js → SignInPage-ft3unWwX.js} +2 -2
  19. package/dist/{SignIns-Bo7R2Coi.js → SignIns-C3h_YIkc.js} +2 -2
  20. package/dist/{UserRecord-DGq_PPy1.js → UserRecord-BO5-wsYt.js} +5 -5
  21. package/dist/{UsersList-BulNu4aE.js → UsersList-D3b3DGN5.js} +4 -4
  22. package/dist/access/index.js +1 -1
  23. package/dist/app/index.js +5 -5
  24. package/dist/collection/index.js +3 -3
  25. package/dist/{contributions-DsfmDoRD.js → contributions-BVBZP5Jb.js} +1 -1
  26. package/dist/form/index.js +1 -1
  27. package/dist/{guards-Dve61KjR.js → guards-BJZjc3FZ.js} +1 -1
  28. package/dist/{http-D_D9YbLH.js → http-BFfkA7gN.js} +1 -1
  29. package/dist/identity/index.js +1 -1
  30. package/dist/{index-BmowiT1y.js → index-BVU76sBO.js} +12 -12
  31. package/dist/{index-tnSTp0cM.js → index-C3CzOub7.js} +2 -2
  32. package/dist/{index-Yy28omu6.js → index-CvJSAsfk.js} +5 -5
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.js +1 -1
  35. package/dist/{navigation-Cm3iChlR.js → navigation-DpcDF0rX.js} +1 -1
  36. package/dist/{neighbors-DVN_cADL.js → neighbors-RVQ4O3Qv.js} +1 -1
  37. package/dist/notifications/index.js +1 -1
  38. package/dist/overlay/PhotoViewer.vue.d.ts +4 -3
  39. package/dist/overlay/PhotoViewerAction.vue.d.ts +22 -0
  40. package/dist/overlay/index.d.ts +1 -0
  41. package/dist/overlay/index.js +47 -23
  42. package/dist/page/index.js +1 -1
  43. package/dist/platform/index.d.ts +25 -1
  44. package/dist/platform/index.js +59 -49
  45. package/dist/platform/platform.d.ts +9 -5
  46. package/dist/platform/session.d.ts +10 -0
  47. package/dist/platform/sessionUser.d.ts +8 -0
  48. package/dist/platform-PZpUkkMS.js +268 -0
  49. package/dist/router/index.js +3 -3
  50. package/dist/{sections-D-kD98vu.js → sections-CeZl-Jxg.js} +1 -1
  51. package/dist/shell/index.js +3 -3
  52. package/dist/{status-Bh3-Cg7o.js → status-8KH7PITT.js} +2 -2
  53. package/dist/styles.css +1 -1
  54. package/dist/testing/index.js +1 -1
  55. package/dist/testing/platform.d.ts +10 -7
  56. package/package.json +3 -2
  57. package/dist/PhotoViewer.vue_vue_type_script_setup_true_lang-QPCW3Xi6.js +0 -411
  58. package/dist/platform-q3cjODLx.js +0 -255
@@ -2,10 +2,10 @@ import { defineComponent as x, useTemplateRef as v, computed as w, ref as $, ope
2
2
  import { useI18n as N } from "vue-i18n";
3
3
  import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
4
  import { u as A } from "./describeError-B-NMa--w.js";
5
- import { P as D, b as L, e as O, i as g, d as T } from "./index-BmowiT1y.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-BVU76sBO.js";
6
6
  import { _ as k } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
7
7
  import { t as b } from "./toast-CqSDTWRX.js";
8
- import { u as V } from "./platform-q3cjODLx.js";
8
+ import { u as V } from "./platform-PZpUkkMS.js";
9
9
  import { b as I } from "./routeResource-DlTsGTg_.js";
10
10
  import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
11
11
  import { _ as z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
@@ -15,8 +15,8 @@ import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-BUrYkjmF.
15
15
  import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-DBxKAWRo.js";
16
16
  import { a as k, n as X } from "./useTypedEntry-C7k7Dyl-.js";
17
17
  import { _ as Y } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
18
- import { n as q } from "./index-tnSTp0cM.js";
19
- import { u as ee } from "./platform-q3cjODLx.js";
18
+ import { n as q } from "./index-C3CzOub7.js";
19
+ import { u as ee } from "./platform-PZpUkkMS.js";
20
20
  import { u as te } from "./useLoad-M7V-AVwR.js";
21
21
  function ne() {
22
22
  const { t: s, te: t } = v();
@@ -6,9 +6,9 @@ import { u as D } from "./format-D8X4zsx6.js";
6
6
  import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js";
7
7
  import { e as b } from "./control-B4SdblL6.js";
8
8
  import { u as U } from "./describeError-B-NMa--w.js";
9
- import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-BmowiT1y.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-BVU76sBO.js";
10
10
  import { t as h } from "./toast-CqSDTWRX.js";
11
- import { u as j, h as G } from "./platform-q3cjODLx.js";
11
+ import { u as j, h as G } from "./platform-PZpUkkMS.js";
12
12
  import { b as H } from "./routeResource-DlTsGTg_.js";
13
13
  import { _ as J } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
14
14
  import { _ as K } from "./ActionRow.vue_vue_type_script_setup_true_lang-QPvYudWc.js";
@@ -5,8 +5,8 @@ import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js
5
5
  import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
6
6
  import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-BUrYkjmF.js";
7
7
  import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js";
8
- import { r as $ } from "./guards-Dve61KjR.js";
9
- import { u as C, a as E } from "./index-BmowiT1y.js";
8
+ import { r as $ } from "./guards-BJZjc3FZ.js";
9
+ import { u as C, a as E } from "./index-BVU76sBO.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,7 +1,7 @@
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-BmowiT1y.js";
4
- import { u as k } from "./platform-q3cjODLx.js";
3
+ import { P as S, i as b } from "./index-BVU76sBO.js";
4
+ import { u as k } from "./platform-PZpUkkMS.js";
5
5
  import { b as I } from "./routeResource-DlTsGTg_.js";
6
6
  import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
7
7
  import { u as C } from "./useLoad-M7V-AVwR.js";
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as R, openBlock as q, createBlock as P, unref as e, withCtx as u, createVNode as t, mergeProps as L, provide as N, computed as g, useTemplateRef as $, createElementVNode as x, toDisplayString as C, createTextVNode as j } from "vue";
2
2
  import { useI18n as A } from "vue-i18n";
3
- import { a as F } from "./neighbors-DVN_cADL.js";
3
+ import { a as F } from "./neighbors-RVQ4O3Qv.js";
4
4
  import { _ as H } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
5
5
  import { u as J } from "./describeError-B-NMa--w.js";
6
- import { i as w, P as Q, p as W, f as X, M as Y, g as Z, d as ee } from "./index-BmowiT1y.js";
6
+ import { i as w, P as Q, p as W, f as X, M as Y, g as Z, d as ee } from "./index-BVU76sBO.js";
7
7
  import { _ as se } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
8
8
  import { t as k } from "./toast-CqSDTWRX.js";
9
- import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-BltrQnrQ.js";
10
- import { u as E } from "./platform-q3cjODLx.js";
9
+ import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-BYRc0-qh.js";
10
+ import { u as E } from "./platform-PZpUkkMS.js";
11
11
  import { a as te } from "./routeResource-DlTsGTg_.js";
12
12
  import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFaaFQSm.js";
13
13
  import { A as re } from "./access-DmAceEo5.js";
@@ -18,7 +18,7 @@ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5
18
18
  import { e as B } from "./control-B4SdblL6.js";
19
19
  import { u as z, _ as K } from "./useCommand-Cj-APj-P.js";
20
20
  import { u as U } from "./fieldMessages-6HVzSDqG.js";
21
- import { u as ce, s as le } from "./status-Bh3-Cg7o.js";
21
+ import { u as ce, s as le } from "./status-8KH7PITT.js";
22
22
  import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js";
23
23
  const ue = /* @__PURE__ */ R({
24
24
  __name: "DeactivateDialog",
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as U, openBlock as p, createBlock as C, unref as e, withCtx as c, createVNode as r, mergeProps as i, useTemplateRef as V, computed as q, createTextVNode as z, toDisplayString as $, createCommentVNode as A, createElementBlock as S, normalizeClass as N } from "vue";
2
2
  import { useI18n as B } from "vue-i18n";
3
3
  import { useRouter as M } from "vue-router";
4
- import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-BNM_cbXa.js";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-BrbQ0Y5d.js";
5
5
  import { _ as I } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
6
6
  import { u as F } from "./format-D8X4zsx6.js";
7
- import { u as L } from "./platform-q3cjODLx.js";
7
+ import { u as L } from "./platform-PZpUkkMS.js";
8
8
  import { _ as G } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
- import { i as K, f as E, M as W } from "./index-BmowiT1y.js";
10
- import { U as j, u as H, s as J } from "./status-Bh3-Cg7o.js";
9
+ import { i as K, f as E, M as W } from "./index-BVU76sBO.js";
10
+ import { U as j, u as H, s as J } from "./status-8KH7PITT.js";
11
11
  import { u as O } from "./environment-Dva-SG8D.js";
12
12
  import { u as Q } from "./languages-BShG9LpE.js";
13
13
  import { _ as X } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js";
@@ -1,4 +1,4 @@
1
- import { _ as a, i as c, j as o, c as r, b as n, k as i, l as u, p as l, m as p, n as t, u as d, f as m } from "../index-Yy28omu6.js";
1
+ import { _ as a, i as c, j as o, c as r, b as n, k as i, l as u, p as l, m as p, n as t, u as d, f as m } from "../index-CvJSAsfk.js";
2
2
  export {
3
3
  a as BindingRow,
4
4
  c as PersonAccess,
package/dist/app/index.js CHANGED
@@ -10,13 +10,13 @@ import { coreMessages as oe, createMessageRuntime as We } from "../i18n/index.js
10
10
  import { i as Be, a as He } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
11
11
  import { i as Ve, b as Ge } from "../bottomDock-BZEiOPYZ.js";
12
12
  import { i as Je, p as ze } from "../chrome-nUcmVu8G.js";
13
- import { i as Qe, g as Ue } from "../platform-q3cjODLx.js";
13
+ import { i as Qe, g as Ue } from "../platform-PZpUkkMS.js";
14
14
  import { c as Xe, A as Ye, r as re } from "../access-DmAceEo5.js";
15
15
  import { c as Ze, _ as et } from "../NoAccess.vue_vue_type_script_setup_true_lang-DWxq-MTM.js";
16
- import { i as tt } from "../guards-Dve61KjR.js";
17
- import { b as st, c as ot, n as ae } from "../navigation-Cm3iChlR.js";
18
- import { c as rt, s as ne } from "../contributions-DsfmDoRD.js";
19
- import { S as Pt } from "../contributions-DsfmDoRD.js";
16
+ import { i as tt } from "../guards-BJZjc3FZ.js";
17
+ import { b as st, c as ot, n as ae } from "../navigation-DpcDF0rX.js";
18
+ import { c as rt, s as ne } from "../contributions-BVBZP5Jb.js";
19
+ import { S as Pt } from "../contributions-BVBZP5Jb.js";
20
20
  import { a as ie } from "../environment-Dva-SG8D.js";
21
21
  import { u as Bt } from "../environment-Dva-SG8D.js";
22
22
  import { b as ce, c as le } from "../describeError-B-NMa--w.js";
@@ -1,6 +1,6 @@
1
- import { D as O, L as j, a as U, h as G, l as X, r as Z } from "../http-D_D9YbLH.js";
2
- import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-BNM_cbXa.js";
3
- import { u as W, a as Y } from "../neighbors-DVN_cADL.js";
1
+ import { D as O, L as j, a as U, h as G, l as X, r as Z } from "../http-BFfkA7gN.js";
2
+ import { _ as H, a as J, u as K } from "../CollectionPage.vue_vue_type_script_setup_true_lang-BrbQ0Y5d.js";
3
+ import { u as W, a as Y } from "../neighbors-RVQ4O3Qv.js";
4
4
  import { a as te, b as se } from "../rowLayout-D1vrdy0s.js";
5
5
  import { _ as ae } from "../DataTable.vue_vue_type_script_setup_true_lang-DPuH84I7.js";
6
6
  import { defineComponent as y, openBlock as c, createElementBlock as d, Fragment as h, renderList as v, createBlock as k, unref as f, withCtx as C, normalizeClass as m, createVNode as p, createCommentVNode as g, computed as w, toValue as E } from "vue";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as i, h as l } from "vue";
2
2
  import { d as u } from "./context-Ch1r4fdN.js";
3
- import { h as a } from "./platform-q3cjODLx.js";
3
+ import { h as a } from "./platform-PZpUkkMS.js";
4
4
  function h(o, n) {
5
5
  const t = o.map(({ contribution: e }) => e).sort((e, r) => (e.order ?? 0) - (r.order ?? 0));
6
6
  return {
@@ -36,7 +36,7 @@ import { u as It, a as We } from "../SelectField.vue_vue_type_script_setup_true_
36
36
  import { _ as $n, b as _n } from "../SelectField.vue_vue_type_script_setup_true_lang-C3FbRQW7.js";
37
37
  import { g as Cn, m as Fn } from "../options-Ba_0uLWN.js";
38
38
  import { _ as Ln } from "../OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH.js";
39
- import { _ as Je } from "../PhotoViewer.vue_vue_type_script_setup_true_lang-QPCW3Xi6.js";
39
+ import { _ as Je } from "../PhotoViewer.vue_vue_type_script_setup_true_lang-CY5EZiyK.js";
40
40
  import { _ as zn } from "../SegmentedField.vue_vue_type_script_setup_true_lang-Dg-_ZjgR.js";
41
41
  import { _ as Vn } from "../SwitchField.vue_vue_type_script_setup_true_lang-ALvJisiP.js";
42
42
  import { _ as Rn } from "../TextareaField.vue_vue_type_script_setup_true_lang-BJ4__cvJ.js";
@@ -1,5 +1,5 @@
1
1
  import { effectScope as R, watch as g } from "vue";
2
- import { h as b } from "./platform-q3cjODLx.js";
2
+ import { h as b } from "./platform-PZpUkkMS.js";
3
3
  const i = "redirect";
4
4
  function q(r) {
5
5
  const t = r.query[i], n = Array.isArray(t) ? t[0] : t;
@@ -1,5 +1,5 @@
1
1
  import { hasInjectionContext as $, inject as _, watch as O } from "vue";
2
- import { g as j } from "./platform-q3cjODLx.js";
2
+ import { g as j } from "./platform-PZpUkkMS.js";
3
3
  const k = [5, 8, 10, 15, 25, 50, 100], A = 25;
4
4
  function X(e) {
5
5
  const t = `defineCollection("${e.id}")`;
@@ -1,4 +1,4 @@
1
- import { _ as t, h as n, j as a, i, k as o, d as r, l as d, m as u, n as y, r as l, o as I, s as f, q as p, t as A, f as c } from "../index-BmowiT1y.js";
1
+ import { _ as t, h as n, j as a, i, k as o, d as r, l as d, m as u, n as y, r as l, o as I, s as f, q as p, t as A, f as c } from "../index-BVU76sBO.js";
2
2
  export {
3
3
  t as SignInAsButton,
4
4
  n as identityFeature,
@@ -7,7 +7,7 @@ import { defineComponent as E, computed as b, watch as $, openBlock as x, create
7
7
  import { u as pe } from "./environment-Dva-SG8D.js";
8
8
  import { u as P } from "./describeError-B-NMa--w.js";
9
9
  import { t as k } from "./toast-CqSDTWRX.js";
10
- import { u as A, h as q, f as M } from "./platform-q3cjODLx.js";
10
+ import { u as A, h as q, f as M } from "./platform-PZpUkkMS.js";
11
11
  import { a as R } from "./error-CD7x0Jrz.js";
12
12
  import { useI18n as C } from "vue-i18n";
13
13
  import { useRouter as J, useRoute as de } from "vue-router";
@@ -23,7 +23,7 @@ import { u as be } from "./FormErrors.vue_vue_type_script_setup_true_lang-DGOSc-
23
23
  import { u as we } from "./format-D8X4zsx6.js";
24
24
  import { _ as xe } from "./AccountMenuItem.vue_vue_type_script_setup_true_lang-CPeNxh5K.js";
25
25
  import { b as Ee } from "./routeResource-DlTsGTg_.js";
26
- import { _ as Se } from "./AccessGate.vue_vue_type_script_setup_true_lang-DcbZBINh.js";
26
+ import { _ as Se } from "./AccessGate.vue_vue_type_script_setup_true_lang-J5HoyGNJ.js";
27
27
  const w = {
28
28
  login: i("POST", "/v1/auth/login", { public: !0 }),
29
29
  refresh: i("POST", "/v1/auth/refresh", { public: !0 }),
@@ -315,7 +315,7 @@ function Cs(e) {
315
315
  const Ye = async (e) => {
316
316
  await B(e.http);
317
317
  }, Je = z({
318
- login: { name: "login", path: "/login", component: () => import("./SignInPage-CiStJboK.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
318
+ login: { name: "login", path: "/login", component: () => import("./SignInPage-ft3unWwX.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
319
319
  });
320
320
  function Os(e = {}) {
321
321
  return H({
@@ -334,7 +334,7 @@ function Os(e = {}) {
334
334
  });
335
335
  }
336
336
  const Z = z({
337
- index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-Dq9lcO5O.js"), meta: { titleKey: "core.profile.title" } }
337
+ index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-B9WUrImn.js"), meta: { titleKey: "core.profile.title" } }
338
338
  }), Qe = /* @__PURE__ */ E({
339
339
  __name: "ProfileMenuItem",
340
340
  setup(e) {
@@ -358,19 +358,19 @@ function es(e) {
358
358
  return { name: `users.record.${e.path}`, path: e.path, component: s, meta: { ...e.meta } };
359
359
  }
360
360
  const W = "iam.user:view", qs = "iam.user:manage", ss = "iam.user.activity:view", ee = z({
361
- index: { name: "users.index", path: "/users", component: () => import("./UsersList-BulNu4aE.js"), meta: { access: W, titleKey: "core.users.title" } },
361
+ index: { name: "users.index", path: "/users", component: () => import("./UsersList-D3b3DGN5.js"), meta: { access: W, titleKey: "core.users.title" } },
362
362
  record: {
363
363
  name: "users.record",
364
364
  path: "/users/:id",
365
- component: () => import("./UserRecord-DGq_PPy1.js"),
365
+ component: () => import("./UserRecord-BO5-wsYt.js"),
366
366
  meta: { access: W, titleKey: "core.users.title", remountOnParam: "id" },
367
367
  children: [
368
- { name: "users.record.general", path: "general", component: () => import("./General-hdmVP72B.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
369
- { name: "users.record.signin", path: "signin", component: () => import("./SignIn-Dp8Ji0_r.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
370
- { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-B1eKG_I2.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
371
- { name: "users.record.signins", path: "signins", component: () => import("./SignIns-Bo7R2Coi.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
372
- { name: "users.record.changes", path: "changes", component: () => import("./Changes-BdR0R20V.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
373
- { name: "users.record.activity", path: "activity", component: () => import("./Activity-CI-l_OFl.js"), meta: { access: ss, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
368
+ { name: "users.record.general", path: "general", component: () => import("./General-tsRC866T.js"), meta: { section: { labelKey: "core.users.sections.general", icon: "user3Line", groupKey: "core.users.section_groups.person" } } },
369
+ { name: "users.record.signin", path: "signin", component: () => import("./SignIn-DQzS20kM.js"), meta: { section: { labelKey: "core.users.sections.signin", icon: "key2Line", groupKey: "core.users.section_groups.access" } } },
370
+ { name: "users.record.sessions", path: "sessions", component: () => import("./Sessions-BDu3nMmz.js"), meta: { section: { labelKey: "core.users.sections.sessions", icon: "deviceLine", groupKey: "core.users.section_groups.access" } } },
371
+ { name: "users.record.signins", path: "signins", component: () => import("./SignIns-C3h_YIkc.js"), meta: { section: { labelKey: "core.users.sections.signins", icon: "timeFill", groupKey: "core.users.section_groups.activity" } } },
372
+ { name: "users.record.changes", path: "changes", component: () => import("./Changes-BQG7IV49.js"), meta: { section: { labelKey: "core.users.sections.changes", icon: "edit", groupKey: "core.users.section_groups.activity" } } },
373
+ { name: "users.record.activity", path: "activity", component: () => import("./Activity-B6R8Jghz.js"), meta: { access: ss, section: { labelKey: "core.users.sections.activity", icon: "listCheck", groupKey: "core.users.section_groups.activity" } } }
374
374
  ]
375
375
  }
376
376
  });
@@ -31,9 +31,9 @@ const M = {
31
31
  deadLettersRetryAll: y("POST", "/v1/events/dead-letters/retry", { permission: "events.deadletter:retry" }),
32
32
  consumers: y("GET", "/v1/events/consumers", { permission: "events.deadletter:view" })
33
33
  }, [ke, ee] = fe("vue-core.notifications"), we = "events.deadletter:view", bt = "events.deadletter:retry", J = Z({
34
- index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-CRTeoZS1.js"), meta: { access: we, titleKey: "core.notifications.dead_letters.title" } }
34
+ index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-CJZSWjsn.js"), meta: { access: we, titleKey: "core.notifications.dead_letters.title" } }
35
35
  }), j = Z({
36
- index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-0P38Ty4w.js"), meta: { titleKey: "core.notifications.settings.title" } }
36
+ index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-CA7YCy6K.js"), meta: { titleKey: "core.notifications.settings.title" } }
37
37
  }), Te = /* @__PURE__ */ z({
38
38
  __name: "SettingsMenuItem",
39
39
  setup(o) {
@@ -11,13 +11,13 @@ import { _ as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5
11
11
  import { e as U } from "./control-B4SdblL6.js";
12
12
  import { _ as Te } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
13
13
  import { t as ee } from "./toast-CqSDTWRX.js";
14
- import { _ as ce } from "./AccessGate.vue_vue_type_script_setup_true_lang-DcbZBINh.js";
14
+ import { _ as ce } from "./AccessGate.vue_vue_type_script_setup_true_lang-J5HoyGNJ.js";
15
15
  import { _ as Oe } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
16
16
  import { u as Ae } from "./useLoad-M7V-AVwR.js";
17
17
  import { _ as De, a as Ke } from "./SelectField.vue_vue_type_script_setup_true_lang-C3FbRQW7.js";
18
18
  import { _ as Be } from "./SegmentedField.vue_vue_type_script_setup_true_lang-Dg-_ZjgR.js";
19
19
  import { u as Pe, _ as Ue } from "./useCommand-Cj-APj-P.js";
20
- import { u as Fe } from "./platform-q3cjODLx.js";
20
+ import { u as Fe } from "./platform-PZpUkkMS.js";
21
21
  import { _ as Ge } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
22
22
  import { u as Me } from "./mediaQuery-CygcXmFW.js";
23
23
  import { _ as Ve } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
@@ -43,12 +43,12 @@ const C = {
43
43
  viewAccess: "iam.user:view",
44
44
  manageBindings: "iam.user:manage"
45
45
  }, re = Ee({
46
- roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-BRm5xDw7.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
47
- newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-BPeKasOp.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
46
+ roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-DkMAJZR6.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
47
+ newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-L57Zg1Mg.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
48
48
  role: {
49
49
  name: "access.role",
50
50
  path: "/iam/roles/:ref",
51
- component: () => import("./RolePage-BYH-0fVI.js"),
51
+ component: () => import("./RolePage-uezn-Og1.js"),
52
52
  // A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
53
53
  meta: { access: F.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
54
54
  }
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.4.24";
2
+ export declare const version = "0.4.26";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.4.24";
1
+ const o = "0.4.26";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -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-q3cjODLx.js";
3
+ import { h as N } from "./platform-PZpUkkMS.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 "./http-D_D9YbLH.js";
4
+ import { L as k, d as B, e as D, o as U, q as V } from "./http-BFfkA7gN.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
  }
@@ -1,4 +1,4 @@
1
- import { d as s, e as o, n as a, a as i, b as n } from "../index-tnSTp0cM.js";
1
+ import { d as s, e as o, n as a, a as i, b as n } from "../index-C3CzOub7.js";
2
2
  export {
3
3
  s as deadLettersRoutes,
4
4
  o as eventsRoutes,
@@ -15,8 +15,9 @@ export interface PhotoViewerItem {
15
15
  * and a strip of thumbnails. It is a dialog like `Modal`: the page behind is inert, Tab stays inside, Escape closes and focus goes back
16
16
  * to what opened it. Under reduced motion nothing animates.
17
17
  *
18
- * Keys: ← → photos, + − zoom, 0 fits the screen again, R rotates, Esc closes. `#actions` (given the photo on show) adds your own buttons to the header:
19
- * "Make cover", "Delete".
18
+ * Keys: ← → photos, + − zoom, 0 fits the screen again, R rotates, Esc closes. `#actions` (given the photo on show) adds your own buttons:
19
+ * "Make cover", "Delete". They sit in the header on a wide screen and in a toolbar under the photo on a phone (the header keeps the counter, rotate,
20
+ * download and close); the slot renders in one place at a time.
20
21
  *
21
22
  * <PhotoViewer ref="viewer" :items="photos" title="VW Golf 8" />
22
23
  * <button @click="viewer?.present(index)">…</button> viewer.value?.dismiss()
@@ -27,7 +28,7 @@ type __VLS_Props = {
27
28
  title?: string;
28
29
  };
29
30
  type __VLS_Slots = {
30
- /** Next to the zoom buttons: what the app does with the photo on show (make it the cover, delete it). */
31
+ /** What the app does with the photo on show (make it the cover, delete it): in the header next to the zoom buttons, in a bottom toolbar on a phone. */
31
32
  actions?: (scope: {
32
33
  item: PhotoViewerItem;
33
34
  index: number;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * One of the app's own actions in `PhotoViewer`'s `#actions` slot ("Make cover", "Delete"), styled for the viewer's dark surface in the
3
+ * header and in the phone toolbar (44 px tall). `tone="critical"` is the destructive one, in the danger colour. A disabled action stays
4
+ * focusable (`aria-disabled`), like the viewer's own buttons at the end of their range, so focus does not fall out of the dialog.
5
+ *
6
+ * <PhotoViewer :items="photos"><template #actions="{ index }">
7
+ * <PhotoViewerAction :label="t('makeCover')" @select="makeCover(index)" />
8
+ * <PhotoViewerAction :label="t('delete')" tone="critical" @select="remove(index)" />
9
+ * </template></PhotoViewer>
10
+ */
11
+ type __VLS_Props = {
12
+ label: string;
13
+ /** `critical` for a destructive action (Delete). */
14
+ tone?: "critical";
15
+ disabled?: boolean;
16
+ };
17
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
+ select: () => any;
19
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ onSelect?: (() => any) | undefined;
21
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ export default _default;
@@ -8,3 +8,4 @@ export { INERT_SKIP_ATTR, useOpenDialogCount } from "./dialogStack";
8
8
  export { INITIAL_FOCUS_SKIP_ATTR, useDialog, type DialogOptions } from "./useDialog";
9
9
  export { COMPACT_MEDIA_QUERY, useCompactPresentation } from "../internal/mediaQuery";
10
10
  export { default as PhotoViewer, type PhotoViewerItem } from "./PhotoViewer.vue";
11
+ export { default as PhotoViewerAction } from "./PhotoViewerAction.vue";
@@ -1,25 +1,49 @@
1
- import { _ as e } from "../AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
2
- import { _ as a } from "../Menu.vue_vue_type_script_setup_true_lang-DsFOeCVe.js";
3
- import { _ as p } from "../Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
4
- import { _ as m } from "../Toaster.vue_vue_type_script_setup_true_lang-55boRLAj.js";
5
- import { _ as x } from "../Tooltip.vue_vue_type_script_setup_true_lang-mErNPt8e.js";
6
- import { t as T } from "../toast-CqSDTWRX.js";
7
- import { I as i, u as A } from "../dialogStack-DZZg55w0.js";
8
- import { I as P, u as l } from "../useDialog-CXR3hN0G.js";
9
- import { C as D, u as R } from "../mediaQuery-CygcXmFW.js";
10
- import { _ as E } from "../PhotoViewer.vue_vue_type_script_setup_true_lang-QPCW3Xi6.js";
1
+ import { _ as x } from "../AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
2
+ import { _ as w } from "../Menu.vue_vue_type_script_setup_true_lang-DsFOeCVe.js";
3
+ import { _ as I } from "../Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
4
+ import { _ as v } from "../Toaster.vue_vue_type_script_setup_true_lang-55boRLAj.js";
5
+ import { _ as P } from "../Tooltip.vue_vue_type_script_setup_true_lang-mErNPt8e.js";
6
+ import { t as y } from "../toast-CqSDTWRX.js";
7
+ import { I as k, u as E } from "../dialogStack-DZZg55w0.js";
8
+ import { I as S, u as B } from "../useDialog-CXR3hN0G.js";
9
+ import { C as O, u as V } from "../mediaQuery-CygcXmFW.js";
10
+ import { _ as N } from "../PhotoViewer.vue_vue_type_script_setup_true_lang-CY5EZiyK.js";
11
+ import { defineComponent as s, openBlock as r, createElementBlock as n, normalizeClass as l, toDisplayString as c } from "vue";
12
+ const p = ["aria-disabled"], m = /* @__PURE__ */ s({
13
+ __name: "PhotoViewerAction",
14
+ props: {
15
+ label: {},
16
+ tone: {},
17
+ disabled: { type: Boolean }
18
+ },
19
+ emits: ["select"],
20
+ setup(o, { emit: t }) {
21
+ const e = o, i = t;
22
+ function a() {
23
+ e.disabled || i("select");
24
+ }
25
+ return (f, u) => (r(), n("button", {
26
+ type: "button",
27
+ "aria-disabled": e.disabled || void 0,
28
+ "data-part": "photo-viewer-action",
29
+ class: l(["flex min-h-11 shrink-0 cursor-pointer items-center justify-center rounded-full bg-white/8 px-4 text-subheadline font-medium whitespace-nowrap transition-colors duration-motion-fast hover:bg-white/16 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#6ee7b7] aria-disabled:cursor-default aria-disabled:opacity-40 aria-disabled:hover:bg-white/8", e.tone === "critical" ? "text-[#ff8a80]" : "text-[#f1f5f3]"]),
30
+ onClick: a
31
+ }, c(e.label), 11, p));
32
+ }
33
+ });
11
34
  export {
12
- e as AlertDialog,
13
- D as COMPACT_MEDIA_QUERY,
14
- i as INERT_SKIP_ATTR,
15
- P as INITIAL_FOCUS_SKIP_ATTR,
16
- a as Menu,
17
- E as PhotoViewer,
18
- p as Popover,
19
- m as Toaster,
20
- x as Tooltip,
21
- T as toast,
22
- R as useCompactPresentation,
23
- l as useDialog,
24
- A as useOpenDialogCount
35
+ x as AlertDialog,
36
+ O as COMPACT_MEDIA_QUERY,
37
+ k as INERT_SKIP_ATTR,
38
+ S as INITIAL_FOCUS_SKIP_ATTR,
39
+ w as Menu,
40
+ N as PhotoViewer,
41
+ m as PhotoViewerAction,
42
+ I as Popover,
43
+ v as Toaster,
44
+ P as Tooltip,
45
+ y as toast,
46
+ V as useCompactPresentation,
47
+ B as useDialog,
48
+ E as useOpenDialogCount
25
49
  };
@@ -8,7 +8,7 @@ import { _ as ue } from "../RecordHeader.vue_vue_type_script_setup_true_lang-szz
8
8
  import { c as pe, i as fe, p as me, a as be, u as ge, b as ve } from "../chrome-nUcmVu8G.js";
9
9
  import { s as z, u as I } from "../sectionIndex-BS0ic5W7.js";
10
10
  import { p as _e, a as xe } from "../sectionIndex-BS0ic5W7.js";
11
- import { _ as ye } from "../SectionNavigator.vue_vue_type_script_setup_true_lang-BltrQnrQ.js";
11
+ import { _ as ye } from "../SectionNavigator.vue_vue_type_script_setup_true_lang-BYRc0-qh.js";
12
12
  import { a as Se, _ as Ce } from "../SectionList.vue_vue_type_script_setup_true_lang-BJnz2ROc.js";
13
13
  import { _ as A } from "../Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
14
14
  const K = ["aria-label"], M = ["aria-label"], N = ["aria-selected", "tabindex", "onClick"], R = { class: "relative" }, E = {
@@ -1,3 +1,5 @@
1
+ import type { BootstrapConfig } from "./bootstrap";
2
+ import type { SessionUser } from "./session";
1
3
  export { createAccessClient } from "./access";
2
4
  export type { AccessClient, AccessClientOptions, AccessClause, AccessQualifier, AccessScope, AccessSnapshot, HeldAccess } from "./access";
3
5
  export { BootstrapError, BootstrapFields, parseBootstrap, readBootstrap } from "./bootstrap";
@@ -9,8 +11,9 @@ export { httpSessionAdapter, parseSessionPayload } from "./httpSession";
9
11
  export type { HttpSessionOptions, UserParser } from "./httpSession";
10
12
  export { createPlatform, installPlatform, platformKey, usePlatform } from "./platform";
11
13
  export type { Platform, PlatformOptions } from "./platform";
14
+ export { useSessionUser } from "./sessionUser";
12
15
  export { beforeSignOutTimeout, createSession, heldSession } from "./session";
13
- export type { BeforeSignOutHook, Session, SessionAdapter, SessionEnd, SessionImpersonator, SessionOptions, SessionSnapshot, SessionState, SessionUser } from "./session";
16
+ export type { BeforeSignOutHook, Session, SessionAdapter, SessionEnd, SessionImpersonator, SessionOptions, SessionPatch, SessionSnapshot, SessionState, SessionUser } from "./session";
14
17
  /**
15
18
  * The permission identifiers of the application. The library declares none: an app adds its own by
16
19
  * augmenting this interface (declaration merging, like `IconRegistry`), so route metadata and
@@ -26,3 +29,24 @@ export interface PermissionRegistry {
26
29
  export type Permission = keyof PermissionRegistry extends never ? string : Extract<keyof PermissionRegistry, string>;
27
30
  export { default as AccessGate } from "./AccessGate.vue";
28
31
  export type { AccessGateProps } from "./AccessGate.vue";
32
+ /**
33
+ * The application's own session user and bootstrap config. The library declares neither: an app says
34
+ * once what they are by augmenting this interface (declaration merging, like `PermissionRegistry`), and
35
+ * `usePlatform()`, `useSessionUser()`, `createApplication` and `createTestPlatform` are typed from it, with no cast.
36
+ *
37
+ * declare module "@wssto2/vue-core/platform" {
38
+ * interface PlatformRegistry { user: AppUser; config: AppConfig }
39
+ * }
40
+ *
41
+ * Both keys are optional: a missing one leaves `SessionUser` / `BootstrapConfig`.
42
+ */
43
+ export interface PlatformRegistry {
44
+ }
45
+ /** The registered session user (`PlatformRegistry["user"]`); `SessionUser` until the app declares one. */
46
+ export type RegisteredUser = PlatformRegistry extends {
47
+ user: infer U extends SessionUser;
48
+ } ? U : SessionUser;
49
+ /** The registered bootstrap config (`PlatformRegistry["config"]`); `BootstrapConfig` until the app declares one. */
50
+ export type RegisteredConfig = PlatformRegistry extends {
51
+ config: infer C extends BootstrapConfig;
52
+ } ? C : BootstrapConfig;