@wssto2/vue-core 0.4.27 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-J5HoyGNJ.js → AccessGate.vue_vue_type_script_setup_true_lang-Nw1IsB8N.js} +1 -1
  3. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-QPvYudWc.js → ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js} +1 -1
  4. package/dist/{Activity-xtkZq4vG.js → Activity-CoGI2_GL.js} +7 -7
  5. package/dist/{Changes-BPB8h56i.js → Changes-Cwfe6wbX.js} +6 -6
  6. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-CVEYkb26.js → CollectionPage.vue_vue_type_script_setup_true_lang-CtvHtFLy.js} +5 -5
  7. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-DcQQ-uQS.js → DataTable.vue_vue_type_script_setup_true_lang-BEvz5zqo.js} +1 -1
  8. package/dist/{DateField.vue_vue_type_script_setup_true_lang-CpuH0WTl.js → DateField.vue_vue_type_script_setup_true_lang-DRuWzSaX.js} +1 -1
  9. package/dist/{DeadLetters-DeYxkTMh.js → DeadLetters-DyA5Dqn0.js} +7 -7
  10. package/dist/{FormErrors.vue_vue_type_script_setup_true_lang-DGOSc-PS.js → FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js} +2 -2
  11. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js → FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js} +2 -2
  12. package/dist/{FormView.vue_vue_type_script_setup_true_lang-BUrYkjmF.js → FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js} +2 -2
  13. package/dist/{General-BLbn4BCc.js → General-DTEfxWls.js} +10 -10
  14. package/dist/MenuButton.vue_vue_type_script_setup_true_lang-AGbN9r5q.js +28 -0
  15. package/dist/{NewRolePage-B7DwFWPk.js → NewRolePage-CRZoUajV.js} +3 -3
  16. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-DaE5BLm4.js → NumberField.vue_vue_type_script_setup_true_lang-ButMV_sf.js} +1 -1
  17. package/dist/ProfilePage-DLY81mvN.js +764 -0
  18. package/dist/RoleEditor.vue_vue_type_script_setup_true_lang-gXbxXG2R.js +325 -0
  19. package/dist/RolePage-B9t586Q8.js +314 -0
  20. package/dist/{RolesPage-B5RwSZ89.js → RolesPage-BRdG-OSL.js} +6 -6
  21. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-Dmv6TpCi.js → SectionNavigator.vue_vue_type_script_setup_true_lang-Cy9Oi0ts.js} +1 -1
  22. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-Dg-_ZjgR.js → SegmentedField.vue_vue_type_script_setup_true_lang-BwyMvkis.js} +1 -1
  23. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-C3FbRQW7.js → SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js} +11 -12
  24. package/dist/SessionList.vue_vue_type_script_setup_true_lang-DhoTd5D7.js +133 -0
  25. package/dist/{Sessions-wEdUsK-U.js → Sessions-vGyUOnPG.js} +5 -5
  26. package/dist/SettingsPage-V8WeADZZ.js +632 -0
  27. package/dist/{SignIn-CK9rq8LQ.js → SignIn-C-3i8RG6.js} +7 -7
  28. package/dist/{SignInPage-BORsM1g4.js → SignInPage-D2NA3VKU.js} +4 -4
  29. package/dist/SignIns-eoYPB6kB.js +121 -0
  30. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-ALvJisiP.js → SwitchField.vue_vue_type_script_setup_true_lang-D_-HACqT.js} +1 -1
  31. package/dist/{TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js → TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js} +2 -2
  32. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-BJ4__cvJ.js → TextareaField.vue_vue_type_script_setup_true_lang-DsjK2C9T.js} +1 -1
  33. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-DBxKAWRo.js → TimeField.vue_vue_type_script_setup_true_lang-Cz7KhUqt.js} +1 -1
  34. package/dist/Timestamp.vue_vue_type_script_setup_true_lang-CutyQkJb.js +52 -0
  35. package/dist/{UserRecord-C1SzdpKu.js → UserRecord-BaQl2zzQ.js} +13 -13
  36. package/dist/{UsersList-B3hc683r.js → UsersList-BfXWgH5K.js} +9 -9
  37. package/dist/access/RoleCompareDialog.vue.d.ts +1 -1
  38. package/dist/access/RoleEditor.vue.d.ts +2 -0
  39. package/dist/access/constraints.d.ts +28 -0
  40. package/dist/access/context.d.ts +5 -0
  41. package/dist/access/feature.d.ts +17 -0
  42. package/dist/access/index.d.ts +3 -1
  43. package/dist/access/index.js +11 -9
  44. package/dist/access/refusals.d.ts +20 -2
  45. package/dist/app/index.js +6 -6
  46. package/dist/client/index.js +19 -11
  47. package/dist/{client-k9euDWF4.js → client-BHPFfBj3.js} +20 -20
  48. package/dist/collection/index.js +5 -5
  49. package/dist/content/Timestamp.vue.d.ts +3 -2
  50. package/dist/content/index.js +66 -37
  51. package/dist/{contributions-BVBZP5Jb.js → contributions-DVQPcjJz.js} +1 -1
  52. package/dist/{describeError-B-NMa--w.js → describeError-BqGAUZgX.js} +1 -1
  53. package/dist/{error-CD7x0Jrz.js → error-Bb_dr_Ay.js} +2 -2
  54. package/dist/{fieldMessages-6HVzSDqG.js → fieldMessages-DTXpWnBd.js} +7 -7
  55. package/dist/form/index.js +1235 -1412
  56. package/dist/{guards-BJZjc3FZ.js → guards-DRh4zmxO.js} +1 -1
  57. package/dist/{http-BFfkA7gN.js → http-D_pBg22D.js} +1 -1
  58. package/dist/i18n/index.d.ts +2 -2
  59. package/dist/i18n/index.js +30 -30
  60. package/dist/identity/index.d.ts +2 -0
  61. package/dist/identity/index.js +8 -6
  62. package/dist/identity/profile/DetailsFields.vue.d.ts +8 -0
  63. package/dist/identity/profile/{DetailsPanel.vue.d.ts → DetailsGroup.vue.d.ts} +4 -1
  64. package/dist/identity/profile/{EmailPanel.vue.d.ts → EmailGroup.vue.d.ts} +1 -1
  65. package/dist/identity/profile/SignInsGroup.vue.d.ts +2 -0
  66. package/dist/identity/profile/profileSections.d.ts +37 -0
  67. package/dist/identity/shared/SignInList.vue.d.ts +22 -0
  68. package/dist/identity/shared/deviceLabel.d.ts +7 -0
  69. package/dist/identity/useReturnToOwnAccount.d.ts +10 -0
  70. package/dist/identity/users/context.d.ts +3 -0
  71. package/dist/identity/users/feature.d.ts +3 -0
  72. package/dist/index-WkbzC_ee.js +745 -0
  73. package/dist/index-g-qbUeTk.js +630 -0
  74. package/dist/index-kqk7Mclb.js +480 -0
  75. package/dist/index.d.ts +1 -1
  76. package/dist/index.js +1 -1
  77. package/dist/modules/notification/entities.d.ts +19 -0
  78. package/dist/modules/notification/routes.d.ts +25 -1
  79. package/dist/modules/notification/schemas.d.ts +24 -0
  80. package/dist/{navigation-DpcDF0rX.js → navigation-DuQwti76.js} +1 -1
  81. package/dist/{neighbors-RVQ4O3Qv.js → neighbors-IMRQ4rkm.js} +22 -22
  82. package/dist/notifications/context.d.ts +24 -1
  83. package/dist/notifications/feature.d.ts +10 -1
  84. package/dist/notifications/index.d.ts +1 -1
  85. package/dist/notifications/index.js +1 -1
  86. package/dist/notifications/push/DevicesSection.vue.d.ts +12 -0
  87. package/dist/notifications/push/ThisDeviceSection.vue.d.ts +15 -0
  88. package/dist/notifications/push/browser.d.ts +40 -0
  89. package/dist/notifications/push/devices.d.ts +15 -0
  90. package/dist/notifications/push/thisDevice.d.ts +28 -0
  91. package/dist/notifications/settings/ChannelsSection.vue.d.ts +16 -0
  92. package/dist/notifications/settings/{QuietHoursPanel.vue.d.ts → QuietHoursSection.vue.d.ts} +3 -1
  93. package/dist/notifications/settings/SettingsBody.vue.d.ts +17 -0
  94. package/dist/notifications/settings/settings.d.ts +4 -3
  95. package/dist/notifications/settings/state.d.ts +4 -2
  96. package/dist/options-g8RwEhBk.js +366 -0
  97. package/dist/overlay/MenuButton.vue.d.ts +3 -2
  98. package/dist/overlay/index.js +37 -59
  99. package/dist/page/index.js +1 -1
  100. package/dist/phone/index.js +10 -11
  101. package/dist/platform/index.js +3 -3
  102. package/dist/{platform-PZpUkkMS.js → platform-Dl1fbScN.js} +2 -2
  103. package/dist/push-worker/index.d.ts +91 -0
  104. package/dist/push-worker/index.js +54 -0
  105. package/dist/resource/index.js +1 -1
  106. package/dist/{routeResource-DlTsGTg_.js → routeResource-CcYA75T2.js} +2 -2
  107. package/dist/router/index.js +3 -3
  108. package/dist/{rowLayout-Dh749umr.js → rowLayout-BBFyLbOl.js} +1 -1
  109. package/dist/{sections-CeZl-Jxg.js → sections-D5rgQ4YB.js} +1 -1
  110. package/dist/shell/index.js +3 -3
  111. package/dist/signInEvents-DWShrJox.js +30 -0
  112. package/dist/state/index.js +1 -1
  113. package/dist/{status-D9iQJJiz.js → status-C2gHqkj6.js} +2 -2
  114. package/dist/styles.css +1 -1
  115. package/dist/{suggestions-DHJFKB26.js → suggestions-CfFTHi8y.js} +2 -2
  116. package/dist/testing/index.js +1 -1
  117. package/dist/{useCommand-Cj-APj-P.js → useCommand-CtqheKUv.js} +2 -2
  118. package/dist/useGroupSheet-ATvc0IiM.js +278 -0
  119. package/dist/{useLoad-M7V-AVwR.js → useLoad-W4tfxmm5.js} +1 -1
  120. package/dist/{useResourceForm-tGYTfKhH.js → useResourceForm-CJfl8rj_.js} +1 -1
  121. package/package.json +6 -2
  122. package/dist/KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js +0 -35
  123. package/dist/OtpInput.vue_vue_type_script_setup_true_lang-gp4FfWAH.js +0 -95
  124. package/dist/PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js +0 -46
  125. package/dist/ProfilePage-CQYHj9Ns.js +0 -654
  126. package/dist/RoleEditor.vue_vue_type_script_setup_true_lang-DRHmjA9w.js +0 -300
  127. package/dist/RolePage-ODFu68Ce.js +0 -315
  128. package/dist/SessionList.vue_vue_type_script_setup_true_lang-D5qm77Zo.js +0 -111
  129. package/dist/SettingsPage-BVrMihx0.js +0 -255
  130. package/dist/SignInTable.vue_vue_type_script_setup_true_lang-AakWNvaM.js +0 -79
  131. package/dist/SignIns-C-8kVf7I.js +0 -66
  132. package/dist/Timestamp.vue_vue_type_script_setup_true_lang-DRmzPDOP.js +0 -51
  133. package/dist/control-B4SdblL6.js +0 -350
  134. package/dist/identity/profile/PanelActions.vue.d.ts +0 -17
  135. package/dist/index-C3E6DcO0.js +0 -706
  136. package/dist/index-LP6NNnow.js +0 -459
  137. package/dist/index-qUaGJ9j2.js +0 -504
  138. package/dist/notifications/settings/EmailPanel.vue.d.ts +0 -14
  139. package/dist/options-Ba_0uLWN.js +0 -18
  140. package/dist/route-goWMxDUN.js +0 -13
  141. package/dist/transport-BnP7WC0Y.js +0 -4
  142. /package/dist/identity/{profile/PasswordPanel.vue.d.ts → ReturnMenuItem.vue.d.ts} +0 -0
  143. /package/dist/identity/profile/{SessionsPanel.vue.d.ts → PasswordGroup.vue.d.ts} +0 -0
  144. /package/dist/identity/profile/{SignInsPanel.vue.d.ts → SessionsGroup.vue.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as w, openBlock as a, createBlock as k, mergeProps as x, unref as r, createSlots as V, withCtx as o, createElementVNode as h, normalizeClass as n, createElementBlock as s, Fragment as _, renderList as $, createTextVNode as B, toDisplayString as d, createCommentVNode as C, renderSlot as i, mergeDefaults as L } from "vue";
2
- import { u as F, a as S, _ as T, f as D, b as N } from "./control-B4SdblL6.js";
2
+ import { u as F, a as S, _ as T, f as D, b as N } from "./options-g8RwEhBk.js";
3
3
  const E = ["id", "aria-label", "aria-describedby", "aria-invalid"], P = ["disabled", "aria-pressed", "onClick"], H = /* @__PURE__ */ w({
4
4
  __name: "SegmentedField",
5
5
  props: /* @__PURE__ */ L({
@@ -6,9 +6,8 @@ import { u as ie } from "./mediaQuery-CygcXmFW.js";
6
6
  import { _ as I } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
7
7
  import { _ as ue } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
8
8
  import { _ as de } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
9
- import { a as ce, c as pe, _ as me, f as ve, b as fe } from "./control-B4SdblL6.js";
10
- import { g as be, m as ge } from "./options-Ba_0uLWN.js";
11
- import { a as ye } from "./suggestions-DHJFKB26.js";
9
+ import { i as ce, m as pe, a as me, c as ve, _ as fe, f as be, b as ge } from "./options-g8RwEhBk.js";
10
+ import { a as ye } from "./suggestions-CfFTHi8y.js";
12
11
  const he = { class: "flex min-h-9 items-center gap-1.5 rounded-control bg-fill px-2.5 text-content-muted focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-border-focus" }, ke = ["aria-label", "placeholder"], xe = ["aria-multiselectable", "aria-busy"], we = {
13
12
  key: 0,
14
13
  role: "presentation"
@@ -48,7 +47,7 @@ const he = { class: "flex min-h-9 items-center gap-1.5 rounded-control bg-fill p
48
47
  },
49
48
  emits: ["select", "retry"],
50
49
  setup(p, { emit: x }) {
51
- const e = p, w = x, C = ee(null), c = (s) => s, f = (s) => void (C.value = s), D = (s) => C.value === s.value, { t: l } = Z(), _ = M(""), B = te(), u = Y("root"), m = g(() => e.options.length >= e.searchFrom), F = g(() => be(ge(e.options, _.value))), q = (s) => e.multiple ? Array.isArray(e.modelValue) && e.modelValue.includes(s.value) : e.modelValue === s.value, P = g(() => e.multiple ? !1 : e.modelValue === null);
50
+ const e = p, w = x, C = ee(null), c = (s) => s, f = (s) => void (C.value = s), D = (s) => C.value === s.value, { t: l } = Z(), _ = M(""), B = te(), u = Y("root"), m = g(() => e.options.length >= e.searchFrom), F = g(() => ce(pe(e.options, _.value))), q = (s) => e.multiple ? Array.isArray(e.modelValue) && e.modelValue.includes(s.value) : e.modelValue === s.value, P = g(() => e.multiple ? !1 : e.modelValue === null);
52
51
  function A(s) {
53
52
  if (!["ArrowDown", "ArrowUp", "Home", "End"].includes(s.key)) return;
54
53
  const r = [...u.value?.querySelectorAll("[data-option]:not([disabled])") ?? []];
@@ -216,7 +215,7 @@ const he = { class: "flex min-h-9 items-center gap-1.5 rounded-control bg-fill p
216
215
  ], 544));
217
216
  }
218
217
  });
219
- function et(p) {
218
+ function Ze(p) {
220
219
  const x = ye(), e = p.for !== void 0;
221
220
  let w = 0;
222
221
  function C() {
@@ -272,7 +271,7 @@ function Re(p, x) {
272
271
  R(l) || l.reload();
273
272
  } };
274
273
  }
275
- const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-describedby", "aria-busy"], Ue = ["id", "disabled", "aria-required", "aria-invalid", "aria-describedby", "aria-busy", "onClick"], Ne = { class: "max-h-72 overflow-y-auto" }, He = { class: "block break-words text-body text-content-strong" }, tt = /* @__PURE__ */ X({
274
+ const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-describedby", "aria-busy"], Ue = ["id", "disabled", "aria-required", "aria-invalid", "aria-describedby", "aria-busy", "onClick"], Ne = { class: "max-h-72 overflow-y-auto" }, He = { class: "block break-words text-body text-content-strong" }, et = /* @__PURE__ */ X({
276
275
  __name: "SelectField",
277
276
  props: /* @__PURE__ */ se({
278
277
  label: {},
@@ -292,7 +291,7 @@ const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid",
292
291
  modelValue: {},
293
292
  searchFrom: {},
294
293
  rowLayout: {}
295
- }, { ...fe, selected: null, placeholder: void 0, clearable: void 0, modelValue: void 0, searchFrom: 9, rowLayout: void 0 }),
294
+ }, { ...ge, selected: null, placeholder: void 0, clearable: void 0, modelValue: void 0, searchFrom: 9, rowLayout: void 0 }),
296
295
  emits: ["update:modelValue"],
297
296
  setup(p, { emit: x }) {
298
297
  const e = p, w = x, C = M(e.modelValue ?? null);
@@ -302,9 +301,9 @@ const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid",
302
301
  set: (o) => {
303
302
  C.value = o, w("update:modelValue", o);
304
303
  }
305
- }), { t: f } = Z(), D = ie(), l = !!ce(), _ = Y("sheet"), B = M(!1), u = Re(() => e.options, (o) => {
304
+ }), { t: f } = Z(), D = ie(), l = !!me(), _ = Y("sheet"), B = M(!1), u = Re(() => e.options, (o) => {
306
305
  c.value !== null && !o.some((v) => v.value === c.value) && (c.value = null);
307
- }), m = g(() => u.known.value.find((o) => o.value === c.value) ?? (e.selected?.value === c.value ? e.selected : null)), F = g(() => e.placeholder ?? f("core.form.select.choose")), q = pe("popup", () => e.error ? "error" : e.disabled ? "locked" : "rest");
306
+ }), m = g(() => u.known.value.find((o) => o.value === c.value) ?? (e.selected?.value === c.value ? e.selected : null)), F = g(() => e.placeholder ?? f("core.form.select.choose")), q = ve("popup", () => e.error ? "error" : e.disabled ? "locked" : "rest");
308
307
  function P(o) {
309
308
  c.value = o, _.value?.dismiss();
310
309
  }
@@ -314,7 +313,7 @@ const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid",
314
313
  l ? "compact:pl-0 compact:pr-0" : "",
315
314
  e.disabled ? "cursor-not-allowed" : "cursor-pointer"
316
315
  ]);
317
- return (o, v) => (n(), z(me, K(t(ve)(e), {
316
+ return (o, v) => (n(), z(fe, K(t(be)(e), {
318
317
  value: m.value?.label ?? null,
319
318
  "row-layout": e.rowLayout
320
319
  }), E({
@@ -508,8 +507,8 @@ const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid",
508
507
  }
509
508
  });
510
509
  export {
511
- tt as _,
510
+ et as _,
512
511
  Q as a,
513
- et as b,
512
+ Ze as b,
514
513
  Re as u
515
514
  };
@@ -0,0 +1,133 @@
1
+ import { defineComponent as v, openBlock as t, createBlock as c, unref as n, withCtx as o, createCommentVNode as s, createElementBlock as d, Fragment as w, renderList as C, createSlots as $, createElementVNode as l, toDisplayString as r, createTextVNode as m, createVNode as f } from "vue";
2
+ import { useI18n as E } from "vue-i18n";
3
+ import { _ as y } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
+ import { _ as B } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
5
+ import { u as N } from "./format-D8X4zsx6.js";
6
+ import { _ as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
7
+ import { g as h } from "./options-g8RwEhBk.js";
8
+ import { _ as k } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
+ const L = {
10
+ class: "flex flex-col gap-y-0.5 md:flex-row md:flex-wrap md:items-center md:gap-x-1.5",
11
+ "data-session-facts": ""
12
+ }, S = {
13
+ key: 0,
14
+ class: "font-mono"
15
+ }, T = {
16
+ key: 1,
17
+ "aria-hidden": "true",
18
+ class: "hidden md:inline"
19
+ }, z = {
20
+ key: 0,
21
+ class: "mt-1 flex flex-wrap gap-1"
22
+ }, K = /* @__PURE__ */ v({
23
+ __name: "SessionList",
24
+ props: {
25
+ sessions: {},
26
+ canEnd: { type: Boolean },
27
+ header: {},
28
+ footer: {}
29
+ },
30
+ emits: ["end"],
31
+ setup(x, { emit: b }) {
32
+ const i = x, p = b, { t: a } = E(), u = N();
33
+ return (F, _) => (t(), c(n(V), {
34
+ header: i.header,
35
+ footer: i.footer
36
+ }, {
37
+ default: o(() => [
38
+ i.sessions.length === 0 ? (t(), c(n(h), {
39
+ key: 0,
40
+ layout: "setting",
41
+ label: n(a)("core.account.sessions.empty")
42
+ }, null, 8, ["label"])) : s("", !0),
43
+ (t(!0), d(w, null, C(i.sessions, (e) => (t(), c(n(h), {
44
+ key: e.id,
45
+ layout: "setting",
46
+ label: e.device || n(a)("core.account.sessions.unknown_device"),
47
+ "data-session": e.id
48
+ }, $({
49
+ leading: o(() => [
50
+ f(n(B), {
51
+ tone: "anchor",
52
+ icon: "deviceLine"
53
+ })
54
+ ]),
55
+ sub: o(() => [
56
+ l("span", L, [
57
+ e.ip ? (t(), d("span", S, r(e.ip), 1)) : s("", !0),
58
+ e.ip ? (t(), d("span", T, "·")) : s("", !0),
59
+ l("span", null, r(n(a)("core.account.sessions.last_active", { when: n(u).dateTime(e.last_used_at) })), 1),
60
+ _[0] || (_[0] = l("span", {
61
+ "aria-hidden": "true",
62
+ class: "hidden md:inline"
63
+ }, "·", -1)),
64
+ l("span", null, r(n(a)("core.account.sessions.expires", { when: n(u).dateTime(e.expires_at) })), 1)
65
+ ]),
66
+ e.current || e.opened_by ? (t(), d("span", z, [
67
+ e.current ? (t(), c(n(k), {
68
+ key: 0,
69
+ tone: "positive",
70
+ dot: "",
71
+ "data-session-current": ""
72
+ }, {
73
+ default: o(() => [
74
+ m(r(n(a)("core.account.sessions.this_device")), 1)
75
+ ]),
76
+ _: 1
77
+ })) : s("", !0),
78
+ e.opened_by ? (t(), c(n(k), {
79
+ key: 1,
80
+ tone: "warning",
81
+ "data-session-opened-by": ""
82
+ }, {
83
+ default: o(() => [
84
+ m(r(e.opened_by.name ? n(a)("core.account.sessions.opened_by", { name: e.opened_by.name }) : n(a)("core.account.sessions.opened_by_other")), 1)
85
+ ]),
86
+ _: 2
87
+ }, 1024)) : s("", !0)
88
+ ])) : s("", !0),
89
+ i.canEnd && !e.current ? (t(), c(n(y), {
90
+ key: 1,
91
+ prominence: "plain",
92
+ tone: "critical",
93
+ size: "sm",
94
+ class: "mt-1 -ml-2 md:hidden",
95
+ "data-end-session-inline": e.id,
96
+ onClick: (g) => p("end", e)
97
+ }, {
98
+ default: o(() => [
99
+ m(r(n(a)("core.account.sessions.end")), 1)
100
+ ]),
101
+ _: 1
102
+ }, 8, ["data-end-session-inline", "onClick"])) : s("", !0)
103
+ ]),
104
+ _: 2
105
+ }, [
106
+ i.canEnd && !e.current ? {
107
+ name: "trailing",
108
+ fn: o(() => [
109
+ f(n(y), {
110
+ prominence: "plain",
111
+ tone: "critical",
112
+ size: "sm",
113
+ class: "hidden md:inline-flex",
114
+ "data-end-session": e.id,
115
+ onClick: (g) => p("end", e)
116
+ }, {
117
+ default: o(() => [
118
+ m(r(n(a)("core.account.sessions.end")), 1)
119
+ ]),
120
+ _: 1
121
+ }, 8, ["data-end-session", "onClick"])
122
+ ]),
123
+ key: "0"
124
+ } : void 0
125
+ ]), 1032, ["label", "data-session"]))), 128))
126
+ ]),
127
+ _: 1
128
+ }, 8, ["header", "footer"]));
129
+ }
130
+ });
131
+ export {
132
+ K as _
133
+ };
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as x, useTemplateRef as v, computed as w, ref as $, openBlock as E, createElementBlock as P, createVNode as t, unref as e, createSlots as h, withCtx as u, createTextVNode as B, toDisplayString as C } from "vue";
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
- 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-LP6NNnow.js";
4
+ import { u as A } from "./describeError-BqGAUZgX.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-kqk7Mclb.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-PZpUkkMS.js";
9
- import { b as I } from "./routeResource-DlTsGTg_.js";
8
+ import { u as V } from "./platform-Dl1fbScN.js";
9
+ import { b as I } from "./routeResource-CcYA75T2.js";
10
10
  import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
11
11
  import { _ as z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
12
- import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-D5qm77Zo.js";
12
+ import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-DhoTd5D7.js";
13
13
  const G = {
14
14
  class: "flex min-w-0 flex-col gap-group-gap",
15
15
  "data-person-sessions": ""