@wssto2/vue-core 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-CkomzGrt.js → AccessGate.vue_vue_type_script_setup_true_lang-B8gpkhbw.js} +1 -1
  3. package/dist/{Activity-Cm1dlM2b.js → Activity-CfG8_Pp3.js} +7 -7
  4. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-9Lt1XggN.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-DC-zSRcl.js} +1 -1
  5. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-GxAsImnO.js → AsyncSection.vue_vue_type_script_setup_true_lang-BTIUz3cG.js} +1 -1
  6. package/dist/{Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js → Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js} +67 -65
  7. package/dist/{Changes-fN0KMYbW.js → Changes-BT__0XX0.js} +6 -6
  8. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang--onFdKOB.js → CollectionPage.vue_vue_type_script_setup_true_lang-Bcwwr8ng.js} +7 -7
  9. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-CTukf2B2.js → DataTable.vue_vue_type_script_setup_true_lang-CJlllQII.js} +1 -1
  10. package/dist/{DateField.vue_vue_type_script_setup_true_lang-DmYp54mq.js → DateField.vue_vue_type_script_setup_true_lang-BuQY5e5x.js} +2 -2
  11. package/dist/{DeadLetters-BslDh93e.js → DeadLetters-Btv3u3qh.js} +4 -4
  12. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-BTADNpwB.js → FormGroup.vue_vue_type_script_setup_true_lang-Bzm3yJy5.js} +1 -1
  13. package/dist/{General-DJ53Egpp.js → General-Cum9U4Z3.js} +6 -6
  14. package/dist/{IncidentRecord-DQTnYQEe.js → IncidentRecord-C4K8hDJ1.js} +10 -10
  15. package/dist/{IncidentsList-C3yUnwwY.js → IncidentsList-BHfJ1cbg.js} +6 -6
  16. package/dist/{Modal.vue_vue_type_script_setup_true_lang-4MsnTWyx.js → Modal.vue_vue_type_script_setup_true_lang-BqO9X_-u.js} +1 -1
  17. package/dist/{NewRolePage-Bw2_jXcQ.js → NewRolePage-BSvYZkH4.js} +4 -4
  18. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-C3nw944P.js → NumberField.vue_vue_type_script_setup_true_lang-CLN2COfp.js} +1 -1
  19. package/dist/{PageBar.vue_vue_type_script_setup_true_lang-DPpcZxuT.js → PageBar.vue_vue_type_script_setup_true_lang-OE8VgTkY.js} +1 -1
  20. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-07pq4SrY.js → PersonAccess.vue_vue_type_script_setup_true_lang-CBQ1kv8G.js} +7 -7
  21. package/dist/{ProfilePage-DxALOfzC.js → ProfilePage-Dnn_VUoB.js} +13 -13
  22. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-DPm9q1P_.js → RecordHeader.vue_vue_type_script_setup_true_lang-CU7fZpp2.js} +1 -1
  23. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-Cm3tx76N.js → ResourcePage.vue_vue_type_script_setup_true_lang-y3gyR5A-.js} +3 -3
  24. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-DuQR8hFf.js → RoleEditor.vue_vue_type_script_setup_true_lang-BcUxVL9y.js} +5 -5
  25. package/dist/{RolePage-Yv6m6u7o.js → RolePage-BIY9dEME.js} +10 -10
  26. package/dist/{RolesPage-TibtzxzQ.js → RolesPage-Be35CA_4.js} +5 -5
  27. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-DAnZbfWA.js → SectionList.vue_vue_type_script_setup_true_lang-DzoE_o8v.js} +1 -1
  28. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-ivdGWUeF.js → SectionNavigator.vue_vue_type_script_setup_true_lang-CWPD9zQJ.js} +3 -3
  29. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-iJm8qmjT.js → SelectField.vue_vue_type_script_setup_true_lang-CYiarLAK.js} +1 -1
  30. package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-en2w_pAJ.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-CKIq1Ljb.js} +7 -7
  31. package/dist/{ServiceAccountRecord-B_amE8fL.js → ServiceAccountRecord-QsIfylwj.js} +13 -13
  32. package/dist/{ServiceAccountsList-CoDKG_15.js → ServiceAccountsList-CVDIhuCh.js} +7 -7
  33. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-BEKTaL0g.js → SessionList.vue_vue_type_script_setup_true_lang-CkN7vR71.js} +3 -3
  34. package/dist/{Sessions-BrAEXAMA.js → Sessions-Cl2DTM7s.js} +5 -5
  35. package/dist/{SettingsPage-Cje1X0ix.js → SettingsPage-B2uWw27O.js} +10 -10
  36. package/dist/{SignIn-CbWgDlFb.js → SignIn-BHYFSMOX.js} +5 -5
  37. package/dist/{SignInPage-DmHdrZR-.js → SignInPage--OC0hQ8M.js} +3 -3
  38. package/dist/{SignIns-D5BRb9Sr.js → SignIns-CJ09NqOn.js} +5 -5
  39. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-BwoE08jT.js → TimeField.vue_vue_type_script_setup_true_lang-B140Gjqd.js} +2 -2
  40. package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-u53rHMFG.js → Timestamp.vue_vue_type_script_setup_true_lang-CAz2W69d.js} +1 -1
  41. package/dist/{UserRecord-rIeTkocJ.js → UserRecord-BjXUcHo8.js} +9 -9
  42. package/dist/{UsersList-CiPeerC7.js → UsersList-D4-eC5tC.js} +9 -9
  43. package/dist/access/index.js +4 -4
  44. package/dist/app/application.d.ts +4 -2
  45. package/dist/app/index.js +2 -2
  46. package/dist/application-DtY0ef-w.js +420 -0
  47. package/dist/button/index.js +1 -1
  48. package/dist/button/shortcut.d.ts +7 -0
  49. package/dist/client/client.d.ts +33 -0
  50. package/dist/client/disposition.d.ts +5 -0
  51. package/dist/client/index.d.ts +1 -1
  52. package/dist/client/index.js +1 -1
  53. package/dist/client-Dr2vV3qH.js +193 -0
  54. package/dist/collection/index.js +5 -5
  55. package/dist/content/Money.vue.d.ts +31 -0
  56. package/dist/content/index.d.ts +1 -0
  57. package/dist/content/index.js +75 -40
  58. package/dist/{contributions-BQ9dZoRw.js → contributions-DGsAIWd8.js} +1 -1
  59. package/dist/{fieldMessages-DTXpWnBd.js → fieldMessages-6UTV9yWL.js} +1 -1
  60. package/dist/form/EditorPage.vue.d.ts +6 -0
  61. package/dist/form/FileField.vue.d.ts +1 -1
  62. package/dist/form/PhotoField.vue.d.ts +1 -1
  63. package/dist/form/index.js +108 -108
  64. package/dist/format/format.d.ts +9 -1
  65. package/dist/format/index.js +1 -1
  66. package/dist/format-Dn-BOb-o.js +86 -0
  67. package/dist/{guards-BFCulig0.js → guards-Cz7TOQD8.js} +1 -1
  68. package/dist/identity/index.js +1 -1
  69. package/dist/incidents/index.js +1 -1
  70. package/dist/{index-B_lzrZot.js → index-BB0_hxmE.js} +16 -16
  71. package/dist/{index-BQg5X6iK.js → index-C1jSzT1V.js} +7 -7
  72. package/dist/{index-Cgu6Ntok.js → index-DZQ3gy3e.js} +8 -8
  73. package/dist/index.d.ts +1 -1
  74. package/dist/index.js +1 -1
  75. package/dist/modal/index.js +15 -15
  76. package/dist/{navigation-BSC9X7FM.js → navigation-CWj6F_cV.js} +1 -1
  77. package/dist/{neighbors-BKzihEGQ.js → neighbors-CcCaurV5.js} +1 -1
  78. package/dist/notifications/index.js +1 -1
  79. package/dist/page/index.js +5 -5
  80. package/dist/platform/index.js +3 -3
  81. package/dist/{platform-Dr4iY3b8.js → platform-BZUWAXQV.js} +1 -1
  82. package/dist/pwa/index.d.ts +2 -0
  83. package/dist/pwa/index.js +51 -0
  84. package/dist/pwa/install.d.ts +12 -0
  85. package/dist/pwa/worker.d.ts +13 -0
  86. package/dist/resource/index.js +1 -1
  87. package/dist/router/index.js +3 -3
  88. package/dist/{rowLayout-XlTcD4de.js → rowLayout-BLhJ9-42.js} +2 -2
  89. package/dist/{sections-BXg4_ZhO.js → sections-CmqFs-U-.js} +1 -1
  90. package/dist/shell/index.js +3 -3
  91. package/dist/state/index.js +1 -1
  92. package/dist/{state-ChVIjayU.js → state-BiYPPKoj.js} +1 -1
  93. package/dist/{status-BV5Ae4K4.js → status-Bf4nfIe0.js} +1 -1
  94. package/dist/styles.css +1 -1
  95. package/dist/testing/index.js +2 -2
  96. package/dist/{useCommand-BIZX1ReM.js → useCommand-C3QTZIIw.js} +1 -1
  97. package/dist/{useGroupSheet-DxXzdKo3.js → useGroupSheet-LAnO37WV.js} +2 -2
  98. package/dist/{useRecordDialog-BLVSz7g3.js → useRecordDialog-Da1Sfak1.js} +1 -1
  99. package/dist/{useTypedEntry-CKuGqWT8.js → useTypedEntry-DIYdA7DK.js} +1 -1
  100. package/package.json +5 -1
  101. package/dist/application-D8Nm17zA.js +0 -420
  102. package/dist/client-CZgikXPG.js +0 -151
  103. package/dist/format-D8X4zsx6.js +0 -78
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.9.1 — 2026-10-16
4
+
5
+ ### New
6
+ - **`EditorPage` `disabledWhileClean`** (default false): an editor of a saved record keeps Save off until something changes. A create page keeps Save on, so an untouched form can be submitted to learn what is missing.
7
+
8
+ ### Tests
9
+ - A 5 s default wait and a 15 s test limit (`vitest.setup.ts`), so a lazily loaded page no longer fails a test at random. Nothing in the package changes.
10
+
11
+ ## 0.9.0 — 2026-10-15
12
+
13
+ File downloads and streams on the client, keyboard shortcuts that work on every layout, amounts with an application's own currency symbol, and the client half of an installable web app. go-core is unchanged (`v1.12.0`).
14
+
15
+ ### Fixed
16
+ - **Shortcuts on a symbol key** (`/`, `?`) now fire on layouts where the symbol needs Shift, such as Shift+7 for `/` on a Croatian keyboard. Set `shiftKey` explicitly to require Shift. The help dialog's `?` no longer requires Shift.
17
+
18
+ ### New
19
+ - **client:** `http.download(path, options)` fetches a file and resolves to `{ blob, filename, requestId }`; `filename` comes from `Content-Disposition` (RFC 6266: `filename*` wins, quotes handled, null when absent). `http.stream(path, options)` resolves to the raw `Response` for server-sent events and other streams. Both use the same base URL, credentials, `headers()` hook, `X-Request-ID`, abort and single 401 renew-and-retry as the JSON calls. `options` takes `accept` (default: any type) and, with `method: "POST"`, a `body` encoded like `post`. A non-2xx answer throws an `ApiError` built from the JSON error body, keeping `code`, `params` and `fields`. New exported types: `DownloadResult`, `RawRequestOptions`.
20
+ - **shortcuts:** `KeyboardShortcut.mod`. One registration `{ key: "k", mod: true }` means Ctrl or ⌘ alone, and is listed as "⌘ K" on Apple platforms and "Ctrl K" elsewhere.
21
+ - **format:** `createFormatting({ currencySymbol })` and `Formatting.currencySymbol`; `format.money(amount)` without an ISO currency shows the amount with two decimals through `formatters.number`, then the symbol (`1.234,50 KM`). `createApplication({ formatting: { currencySymbol } })` passes it on.
22
+ - **content:** `<Money>` (`amount`, `whole`, `decimals`, `symbol`, `emptyZero`, `signed`), formatted through the application's number formatter and currency symbol.
23
+ - **`@wssto2/vue-core/pwa`:** `captureInstallPrompt()`, `useInstallPrompt()` (`canInstall`, `installed`, `install()`), `isStandalone()`, `currentPlatform()`, and `registerServiceWorker({ url = "/sw.js", enabled = true })` with a `?build=` cache-buster. The caller passes `enabled: import.meta.env.PROD` (a worker would cache the dev server's modules). The worker itself stays the application's own file.
24
+
25
+ ### Docs
26
+ - Typed-routes recipe: downloads and streams. App-setup recipe: amounts, install and offline.
27
+
3
28
  ## 0.8.0 — 2026-10-15
4
29
 
5
30
  Saved views over go-core's `savedview` module, for go-core v1.12.0. The `SavedViews` seam gets its server adapter, so an application no longer writes its own.
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as t, computed as i, renderSlot as n } from "vue";
2
- import { u as l } from "./platform-Dr4iY3b8.js";
2
+ import { u as l } from "./platform-BZUWAXQV.js";
3
3
  const m = /* @__PURE__ */ t({
4
4
  __name: "AccessGate",
5
5
  props: {
@@ -2,17 +2,17 @@ import { defineComponent as S, ref as g, watch as w, computed as k, openBlock as
2
2
  import { useI18n as q } from "vue-i18n";
3
3
  import { _ as D } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
4
4
  import { _ as I } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
5
- import { u as O } from "./format-D8X4zsx6.js";
6
- import { _ as U } from "./DateField.vue_vue_type_script_setup_true_lang-DmYp54mq.js";
7
- import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-BTADNpwB.js";
5
+ import { u as O } from "./format-Dn-BOb-o.js";
6
+ import { _ as U } from "./DateField.vue_vue_type_script_setup_true_lang-BuQY5e5x.js";
7
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-Bzm3yJy5.js";
8
8
  import { g as z } from "./options-QuOkMKVZ.js";
9
- import { P as G, c as H, i as J } from "./index-B_lzrZot.js";
10
- import { u as K } from "./platform-Dr4iY3b8.js";
9
+ import { P as G, c as H, i as J } from "./index-BB0_hxmE.js";
10
+ import { u as K } from "./platform-BZUWAXQV.js";
11
11
  import { b as M } from "./routeResource-CcYA75T2.js";
12
- import { _ as Q } from "./AsyncSection.vue_vue_type_script_setup_true_lang-GxAsImnO.js";
12
+ import { _ as Q } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BTIUz3cG.js";
13
13
  import { _ as W } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
14
14
  import { u as X } from "./useLoad-W4tfxmm5.js";
15
- import { _ as Y } from "./PageBar.vue_vue_type_script_setup_true_lang-DPpcZxuT.js";
15
+ import { _ as Y } from "./PageBar.vue_vue_type_script_setup_true_lang-OE8VgTkY.js";
16
16
  import { _ as Z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
17
17
  const ee = {
18
18
  class: "flex min-w-0 flex-col gap-group-gap",
@@ -2,7 +2,7 @@ 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 } from "./bottomDock-BZEiOPYZ.js";
4
4
  import { useI18n as P } from "vue-i18n";
5
- import { _ as W } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
5
+ import { _ as W } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
6
6
  import { _ as y } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
7
7
  import { _ as Y } from "./Menu.vue_vue_type_script_setup_true_lang-ldLdJ5Q-.js";
8
8
  import { RouterLink as B, useRoute as G } from "vue-router";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as k, openBlock as n, createElementBlock as o, computed as $, Fragment as _, unref as i, renderSlot as y, renderList as b, createBlock as v, createVNode as c, withCtx as d, createElementVNode as m, toDisplayString as l, createCommentVNode as f, createTextVNode as g, normalizeClass as w, createSlots as x } from "vue";
2
2
  import { useI18n as C } from "vue-i18n";
3
- import { _ as h } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
3
+ import { _ as h } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
4
4
  import { _ as S } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
5
5
  import { _ as E } from "./Banner.vue_vue_type_script_setup_true_lang-sv0phngk.js";
6
6
  import { _ as V } from "./EmptyState.vue_vue_type_script_setup_true_lang-DbZiO2RF.js";
@@ -1,30 +1,32 @@
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";
1
+ import { watchEffect as L, toValue as R, computed as u, triggerRef as w, shallowRef as z, defineComponent as A, useSlots as B, useTemplateRef as M, openBlock as g, createBlock as N, unref as $, withCtx as I, createElementVNode as D, mergeProps as v, createVNode as h, createElementBlock as K, h as k } from "vue";
2
2
  import { RouterLink as P } from "vue-router";
3
- import { _ as k } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
3
+ import { _ as x } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
4
4
  import { u as T } from "./useWaitStatus-fsacMl4W.js";
5
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);
6
+ const V = /^[^\p{L}\p{N}\s]$/u;
7
+ function Y(t, n) {
8
+ const e = n.shiftKey === void 0 && V.test(n.key) || t.shiftKey === (n.shiftKey ?? !1), o = n.mod ? t.ctrlKey !== t.metaKey : t.ctrlKey === (n.ctrlKey ?? !1) && t.metaKey === (n.metaKey ?? !1);
9
+ return t.key.toLowerCase() === n.key.toLowerCase() && e && o && t.altKey === (n.altKey ?? !1);
8
10
  }
9
- function U(t) {
11
+ function O(t) {
10
12
  return t instanceof HTMLElement && (t.isContentEditable || /^(input|textarea|select)$/i.test(t.tagName));
11
13
  }
12
- function G(t, n) {
13
- R((e) => {
14
- const o = z(t);
14
+ function U(t, n) {
15
+ L((e) => {
16
+ const o = R(t);
15
17
  if (!o) return;
16
18
  if (o.label !== void 0) {
17
- const i = O(o);
19
+ const i = H(o);
18
20
  e(i.remove);
19
21
  }
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
+ const s = (i) => {
23
+ i.repeat || !Y(i, o) || !(o.mod || o.ctrlKey || o.altKey || o.metaKey) && O(i.target) || n(i) !== !1 && i.preventDefault();
22
24
  };
23
- window.addEventListener("keydown", a), e(() => window.removeEventListener("keydown", a));
25
+ window.addEventListener("keydown", s), e(() => window.removeEventListener("keydown", s));
24
26
  });
25
27
  }
26
- const H = Symbol("vue-core:shortcuts"), E = () => j(H, () => ({ items: [], changed: L(0) }));
27
- function O(t) {
28
+ const G = Symbol("vue-core:shortcuts"), E = () => j(G, () => ({ items: [], changed: z(0) }));
29
+ function H(t) {
28
30
  const n = E();
29
31
  return n.items = [...n.items, t], w(n.changed), {
30
32
  remove() {
@@ -33,31 +35,31 @@ function O(t) {
33
35
  };
34
36
  }
35
37
  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);
38
+ const n = typeof navigator < "u" && /Mac|iPhone|iPad|iPod/.test(navigator.platform || navigator.userAgent), e = n ? { ctrl: "⌃", alt: "⌥", shift: "⇧", meta: "⌘" } : { ctrl: "Ctrl", alt: "Alt", shift: "Shift", meta: "Meta" }, o = t.mod ? !n : t.ctrlKey, s = t.mod ? n : t.metaKey, i = Z[t.key] ?? (t.key.length === 1 ? t.key.toUpperCase() : t.key);
37
39
  return [
38
- ...t.ctrlKey ? [e.ctrl] : [],
40
+ ...o ? [e.ctrl] : [],
39
41
  ...t.altKey ? [e.alt] : [],
40
42
  ...t.shiftKey ? [e.shift] : [],
41
- ...t.metaKey ? [e.meta] : [],
42
- o
43
+ ...s ? [e.meta] : [],
44
+ i
43
45
  ];
44
46
  }
45
- const Y = { ArrowLeft: "←", ArrowRight: "→", ArrowUp: "↑", ArrowDown: "↓", Escape: "Esc", " ": "Space" };
46
- function ne() {
47
+ const Z = { ArrowLeft: "←", ArrowRight: "→", ArrowUp: "↑", ArrowDown: "↓", Escape: "Esc", " ": "Space" };
48
+ function oe() {
47
49
  const t = E();
48
- return f(() => {
50
+ return u(() => {
49
51
  t.changed.value;
50
52
  const n = /* @__PURE__ */ new Map();
51
53
  for (const e of t.items) {
52
54
  const o = typeof e.label == "function" ? e.label() : e.label ?? "";
53
55
  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
+ const s = e.group ?? null, i = n.get(`${s}\0${o}`) ?? { group: s, label: o, keys: [] }, d = W(e);
57
+ i.keys.some((a) => a.join("+") === d.join("+")) || i.keys.push(d), n.set(`${s}\0${o}`, i);
56
58
  }
57
59
  return [...n.values()];
58
60
  });
59
61
  }
60
- const Z = ["href", "tabindex", "onClick"], q = ["href", "tabindex"], F = ["type", "disabled"], oe = /* @__PURE__ */ A({
62
+ const q = ["href", "tabindex", "onClick"], F = ["href", "tabindex"], J = ["type", "disabled"], ie = /* @__PURE__ */ A({
61
63
  __name: "Button",
62
64
  props: {
63
65
  prominence: { default: "standard" },
@@ -74,16 +76,16 @@ const Z = ["href", "tabindex", "onClick"], q = ["href", "tabindex"], F = ["type"
74
76
  },
75
77
  emits: ["click"],
76
78
  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) {
79
+ const e = t, o = n, s = B(), i = M("element"), d = T(() => e.processing), a = u(() => e.disabled || e.processing);
80
+ function m(r, l) {
81
+ if (a.value) {
80
82
  r.preventDefault();
81
83
  return;
82
84
  }
83
85
  o("click", r), l?.(r);
84
86
  }
85
- G(() => e.keyboardShortcut, (r) => {
86
- if (s.value || i.value?.closest("[inert]")) return !1;
87
+ U(() => e.keyboardShortcut, (r) => {
88
+ if (a.value || i.value?.closest("[inert]")) return !1;
87
89
  o("click", r);
88
90
  });
89
91
  const _ = {
@@ -107,76 +109,76 @@ const Z = ["href", "tabindex", "onClick"], q = ["href", "tabindex"], F = ["type"
107
109
  default: "bg-transparent text-content-link hover:underline",
108
110
  critical: "bg-transparent text-content-destructive hover:underline"
109
111
  }
110
- }, u = {
112
+ }, f = {
111
113
  xs: { box: "min-h-6 px-2.5 py-0.5 text-xs gap-1", icon: 12 },
112
114
  sm: { box: "min-h-8 px-3 py-1 text-xs gap-1.5", icon: 14 },
113
115
  md: { box: "min-h-9 px-4 py-1.5 text-sm gap-2", icon: 16 },
114
116
  lg: { box: "min-h-11 px-5 py-2 text-base gap-2", icon: 20 },
115
117
  xl: { box: "min-h-12 px-6 py-2.5 text-base gap-2.5", icon: 22 }
116
- }, m = f(() => [
118
+ }, p = u(() => [
117
119
  "hit-target flex cursor-pointer select-none items-center justify-center rounded-button text-center font-semibold",
118
120
  "transition duration-motion-fast ease-motion-standard",
119
121
  "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus",
120
122
  _[e.prominence][e.tone ?? "default"],
121
- u[e.size].box,
123
+ f[e.size].box,
122
124
  // aria-disabled covers links, which have no `disabled` attribute.
123
125
  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
+ ]), y = u(() => ({
127
+ "aria-disabled": a.value || void 0,
126
128
  "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
129
+ })), b = () => [
130
+ e.processing && d.visible.value ? k(x, { name: "loader4Line", size: f[e.size].icon, class: "animate-spin", "data-test": "button-spinner" }) : e.icon ? k(x, { name: e.icon, size: f[e.size].icon }) : null,
131
+ s.default?.(),
132
+ e.trailingIcon ? k(x, { name: e.trailingIcon, size: f[e.size].icon }) : null
131
133
  ];
132
- return (r, l) => e.to !== void 0 ? (y(), M(N(P), {
134
+ return (r, l) => e.to !== void 0 ? (g(), N($(P), {
133
135
  key: 0,
134
136
  to: e.to,
135
137
  custom: ""
136
138
  }, {
137
- default: $(({ href: c, navigate: C }) => [
139
+ default: I(({ href: c, navigate: S }) => [
138
140
  D("a", v({
139
141
  ref_key: "element",
140
142
  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)
143
+ href: a.value ? void 0 : c,
144
+ class: p.value
145
+ }, y.value, {
146
+ tabindex: a.value ? -1 : void 0,
147
+ onClick: (C) => m(C, S)
146
148
  }), [
147
- h(g)
148
- ], 16, Z)
149
+ h(b)
150
+ ], 16, q)
149
151
  ]),
150
152
  _: 1
151
- }, 8, ["to"])) : e.href !== void 0 ? (y(), K("a", v({
153
+ }, 8, ["to"])) : e.href !== void 0 ? (g(), K("a", v({
152
154
  key: 1,
153
155
  ref_key: "element",
154
156
  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))
157
+ href: a.value ? void 0 : e.href,
158
+ class: p.value
159
+ }, y.value, {
160
+ tabindex: a.value ? -1 : void 0,
161
+ onClick: l[0] || (l[0] = (c) => m(c))
160
162
  }), [
161
- h(g)
162
- ], 16, q)) : (y(), K("button", v({
163
+ h(b)
164
+ ], 16, F)) : (g(), K("button", v({
163
165
  key: 2,
164
166
  ref_key: "element",
165
167
  ref: i,
166
168
  type: e.type,
167
- class: m.value,
168
- disabled: s.value
169
- }, b.value, {
170
- onClick: l[1] || (l[1] = (c) => p(c))
169
+ class: p.value,
170
+ disabled: a.value
171
+ }, y.value, {
172
+ onClick: l[1] || (l[1] = (c) => m(c))
171
173
  }), [
172
- h(g)
173
- ], 16, F));
174
+ h(b)
175
+ ], 16, J));
174
176
  }
175
177
  });
176
178
  export {
177
- oe as _,
178
- ne as a,
179
- V as m,
179
+ ie as _,
180
+ oe as a,
181
+ Y as m,
180
182
  W as s,
181
- G as u
183
+ U as u
182
184
  };
@@ -1,16 +1,16 @@
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-B_lzrZot.js";
4
- import { u as S } from "./platform-Dr4iY3b8.js";
3
+ import { P as V, i as R } from "./index-BB0_hxmE.js";
4
+ import { u as S } from "./platform-BZUWAXQV.js";
5
5
  import { b as B } from "./routeResource-CcYA75T2.js";
6
- import { _ as F } from "./AsyncSection.vue_vue_type_script_setup_true_lang-GxAsImnO.js";
6
+ import { _ as F } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BTIUz3cG.js";
7
7
  import { u as L } from "./useLoad-W4tfxmm5.js";
8
8
  import { _ as P } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
9
9
  import { _ as I } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
10
- import { u as O } from "./format-D8X4zsx6.js";
11
- import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-BTADNpwB.js";
10
+ import { u as O } from "./format-Dn-BOb-o.js";
11
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-Bzm3yJy5.js";
12
12
  import { g as U } from "./options-QuOkMKVZ.js";
13
- import { _ as q } from "./PageBar.vue_vue_type_script_setup_true_lang-DPpcZxuT.js";
13
+ import { _ as q } from "./PageBar.vue_vue_type_script_setup_true_lang-OE8VgTkY.js";
14
14
  import { _ as z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
15
15
  import { _ as A } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BjdDXE3T.js";
16
16
  const D = { class: "flex items-center pl-0.5" }, G = { class: "flex flex-wrap items-center gap-x-1.5" }, H = {
@@ -2,21 +2,21 @@ import { hasInjectionContext as lt, inject as ot, shallowRef as xe, computed as
2
2
  import { routerKey as ct } from "vue-router";
3
3
  import { a as qe, i as ut } from "./error-Bb_dr_Ay.js";
4
4
  import { d as dt } from "./definition-C7QuyV3i.js";
5
- import { d as Re, o as ft, L as Te, e as je, w as pt, r as vt } from "./state-ChVIjayU.js";
6
- import { a as mt } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-9Lt1XggN.js";
5
+ import { d as Re, o as ft, L as Te, e as je, w as pt, r as vt } from "./state-BiYPPKoj.js";
6
+ import { a as mt } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DC-zSRcl.js";
7
7
  import { useI18n as he } from "vue-i18n";
8
- import { _ as ce, u as Ne } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
8
+ import { _ as ce, u as Ne } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
9
9
  import { _ as Ge } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
10
- import { u as Pe } from "./format-D8X4zsx6.js";
10
+ import { u as Pe } from "./format-Dn-BOb-o.js";
11
11
  import { _ as I } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
12
12
  import { _ as Ae } from "./Banner.vue_vue_type_script_setup_true_lang-sv0phngk.js";
13
13
  import { _ as Ee } from "./EmptyState.vue_vue_type_script_setup_true_lang-DbZiO2RF.js";
14
- import { u as bt, _ as gt } from "./rowLayout-XlTcD4de.js";
14
+ import { u as bt, _ as gt } from "./rowLayout-BLhJ9-42.js";
15
15
  import { _ as Ye } from "./Menu.vue_vue_type_script_setup_true_lang-ldLdJ5Q-.js";
16
16
  import { _ as Ze } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
17
17
  import { _ as we } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
18
- import { _ as ht } from "./NumberField.vue_vue_type_script_setup_true_lang-C3nw944P.js";
19
- import { _ as yt } from "./SelectField.vue_vue_type_script_setup_true_lang-iJm8qmjT.js";
18
+ import { _ as ht } from "./NumberField.vue_vue_type_script_setup_true_lang-CLN2COfp.js";
19
+ import { _ as yt } from "./SelectField.vue_vue_type_script_setup_true_lang-CYiarLAK.js";
20
20
  import { a as _t } from "./mediaQuery-CygcXmFW.js";
21
21
  import { _ as xt } from "./Sheet.vue_vue_type_script_setup_true_lang-sh9YD0Pm.js";
22
22
  import { t as ke } from "./toast-CqSDTWRX.js";
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as d, computed as u, useSlots as p, openBlock as w, createElementBlock as y, createVNode as f, unref as k, createSlots as b, renderList as m, withCtx as h, renderSlot as v, normalizeProps as _, guardReactiveProps as g } from "vue";
2
- import { u as R, _ as L } from "./rowLayout-XlTcD4de.js";
2
+ import { u as R, _ as L } from "./rowLayout-BLhJ9-42.js";
3
3
  const F = ["aria-busy"], V = /* @__PURE__ */ d({
4
4
  __name: "DataTable",
5
5
  props: {
@@ -1,12 +1,12 @@
1
1
  import { computed as p, defineComponent as re, useModel as oe, useTemplateRef as T, openBlock as g, createBlock as Y, mergeProps as E, unref as s, createSlots as ae, withCtx as y, createElementBlock as C, Fragment as H, createVNode as D, createTextVNode as ne, toDisplayString as K, createCommentVNode as M, createElementVNode as O, normalizeClass as le, renderSlot as S, mergeModels as G, mergeDefaults as se, nextTick as J } from "vue";
2
2
  import { useI18n as L } from "vue-i18n";
3
3
  import { _ as ie } from "./DateButton.vue_vue_type_script_setup_true_lang-CovKG5lN.js";
4
- import { u as W } from "./format-D8X4zsx6.js";
4
+ import { u as W } from "./format-Dn-BOb-o.js";
5
5
  import { _ as de } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
6
6
  import { u as ue } from "./mediaQuery-CygcXmFW.js";
7
7
  import { _ as ce } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
8
8
  import { e as me, _ as fe, f as pe, b as be } from "./options-QuOkMKVZ.js";
9
- import { e as q, f as j, m as X, g as Z, h as ve, j as ye, u as ke, k as ge, _ as he, l as xe, c as we } from "./useTypedEntry-CKuGqWT8.js";
9
+ import { e as q, f as j, m as X, g as Z, h as ve, j as ye, u as ke, k as ge, _ as he, l as xe, c as we } from "./useTypedEntry-DIYdA7DK.js";
10
10
  const _e = ["d", "m", "y"];
11
11
  function $e(o) {
12
12
  const r = o("2033-11-22"), t = { y: r.indexOf("2033") >= 0 ? r.indexOf("2033") : r.indexOf("33"), m: r.indexOf("11"), d: r.indexOf("22") };
@@ -1,14 +1,14 @@
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 { i as k } from "./error-Bb_dr_Ay.js";
4
- import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang--onFdKOB.js";
4
+ import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-Bcwwr8ng.js";
5
5
  import { u as P } from "./describeError-BqGAUZgX.js";
6
- import { u as I } from "./format-D8X4zsx6.js";
7
- import { e as a, R as O } from "./index-BQg5X6iK.js";
6
+ import { u as I } from "./format-Dn-BOb-o.js";
7
+ import { e as a, R as O } from "./index-C1jSzT1V.js";
8
8
  import { _ as W } from "./AlertDialog.vue_vue_type_script_setup_true_lang-BvGc1Rfl.js";
9
9
  import { t as i } from "./toast-CqSDTWRX.js";
10
10
  import { u as Y } from "./useLoad-W4tfxmm5.js";
11
- import { u as j } from "./platform-Dr4iY3b8.js";
11
+ import { u as j } from "./platform-BZUWAXQV.js";
12
12
  import { d as G } from "./definition-C7QuyV3i.js";
13
13
  import { r as H } from "./http-nz92KjdS.js";
14
14
  function J(u) {
@@ -2,7 +2,7 @@ import { defineComponent as B, openBlock as d, createBlock as L, withCtx as N, c
2
2
  import { s as T, u as W } from "./sectionIndex-BS0ic5W7.js";
3
3
  import { d as $, h as j } from "./options-QuOkMKVZ.js";
4
4
  import { useI18n as D } from "vue-i18n";
5
- import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
5
+ import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
6
6
  const H = /* @__PURE__ */ B({
7
7
  __name: "GroupEditAction",
8
8
  props: {
@@ -1,18 +1,18 @@
1
1
  import { defineComponent as R, computed as N, openBlock as i, createElementBlock as k, createVNode as o, unref as e, withCtx as u, mergeProps as c, createBlock as b, createCommentVNode as d, createElementVNode as p, toDisplayString as v, createTextVNode as S } from "vue";
2
2
  import { useI18n as V } from "vue-i18n";
3
3
  import { RouterLink as B } from "vue-router";
4
- import { u as E } from "./format-D8X4zsx6.js";
4
+ import { u as E } from "./format-Dn-BOb-o.js";
5
5
  import { u as T } from "./useResourceForm-DYuYT_on.js";
6
- import { _ as h } from "./FormGroup.vue_vue_type_script_setup_true_lang-BTADNpwB.js";
6
+ import { _ as h } from "./FormGroup.vue_vue_type_script_setup_true_lang-Bzm3yJy5.js";
7
7
  import { _ as F } from "./FormView.vue_vue_type_script_setup_true_lang-Ncl9DmFB.js";
8
- import { _ as L } from "./SelectField.vue_vue_type_script_setup_true_lang-iJm8qmjT.js";
8
+ import { _ as L } from "./SelectField.vue_vue_type_script_setup_true_lang-CYiarLAK.js";
9
9
  import { _ as f } from "./TextField.vue_vue_type_script_setup_true_lang-7IAl4eAE.js";
10
10
  import { u as A } from "./useSaveChrome-7huA3FzR.js";
11
- import { P as D, b as G, i as I } from "./index-B_lzrZot.js";
11
+ import { P as D, b as G, i as I } from "./index-BB0_hxmE.js";
12
12
  import { t as M } from "./toast-CqSDTWRX.js";
13
- import { u as O } from "./platform-Dr4iY3b8.js";
13
+ import { u as O } from "./platform-BZUWAXQV.js";
14
14
  import { b as U } from "./routeResource-CcYA75T2.js";
15
- import { u as j } from "./fieldMessages-DTXpWnBd.js";
15
+ import { u as j } from "./fieldMessages-6UTV9yWL.js";
16
16
  import { _ as $ } from "./ActionRow.vue_vue_type_script_setup_true_lang-Cg1lhpcA.js";
17
17
  import { _ as z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
18
18
  import { u as H } from "./languages-BShG9LpE.js";
@@ -1,30 +1,30 @@
1
1
  import { defineComponent as G, openBlock as a, createElementBlock as p, createVNode as l, unref as e, createElementVNode as n, toDisplayString as o, createCommentVNode as c, computed as h, createBlock as d, withCtx as r, Fragment as U, renderList as F, createTextVNode as S, mergeProps as b } from "vue";
2
2
  import { useI18n as ee } from "vue-i18n";
3
3
  import { useRoute as te } from "vue-router";
4
- import { _ as se } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
5
- import { a as ne } from "./neighbors-BKzihEGQ.js";
4
+ import { _ as se } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
5
+ import { a as ne } from "./neighbors-CcCaurV5.js";
6
6
  import { _ as m } from "./KeyValue.vue_vue_type_script_setup_true_lang-wcZcvnow.js";
7
7
  import { _ as T } from "./Panel.vue_vue_type_script_setup_true_lang-D_Wg42hu.js";
8
8
  import { _ as ie } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
9
9
  import { a as ae } from "./leaveGuard-Cc8yeLxM.js";
10
10
  import { u as le } from "./useResourceForm-DYuYT_on.js";
11
11
  import { _ as oe } from "./FormErrors.vue_vue_type_script_setup_true_lang-DJiK8iqo.js";
12
- import { _ as re } from "./FormGroup.vue_vue_type_script_setup_true_lang-BTADNpwB.js";
12
+ import { _ as re } from "./FormGroup.vue_vue_type_script_setup_true_lang-Bzm3yJy5.js";
13
13
  import { _ as ce } from "./FormView.vue_vue_type_script_setup_true_lang-Ncl9DmFB.js";
14
- import { _ as w } from "./SelectField.vue_vue_type_script_setup_true_lang-iJm8qmjT.js";
14
+ import { _ as w } from "./SelectField.vue_vue_type_script_setup_true_lang-CYiarLAK.js";
15
15
  import { _ as P } from "./TextareaField.vue_vue_type_script_setup_true_lang-Dyh4Hhyl.js";
16
16
  import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-7IAl4eAE.js";
17
17
  import { u as de } from "./useSaveChrome-7huA3FzR.js";
18
- import { u as ue } from "./useCommand-BIZX1ReM.js";
19
- import { u as _e } from "./format-D8X4zsx6.js";
18
+ import { u as ue } from "./useCommand-C3QTZIIw.js";
19
+ import { u as _e } from "./format-Dn-BOb-o.js";
20
20
  import { t as me } from "./toast-CqSDTWRX.js";
21
- import { _ as fe } from "./RecordHeader.vue_vue_type_script_setup_true_lang-DPm9q1P_.js";
22
- import { u as pe } from "./platform-Dr4iY3b8.js";
21
+ import { _ as fe } from "./RecordHeader.vue_vue_type_script_setup_true_lang-CU7fZpp2.js";
22
+ import { u as pe } from "./platform-BZUWAXQV.js";
23
23
  import { a as be } from "./routeResource-CcYA75T2.js";
24
- import { a as ve } from "./ResourcePage.vue_vue_type_script_setup_true_lang-Cm3tx76N.js";
24
+ import { a as ve } from "./ResourcePage.vue_vue_type_script_setup_true_lang-y3gyR5A-.js";
25
25
  import { _ as N } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
26
26
  import { _ as q } from "./EmptyState.vue_vue_type_script_setup_true_lang-DbZiO2RF.js";
27
- import { u as xe, i as he, a as ye, M as ge, U as ke, m as we, f as $e, g as z, r as Se, S as Te, e as D, c as L, d as Ee, b as Ie } from "./index-Cgu6Ntok.js";
27
+ import { u as xe, i as he, a as ye, M as ge, U as ke, m as we, f as $e, g as z, r as Se, S as Te, e as D, c as L, d as Ee, b as Ie } from "./index-DZQ3gy3e.js";
28
28
  import { _ as Ne } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
29
29
  const De = { class: "flex min-w-0 items-center gap-2" }, Le = { class: "flex min-w-0 flex-col items-start" }, Ce = { class: "max-w-full truncate text-xs font-semibold text-content-strong" }, Ae = {
30
30
  key: 0,
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as $, useTemplateRef as D, computed as d, openBlock as n, createBlock as m, unref as e, withCtx as i, createVNode as c, createElementBlock as p, toDisplayString as a, createElementVNode as F, createTextVNode as f, createCommentVNode as O } from "vue";
2
2
  import { useI18n as q } from "vue-i18n";
3
3
  import { useRouter as U } from "vue-router";
4
- import { u as z, _ as P } from "./CollectionPage.vue_vue_type_script_setup_true_lang--onFdKOB.js";
5
- import { a as y } from "./rowLayout-XlTcD4de.js";
4
+ import { u as z, _ as P } from "./CollectionPage.vue_vue_type_script_setup_true_lang-Bcwwr8ng.js";
5
+ import { a as y } from "./rowLayout-BLhJ9-42.js";
6
6
  import { u as Y } from "./datePresets-DB13HHHd.js";
7
- import { _ as j } from "./Timestamp.vue_vue_type_script_setup_true_lang-u53rHMFG.js";
7
+ import { _ as j } from "./Timestamp.vue_vue_type_script_setup_true_lang-CAz2W69d.js";
8
8
  import { _ as g } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
9
- import { u as K } from "./format-D8X4zsx6.js";
10
- import { u as G } from "./platform-Dr4iY3b8.js";
9
+ import { u as K } from "./format-Dn-BOb-o.js";
10
+ import { u as G } from "./platform-BZUWAXQV.js";
11
11
  import { _ as k } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
12
- import { i as v, a as H, C as J, _ as M, S as T, b as Q, c as S, d as W, e as E } from "./index-Cgu6Ntok.js";
12
+ import { i as v, a as H, C as J, _ as M, S as T, b as Q, c as S, d as W, e as E } from "./index-DZQ3gy3e.js";
13
13
  const X = {
14
14
  key: 1,
15
15
  class: "flex min-w-0 items-center gap-3"
@@ -1,6 +1,6 @@
1
1
  import { toValue as oe, watch as ee, onUnmounted as le, computed as i, ref as j, defineComponent as ne, useSlots as q, useId as ie, inject as re, openBlock as t, createBlock as _, Teleport as de, createElementBlock as a, unref as s, createVNode as k, Transition as T, withCtx as z, normalizeStyle as V, createCommentVNode as o, normalizeClass as y, createElementVNode as n, mergeProps as G, toDisplayString as m, renderSlot as f, createTextVNode as ce } from "vue";
2
2
  import { useI18n as ue } from "vue-i18n";
3
- import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
3
+ import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
4
4
  import { _ as Q } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
5
5
  import { u as pe } from "./mediaQuery-CygcXmFW.js";
6
6
  import { u as me } from "./useDialog-CXR3hN0G.js";
@@ -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-9Lt1XggN.js";
5
- import { _ as b } from "./AsyncSection.vue_vue_type_script_setup_true_lang-GxAsImnO.js";
4
+ import { a as $ } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DC-zSRcl.js";
5
+ import { _ as b } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BTIUz3cG.js";
6
6
  import { u as g } from "./useLoad-W4tfxmm5.js";
7
- import { u as x } from "./PersonAccess.vue_vue_type_script_setup_true_lang-07pq4SrY.js";
8
- import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-DuQR8hFf.js";
7
+ import { u as x } from "./PersonAccess.vue_vue_type_script_setup_true_lang-CBQ1kv8G.js";
8
+ import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-BcUxVL9y.js";
9
9
  import { accessPages as u } from "./access/index.js";
10
10
  const j = /* @__PURE__ */ _({
11
11
  __name: "NewRolePage",
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as H, ref as _, computed as B, useTemplateRef as K, watch as R, openBlock as q, createBlock as J, mergeProps as L, unref as T, createSlots as Q, withCtx as $, createElementVNode as Z, normalizeClass as E, createElementBlock as G, toDisplayString as I, createCommentVNode as P, isRef as W, renderSlot as N, mergeDefaults as U } from "vue";
2
2
  import { b as X } from "./controlSurface-t7OEFESJ.js";
3
- import { u as Y } from "./format-D8X4zsx6.js";
3
+ import { u as Y } from "./format-Dn-BOb-o.js";
4
4
  import { a as ee, e as te, _ as le, f as ae, b as oe } from "./options-QuOkMKVZ.js";
5
5
  function ne(c) {
6
6
  const r = c.number(1234.5, { minimumFractionDigits: 1, maximumFractionDigits: 1, useGrouping: !0 }), u = /^\d(\D)\d/.exec(r)?.[1] ?? "";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as u, openBlock as f, createElementBlock as _, createElementVNode as p, toDisplayString as o, unref as t, createVNode as l, withCtx as r, createTextVNode as i, createCommentVNode as x } from "vue";
2
2
  import { useI18n as b } from "vue-i18n";
3
- import { _ as c } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
3
+ import { _ as c } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
4
4
  const k = {
5
5
  key: 0,
6
6
  class: "flex items-center justify-between gap-3 px-row-inset text-footnote text-content-muted",
@@ -1,21 +1,21 @@
1
1
  import { defineComponent as Y, ref as R, computed as j, watch as te, openBlock as i, createBlock as E, unref as e, withCtx as y, createElementVNode as A, createElementBlock as b, toDisplayString as w, createCommentVNode as D, createVNode as $, Fragment as B, renderList as G, createSlots as fe, renderSlot as ke, createTextVNode as M, useTemplateRef as le } from "vue";
2
2
  import { useI18n as ee } from "vue-i18n";
3
- import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-DQq_0P0p.js";
4
- import { _ as K } from "./FormGroup.vue_vue_type_script_setup_true_lang-BTADNpwB.js";
3
+ import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-Dn-cJcj3.js";
4
+ import { _ as K } from "./FormGroup.vue_vue_type_script_setup_true_lang-Bzm3yJy5.js";
5
5
  import { g as V } from "./options-QuOkMKVZ.js";
6
6
  import { _ as $e } from "./AlertDialog.vue_vue_type_script_setup_true_lang-BvGc1Rfl.js";
7
7
  import { t as Z } from "./toast-CqSDTWRX.js";
8
- import { _ as ne } from "./AccessGate.vue_vue_type_script_setup_true_lang-CkomzGrt.js";
8
+ import { _ as ne } from "./AccessGate.vue_vue_type_script_setup_true_lang-B8gpkhbw.js";
9
9
  import { i as xe } from "./error-Bb_dr_Ay.js";
10
- import { _ as je } from "./AsyncSection.vue_vue_type_script_setup_true_lang-GxAsImnO.js";
10
+ import { _ as je } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BTIUz3cG.js";
11
11
  import { _ as Le } from "./EmptyState.vue_vue_type_script_setup_true_lang-DbZiO2RF.js";
12
12
  import { u as qe } from "./useLoad-W4tfxmm5.js";
13
- import { _ as Ce, a as Ee } from "./SelectField.vue_vue_type_script_setup_true_lang-iJm8qmjT.js";
13
+ import { _ as Ce, a as Ee } from "./SelectField.vue_vue_type_script_setup_true_lang-CYiarLAK.js";
14
14
  import { _ as Ne } from "./SegmentedField.vue_vue_type_script_setup_true_lang-ChfDFAA2.js";
15
- import { u as Te, _ as Se } from "./useCommand-BIZX1ReM.js";
15
+ import { u as Te, _ as Se } from "./useCommand-C3QTZIIw.js";
16
16
  import { route as C } from "./client/index.js";
17
17
  import { s as Ae } from "./routes-CVckt7Pj.js";
18
- import { u as Re } from "./platform-Dr4iY3b8.js";
18
+ import { u as Re } from "./platform-BZUWAXQV.js";
19
19
  import { u as J, g as pe, f as De, j as Ue, l as Be, S as ce, e as Oe, a as re } from "./refusals-COPr15XZ.js";
20
20
  import { _ as Pe } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
21
21
  import { u as Ge } from "./mediaQuery-CygcXmFW.js";