@wssto2/vue-core 0.1.0 → 0.2.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 (95) hide show
  1. package/README.md +20 -9
  2. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-CKghARkW.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-CeKK8_g5.js} +2 -2
  3. package/dist/{AlertDialog.vue_vue_type_script_setup_true_lang-BZb4qKXo.js → AlertDialog.vue_vue_type_script_setup_true_lang-e4hzkzg3.js} +1 -1
  4. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-B82bl36A.js → AsyncSection.vue_vue_type_script_setup_true_lang-CWLB3xsR.js} +1 -1
  5. package/dist/Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js +51 -0
  6. package/dist/Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js +182 -0
  7. package/dist/CountryFlag.vue_vue_type_script_setup_true_lang-Kry_vPPZ.js +299 -0
  8. package/dist/{DiscardChangesModal.vue_vue_type_script_setup_true_lang-Bx5O1RZJ.js → DiscardChangesModal.vue_vue_type_script_setup_true_lang-DyhYHRyz.js} +1 -1
  9. package/dist/{LeaveGuardRoot.vue_vue_type_script_setup_true_lang-DH6EB8br.js → LeaveGuardRoot.vue_vue_type_script_setup_true_lang-CvwoT1JF.js} +1 -1
  10. package/dist/{Menu.vue_vue_type_script_setup_true_lang-D44EHXQZ.js → Menu.vue_vue_type_script_setup_true_lang-CrMj6KPD.js} +1 -1
  11. package/dist/{Modal.vue_vue_type_script_setup_true_lang-DYQgaUtj.js → Modal.vue_vue_type_script_setup_true_lang-BQZM49gC.js} +138 -128
  12. package/dist/{PhotoViewer.vue_vue_type_script_setup_true_lang-DDVQXJRB.js → PhotoViewer.vue_vue_type_script_setup_true_lang-ElDizaW2.js} +1 -1
  13. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-DGcKX_OJ.js → SectionList.vue_vue_type_script_setup_true_lang-L9ita_Kx.js} +2 -2
  14. package/dist/SelectField.vue_vue_type_script_setup_true_lang-DZTrU8NJ.js +661 -0
  15. package/dist/{Sheet.vue_vue_type_script_setup_true_lang-BLBD5ps8.js → Sheet.vue_vue_type_script_setup_true_lang-CtkJ-4e3.js} +1 -1
  16. package/dist/{Tooltip.vue_vue_type_script_setup_true_lang-BJWPVyfT.js → Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js} +1 -1
  17. package/dist/app/application.d.ts +5 -0
  18. package/dist/app/environment.d.ts +2 -0
  19. package/dist/app/index.js +75 -72
  20. package/dist/button/index.d.ts +1 -1
  21. package/dist/button/index.js +5 -3
  22. package/dist/button/shortcut.d.ts +28 -2
  23. package/dist/collection/CollectionPage.vue.d.ts +1 -0
  24. package/dist/collection/CollectionRows.vue.d.ts +59 -0
  25. package/dist/collection/CollectionTable.vue.d.ts +1 -1
  26. package/dist/collection/DataTable.vue.d.ts +47 -0
  27. package/dist/collection/RowActions.vue.d.ts +19 -0
  28. package/dist/collection/columns.d.ts +2 -0
  29. package/dist/collection/index.d.ts +4 -2
  30. package/dist/collection/index.js +1752 -1610
  31. package/dist/collection/rowLayout.d.ts +10 -0
  32. package/dist/collection/slots.d.ts +6 -3
  33. package/dist/describeError-l5T9b8Uv.js +41 -0
  34. package/dist/dialogStack-DZZg55w0.js +31 -0
  35. package/dist/form/CommandDialog.vue.d.ts +12 -1
  36. package/dist/form/FormGroup.vue.d.ts +1 -1
  37. package/dist/form/MultiSelectField.vue.d.ts +4 -1
  38. package/dist/form/NumberField.vue.d.ts +6 -0
  39. package/dist/form/OptionList.vue.d.ts +6 -2
  40. package/dist/form/SelectField.vue.d.ts +4 -1
  41. package/dist/form/index.d.ts +2 -0
  42. package/dist/form/index.js +1940 -2008
  43. package/dist/form/suggestions.d.ts +11 -0
  44. package/dist/form/useOptions.d.ts +60 -0
  45. package/dist/i18n/describeError.d.ts +31 -0
  46. package/dist/i18n/index.d.ts +26 -0
  47. package/dist/i18n/index.js +22 -20
  48. package/dist/index.d.ts +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/internal/CountryFlag.vue.d.ts +10 -0
  51. package/dist/modal/Modal.vue.d.ts +4 -0
  52. package/dist/modal/ShortcutHelp.vue.d.ts +2 -0
  53. package/dist/modal/index.d.ts +2 -0
  54. package/dist/modal/index.js +64 -6
  55. package/dist/modal/placement.d.ts +22 -0
  56. package/dist/{options-CjSz2dQK.js → options-DAkBtYkI.js} +3 -3
  57. package/dist/overlay/Popover.vue.d.ts +3 -0
  58. package/dist/overlay/dialogStack.d.ts +9 -0
  59. package/dist/overlay/index.d.ts +1 -1
  60. package/dist/overlay/index.js +18 -17
  61. package/dist/page/index.js +4 -4
  62. package/dist/phone/index.js +247 -540
  63. package/dist/platform/AccessGate.vue.d.ts +50 -0
  64. package/dist/platform/index.d.ts +2 -0
  65. package/dist/platform/index.js +86 -66
  66. package/dist/resource/index.js +42 -42
  67. package/dist/shell/AccountMenuItem.vue.d.ts +3 -0
  68. package/dist/shell/NavigationList.vue.d.ts +1 -1
  69. package/dist/shell/index.js +406 -394
  70. package/dist/state/Badge.vue.d.ts +17 -10
  71. package/dist/state/hue.d.ts +8 -0
  72. package/dist/state/index.d.ts +2 -0
  73. package/dist/state/index.js +92 -56
  74. package/dist/state/useLoad.d.ts +41 -0
  75. package/dist/styles.css +1 -1
  76. package/dist/testing/app.d.ts +61 -0
  77. package/dist/testing/async.d.ts +12 -0
  78. package/dist/testing/collection.d.ts +18 -0
  79. package/dist/testing/format.d.ts +9 -0
  80. package/dist/testing/i18n.d.ts +16 -0
  81. package/dist/testing/index.d.ts +14 -0
  82. package/dist/testing/index.js +178 -0
  83. package/dist/testing/media.d.ts +23 -0
  84. package/dist/testing/platform.d.ts +40 -0
  85. package/dist/testing/transport.d.ts +40 -0
  86. package/dist/{toast-BTeX0r66.js → toast-DvrHQ6Ag.js} +45 -43
  87. package/dist/{useDialog-wmyNx2j_.js → useDialog-CXR3hN0G.js} +1 -1
  88. package/package.json +5 -1
  89. package/src/styles/theme.css +60 -0
  90. package/dist/Badge.vue_vue_type_script_setup_true_lang-DKc6ugmr.js +0 -31
  91. package/dist/Button.vue_vue_type_script_setup_true_lang-3f0emVNU.js +0 -141
  92. package/dist/SelectField.vue_vue_type_script_setup_true_lang-SyFWE33A.js +0 -422
  93. package/dist/dialogStack-DiTG1rZc.js +0 -26
  94. package/dist/phone/CountryFlag.vue.d.ts +0 -10
  95. /package/dist/{phone → internal}/flagLoaders.d.ts +0 -0
package/README.md CHANGED
@@ -10,14 +10,15 @@ Its plan and rules are in [PLAN.md](PLAN.md).
10
10
 
11
11
  | Import | For |
12
12
  |---|---|
13
- | `@wssto2/vue-core/platform` | `readBootstrap`, `createPlatform` (HTTP client, session, access), typed contexts |
13
+ | `@wssto2/vue-core/platform` | `readBootstrap`, `createPlatform` (HTTP client, session, access), `AccessGate`, typed contexts |
14
14
  | `@wssto2/vue-core/app` | `createApplication`, `defineFeature`, shell outlets, effects |
15
15
  | `@wssto2/vue-core/shell` | `backofficeShell`, the shell's parts for a custom one |
16
16
  | `@wssto2/vue-core/router` | `defineRoutes` (typed targets), guards, navigation |
17
- | `@wssto2/vue-core/collection` | `defineCollection`, `useCollection`, `CollectionPage`, record neighbors |
17
+ | `@wssto2/vue-core/collection` | `defineCollection`, `useCollection`, `CollectionPage`, `DataTable` (a table over an array), record neighbors |
18
18
  | `@wssto2/vue-core/resource`, `/page` | `useRouteResource`, `ResourcePage`, `SectionNavigator`, `AdaptivePageShell` |
19
19
  | `@wssto2/vue-core/button`, `/controls`, `/content`, `/state`, `/overlay`, `/modal`, `/icon` | the primitives |
20
- | `@wssto2/vue-core/i18n`, `/format`, `/client` | messages, formatting, `HttpClient` and `ApiError` |
20
+ | `@wssto2/vue-core/i18n`, `/format`, `/client` | messages, `useDescribeError`, formatting, `HttpClient` and `ApiError` |
21
+ | `@wssto2/vue-core/testing` | `createTestPlatform`, `createTestApp`, fake transports: for your tests, [testing](docs/recipes/testing.md) |
21
22
 
22
23
  Nothing is reachable by a deep import. The peers are `vue`, `vue-router` and `vue-i18n`; the library never bundles them.
23
24
 
@@ -174,7 +175,16 @@ Its texts are JSON files under the feature, loaded the first time one of its rou
174
175
  "open": "Open",
175
176
  "closed": "Closed",
176
177
  "record": "Ticket",
177
- "details": "Details"
178
+ "details": "Details",
179
+ "history": "History",
180
+ "history_empty": "Nothing has happened yet.",
181
+ "when": "When",
182
+ "kind": "Kind",
183
+ "author": "Author",
184
+ "note": "Note",
185
+ "comment": "Comment",
186
+ "change": "Status change",
187
+ "remove": "Remove"
178
188
  }
179
189
  ```
180
190
 
@@ -284,12 +294,13 @@ The library's own texts are under the `core` namespace in English, Croatian, Bos
284
294
 
285
295
  ## Recipes
286
296
 
287
- - [List page](docs/recipes/list-page.md): a typed collection, columns, filters, row actions, URL state
288
- - [Record page](docs/recipes/record-page.md): a simple record, a record with sections, regions that load on their own, previous / next
289
- - [Shell](docs/recipes/shell.md): the default shell, contributions from features, a custom shell
290
- - [App setup](docs/recipes/app-setup.md): config, session, effects, locales, errors
297
+ - [List page](docs/recipes/list-page.md): a typed collection, columns, filters, row actions, URL state; a table over an array
298
+ - [Record page](docs/recipes/record-page.md): a simple record, a record with sections, regions that load on their own (`useResource`, `useLoad`), previous / next
299
+ - [Shell](docs/recipes/shell.md): the default shell, contributions from features, keyboard shortcuts and their help, running inside a frame, a custom shell
300
+ - [App setup](docs/recipes/app-setup.md): config, session, effects, locales and flags, permissions in the UI, error sentences, startup errors
291
301
  - [Forms](docs/recipes/forms.md): form state, fields, a record edited in group sheets, a long form, commands
292
- - [Theming](docs/recipes/theming.md): brand accent, dark mode, tokens
302
+ - [Theming](docs/recipes/theming.md): brand accent, dark mode, tokens, status tones and category hues
303
+ - [Testing](docs/recipes/testing.md): the application's environment and a fake backend for your tests
293
304
 
294
305
  Forms have their own recipe when that phase lands.
295
306
 
@@ -2,9 +2,9 @@ import { defineComponent as $, getCurrentInstance as D, inject as F, computed as
2
2
  import { a as j } from "./mediaQuery-CygcXmFW.js";
3
3
  import { b as U, f as N, c as W, p as Y } from "./chrome-D9pwD6iS.js";
4
4
  import { useI18n as E } from "vue-i18n";
5
- import { _ as G } from "./Button.vue_vue_type_script_setup_true_lang-3f0emVNU.js";
5
+ import { _ as G } from "./Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js";
6
6
  import { _ as y } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
7
- import { _ as J } from "./Menu.vue_vue_type_script_setup_true_lang-D44EHXQZ.js";
7
+ import { _ as J } from "./Menu.vue_vue_type_script_setup_true_lang-CrMj6KPD.js";
8
8
  import { RouterLink as L, useRoute as X } from "vue-router";
9
9
  import { d as Z } from "./context-Ch1r4fdN.js";
10
10
  const ee = /* @__PURE__ */ $({
@@ -2,7 +2,7 @@ import { defineComponent as H, ref as L, useId as S, computed as u, watch as J,
2
2
  import { useI18n as Q } from "vue-i18n";
3
3
  import { _ as j } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
4
4
  import { u as R } from "./mediaQuery-CygcXmFW.js";
5
- import { u as U } from "./useDialog-wmyNx2j_.js";
5
+ import { u as U } from "./useDialog-CXR3hN0G.js";
6
6
  const X = ["aria-labelledby", "aria-describedby", "data-presentation"], Y = { class: "overflow-hidden rounded-menu bg-surface-overlay/95 backdrop-blur-xl" }, Z = { class: "flex flex-col gap-1 px-4 py-3.5 text-center" }, ee = ["id"], te = ["id"], ae = ["disabled"], ne = ["disabled"], oe = ["id"], ie = ["id"], se = ["disabled"], le = ["disabled"], pe = /* @__PURE__ */ H({
7
7
  __name: "AlertDialog",
8
8
  props: {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as h, openBlock as a, createElementBlock as n, computed as $, Fragment as _, unref as o, renderSlot as y, renderList as w, createBlock as v, createVNode as u, withCtx as c, createElementVNode as d, toDisplayString as i, createCommentVNode as m, createTextVNode as g, normalizeClass as b, createSlots as x } from "vue";
2
2
  import { useI18n as C } from "vue-i18n";
3
- import { _ as k } from "./Button.vue_vue_type_script_setup_true_lang-3f0emVNU.js";
3
+ import { _ as k } from "./Button.vue_vue_type_script_setup_true_lang-B1eZgLae.js";
4
4
  import { _ as E } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
5
5
  import { _ as S } from "./Banner.vue_vue_type_script_setup_true_lang-n_wGPIIu.js";
6
6
  import { _ as V } from "./EmptyState.vue_vue_type_script_setup_true_lang-BeGpHMUP.js";
@@ -0,0 +1,51 @@
1
+ import { defineComponent as l, computed as y, openBlock as r, createElementBlock as s, normalizeClass as d, createCommentVNode as f, renderSlot as p } from "vue";
2
+ const x = ["data-hue"], h = /* @__PURE__ */ l({
3
+ __name: "Badge",
4
+ props: {
5
+ tone: {},
6
+ dot: { type: Boolean },
7
+ hue: {},
8
+ appearance: {}
9
+ },
10
+ setup(u) {
11
+ const a = u, n = {
12
+ neutral: { badge: "bg-status-neutral-surface text-status-neutral-content", dot: "bg-status-neutral-content" },
13
+ info: { badge: "bg-status-info-surface text-status-info-content", dot: "bg-status-info-content" },
14
+ positive: { badge: "bg-status-success-surface text-status-success-content", dot: "bg-status-success-content" },
15
+ warning: { badge: "bg-status-warning-surface text-status-warning-content", dot: "bg-status-warning-content" },
16
+ critical: { badge: "bg-status-danger-surface text-status-danger-content", dot: "bg-status-danger-content" },
17
+ context: { badge: "bg-surface-cell text-content", dot: "bg-content-disabled" }
18
+ }, o = {
19
+ amber: { badge: "bg-category-amber-surface text-category-amber-content", dot: "bg-category-amber-content" },
20
+ lime: { badge: "bg-category-lime-surface text-category-lime-content", dot: "bg-category-lime-content" },
21
+ teal: { badge: "bg-category-teal-surface text-category-teal-content", dot: "bg-category-teal-content" },
22
+ cyan: { badge: "bg-category-cyan-surface text-category-cyan-content", dot: "bg-category-cyan-content" },
23
+ blue: { badge: "bg-category-blue-surface text-category-blue-content", dot: "bg-category-blue-content" },
24
+ indigo: { badge: "bg-category-indigo-surface text-category-indigo-content", dot: "bg-category-indigo-content" },
25
+ violet: { badge: "bg-category-violet-surface text-category-violet-content", dot: "bg-category-violet-content" },
26
+ fuchsia: { badge: "bg-category-fuchsia-surface text-category-fuchsia-content", dot: "bg-category-fuchsia-content" },
27
+ pink: { badge: "bg-category-pink-surface text-category-pink-content", dot: "bg-category-pink-content" }
28
+ }, e = y(() => {
29
+ const { hue: t, appearance: c, tone: b, dot: i } = a;
30
+ if (t === void 0) {
31
+ const g = n[b ?? "neutral"];
32
+ return { badge: g.badge, dot: i ? g.dot : null };
33
+ }
34
+ return c === "dot" ? { badge: n.context.badge, dot: o[t].dot } : { badge: o[t].badge, dot: null };
35
+ });
36
+ return (t, c) => (r(), s("span", {
37
+ class: d(["inline-flex items-center gap-x-1.5 whitespace-nowrap rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset ring-current/20", e.value.badge]),
38
+ "data-hue": a.hue
39
+ }, [
40
+ e.value.dot ? (r(), s("span", {
41
+ key: 0,
42
+ class: d(["size-1.5 shrink-0 rounded-full", e.value.dot]),
43
+ "aria-hidden": "true"
44
+ }, null, 2)) : f("", !0),
45
+ p(t.$slots, "default")
46
+ ], 10, x));
47
+ }
48
+ });
49
+ export {
50
+ h as _
51
+ };
@@ -0,0 +1,182 @@
1
+ import { watchEffect as R, toValue as z, computed as f, triggerRef as w, shallowRef as L, defineComponent as A, useSlots as B, useTemplateRef as I, openBlock as y, createBlock as M, unref as N, withCtx as $, createElementVNode as D, mergeProps as v, createVNode as h, createElementBlock as K, h as x } from "vue";
2
+ import { RouterLink as P } from "vue-router";
3
+ import { _ as k } from "./Icon.vue_vue_type_script_lang-DtC4_mkz.js";
4
+ import { u as T } from "./useWaitStatus-fsacMl4W.js";
5
+ import { p as j } from "./perDocument-DUuFrdGU.js";
6
+ function V(t, n) {
7
+ return t.key.toLowerCase() === n.key.toLowerCase() && t.ctrlKey === (n.ctrlKey ?? !1) && t.shiftKey === (n.shiftKey ?? !1) && t.altKey === (n.altKey ?? !1) && t.metaKey === (n.metaKey ?? !1);
8
+ }
9
+ function U(t) {
10
+ return t instanceof HTMLElement && (t.isContentEditable || /^(input|textarea|select)$/i.test(t.tagName));
11
+ }
12
+ function G(t, n) {
13
+ R((e) => {
14
+ const o = z(t);
15
+ if (!o) return;
16
+ if (o.label !== void 0) {
17
+ const i = O(o);
18
+ e(i.remove);
19
+ }
20
+ const a = (i) => {
21
+ i.repeat || !V(i, o) || !(o.ctrlKey || o.altKey || o.metaKey) && U(i.target) || n(i) !== !1 && i.preventDefault();
22
+ };
23
+ window.addEventListener("keydown", a), e(() => window.removeEventListener("keydown", a));
24
+ });
25
+ }
26
+ const H = Symbol("vue-core:shortcuts"), E = () => j(H, () => ({ items: [], changed: L(0) }));
27
+ function O(t) {
28
+ const n = E();
29
+ return n.items = [...n.items, t], w(n.changed), {
30
+ remove() {
31
+ n.items = n.items.filter((e) => e !== t), w(n.changed);
32
+ }
33
+ };
34
+ }
35
+ function W(t) {
36
+ const e = typeof navigator < "u" && /Mac|iPhone|iPad|iPod/.test(navigator.platform || navigator.userAgent) ? { ctrl: "⌃", alt: "⌥", shift: "⇧", meta: "⌘" } : { ctrl: "Ctrl", alt: "Alt", shift: "Shift", meta: "Meta" }, o = Y[t.key] ?? (t.key.length === 1 ? t.key.toUpperCase() : t.key);
37
+ return [
38
+ ...t.ctrlKey ? [e.ctrl] : [],
39
+ ...t.altKey ? [e.alt] : [],
40
+ ...t.shiftKey ? [e.shift] : [],
41
+ ...t.metaKey ? [e.meta] : [],
42
+ o
43
+ ];
44
+ }
45
+ const Y = { ArrowLeft: "←", ArrowRight: "→", ArrowUp: "↑", ArrowDown: "↓", Escape: "Esc", " ": "Space" };
46
+ function ne() {
47
+ const t = E();
48
+ return f(() => {
49
+ t.changed.value;
50
+ const n = /* @__PURE__ */ new Map();
51
+ for (const e of t.items) {
52
+ const o = typeof e.label == "function" ? e.label() : e.label ?? "";
53
+ if (o === "") continue;
54
+ const a = e.group ?? null, i = n.get(`${a}\0${o}`) ?? { group: a, label: o, keys: [] }, d = W(e);
55
+ i.keys.some((s) => s.join("+") === d.join("+")) || i.keys.push(d), n.set(`${a}\0${o}`, i);
56
+ }
57
+ return [...n.values()];
58
+ });
59
+ }
60
+ const Z = ["href", "tabindex", "onClick"], q = ["href", "tabindex"], F = ["type", "disabled"], oe = /* @__PURE__ */ A({
61
+ __name: "Button",
62
+ props: {
63
+ prominence: { default: "standard" },
64
+ tone: { default: void 0 },
65
+ size: { default: "md" },
66
+ icon: { default: void 0 },
67
+ trailingIcon: { default: void 0 },
68
+ to: { default: void 0 },
69
+ href: { default: void 0 },
70
+ type: { default: "button" },
71
+ disabled: { type: Boolean, default: !1 },
72
+ processing: { type: Boolean, default: !1 },
73
+ keyboardShortcut: { default: void 0 }
74
+ },
75
+ emits: ["click"],
76
+ setup(t, { emit: n }) {
77
+ const e = t, o = n, a = B(), i = I("element"), d = T(() => e.processing), s = f(() => e.disabled || e.processing);
78
+ function p(r, l) {
79
+ if (s.value) {
80
+ r.preventDefault();
81
+ return;
82
+ }
83
+ o("click", r), l?.(r);
84
+ }
85
+ G(() => e.keyboardShortcut, (r) => {
86
+ if (s.value || i.value?.closest("[inert]")) return !1;
87
+ o("click", r);
88
+ });
89
+ const _ = {
90
+ primary: {
91
+ default: "bg-tint text-content-on-tint hover:bg-tint/90 active:bg-tint/80",
92
+ critical: "bg-status-danger-solid text-white hover:brightness-110"
93
+ },
94
+ secondary: {
95
+ default: "bg-tint-soft text-content-link hover:brightness-95 dark:hover:brightness-125",
96
+ critical: "bg-status-danger-surface text-content-destructive hover:brightness-95 dark:hover:brightness-125"
97
+ },
98
+ standard: {
99
+ default: "bg-fill text-content-strong hover:bg-fill-strong",
100
+ critical: "bg-fill text-content-destructive hover:bg-fill-strong"
101
+ },
102
+ plain: {
103
+ default: "bg-transparent text-content-link hover:bg-tint-soft",
104
+ critical: "bg-transparent text-content-destructive hover:bg-status-danger-surface"
105
+ },
106
+ link: {
107
+ default: "bg-transparent text-content-link hover:underline",
108
+ critical: "bg-transparent text-content-destructive hover:underline"
109
+ }
110
+ }, u = {
111
+ xs: { box: "min-h-6 px-2.5 py-0.5 text-xs gap-1", icon: 12 },
112
+ sm: { box: "min-h-8 px-3 py-1 text-xs gap-1.5", icon: 14 },
113
+ md: { box: "min-h-9 px-4 py-1.5 text-sm gap-2", icon: 16 },
114
+ lg: { box: "min-h-11 px-5 py-2 text-base gap-2", icon: 20 },
115
+ xl: { box: "min-h-12 px-6 py-2.5 text-base gap-2.5", icon: 22 }
116
+ }, m = f(() => [
117
+ "hit-target flex cursor-pointer select-none items-center justify-center rounded-button text-center font-semibold",
118
+ "transition duration-motion-fast ease-motion-standard",
119
+ "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus",
120
+ _[e.prominence][e.tone ?? "default"],
121
+ u[e.size].box,
122
+ // aria-disabled covers links, which have no `disabled` attribute.
123
+ e.processing && !e.disabled ? "cursor-progress" : "disabled:cursor-not-allowed disabled:opacity-45 aria-disabled:cursor-not-allowed aria-disabled:opacity-45"
124
+ ]), b = f(() => ({
125
+ "aria-disabled": s.value || void 0,
126
+ "aria-busy": e.processing || void 0
127
+ })), g = () => [
128
+ e.processing && d.visible.value ? x(k, { name: "loader4Line", size: u[e.size].icon, class: "animate-spin", "data-test": "button-spinner" }) : e.icon ? x(k, { name: e.icon, size: u[e.size].icon }) : null,
129
+ a.default?.(),
130
+ e.trailingIcon ? x(k, { name: e.trailingIcon, size: u[e.size].icon }) : null
131
+ ];
132
+ return (r, l) => e.to !== void 0 ? (y(), M(N(P), {
133
+ key: 0,
134
+ to: e.to,
135
+ custom: ""
136
+ }, {
137
+ default: $(({ href: c, navigate: C }) => [
138
+ D("a", v({
139
+ ref_key: "element",
140
+ ref: i,
141
+ href: s.value ? void 0 : c,
142
+ class: m.value
143
+ }, b.value, {
144
+ tabindex: s.value ? -1 : void 0,
145
+ onClick: (S) => p(S, C)
146
+ }), [
147
+ h(g)
148
+ ], 16, Z)
149
+ ]),
150
+ _: 1
151
+ }, 8, ["to"])) : e.href !== void 0 ? (y(), K("a", v({
152
+ key: 1,
153
+ ref_key: "element",
154
+ ref: i,
155
+ href: s.value ? void 0 : e.href,
156
+ class: m.value
157
+ }, b.value, {
158
+ tabindex: s.value ? -1 : void 0,
159
+ onClick: l[0] || (l[0] = (c) => p(c))
160
+ }), [
161
+ h(g)
162
+ ], 16, q)) : (y(), K("button", v({
163
+ key: 2,
164
+ ref_key: "element",
165
+ ref: i,
166
+ type: e.type,
167
+ class: m.value,
168
+ disabled: s.value
169
+ }, b.value, {
170
+ onClick: l[1] || (l[1] = (c) => p(c))
171
+ }), [
172
+ h(g)
173
+ ], 16, F));
174
+ }
175
+ });
176
+ export {
177
+ oe as _,
178
+ ne as a,
179
+ V as m,
180
+ W as s,
181
+ G as u
182
+ };
@@ -0,0 +1,299 @@
1
+ import { defineComponent as M, useTemplateRef as u, shallowRef as C, ref as S, onMounted as G, onBeforeUnmount as A, watch as d, openBlock as n, createElementBlock as s, createCommentVNode as T } from "vue";
2
+ const B = {
3
+ AC: () => import("country-flag-icons/string/3x2/AC"),
4
+ AD: () => import("country-flag-icons/string/3x2/AD"),
5
+ AE: () => import("country-flag-icons/string/3x2/AE"),
6
+ AF: () => import("country-flag-icons/string/3x2/AF"),
7
+ AG: () => import("country-flag-icons/string/3x2/AG"),
8
+ AI: () => import("country-flag-icons/string/3x2/AI"),
9
+ AL: () => import("country-flag-icons/string/3x2/AL"),
10
+ AM: () => import("country-flag-icons/string/3x2/AM"),
11
+ AO: () => import("country-flag-icons/string/3x2/AO"),
12
+ AQ: () => import("country-flag-icons/string/3x2/AQ"),
13
+ AR: () => import("country-flag-icons/string/3x2/AR"),
14
+ AS: () => import("country-flag-icons/string/3x2/AS"),
15
+ AT: () => import("country-flag-icons/string/3x2/AT"),
16
+ AU: () => import("country-flag-icons/string/3x2/AU"),
17
+ AW: () => import("country-flag-icons/string/3x2/AW"),
18
+ AX: () => import("country-flag-icons/string/3x2/AX"),
19
+ AZ: () => import("country-flag-icons/string/3x2/AZ"),
20
+ BA: () => import("country-flag-icons/string/3x2/BA"),
21
+ BB: () => import("country-flag-icons/string/3x2/BB"),
22
+ BD: () => import("country-flag-icons/string/3x2/BD"),
23
+ BE: () => import("country-flag-icons/string/3x2/BE"),
24
+ BF: () => import("country-flag-icons/string/3x2/BF"),
25
+ BG: () => import("country-flag-icons/string/3x2/BG"),
26
+ BH: () => import("country-flag-icons/string/3x2/BH"),
27
+ BI: () => import("country-flag-icons/string/3x2/BI"),
28
+ BJ: () => import("country-flag-icons/string/3x2/BJ"),
29
+ BL: () => import("country-flag-icons/string/3x2/BL"),
30
+ BM: () => import("country-flag-icons/string/3x2/BM"),
31
+ BN: () => import("country-flag-icons/string/3x2/BN"),
32
+ BO: () => import("country-flag-icons/string/3x2/BO"),
33
+ BQ: () => import("country-flag-icons/string/3x2/BQ"),
34
+ BR: () => import("country-flag-icons/string/3x2/BR"),
35
+ BS: () => import("country-flag-icons/string/3x2/BS"),
36
+ BT: () => import("country-flag-icons/string/3x2/BT"),
37
+ BV: () => import("country-flag-icons/string/3x2/BV"),
38
+ BW: () => import("country-flag-icons/string/3x2/BW"),
39
+ BY: () => import("country-flag-icons/string/3x2/BY"),
40
+ BZ: () => import("country-flag-icons/string/3x2/BZ"),
41
+ CA: () => import("country-flag-icons/string/3x2/CA"),
42
+ CC: () => import("country-flag-icons/string/3x2/CC"),
43
+ CD: () => import("country-flag-icons/string/3x2/CD"),
44
+ CF: () => import("country-flag-icons/string/3x2/CF"),
45
+ CG: () => import("country-flag-icons/string/3x2/CG"),
46
+ CH: () => import("country-flag-icons/string/3x2/CH"),
47
+ CI: () => import("country-flag-icons/string/3x2/CI"),
48
+ CK: () => import("country-flag-icons/string/3x2/CK"),
49
+ CL: () => import("country-flag-icons/string/3x2/CL"),
50
+ CM: () => import("country-flag-icons/string/3x2/CM"),
51
+ CN: () => import("country-flag-icons/string/3x2/CN"),
52
+ CO: () => import("country-flag-icons/string/3x2/CO"),
53
+ CR: () => import("country-flag-icons/string/3x2/CR"),
54
+ CU: () => import("country-flag-icons/string/3x2/CU"),
55
+ CV: () => import("country-flag-icons/string/3x2/CV"),
56
+ CW: () => import("country-flag-icons/string/3x2/CW"),
57
+ CX: () => import("country-flag-icons/string/3x2/CX"),
58
+ CY: () => import("country-flag-icons/string/3x2/CY"),
59
+ CZ: () => import("country-flag-icons/string/3x2/CZ"),
60
+ DE: () => import("country-flag-icons/string/3x2/DE"),
61
+ DJ: () => import("country-flag-icons/string/3x2/DJ"),
62
+ DK: () => import("country-flag-icons/string/3x2/DK"),
63
+ DM: () => import("country-flag-icons/string/3x2/DM"),
64
+ DO: () => import("country-flag-icons/string/3x2/DO"),
65
+ DZ: () => import("country-flag-icons/string/3x2/DZ"),
66
+ EC: () => import("country-flag-icons/string/3x2/EC"),
67
+ EE: () => import("country-flag-icons/string/3x2/EE"),
68
+ EG: () => import("country-flag-icons/string/3x2/EG"),
69
+ EH: () => import("country-flag-icons/string/3x2/EH"),
70
+ ER: () => import("country-flag-icons/string/3x2/ER"),
71
+ ES: () => import("country-flag-icons/string/3x2/ES"),
72
+ ET: () => import("country-flag-icons/string/3x2/ET"),
73
+ EU: () => import("country-flag-icons/string/3x2/EU"),
74
+ FI: () => import("country-flag-icons/string/3x2/FI"),
75
+ FJ: () => import("country-flag-icons/string/3x2/FJ"),
76
+ FK: () => import("country-flag-icons/string/3x2/FK"),
77
+ FM: () => import("country-flag-icons/string/3x2/FM"),
78
+ FO: () => import("country-flag-icons/string/3x2/FO"),
79
+ FR: () => import("country-flag-icons/string/3x2/FR"),
80
+ GA: () => import("country-flag-icons/string/3x2/GA"),
81
+ GB: () => import("country-flag-icons/string/3x2/GB"),
82
+ GD: () => import("country-flag-icons/string/3x2/GD"),
83
+ GE: () => import("country-flag-icons/string/3x2/GE"),
84
+ GF: () => import("country-flag-icons/string/3x2/GF"),
85
+ GG: () => import("country-flag-icons/string/3x2/GG"),
86
+ GH: () => import("country-flag-icons/string/3x2/GH"),
87
+ GI: () => import("country-flag-icons/string/3x2/GI"),
88
+ GL: () => import("country-flag-icons/string/3x2/GL"),
89
+ GM: () => import("country-flag-icons/string/3x2/GM"),
90
+ GN: () => import("country-flag-icons/string/3x2/GN"),
91
+ GP: () => import("country-flag-icons/string/3x2/GP"),
92
+ GQ: () => import("country-flag-icons/string/3x2/GQ"),
93
+ GR: () => import("country-flag-icons/string/3x2/GR"),
94
+ GS: () => import("country-flag-icons/string/3x2/GS"),
95
+ GT: () => import("country-flag-icons/string/3x2/GT"),
96
+ GU: () => import("country-flag-icons/string/3x2/GU"),
97
+ GW: () => import("country-flag-icons/string/3x2/GW"),
98
+ GY: () => import("country-flag-icons/string/3x2/GY"),
99
+ HK: () => import("country-flag-icons/string/3x2/HK"),
100
+ HM: () => import("country-flag-icons/string/3x2/HM"),
101
+ HN: () => import("country-flag-icons/string/3x2/HN"),
102
+ HR: () => import("country-flag-icons/string/3x2/HR"),
103
+ HT: () => import("country-flag-icons/string/3x2/HT"),
104
+ HU: () => import("country-flag-icons/string/3x2/HU"),
105
+ IC: () => import("country-flag-icons/string/3x2/IC"),
106
+ ID: () => import("country-flag-icons/string/3x2/ID"),
107
+ IE: () => import("country-flag-icons/string/3x2/IE"),
108
+ IL: () => import("country-flag-icons/string/3x2/IL"),
109
+ IM: () => import("country-flag-icons/string/3x2/IM"),
110
+ IN: () => import("country-flag-icons/string/3x2/IN"),
111
+ IO: () => import("country-flag-icons/string/3x2/IO"),
112
+ IQ: () => import("country-flag-icons/string/3x2/IQ"),
113
+ IR: () => import("country-flag-icons/string/3x2/IR"),
114
+ IS: () => import("country-flag-icons/string/3x2/IS"),
115
+ IT: () => import("country-flag-icons/string/3x2/IT"),
116
+ JE: () => import("country-flag-icons/string/3x2/JE"),
117
+ JM: () => import("country-flag-icons/string/3x2/JM"),
118
+ JO: () => import("country-flag-icons/string/3x2/JO"),
119
+ JP: () => import("country-flag-icons/string/3x2/JP"),
120
+ KE: () => import("country-flag-icons/string/3x2/KE"),
121
+ KG: () => import("country-flag-icons/string/3x2/KG"),
122
+ KH: () => import("country-flag-icons/string/3x2/KH"),
123
+ KI: () => import("country-flag-icons/string/3x2/KI"),
124
+ KM: () => import("country-flag-icons/string/3x2/KM"),
125
+ KN: () => import("country-flag-icons/string/3x2/KN"),
126
+ KP: () => import("country-flag-icons/string/3x2/KP"),
127
+ KR: () => import("country-flag-icons/string/3x2/KR"),
128
+ KW: () => import("country-flag-icons/string/3x2/KW"),
129
+ KY: () => import("country-flag-icons/string/3x2/KY"),
130
+ KZ: () => import("country-flag-icons/string/3x2/KZ"),
131
+ LA: () => import("country-flag-icons/string/3x2/LA"),
132
+ LB: () => import("country-flag-icons/string/3x2/LB"),
133
+ LC: () => import("country-flag-icons/string/3x2/LC"),
134
+ LI: () => import("country-flag-icons/string/3x2/LI"),
135
+ LK: () => import("country-flag-icons/string/3x2/LK"),
136
+ LR: () => import("country-flag-icons/string/3x2/LR"),
137
+ LS: () => import("country-flag-icons/string/3x2/LS"),
138
+ LT: () => import("country-flag-icons/string/3x2/LT"),
139
+ LU: () => import("country-flag-icons/string/3x2/LU"),
140
+ LV: () => import("country-flag-icons/string/3x2/LV"),
141
+ LY: () => import("country-flag-icons/string/3x2/LY"),
142
+ MA: () => import("country-flag-icons/string/3x2/MA"),
143
+ MC: () => import("country-flag-icons/string/3x2/MC"),
144
+ MD: () => import("country-flag-icons/string/3x2/MD"),
145
+ ME: () => import("country-flag-icons/string/3x2/ME"),
146
+ MF: () => import("country-flag-icons/string/3x2/MF"),
147
+ MG: () => import("country-flag-icons/string/3x2/MG"),
148
+ MH: () => import("country-flag-icons/string/3x2/MH"),
149
+ MK: () => import("country-flag-icons/string/3x2/MK"),
150
+ ML: () => import("country-flag-icons/string/3x2/ML"),
151
+ MM: () => import("country-flag-icons/string/3x2/MM"),
152
+ MN: () => import("country-flag-icons/string/3x2/MN"),
153
+ MO: () => import("country-flag-icons/string/3x2/MO"),
154
+ MP: () => import("country-flag-icons/string/3x2/MP"),
155
+ MQ: () => import("country-flag-icons/string/3x2/MQ"),
156
+ MR: () => import("country-flag-icons/string/3x2/MR"),
157
+ MS: () => import("country-flag-icons/string/3x2/MS"),
158
+ MT: () => import("country-flag-icons/string/3x2/MT"),
159
+ MU: () => import("country-flag-icons/string/3x2/MU"),
160
+ MV: () => import("country-flag-icons/string/3x2/MV"),
161
+ MW: () => import("country-flag-icons/string/3x2/MW"),
162
+ MX: () => import("country-flag-icons/string/3x2/MX"),
163
+ MY: () => import("country-flag-icons/string/3x2/MY"),
164
+ MZ: () => import("country-flag-icons/string/3x2/MZ"),
165
+ NA: () => import("country-flag-icons/string/3x2/NA"),
166
+ NC: () => import("country-flag-icons/string/3x2/NC"),
167
+ NE: () => import("country-flag-icons/string/3x2/NE"),
168
+ NF: () => import("country-flag-icons/string/3x2/NF"),
169
+ NG: () => import("country-flag-icons/string/3x2/NG"),
170
+ NI: () => import("country-flag-icons/string/3x2/NI"),
171
+ NL: () => import("country-flag-icons/string/3x2/NL"),
172
+ NO: () => import("country-flag-icons/string/3x2/NO"),
173
+ NP: () => import("country-flag-icons/string/3x2/NP"),
174
+ NR: () => import("country-flag-icons/string/3x2/NR"),
175
+ NU: () => import("country-flag-icons/string/3x2/NU"),
176
+ NZ: () => import("country-flag-icons/string/3x2/NZ"),
177
+ OM: () => import("country-flag-icons/string/3x2/OM"),
178
+ PA: () => import("country-flag-icons/string/3x2/PA"),
179
+ PE: () => import("country-flag-icons/string/3x2/PE"),
180
+ PF: () => import("country-flag-icons/string/3x2/PF"),
181
+ PG: () => import("country-flag-icons/string/3x2/PG"),
182
+ PH: () => import("country-flag-icons/string/3x2/PH"),
183
+ PK: () => import("country-flag-icons/string/3x2/PK"),
184
+ PL: () => import("country-flag-icons/string/3x2/PL"),
185
+ PM: () => import("country-flag-icons/string/3x2/PM"),
186
+ PN: () => import("country-flag-icons/string/3x2/PN"),
187
+ PR: () => import("country-flag-icons/string/3x2/PR"),
188
+ PS: () => import("country-flag-icons/string/3x2/PS"),
189
+ PT: () => import("country-flag-icons/string/3x2/PT"),
190
+ PW: () => import("country-flag-icons/string/3x2/PW"),
191
+ PY: () => import("country-flag-icons/string/3x2/PY"),
192
+ QA: () => import("country-flag-icons/string/3x2/QA"),
193
+ RE: () => import("country-flag-icons/string/3x2/RE"),
194
+ RO: () => import("country-flag-icons/string/3x2/RO"),
195
+ RS: () => import("country-flag-icons/string/3x2/RS"),
196
+ RU: () => import("country-flag-icons/string/3x2/RU"),
197
+ RW: () => import("country-flag-icons/string/3x2/RW"),
198
+ SA: () => import("country-flag-icons/string/3x2/SA"),
199
+ SB: () => import("country-flag-icons/string/3x2/SB"),
200
+ SC: () => import("country-flag-icons/string/3x2/SC"),
201
+ SD: () => import("country-flag-icons/string/3x2/SD"),
202
+ SE: () => import("country-flag-icons/string/3x2/SE"),
203
+ SG: () => import("country-flag-icons/string/3x2/SG"),
204
+ SH: () => import("country-flag-icons/string/3x2/SH"),
205
+ SI: () => import("country-flag-icons/string/3x2/SI"),
206
+ SJ: () => import("country-flag-icons/string/3x2/SJ"),
207
+ SK: () => import("country-flag-icons/string/3x2/SK"),
208
+ SL: () => import("country-flag-icons/string/3x2/SL"),
209
+ SM: () => import("country-flag-icons/string/3x2/SM"),
210
+ SN: () => import("country-flag-icons/string/3x2/SN"),
211
+ SO: () => import("country-flag-icons/string/3x2/SO"),
212
+ SR: () => import("country-flag-icons/string/3x2/SR"),
213
+ SS: () => import("country-flag-icons/string/3x2/SS"),
214
+ ST: () => import("country-flag-icons/string/3x2/ST"),
215
+ SV: () => import("country-flag-icons/string/3x2/SV"),
216
+ SX: () => import("country-flag-icons/string/3x2/SX"),
217
+ SY: () => import("country-flag-icons/string/3x2/SY"),
218
+ SZ: () => import("country-flag-icons/string/3x2/SZ"),
219
+ TA: () => import("country-flag-icons/string/3x2/TA"),
220
+ TC: () => import("country-flag-icons/string/3x2/TC"),
221
+ TD: () => import("country-flag-icons/string/3x2/TD"),
222
+ TF: () => import("country-flag-icons/string/3x2/TF"),
223
+ TG: () => import("country-flag-icons/string/3x2/TG"),
224
+ TH: () => import("country-flag-icons/string/3x2/TH"),
225
+ TJ: () => import("country-flag-icons/string/3x2/TJ"),
226
+ TK: () => import("country-flag-icons/string/3x2/TK"),
227
+ TL: () => import("country-flag-icons/string/3x2/TL"),
228
+ TM: () => import("country-flag-icons/string/3x2/TM"),
229
+ TN: () => import("country-flag-icons/string/3x2/TN"),
230
+ TO: () => import("country-flag-icons/string/3x2/TO"),
231
+ TR: () => import("country-flag-icons/string/3x2/TR"),
232
+ TT: () => import("country-flag-icons/string/3x2/TT"),
233
+ TV: () => import("country-flag-icons/string/3x2/TV"),
234
+ TW: () => import("country-flag-icons/string/3x2/TW"),
235
+ TZ: () => import("country-flag-icons/string/3x2/TZ"),
236
+ UA: () => import("country-flag-icons/string/3x2/UA"),
237
+ UG: () => import("country-flag-icons/string/3x2/UG"),
238
+ UM: () => import("country-flag-icons/string/3x2/UM"),
239
+ US: () => import("country-flag-icons/string/3x2/US"),
240
+ UY: () => import("country-flag-icons/string/3x2/UY"),
241
+ UZ: () => import("country-flag-icons/string/3x2/UZ"),
242
+ VA: () => import("country-flag-icons/string/3x2/VA"),
243
+ VC: () => import("country-flag-icons/string/3x2/VC"),
244
+ VE: () => import("country-flag-icons/string/3x2/VE"),
245
+ VG: () => import("country-flag-icons/string/3x2/VG"),
246
+ VI: () => import("country-flag-icons/string/3x2/VI"),
247
+ VN: () => import("country-flag-icons/string/3x2/VN"),
248
+ VU: () => import("country-flag-icons/string/3x2/VU"),
249
+ WF: () => import("country-flag-icons/string/3x2/WF"),
250
+ WS: () => import("country-flag-icons/string/3x2/WS"),
251
+ XA: () => import("country-flag-icons/string/3x2/XA"),
252
+ XC: () => import("country-flag-icons/string/3x2/XC"),
253
+ XK: () => import("country-flag-icons/string/3x2/XK"),
254
+ XO: () => import("country-flag-icons/string/3x2/XO"),
255
+ YE: () => import("country-flag-icons/string/3x2/YE"),
256
+ YT: () => import("country-flag-icons/string/3x2/YT"),
257
+ ZA: () => import("country-flag-icons/string/3x2/ZA"),
258
+ ZM: () => import("country-flag-icons/string/3x2/ZM"),
259
+ ZW: () => import("country-flag-icons/string/3x2/ZW")
260
+ }, I = ["data-country"], f = ["src"], N = /* @__PURE__ */ M({
261
+ __name: "CountryFlag",
262
+ props: {
263
+ country: {}
264
+ },
265
+ setup(a) {
266
+ const m = a, p = u("holder"), r = C(null), e = S(typeof IntersectionObserver > "u");
267
+ let i = null;
268
+ async function l(o) {
269
+ const t = B[o];
270
+ if (!t) return void (r.value = null);
271
+ const { default: c } = await t();
272
+ o === m.country && (r.value = `data:image/svg+xml,${encodeURIComponent(c)}`);
273
+ }
274
+ return G(() => {
275
+ e.value || !p.value || (i = new IntersectionObserver((o) => {
276
+ o.some((t) => t.isIntersecting) && (e.value = !0, i?.disconnect());
277
+ }), i.observe(p.value));
278
+ }), A(() => i?.disconnect()), d([() => m.country, e], ([o, t]) => {
279
+ r.value = null, t && l(o);
280
+ }, { immediate: !0 }), (o, t) => (n(), s("span", {
281
+ ref_key: "holder",
282
+ ref: p,
283
+ class: "inline-block h-3.5 w-5 shrink-0 overflow-hidden rounded-xs bg-fill-strong ring-1 ring-border-separator",
284
+ "data-test": "flag",
285
+ "data-country": m.country
286
+ }, [
287
+ r.value ? (n(), s("img", {
288
+ key: 0,
289
+ src: r.value,
290
+ alt: "",
291
+ class: "size-full object-cover",
292
+ draggable: "false"
293
+ }, null, 8, f)) : T("", !0)
294
+ ], 8, I));
295
+ }
296
+ });
297
+ export {
298
+ N as _
299
+ };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as c, useTemplateRef as l, openBlock as m, createBlock as d, unref as s } from "vue";
2
2
  import { useI18n as f } from "vue-i18n";
3
- import { _ as p } from "./AlertDialog.vue_vue_type_script_setup_true_lang-BZb4qKXo.js";
3
+ import { _ as p } from "./AlertDialog.vue_vue_type_script_setup_true_lang-e4hzkzg3.js";
4
4
  const C = /* @__PURE__ */ c({
5
5
  __name: "DiscardChangesModal",
6
6
  emits: ["confirm", "cancel", "dismissed"],
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as i, onBeforeUnmount as f, useTemplateRef as l, watch as m, openBlock as u, createBlock as p } from "vue";
2
- import { _ as d } from "./DiscardChangesModal.vue_vue_type_script_setup_true_lang-Bx5O1RZJ.js";
2
+ import { _ as d } from "./DiscardChangesModal.vue_vue_type_script_setup_true_lang-DyhYHRyz.js";
3
3
  import { u as v } from "./environment-D3nozt9a.js";
4
4
  const $ = /* @__PURE__ */ i({
5
5
  __name: "LeaveGuardRoot",