@wssto2/vue-core 0.4.1 → 0.4.3

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 (49) hide show
  1. package/dist/{Activity-ylf1r2lv.js → Activity-DnW1LTO2.js} +1 -1
  2. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js} +1 -1
  3. package/dist/{Changes-B1-2LPkp.js → Changes-DJDSlnp1.js} +1 -1
  4. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-DU_jzTg7.js → CollectionPage.vue_vue_type_script_setup_true_lang-B-TJDr4d.js} +4 -4
  5. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-UH6f9puS.js → DataTable.vue_vue_type_script_setup_true_lang-DBtMgcW6.js} +1 -1
  6. package/dist/{DeadLetters-CcogaMTK.js → DeadLetters-C8ICE47Y.js} +3 -3
  7. package/dist/{General-DSrflQib.js → General-BbEDM3y_.js} +2 -2
  8. package/dist/{Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js → Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js} +64 -57
  9. package/dist/{NewRolePage-Du9eyEG2.js → NewRolePage-CYfEuRIV.js} +3 -3
  10. package/dist/{ProfilePage-BjvWyg_e.js → ProfilePage-V2ywWbL3.js} +4 -4
  11. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-Ci4fs5s5.js → RecordHeader.vue_vue_type_script_setup_true_lang-BCTNrzBb.js} +1 -1
  12. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-KPVA-1fI.js → ResourcePage.vue_vue_type_script_setup_true_lang-C_tQTUyN.js} +1 -1
  13. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-Ci1Aqc37.js → RoleEditor.vue_vue_type_script_setup_true_lang-et4dyitf.js} +2 -2
  14. package/dist/{RolePage-BDD6volP.js → RolePage-CjCBcRau.js} +5 -5
  15. package/dist/{RolesPage-Bzun0trr.js → RolesPage-Cr3Hlr4Q.js} +2 -2
  16. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-DBheVDeX.js → SectionList.vue_vue_type_script_setup_true_lang-BtQjHjd4.js} +2 -2
  17. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-L4TXI0wR.js → SectionNavigator.vue_vue_type_script_setup_true_lang-BGc8A9AQ.js} +2 -2
  18. package/dist/{Sessions-BOzz38WJ.js → Sessions-_35nYhoR.js} +2 -2
  19. package/dist/{SettingsPage-BXlYHt8u.js → SettingsPage-CDESMl3M.js} +3 -3
  20. package/dist/{SignIn-CenfvX8C.js → SignIn-CkXwxorT.js} +2 -2
  21. package/dist/{SignInPage-23sJGIXh.js → SignInPage-BdwfKB31.js} +1 -1
  22. package/dist/{SignInTable.vue_vue_type_script_setup_true_lang-CEbAvZ_C.js → SignInTable.vue_vue_type_script_setup_true_lang-CifEaH7c.js} +1 -1
  23. package/dist/{SignIns-DRaTo-T0.js → SignIns-Dvdid5QB.js} +2 -2
  24. package/dist/{UserRecord-BreLQOPG.js → UserRecord-CM0JQQGT.js} +5 -5
  25. package/dist/{UsersList-CKLqiOpt.js → UsersList-CR3RpQ4-.js} +4 -4
  26. package/dist/access/index.js +1 -1
  27. package/dist/app/index.js +1 -1
  28. package/dist/collection/index.js +3 -3
  29. package/dist/form/index.js +3 -3
  30. package/dist/identity/index.js +1 -1
  31. package/dist/{index-CnVf6Uk_.js → index-B1jflSA6.js} +12 -12
  32. package/dist/{index-0TeI4rVv.js → index-ClU_gPzK.js} +2 -2
  33. package/dist/{index-BBdzJnvG.js → index-DVp6cwfN.js} +4 -4
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/keepAlive-CDvMQlcJ.js +49 -0
  37. package/dist/notifications/index.js +1 -1
  38. package/dist/overlay/Menu.vue.d.ts +2 -1
  39. package/dist/overlay/index.js +2 -2
  40. package/dist/overlay/toast.d.ts +10 -0
  41. package/dist/page/index.js +5 -5
  42. package/dist/resource/index.js +1 -1
  43. package/dist/{rowLayout-BqTEhEuy.js → rowLayout-CZ7uZFnE.js} +1 -1
  44. package/dist/shell/index.js +2 -2
  45. package/dist/{status-jB5r1cG2.js → status-D2Fmu3YH.js} +1 -1
  46. package/dist/toast-CqSDTWRX.js +17 -0
  47. package/package.json +1 -1
  48. package/dist/keepAlive-WYQGRhuz.js +0 -48
  49. package/dist/toast-D9Z5To38.js +0 -13
@@ -6,7 +6,7 @@ import { u as O } from "./format-B8mJm946.js";
6
6
  import { _ as U } from "./DateField.vue_vue_type_script_setup_true_lang-GVasv8ao.js";
7
7
  import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
8
8
  import { e as z } from "./control-7EP4tjYy.js";
9
- import { P as G, c as H, i as J } from "./index-CnVf6Uk_.js";
9
+ import { P as G, c as H, i as J } from "./index-B1jflSA6.js";
10
10
  import { u as K } from "./platform-q3cjODLx.js";
11
11
  import { b as M } from "./routeResource-DstM0hvf.js";
12
12
  import { _ as Q } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
@@ -4,7 +4,7 @@ import { b as U } from "./bottomDock-BZEiOPYZ.js";
4
4
  import { useI18n as E } from "vue-i18n";
5
5
  import { _ as W } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
6
6
  import { _ as y } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
7
- import { _ as Y } from "./Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js";
7
+ import { _ as Y } from "./Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
8
8
  import { RouterLink as L, useRoute as G } from "vue-router";
9
9
  import { a as N, c as J, p as X } from "./chrome-nUcmVu8G.js";
10
10
  import { d as Z } from "./context-Ch1r4fdN.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as k, computed as N, openBlock as n, createBlock as u, unref as a, withCtx as g, createElementBlock as p, Fragment as _, renderList as $, createElementVNode as i, toDisplayString as h, createCommentVNode as C, ref as x, watch as b, createVNode as y } from "vue";
2
2
  import { useI18n as E } from "vue-i18n";
3
- import { P as V, i as R } from "./index-CnVf6Uk_.js";
3
+ import { P as V, i as R } from "./index-B1jflSA6.js";
4
4
  import { u as S } from "./platform-q3cjODLx.js";
5
5
  import { b as B } from "./routeResource-DstM0hvf.js";
6
6
  import { _ as F } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
@@ -2,7 +2,7 @@ import { hasInjectionContext as Je, inject as Ge, shallowRef as he, computed as
2
2
  import { routerKey as ot } from "vue-router";
3
3
  import { i as je, a as nt } from "./error-CD7x0Jrz.js";
4
4
  import { d as Ve, o as st, L as Pe, e as we, w as at, b as rt } from "./http-CNcDHSOj.js";
5
- import { a as it } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
5
+ import { a as it } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
6
6
  import { useI18n as de } from "vue-i18n";
7
7
  import { _ as se, u as Le } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
8
8
  import { _ as He } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
@@ -10,14 +10,14 @@ import { u as Oe } from "./format-B8mJm946.js";
10
10
  import { _ as U } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
11
11
  import { _ as Fe } from "./Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
12
12
  import { _ as ct } from "./EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
13
- import { u as ut, _ as dt } from "./rowLayout-BqTEhEuy.js";
14
- import { _ as De } from "./Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js";
13
+ import { u as ut, _ as dt } from "./rowLayout-CZ7uZFnE.js";
14
+ import { _ as De } from "./Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
15
15
  import { _ as Ke } from "./Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js";
16
16
  import { _ as ft } from "./NumberField.vue_vue_type_script_setup_true_lang-C7N5nq0P.js";
17
17
  import { _ as pt } from "./SelectField.vue_vue_type_script_setup_true_lang-7O1BAx04.js";
18
18
  import { a as vt } from "./mediaQuery-CygcXmFW.js";
19
19
  import { _ as mt } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
20
- import { t as ye } from "./toast-D9Z5To38.js";
20
+ import { t as ye } from "./toast-CqSDTWRX.js";
21
21
  const ne = (a) => a == null || a === "";
22
22
  function We(a) {
23
23
  if (!a) return [null, null];
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as d, computed as s, useSlots as u, openBlock as w, createElementBlock as p, createVNode as y, unref as f, createSlots as m, renderList as b, withCtx as h, renderSlot as v, normalizeProps as _, guardReactiveProps as g } from "vue";
2
- import { u as k, _ as R } from "./rowLayout-BqTEhEuy.js";
2
+ import { u as k, _ as R } from "./rowLayout-CZ7uZFnE.js";
3
3
  const B = ["aria-busy"], S = /* @__PURE__ */ d({
4
4
  __name: "DataTable",
5
5
  props: {
@@ -1,12 +1,12 @@
1
1
  import { defineComponent as B, useTemplateRef as C, computed as y, ref as v, openBlock as D, createBlock as z, unref as r, withCtx as m, createVNode as F, createElementVNode as b, normalizeClass as $, toDisplayString as h } from "vue";
2
2
  import { useI18n as q } from "vue-i18n";
3
3
  import { a as k } from "./error-CD7x0Jrz.js";
4
- import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-DU_jzTg7.js";
4
+ import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-B-TJDr4d.js";
5
5
  import { u as P } from "./describeError-Ctga6GcS.js";
6
6
  import { u as I } from "./format-B8mJm946.js";
7
- import { e as a, R as O } from "./index-0TeI4rVv.js";
7
+ import { e as a, R as O } from "./index-ClU_gPzK.js";
8
8
  import { _ as W } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
9
- import { t as i } from "./toast-D9Z5To38.js";
9
+ import { t as i } from "./toast-CqSDTWRX.js";
10
10
  import { u as Y } from "./useLoad-CYRVx6HW.js";
11
11
  import { u as j } from "./platform-q3cjODLx.js";
12
12
  import { a as G, r as H } from "./http-CNcDHSOj.js";
@@ -8,8 +8,8 @@ import { _ as F } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.
8
8
  import { _ as L } from "./SelectField.vue_vue_type_script_setup_true_lang-7O1BAx04.js";
9
9
  import { _ as f } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
10
10
  import { u as A } from "./useSaveChrome-DuWm0Czf.js";
11
- import { P as D, b as G, i as I } from "./index-CnVf6Uk_.js";
12
- import { t as M } from "./toast-D9Z5To38.js";
11
+ import { P as D, b as G, i as I } from "./index-B1jflSA6.js";
12
+ import { t as M } from "./toast-CqSDTWRX.js";
13
13
  import { u as O } from "./platform-q3cjODLx.js";
14
14
  import { b as U } from "./routeResource-DstM0hvf.js";
15
15
  import { u as j } from "./fieldMessages-C3Rpbktw.js";
@@ -1,5 +1,5 @@
1
- import { defineComponent as G, useId as Y, ref as m, computed as b, watch as y, nextTick as p, onUnmounted as j, openBlock as a, createElementBlock as r, Fragment as k, renderSlot as J, createCommentVNode as f, createBlock as x, Teleport as Q, createVNode as W, Transition as X, withCtx as Z, mergeProps as ee, unref as v, renderList as te, normalizeClass as ne, createElementVNode as oe, toDisplayString as R } from "vue";
2
- import { _ as $ } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
1
+ import { defineComponent as G, useId as Y, ref as f, computed as y, watch as k, nextTick as v, onUnmounted as j, openBlock as o, createElementBlock as r, Fragment as x, renderSlot as J, createCommentVNode as m, createBlock as h, Teleport as Q, createVNode as W, Transition as X, withCtx as Z, mergeProps as ee, unref as d, renderList as te, normalizeClass as ne, createElementVNode as oe, toDisplayString as $ } from "vue";
2
+ import { _ } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
3
3
  import { u as ae } from "./anchored-Cj4--8dT.js";
4
4
  import { I as ie } from "./dialogStack-DZZg55w0.js";
5
5
  import { C as O } from "./closeOverlays-CjVsIrpL.js";
@@ -8,10 +8,10 @@ const re = ["aria-label"], se = {
8
8
  role: "separator",
9
9
  class: "mx-2.5 my-1.5 h-px bg-border-separator compact:mx-0 compact:my-0 compact:h-2 compact:bg-fill"
10
10
  }, ce = ["role", "aria-checked", "disabled", "aria-busy", "data-menu-item", "onClick"], le = { class: "min-w-0 flex-1 truncate" }, ue = {
11
- key: 2,
11
+ key: 3,
12
12
  "aria-hidden": "true",
13
13
  class: "shrink-0 text-footnote opacity-60 compact:hidden"
14
- }, he = /* @__PURE__ */ G({
14
+ }, ge = /* @__PURE__ */ G({
15
15
  __name: "Menu",
16
16
  props: {
17
17
  items: {},
@@ -19,24 +19,24 @@ const re = ["aria-label"], se = {
19
19
  placement: { default: "bottom-end" }
20
20
  },
21
21
  emits: ["presented", "dismissed"],
22
- setup(P, { expose: B, emit: I }) {
23
- const s = P, g = I, N = 8, _ = `menu-${Y()}`, o = m(!1), d = m(null), l = m(null), V = b(() => [...s.items.filter((e) => !e.tone), ...s.items.filter((e) => e.tone)]), z = b(() => {
22
+ setup(P, { expose: z, emit: B }) {
23
+ const s = P, g = B, I = 8, E = `menu-${Y()}`, a = f(!1), p = f(null), l = f(null), N = y(() => [...s.items.filter((e) => !e.tone), ...s.items.filter((e) => e.tone)]), V = y(() => {
24
24
  const e = [];
25
25
  let n = null;
26
- for (const t of V.value)
26
+ for (const t of N.value)
27
27
  n && (n.section !== t.section || t.tone && !n.tone) && e.push({ kind: "separator", key: `sep-${t.id}` }), e.push({ kind: "item", item: t }), n = t;
28
28
  return e;
29
- }), E = () => d.value?.querySelector("[data-menu-trigger]") ?? d.value?.firstElementChild ?? null, c = m(null);
30
- let h = null;
29
+ }), C = () => p.value?.querySelector("[data-menu-trigger]") ?? p.value?.firstElementChild ?? null, c = f(null);
30
+ let b = null;
31
31
  const { style: K, update: M } = ae(l, {
32
32
  // The point is read now, not when floating-ui measures: the menu may have closed (and cleared it) by then.
33
33
  reference: () => {
34
34
  const e = c.value;
35
- return e ? { getBoundingClientRect: () => DOMRect.fromRect({ x: e.x, y: e.y, width: 0, height: 0 }) } : E();
35
+ return e ? { getBoundingClientRect: () => DOMRect.fromRect({ x: e.x, y: e.y, width: 0, height: 0 }) } : C();
36
36
  },
37
37
  placement: () => c.value ? "bottom-start" : s.placement,
38
38
  offset: 6,
39
- padding: N,
39
+ padding: I,
40
40
  fit: (e, n) => {
41
41
  e.style.maxHeight = `${Math.max(120, n.height)}px`;
42
42
  }
@@ -45,23 +45,23 @@ const re = ["aria-label"], se = {
45
45
  const n = w();
46
46
  n.length !== 0 && n[(e + n.length) % n.length]?.focus();
47
47
  }
48
- function C() {
49
- o.value || s.items.length === 0 || (c.value = null, o.value = !0, g("presented"));
48
+ function L() {
49
+ a.value || s.items.length === 0 || (c.value = null, a.value = !0, g("presented"));
50
50
  }
51
51
  function U(e, n) {
52
- s.items.length !== 0 && (h = document.activeElement, c.value = { x: e, y: n }, o.value ? p(M) : (o.value = !0, g("presented")));
52
+ s.items.length !== 0 && (b = document.activeElement, c.value = { x: e, y: n }, a.value ? v(M) : (a.value = !0, g("presented")));
53
53
  }
54
54
  function i(e = !0) {
55
- if (!o.value) return;
56
- o.value = !1, g("dismissed");
57
- const n = c.value ? h : E();
58
- c.value = null, h = null, e && p(() => n?.focus?.({ preventScroll: !0 }));
55
+ if (!a.value) return;
56
+ a.value = !1, g("dismissed");
57
+ const n = c.value ? b : C();
58
+ c.value = null, b = null, e && v(() => n?.focus?.({ preventScroll: !0 }));
59
59
  }
60
- function L() {
61
- o.value ? i() : C();
60
+ function T() {
61
+ a.value ? i() : L();
62
62
  }
63
63
  async function q(e) {
64
- e.disabled || e.processing || (i(), await p(), e.onSelect());
64
+ e.disabled || e.processing || (i(), await v(), e.onSelect());
65
65
  }
66
66
  function F(e) {
67
67
  const n = w().indexOf(document.activeElement);
@@ -83,47 +83,47 @@ const re = ["aria-label"], se = {
83
83
  break;
84
84
  }
85
85
  }
86
- function T(e) {
86
+ function A(e) {
87
87
  e.key === "Escape" && (e.preventDefault(), e.stopPropagation(), i());
88
88
  }
89
- function A(e) {
89
+ function D(e) {
90
90
  const n = e.target;
91
- n && (l.value?.contains(n) || d.value?.contains(n)) || c.value && e.pointerType === "touch" && !l.value || i(!1);
91
+ n && (l.value?.contains(n) || p.value?.contains(n)) || c.value && e.pointerType === "touch" && !l.value || i(!1);
92
92
  }
93
- y(l, (e) => {
94
- e && p(() => u(0));
93
+ k(l, (e) => {
94
+ e && v(() => u(0));
95
95
  });
96
- function D() {
96
+ function S() {
97
97
  i();
98
98
  }
99
- function S() {
100
- window.removeEventListener("keydown", T, !0), document.removeEventListener("pointerdown", A, !0), document.removeEventListener(O, D);
99
+ function R() {
100
+ window.removeEventListener("keydown", A, !0), document.removeEventListener("pointerdown", D, !0), document.removeEventListener(O, S);
101
101
  }
102
- y(o, (e) => {
103
- e ? (window.addEventListener("keydown", T, !0), document.addEventListener("pointerdown", A, !0), document.addEventListener(O, D)) : S();
104
- }), y(() => s.items.length, (e) => {
102
+ k(a, (e) => {
103
+ e ? (window.addEventListener("keydown", A, !0), document.addEventListener("pointerdown", D, !0), document.addEventListener(O, S)) : R();
104
+ }), k(() => s.items.length, (e) => {
105
105
  e === 0 && i(!1);
106
- }), j(S);
107
- const H = b(() => ({
106
+ }), j(R);
107
+ const H = y(() => ({
108
108
  "aria-haspopup": "menu",
109
- "aria-expanded": o.value,
110
- "aria-controls": _,
109
+ "aria-expanded": a.value,
110
+ "aria-controls": E,
111
111
  "data-menu-trigger": ""
112
112
  }));
113
- return B({ present: C, presentAt: U, dismiss: () => i(), toggle: L }), (e, n) => (a(), r(k, null, [
114
- e.$slots.trigger ? (a(), r("span", {
113
+ return z({ present: L, presentAt: U, dismiss: () => i(), toggle: T }), (e, n) => (o(), r(x, null, [
114
+ e.$slots.trigger ? (o(), r("span", {
115
115
  key: 0,
116
116
  ref_key: "anchor",
117
- ref: d,
117
+ ref: p,
118
118
  class: "inline-flex"
119
119
  }, [
120
120
  J(e.$slots, "trigger", {
121
- presented: o.value,
122
- toggle: L,
121
+ presented: a.value,
122
+ toggle: T,
123
123
  attrs: H.value
124
124
  })
125
- ], 512)) : f("", !0),
126
- (a(), x(Q, { to: "body" }, [
125
+ ], 512)) : m("", !0),
126
+ (o(), h(Q, { to: "body" }, [
127
127
  W(X, {
128
128
  "enter-active-class": "transition-opacity duration-motion-fast ease-motion-standard",
129
129
  "enter-from-class": "opacity-0",
@@ -131,22 +131,22 @@ const re = ["aria-label"], se = {
131
131
  "leave-to-class": "opacity-0"
132
132
  }, {
133
133
  default: Z(() => [
134
- o.value ? (a(), r("div", ee({
134
+ a.value ? (o(), r("div", ee({
135
135
  key: 0,
136
- id: _,
136
+ id: E,
137
137
  ref_key: "panel",
138
138
  ref: l,
139
139
  role: "menu",
140
140
  "aria-label": s.label
141
- }, { [v(ie)]: "" }, {
142
- style: v(K),
141
+ }, { [d(ie)]: "" }, {
142
+ style: d(K),
143
143
  class: "z-10001 min-w-52 max-w-[calc(100vw-1rem)] overflow-y-auto rounded-menu bg-surface-overlay p-1.5 text-content-strong shadow-float outline-none compact:min-w-60 compact:p-0",
144
144
  onKeydown: F
145
145
  }), [
146
- (a(!0), r(k, null, te(z.value, (t) => (a(), r(k, {
146
+ (o(!0), r(x, null, te(V.value, (t) => (o(), r(x, {
147
147
  key: t.kind === "item" ? t.item.id : t.key
148
148
  }, [
149
- t.kind === "separator" ? (a(), r("div", se)) : (a(), r("button", {
149
+ t.kind === "separator" ? (o(), r("div", se)) : (o(), r("button", {
150
150
  key: 1,
151
151
  type: "button",
152
152
  role: t.item.checked === void 0 ? "menuitem" : "menuitemradio",
@@ -155,24 +155,31 @@ const re = ["aria-label"], se = {
155
155
  "aria-busy": t.item.processing || void 0,
156
156
  "data-menu-item": t.item.id,
157
157
  class: ne(["group flex min-h-8 w-full cursor-pointer items-center gap-2.5 rounded-control px-2.5 py-1 text-left text-subheadline font-normal outline-none disabled:cursor-default disabled:opacity-45 compact:min-h-11 compact:rounded-none compact:border-t compact:border-border-separator compact:px-4 compact:text-body compact:first:border-t-0 compact:[[role=separator]+&]:border-t-0", t.item.tone === "critical" ? "text-content-destructive hover:bg-status-danger-surface focus-visible:bg-status-danger-surface" : "hover:bg-tint hover:text-content-on-tint focus-visible:bg-tint focus-visible:text-content-on-tint compact:hover:bg-fill compact:hover:text-content-strong compact:focus-visible:bg-fill compact:focus-visible:text-content-strong"]),
158
- onClick: (de) => q(t.item)
158
+ onClick: (me) => q(t.item)
159
159
  }, [
160
- t.item.processing ? (a(), x(v($), {
160
+ t.item.processing ? (o(), h(d(_), {
161
161
  key: 0,
162
162
  name: "loader4Line",
163
163
  size: 16,
164
164
  class: "animate-spin compact:order-last"
165
- })) : t.item.icon ? (a(), x(v($), {
165
+ })) : t.item.icon ? (o(), h(d(_), {
166
166
  key: 1,
167
167
  name: t.item.icon,
168
168
  size: 16,
169
169
  class: "compact:order-last compact:w-5"
170
- }, null, 8, ["name"])) : f("", !0),
171
- oe("span", le, R(t.item.label), 1),
172
- t.item.shortcut ? (a(), r("span", ue, R(t.item.shortcut), 1)) : f("", !0)
170
+ }, null, 8, ["name"])) : m("", !0),
171
+ oe("span", le, $(t.item.label), 1),
172
+ t.item.checked ? (o(), h(d(_), {
173
+ key: 2,
174
+ name: "checkCustom",
175
+ size: 16,
176
+ "data-menu-tick": "",
177
+ class: "shrink-0 text-content-link compact:order-last"
178
+ })) : m("", !0),
179
+ t.item.shortcut ? (o(), r("span", ue, $(t.item.shortcut), 1)) : m("", !0)
173
180
  ], 10, ce))
174
181
  ], 64))), 128))
175
- ], 16, re)) : f("", !0)
182
+ ], 16, re)) : m("", !0)
176
183
  ]),
177
184
  _: 1
178
185
  })
@@ -181,5 +188,5 @@ const re = ["aria-label"], se = {
181
188
  }
182
189
  });
183
190
  export {
184
- he as _
191
+ ge as _
185
192
  };
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as _, computed as d, openBlock as y, createBlock as w, unref as e, withCtx as i, createVNode as l } from "vue";
2
2
  import { useI18n as v } from "vue-i18n";
3
3
  import { useRoute as k, useRouter as R } from "vue-router";
4
- import { a as $ } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
4
+ import { a as $ } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
5
5
  import { _ as b } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
6
6
  import { u as g } from "./useLoad-CYRVx6HW.js";
7
- import { a as x, c as u } from "./index-BBdzJnvG.js";
8
- import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-Ci1Aqc37.js";
7
+ import { a as x, c as u } from "./index-DVp6cwfN.js";
8
+ import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-et4dyitf.js";
9
9
  const V = /* @__PURE__ */ _({
10
10
  __name: "NewRolePage",
11
11
  setup(h) {
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as A, watch as X, openBlock as v, createBlock as S, unref as e, withCtx as u, createVNode as r, mergeProps as E, useModel as pe, useId as fe, useTemplateRef as J, ref as w, onMounted as me, onBeforeUnmount as ve, computed as B, createElementBlock as M, withModifiers as _e, toDisplayString as b, createCommentVNode as W, createElementVNode as x, createTextVNode as N, Fragment as le, mergeModels as oe } from "vue";
2
2
  import { useI18n as R } from "vue-i18n";
3
- import { a as ge } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
3
+ import { a as ge } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
4
4
  import { u as L } from "./platform-q3cjODLx.js";
5
5
  import { _ as Q } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
6
6
  import { u as Y } from "./useLoad-CYRVx6HW.js";
7
- import { i as k, d as G } from "./index-CnVf6Uk_.js";
7
+ import { i as k, d as G } from "./index-B1jflSA6.js";
8
8
  import { u as Z } from "./FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js";
9
9
  import { _ as ee } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js";
10
10
  import { _ as U } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
11
11
  import { _ as H } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
12
- import { t as C } from "./toast-D9Z5To38.js";
12
+ import { t as C } from "./toast-CqSDTWRX.js";
13
13
  import { u as O } from "./fieldMessages-C3Rpbktw.js";
14
14
  import { _ as re } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
15
15
  import { _ as F } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
@@ -23,7 +23,7 @@ import { _ as he } from "./OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH
23
23
  import { _ as $e } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
24
24
  import { _ as qe } from "./SessionList.vue_vue_type_script_setup_true_lang-D5KRitar.js";
25
25
  import { _ as ke } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
26
- import { _ as Ce } from "./SignInTable.vue_vue_type_script_setup_true_lang-CEbAvZ_C.js";
26
+ import { _ as Ce } from "./SignInTable.vue_vue_type_script_setup_true_lang-CifEaH7c.js";
27
27
  import { _ as Se } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js";
28
28
  const Pe = /* @__PURE__ */ A({
29
29
  __name: "DetailsPanel",
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as p, useTemplateRef as u, openBlock as t, createElementBlock as c, renderSlot as r, createCommentVNode as s, createElementVNode as n, toDisplayString as a, Fragment as d, renderList as f, createBlock as h, resolveDynamicComponent as g, withCtx as x, createVNode as _, unref as k } from "vue";
2
2
  import { _ as b } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
3
- import { u as w } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
3
+ import { u as w } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
4
4
  const v = { class: "flex min-w-0 flex-wrap items-center gap-5 compact:flex-col compact:gap-2 compact:text-center" }, y = {
5
5
  key: 0,
6
6
  class: "min-w-0 max-w-full shrink-0"
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as S, openBlock as a, createElementBlock as v, unref as t, createBlock as c, withCtx as s, createVNode as l, normalizeClass as d, createElementVNode as R, toDisplayString as y, computed as m, createSlots as w, renderSlot as f, createCommentVNode as A } from "vue";
2
2
  import { useI18n as z } from "vue-i18n";
3
- import { a as C } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
3
+ import { a as C } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
4
4
  import { _ as B } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
5
5
  import { _ as D } from "./EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
6
6
  import { useRouter as K, RouterLink as x } from "vue-router";
@@ -6,10 +6,10 @@ import { _ as ee } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP
6
6
  import { _ as te } from "./TextareaField.vue_vue_type_script_setup_true_lang-CqAWfABZ.js";
7
7
  import { _ as se } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
8
8
  import { u as ae } from "./useSaveChrome-DuWm0Czf.js";
9
- import { t as oe } from "./toast-D9Z5To38.js";
9
+ import { t as oe } from "./toast-CqSDTWRX.js";
10
10
  import { _ as S } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
11
11
  import { _ as E } from "./Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
12
- import { d as W, u as J, p as ne, o as R, r as D, g as H, s as le, e as re, a as ie, f as ce, b as ue, h as de } from "./index-BBdzJnvG.js";
12
+ import { d as W, u as J, p as ne, o as R, r as D, g as H, s as le, e as re, a as ie, f as ce, b as ue, h as de } from "./index-DVp6cwfN.js";
13
13
  import { _ as me } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
14
14
  import { _ as fe } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
15
15
  import { _ as pe } from "./SegmentedField.vue_vue_type_script_setup_true_lang-BMqWlpsL.js";
@@ -6,18 +6,18 @@ import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a
6
6
  import { e as F } from "./control-7EP4tjYy.js";
7
7
  import { u as Z } from "./describeError-Ctga6GcS.js";
8
8
  import { _ as ee } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
9
- import { t as q } from "./toast-D9Z5To38.js";
10
- import { _ as oe } from "./RecordHeader.vue_vue_type_script_setup_true_lang-Ci4fs5s5.js";
9
+ import { t as q } from "./toast-CqSDTWRX.js";
10
+ import { _ as oe } from "./RecordHeader.vue_vue_type_script_setup_true_lang-BCTNrzBb.js";
11
11
  import { u as te } from "./platform-q3cjODLx.js";
12
12
  import { a as ae, u as le } from "./routeResource-DstM0hvf.js";
13
- import { a as se } from "./ResourcePage.vue_vue_type_script_setup_true_lang-KPVA-1fI.js";
13
+ import { a as se } from "./ResourcePage.vue_vue_type_script_setup_true_lang-C_tQTUyN.js";
14
14
  import { _ as re } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
15
15
  import { _ as H } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
16
- import { u as O, a as U, f as ce, d as ne, b as M, c as T } from "./index-BBdzJnvG.js";
16
+ import { u as O, a as U, f as ce, d as ne, b as M, c as T } from "./index-DVp6cwfN.js";
17
17
  import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-7O1BAx04.js";
18
18
  import { u as ie, _ as ue } from "./useCommand-BkONMn3X.js";
19
19
  import { _ as me } from "./Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js";
20
- import { _ as pe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-Ci1Aqc37.js";
20
+ import { _ as pe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-et4dyitf.js";
21
21
  const de = { "data-test": "role-replace" }, fe = /* @__PURE__ */ I({
22
22
  __name: "ReplaceRoleDialog",
23
23
  props: {
@@ -6,12 +6,12 @@ import { _ as E } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
6
6
  import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
7
7
  import { e as j } from "./control-7EP4tjYy.js";
8
8
  import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
9
- import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
9
+ import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
10
10
  import { u as K } from "./platform-q3cjODLx.js";
11
11
  import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
12
12
  import { _ as q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
13
13
  import { u as z } from "./useLoad-CYRVx6HW.js";
14
- import { u as G, a as H, b as J, c as x } from "./index-BBdzJnvG.js";
14
+ import { u as G, a as H, b as J, c as x } from "./index-DVp6cwfN.js";
15
15
  const M = {
16
16
  class: "flex min-w-0 flex-col gap-group-gap",
17
17
  "data-test": "roles-index"
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as $, computed as _, unref as s, openBlock as l, createBlock as C, withCtx as g, createElementVNode as n, createVNode as k, mergeProps as z, createElementBlock as d, toDisplayString as c, createCommentVNode as u, resolveDynamicComponent as B, normalizeClass as y, Fragment as I, renderList as D, withModifiers as E, normalizeStyle as L } from "vue";
2
2
  import { useI18n as S } from "vue-i18n";
3
3
  import { _ as j } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
- import { _ as N } from "./Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js";
5
- import { _ as V } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
4
+ import { _ as N } from "./Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
5
+ import { _ as V } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
6
6
  import { a as q } from "./sectionIndex-BS0ic5W7.js";
7
7
  const M = {
8
8
  class: "dock-safe-area pointer-events-none",
@@ -6,9 +6,9 @@ import { _ as q } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
6
  import { a as le } from "./mediaQuery-CygcXmFW.js";
7
7
  import { u as re } from "./access-DmAceEo5.js";
8
8
  import { u as ie, a as ce } from "./sections-D-kD98vu.js";
9
- import { p as ue } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
9
+ import { p as ue } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
10
10
  import { p as de } from "./sectionIndex-BS0ic5W7.js";
11
- import { _ as G, a as me } from "./SectionList.vue_vue_type_script_setup_true_lang-DBheVDeX.js";
11
+ import { _ as G, a as me } from "./SectionList.vue_vue_type_script_setup_true_lang-BtQjHjd4.js";
12
12
  const pe = {
13
13
  key: 0,
14
14
  "data-test": "section-navigator",
@@ -2,9 +2,9 @@ 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-Ctga6GcS.js";
5
- import { P as D, b as L, e as O, i as g, d as T } from "./index-CnVf6Uk_.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-B1jflSA6.js";
6
6
  import { _ as k } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
7
- import { t as b } from "./toast-D9Z5To38.js";
7
+ import { t as b } from "./toast-CqSDTWRX.js";
8
8
  import { u as V } from "./platform-q3cjODLx.js";
9
9
  import { b as I } from "./routeResource-DstM0hvf.js";
10
10
  import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
@@ -1,8 +1,8 @@
1
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
2
  import { useI18n as v } from "vue-i18n";
3
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";
4
+ import { a as j } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
5
+ import { t as T } from "./toast-CqSDTWRX.js";
6
6
  import { u as N } from "./fieldMessages-C3Rpbktw.js";
7
7
  import { _ as A } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
8
8
  import { _ as O } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
@@ -15,7 +15,7 @@ import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.
15
15
  import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js";
16
16
  import { a as k, n as X } from "./useTypedEntry-aTfPBAhw.js";
17
17
  import { _ as Y } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
18
- import { n as q } from "./index-0TeI4rVv.js";
18
+ import { n as q } from "./index-ClU_gPzK.js";
19
19
  import { u as ee } from "./platform-q3cjODLx.js";
20
20
  import { u as te } from "./useLoad-CYRVx6HW.js";
21
21
  function ne() {
@@ -6,8 +6,8 @@ import { u as D } from "./format-B8mJm946.js";
6
6
  import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
7
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-CnVf6Uk_.js";
10
- import { t as h } from "./toast-D9Z5To38.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-B1jflSA6.js";
10
+ import { t as h } from "./toast-CqSDTWRX.js";
11
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";
@@ -6,7 +6,7 @@ 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-cr0xNDXP.js";
7
7
  import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
8
8
  import { r as $ } from "./guards-Dve61KjR.js";
9
- import { u as C, a as E } from "./index-CnVf6Uk_.js";
9
+ import { u as C, a as E } from "./index-B1jflSA6.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-UH6f9puS.js";
3
+ import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-DBtMgcW6.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,13 +1,13 @@
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-CnVf6Uk_.js";
3
+ import { P as S, i as b } from "./index-B1jflSA6.js";
4
4
  import { u as k } from "./platform-q3cjODLx.js";
5
5
  import { b as I } from "./routeResource-DstM0hvf.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-CYRVx6HW.js";
8
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-CEbAvZ_C.js";
10
+ import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-CifEaH7c.js";
11
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",
@@ -3,13 +3,13 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { u as F } from "./neighbors-DpaIMQAL.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-Ctga6GcS.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-CnVf6Uk_.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-B1jflSA6.js";
7
7
  import { _ as se } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
8
- import { t as k } from "./toast-D9Z5To38.js";
9
- import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-L4TXI0wR.js";
8
+ import { t as k } from "./toast-CqSDTWRX.js";
9
+ import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-BGc8A9AQ.js";
10
10
  import { u as E } from "./platform-q3cjODLx.js";
11
11
  import { a as te } from "./routeResource-DstM0hvf.js";
12
- import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-KPVA-1fI.js";
12
+ import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-C_tQTUyN.js";
13
13
  import { A as re } from "./access-DmAceEo5.js";
14
14
  import { _ as ne } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as ie } from "./useLoad-CYRVx6HW.js";
@@ -18,7 +18,7 @@ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a
18
18
  import { e as B } from "./control-7EP4tjYy.js";
19
19
  import { u as z, _ as K } from "./useCommand-BkONMn3X.js";
20
20
  import { u as U } from "./fieldMessages-C3Rpbktw.js";
21
- import { u as ce, s as le } from "./status-jB5r1cG2.js";
21
+ import { u as ce, s as le } from "./status-D2Fmu3YH.js";
22
22
  import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
23
23
  const ue = /* @__PURE__ */ R({
24
24
  __name: "DeactivateDialog",
@@ -1,20 +1,20 @@
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-DU_jzTg7.js";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-B-TJDr4d.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-B8mJm946.js";
7
7
  import { u as L } from "./platform-q3cjODLx.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-CnVf6Uk_.js";
10
- import { U as j, u as H, s as J } from "./status-jB5r1cG2.js";
9
+ import { i as K, f as E, M as W } from "./index-B1jflSA6.js";
10
+ import { U as j, u as H, s as J } from "./status-D2Fmu3YH.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-DG2zdG_a.js";
14
14
  import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-7O1BAx04.js";
15
15
  import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
16
16
  import { u as Z, _ as ee } from "./useCommand-BkONMn3X.js";
17
- import { t as se } from "./toast-D9Z5To38.js";
17
+ import { t as se } from "./toast-CqSDTWRX.js";
18
18
  import { u as te } from "./fieldMessages-C3Rpbktw.js";
19
19
  const oe = /* @__PURE__ */ U({
20
20
  __name: "NewUserDialog",
@@ -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-BBdzJnvG.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-DVp6cwfN.js";
2
2
  export {
3
3
  a as BindingRow,
4
4
  c as PersonAccess,
package/dist/app/index.js CHANGED
@@ -23,7 +23,7 @@ import { _ as ot } from "../Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.
23
23
  import { _ as rt } from "../EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
24
24
  import { i as nt } from "../feature-DdUAfyi4.js";
25
25
  import { d as Bt, p as Dt } from "../feature-DdUAfyi4.js";
26
- import { k as Vt } from "../keepAlive-WYQGRhuz.js";
26
+ import { k as Vt } from "../keepAlive-CDvMQlcJ.js";
27
27
  function at(e) {
28
28
  const { platform: a } = e, r = W();
29
29
  let i = null, w = null, v = !1;
@@ -1,8 +1,8 @@
1
1
  import { D as M, L as O, a as V, h as j, l as U, r as G } from "../http-CNcDHSOj.js";
2
- import { _ as Z, a as q, u as H } from "../CollectionPage.vue_vue_type_script_setup_true_lang-DU_jzTg7.js";
2
+ import { _ as Z, a as q, u as H } from "../CollectionPage.vue_vue_type_script_setup_true_lang-B-TJDr4d.js";
3
3
  import { u as K } from "../neighbors-DpaIMQAL.js";
4
- import { a as W, b as Y } from "../rowLayout-BqTEhEuy.js";
5
- import { _ as te } from "../DataTable.vue_vue_type_script_setup_true_lang-UH6f9puS.js";
4
+ import { a as W, b as Y } from "../rowLayout-CZ7uZFnE.js";
5
+ import { _ as te } from "../DataTable.vue_vue_type_script_setup_true_lang-DBtMgcW6.js";
6
6
  import { defineComponent as y, openBlock as c, createElementBlock as d, Fragment as h, renderList as v, createBlock as k, unref as u, withCtx as C, normalizeClass as m, createVNode as p, createCommentVNode as g } from "vue";
7
7
  import { _ } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
8
8
  import { _ as w } from "../Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
@@ -42,9 +42,9 @@ import { _ as ws } from "../TextareaField.vue_vue_type_script_setup_true_lang-Cq
42
42
  import { _ as Rt } from "../Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js";
43
43
  import { _ as We } from "../Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
44
44
  import { D as Tt } from "../useWaitStatus-fsacMl4W.js";
45
- import { t as Et } from "../toast-D9Z5To38.js";
46
- import { a as It } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
47
- import { _ as Gt, a as Nt } from "../SectionList.vue_vue_type_script_setup_true_lang-DBheVDeX.js";
45
+ import { t as Et } from "../toast-CqSDTWRX.js";
46
+ import { a as It } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
47
+ import { _ as Gt, a as Nt } from "../SectionList.vue_vue_type_script_setup_true_lang-BtQjHjd4.js";
48
48
  import { p as Kt } from "../sectionIndex-BS0ic5W7.js";
49
49
  import { u as Pt } from "../useSaveChrome-DuWm0Czf.js";
50
50
  import { matchedRouteKey as At, onBeforeRouteLeave as Ut } from "vue-router";
@@ -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-CnVf6Uk_.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-B1jflSA6.js";
2
2
  export {
3
3
  t as SignInAsButton,
4
4
  n as identityFeature,
@@ -1,12 +1,12 @@
1
1
  import { r as i } from "./route-goWMxDUN.js";
2
2
  import { d as H, p as Y } from "./feature-DdUAfyi4.js";
3
- import { k as ie } from "./keepAlive-WYQGRhuz.js";
3
+ import { k as ie } from "./keepAlive-CDvMQlcJ.js";
4
4
  import { d as z } from "./defineRoutes-BGAdiIrt.js";
5
5
  import { d as I } from "./context-Ch1r4fdN.js";
6
6
  import { defineComponent as E, computed as b, watch as $, openBlock as x, createElementBlock as G, ref as D, useTemplateRef as oe, watchEffect as re, onBeforeUnmount as ae, createVNode as _, unref as o, createElementVNode as m, toDisplayString as f, createCommentVNode as F, useId as ce, createBlock as N, Teleport as ue, normalizeClass as j, createTextVNode as O, withCtx as T, mergeProps as le, h as me } from "vue";
7
7
  import { u as pe } from "./environment-Dva-SG8D.js";
8
8
  import { u as P } from "./describeError-Ctga6GcS.js";
9
- import { t as k } from "./toast-D9Z5To38.js";
9
+ import { t as k } from "./toast-CqSDTWRX.js";
10
10
  import { u as A, h as q, f as M } from "./platform-q3cjODLx.js";
11
11
  import { a as R } from "./error-CD7x0Jrz.js";
12
12
  import { useI18n as C } from "vue-i18n";
@@ -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-23sJGIXh.js"), meta: { public: !0, titleKey: "core.identity.signin.title" } }
318
+ login: { name: "login", path: "/login", component: () => import("./SignInPage-BdwfKB31.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-BjvWyg_e.js"), meta: { titleKey: "core.profile.title" } }
337
+ index: { name: "profile", path: "/profile", component: () => import("./ProfilePage-V2ywWbL3.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-CKLqiOpt.js"), meta: { access: W, titleKey: "core.users.title" } },
361
+ index: { name: "users.index", path: "/users", component: () => import("./UsersList-CR3RpQ4-.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-BreLQOPG.js"),
365
+ component: () => import("./UserRecord-CM0JQQGT.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-DSrflQib.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-CenfvX8C.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-BOzz38WJ.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-DRaTo-T0.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-B1-2LPkp.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-ylf1r2lv.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-BbEDM3y_.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-CkXwxorT.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-_35nYhoR.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-Dvdid5QB.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-DJDSlnp1.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-DnW1LTO2.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-CcogaMTK.js"), meta: { access: we, titleKey: "core.notifications.dead_letters.title" } }
34
+ index: { name: "events.deadletters", path: "/events/dead-letters", component: () => import("./DeadLetters-C8ICE47Y.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-BXlYHt8u.js"), meta: { titleKey: "core.notifications.settings.title" } }
36
+ index: { name: "notifications.settings", path: "/profile/notifications", component: () => import("./SettingsPage-CDESMl3M.js"), meta: { titleKey: "core.notifications.settings.title" } }
37
37
  }), Te = /* @__PURE__ */ z({
38
38
  __name: "SettingsMenuItem",
39
39
  setup(o) {
@@ -10,7 +10,7 @@ import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js
10
10
  import { _ as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
11
11
  import { e as U } from "./control-7EP4tjYy.js";
12
12
  import { _ as Te } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
13
- import { t as ee } from "./toast-D9Z5To38.js";
13
+ import { t as ee } from "./toast-CqSDTWRX.js";
14
14
  import { _ as ce } from "./AccessGate.vue_vue_type_script_setup_true_lang-DcbZBINh.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-CYRVx6HW.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-Bzun0trr.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
47
- newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-Du9eyEG2.js"), meta: { access: F.manageRoles, titleKey: "core.access.new_title" } },
46
+ roles: { name: "access.roles", path: "/iam/roles", component: () => import("./RolesPage-Cr3Hlr4Q.js"), meta: { access: F.viewRoles, titleKey: "core.access.title" } },
47
+ newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("./NewRolePage-CYfEuRIV.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-BDD6volP.js"),
51
+ component: () => import("./RolePage-CjCBcRau.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.1";
2
+ export declare const version = "0.4.3";
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const o = "0.4.1";
1
+ const o = "0.4.3";
2
2
  export {
3
3
  o as version
4
4
  };
@@ -0,0 +1,49 @@
1
+ function w(a = {}) {
2
+ const { margin: v = 6e4, retryAfter: h = 3e4 } = a;
3
+ return {
4
+ id: "vue-core.keep-session-alive",
5
+ scope: "session",
6
+ start({ signal: i, platform: t, report: f }) {
7
+ let s, r = null;
8
+ const o = () => {
9
+ const e = t.session.state.value;
10
+ return e.status === "authenticated" && e.expiresAt ? e.expiresAt.getTime() - Date.now() - v : null;
11
+ }, m = () => (r ?? (r = (async () => {
12
+ try {
13
+ if (await a.renew?.(t), t.session.state.value.status !== "authenticated") return;
14
+ await t.session.refresh();
15
+ } catch (e) {
16
+ f(e);
17
+ } finally {
18
+ r = null;
19
+ }
20
+ })()), r);
21
+ function u(e = 0) {
22
+ clearTimeout(s);
23
+ const d = o();
24
+ d !== null && !i.aborted && (s = setTimeout(() => void n(), Math.min(Math.max(d, e), 864e5)));
25
+ }
26
+ async function n() {
27
+ if (i.aborted || !navigator.onLine) return;
28
+ const e = o();
29
+ if (e !== null) {
30
+ if (e <= 0) {
31
+ if (await m(), i.aborted) return;
32
+ u((o() ?? 1) <= 0 ? h : 0);
33
+ return;
34
+ }
35
+ u();
36
+ }
37
+ }
38
+ const c = () => {
39
+ document.visibilityState === "visible" && n();
40
+ }, l = () => void n();
41
+ return document.addEventListener("visibilitychange", c), window.addEventListener("online", l), n(), () => {
42
+ clearTimeout(s), document.removeEventListener("visibilitychange", c), window.removeEventListener("online", l);
43
+ };
44
+ }
45
+ };
46
+ }
47
+ export {
48
+ w as k
49
+ };
@@ -1,4 +1,4 @@
1
- import { d as s, e as o, n as a, a as i, b as n } from "../index-0TeI4rVv.js";
1
+ import { d as s, e as o, n as a, a as i, b as n } from "../index-ClU_gPzK.js";
2
2
  export {
3
3
  s as deadLettersRoutes,
4
4
  o as eventsRoutes,
@@ -15,7 +15,8 @@ export interface MenuItem {
15
15
  shortcut?: string;
16
16
  /**
17
17
  * A choice among the items (the current location): the item is a `menuitemradio` with
18
- * `aria-checked`, so the current one is not told by a tick icon alone.
18
+ * `aria-checked`, and the current one (`true`) also draws a tick at the trailing end, as the
19
+ * account menu does, so the tick is never the only way it is told. `false` reserves nothing.
19
20
  */
20
21
  checked?: boolean;
21
22
  onSelect: () => void;
@@ -1,9 +1,9 @@
1
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-DTbAcDzL.js";
2
+ import { _ as a } from "../Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
3
3
  import { _ as p } from "../Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js";
4
4
  import { _ as m } from "../Toaster.vue_vue_type_script_setup_true_lang-55boRLAj.js";
5
5
  import { _ as x } from "../Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
6
- import { t as T } from "../toast-D9Z5To38.js";
6
+ import { t as T } from "../toast-CqSDTWRX.js";
7
7
  import { I as i, u as A } from "../dialogStack-DZZg55w0.js";
8
8
  import { I as P, u as l } from "../useDialog-CXR3hN0G.js";
9
9
  import { C as D, u as R } from "../mediaQuery-CygcXmFW.js";
@@ -10,6 +10,11 @@ export interface ToastOptions {
10
10
  duration?: number;
11
11
  /** Showing a toast with the id of a visible one updates it instead of adding another. */
12
12
  id?: string | number;
13
+ /**
14
+ * The user swiped the toast away (or closed it with a close button, if one is shown). Not called when it times out,
15
+ * when its action is pressed, or when code dismisses it with `toast.dismiss(id)`.
16
+ */
17
+ onDismiss?: (id: ToastId) => void;
13
18
  }
14
19
  /** Identifies a toast, to update or dismiss it. */
15
20
  export type ToastId = string | number;
@@ -18,11 +23,16 @@ export type ToastId = string | number;
18
23
  * Undo (prefer Undo to a confirmation dialog whenever an action can be reversed). Toasts are one
19
24
  * queue for the whole page, rendered by the single `<Toaster />` the app mounts.
20
25
  *
26
+ * `message` is the plain toast, no status icon: a neutral fact, usually with Undo. `success`, `info`,
27
+ * `warning`, `error` and `loading` carry a status; pick one only when the status is the news.
28
+ *
21
29
  * toast.success(t("saved"));
30
+ * toast.message(t("filterDeleted"), { action: { label: t("undo"), onClick: undo }, onDismiss: commit });
22
31
  * toast.error(t("couldNotSave"), { action: { label: t("retry"), onClick: save } });
23
32
  * const id = toast.loading(t("deleting")); … toast.dismiss(id);
24
33
  */
25
34
  export declare const toast: {
35
+ message: (message: string, options?: ToastOptions) => ToastId;
26
36
  success: (message: string, options?: ToastOptions) => ToastId;
27
37
  info: (message: string, options?: ToastOptions) => ToastId;
28
38
  warning: (message: string, options?: ToastOptions) => ToastId;
@@ -1,15 +1,15 @@
1
- import { _ as x } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
2
- import { a as W, b as X, c as Y, d as Z, p as ee, u as te, e as ae } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-CUtGqVGA.js";
1
+ import { _ as x } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
2
+ import { a as W, b as X, c as Y, d as Z, p as ee, u as te, e as ae } from "../AdaptivePageShell.vue_vue_type_script_setup_true_lang-bxYKlHB7.js";
3
3
  import { _ as se } from "../BottomDock.vue_vue_type_script_setup_true_lang-CjN7xYEr.js";
4
4
  import { b as ne, i as re, u as ie } from "../bottomDock-BZEiOPYZ.js";
5
5
  import { defineComponent as v, openBlock as a, createBlock as b, withCtx as c, createElementVNode as s, normalizeStyle as k, createElementBlock as l, Fragment as y, renderList as B, normalizeClass as d, unref as h, createCommentVNode as p, toDisplayString as f, useModel as S, useId as C, useTemplateRef as P, computed as $, mergeProps as w, createSlots as T, renderSlot as m, mergeModels as D } from "vue";
6
6
  import { _ as L } from "../Icon.vue_vue_type_script_lang-D7oC-d-S.js";
7
- import { _ as ue } from "../RecordHeader.vue_vue_type_script_setup_true_lang-Ci4fs5s5.js";
7
+ import { _ as ue } from "../RecordHeader.vue_vue_type_script_setup_true_lang-BCTNrzBb.js";
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-L4TXI0wR.js";
12
- import { a as Se, _ as Ce } from "../SectionList.vue_vue_type_script_setup_true_lang-DBheVDeX.js";
11
+ import { _ as ye } from "../SectionNavigator.vue_vue_type_script_setup_true_lang-BGc8A9AQ.js";
12
+ import { a as Se, _ as Ce } from "../SectionList.vue_vue_type_script_setup_true_lang-BtQjHjd4.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 = {
15
15
  key: 2,
@@ -1,5 +1,5 @@
1
1
  import { p as o, u as r, a, b as u } from "../routeResource-DstM0hvf.js";
2
- import { _ as R, a as c } from "../ResourcePage.vue_vue_type_script_setup_true_lang-KPVA-1fI.js";
2
+ import { _ as R, a as c } from "../ResourcePage.vue_vue_type_script_setup_true_lang-C_tQTUyN.js";
3
3
  export {
4
4
  R as RecordPager,
5
5
  c as ResourcePage,
@@ -3,7 +3,7 @@ import { useI18n as ve } from "vue-i18n";
3
3
  import { RouterLink as ce, useRouter as _e } from "vue-router";
4
4
  import { _ as we } from "./SwipeActions.vue_vue_type_script_setup_true_lang-BJIA2JfI.js";
5
5
  import { _ as K } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
- import { _ as xe } from "./Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js";
6
+ import { _ as xe } from "./Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
7
7
  import { _ as Ce } from "./Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js";
8
8
  import { _ as re } from "./EmptyState.vue_vue_type_script_setup_true_lang-50p-Mp8I.js";
9
9
  import { u as $e } from "./format-B8mJm946.js";
@@ -7,7 +7,7 @@ import { u as xe, S as X } from "../contributions-DsfmDoRD.js";
7
7
  import { u as Ye } from "../environment-Dva-SG8D.js";
8
8
  import { _ as He } from "../CountryFlag.vue_vue_type_script_setup_true_lang-Kry_vPPZ.js";
9
9
  import { l as pe } from "../languageName-CItV_SOv.js";
10
- import { t as _e } from "../toast-D9Z5To38.js";
10
+ import { t as _e } from "../toast-CqSDTWRX.js";
11
11
  import { u as J, h as ue } from "../platform-q3cjODLx.js";
12
12
  import { a as qe, _ as ve, h as ke } from "../AccountMenuItem.vue_vue_type_script_setup_true_lang-CPeNxh5K.js";
13
13
  import { _ as Ge } from "../Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
@@ -22,7 +22,7 @@ import { u as at } from "../leaveGuard-Cc8yeLxM.js";
22
22
  import { u as ot, S as st } from "../dialogStack-DZZg55w0.js";
23
23
  import { a as H } from "../mediaQuery-CygcXmFW.js";
24
24
  import { u as lt } from "../useDialog-CXR3hN0G.js";
25
- import { _ as rt } from "../Menu.vue_vue_type_script_setup_true_lang-DTbAcDzL.js";
25
+ import { _ as rt } from "../Menu.vue_vue_type_script_setup_true_lang-ClsOlOSr.js";
26
26
  import { W as it } from "../useWaitStatus-fsacMl4W.js";
27
27
  import { d as Ce } from "../feature-DdUAfyi4.js";
28
28
  import { _ as fa } from "../HeaderAction.vue_vue_type_script_setup_true_lang-Cgji-Jrr.js";
@@ -1,5 +1,5 @@
1
1
  import { a, r as o } from "./http-CNcDHSOj.js";
2
- import { i as r } from "./index-CnVf6Uk_.js";
2
+ import { i as r } from "./index-B1jflSA6.js";
3
3
  const n = ["active", "locked", "inactive", "all"];
4
4
  function l(i) {
5
5
  return a({
@@ -0,0 +1,17 @@
1
+ import { toast as i } from "vue-sonner";
2
+ const r = ({ onDismiss: s, ...o } = {}) => ({
3
+ ...o,
4
+ ...s && { onDismiss: (a) => s(a.id) }
5
+ }), n = {
6
+ message: (s, o) => i.message(s, r(o)),
7
+ success: (s, o) => i.success(s, r(o)),
8
+ info: (s, o) => i.info(s, r(o)),
9
+ warning: (s, o) => i.warning(s, r(o)),
10
+ error: (s, o) => i.error(s, r(o)),
11
+ loading: (s, o) => i.loading(s, r(o)),
12
+ /** Dismisses one toast, or all of them without an id. */
13
+ dismiss: (s) => void i.dismiss(s)
14
+ };
15
+ export {
16
+ n as t
17
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wssto2/vue-core",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "goCore": "v1.7.0",
5
5
  "description": "Shared Vue 3 library for go-core applications: app shell, list / record / form pages and their controls.",
6
6
  "keywords": [
@@ -1,48 +0,0 @@
1
- function w(a = {}) {
2
- const { margin: v = 6e4, retryAfter: m = 3e4 } = a;
3
- return {
4
- id: "vue-core.keep-session-alive",
5
- scope: "session",
6
- start({ signal: n, platform: i, report: f }) {
7
- let r, s = null;
8
- const o = () => {
9
- const e = i.session.state.value;
10
- return e.status === "authenticated" && e.expiresAt ? e.expiresAt.getTime() - Date.now() - v : null;
11
- }, h = () => (s ?? (s = (async () => {
12
- try {
13
- await a.renew?.(i), await i.session.refresh();
14
- } catch (e) {
15
- f(e);
16
- } finally {
17
- s = null;
18
- }
19
- })()), s);
20
- function u(e = 0) {
21
- clearTimeout(r);
22
- const d = o();
23
- d !== null && !n.aborted && (r = setTimeout(() => void t(), Math.min(Math.max(d, e), 864e5)));
24
- }
25
- async function t() {
26
- if (n.aborted || !navigator.onLine) return;
27
- const e = o();
28
- if (e !== null) {
29
- if (e <= 0) {
30
- if (await h(), n.aborted) return;
31
- u((o() ?? 1) <= 0 ? m : 0);
32
- return;
33
- }
34
- u();
35
- }
36
- }
37
- const c = () => {
38
- document.visibilityState === "visible" && t();
39
- }, l = () => void t();
40
- return document.addEventListener("visibilitychange", c), window.addEventListener("online", l), t(), () => {
41
- clearTimeout(r), document.removeEventListener("visibilitychange", c), window.removeEventListener("online", l);
42
- };
43
- }
44
- };
45
- }
46
- export {
47
- w as k
48
- };
@@ -1,13 +0,0 @@
1
- import { toast as i } from "vue-sonner";
2
- const t = {
3
- success: (s, o) => i.success(s, o),
4
- info: (s, o) => i.info(s, o),
5
- warning: (s, o) => i.warning(s, o),
6
- error: (s, o) => i.error(s, o),
7
- loading: (s, o) => i.loading(s, o),
8
- /** Dismisses one toast, or all of them without an id. */
9
- dismiss: (s) => void i.dismiss(s)
10
- };
11
- export {
12
- t
13
- };