@wssto2/vue-core 0.9.4 → 0.11.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 (169) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js +64 -0
  3. package/dist/Activity-CdkJW68R.js +169 -0
  4. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js} +147 -159
  5. package/dist/{AsyncSection.vue_vue_type_script_setup_true_lang-BdeOKqz_.js → AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js} +1 -1
  6. package/dist/BottomDockPortal.vue_vue_type_script_setup_true_lang-DmwR-2SP.js +17 -0
  7. package/dist/Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js +123 -0
  8. package/dist/Changes-DxK_QfiB.js +69 -0
  9. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-DHcekGNn.js → CollectionPage.vue_vue_type_script_setup_true_lang-x0jyJ01f.js} +19 -18
  10. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-8kBsNRuq.js → DataTable.vue_vue_type_script_setup_true_lang-C_ZytnW-.js} +1 -1
  11. package/dist/{DateField.vue_vue_type_script_setup_true_lang-BhKdCVFn.js → DateField.vue_vue_type_script_setup_true_lang-CeNwBbJT.js} +1 -1
  12. package/dist/{DeadLetters-Bb5pPlOY.js → DeadLetters-DnA7LP1w.js} +5 -6
  13. package/dist/DrawnCheck.vue_vue_type_script_setup_true_lang-9DzDJlIA.js +38 -0
  14. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js +427 -0
  15. package/dist/{FormView.vue_vue_type_script_setup_true_lang-aaNnMIOi.js → FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js} +2 -2
  16. package/dist/{General-BAG7S6wV.js → General-2matxl2Y.js} +23 -24
  17. package/dist/Highlight.vue_vue_type_script_setup_true_lang-DZGBmwcX.js +29 -0
  18. package/dist/{IncidentRecord-D8aOpNHo.js → IncidentRecord-Bt3G4HlX.js} +14 -15
  19. package/dist/{IncidentsList-C0cFl0Db.js → IncidentsList-2iwgqp9J.js} +3 -3
  20. package/dist/{Modal.vue_vue_type_script_setup_true_lang-BlHhdmMy.js → Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js} +9 -8
  21. package/dist/{NewRolePage-C6Iu-EQJ.js → NewRolePage-DhGFwvk3.js} +4 -4
  22. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-TGGAq8J-.js → NumberField.vue_vue_type_script_setup_true_lang-B3UrXNqH.js} +1 -1
  23. package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-qz1tmYpF.js → PersonAccess.vue_vue_type_script_setup_true_lang-DbGZSNQc.js} +56 -56
  24. package/dist/ProfilePage-CpuyDBAv.js +685 -0
  25. package/dist/ProgressTrack.vue_vue_type_script_setup_true_lang-DrOm8k--.js +30 -0
  26. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-B9mN7UxZ.js → RecordHeader.vue_vue_type_script_setup_true_lang-DqGc3Jyo.js} +1 -1
  27. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-Cw8mGf_B.js → ResourcePage.vue_vue_type_script_setup_true_lang-DljhsTU4.js} +3 -3
  28. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CJPvOVDV.js → RoleEditor.vue_vue_type_script_setup_true_lang-C0FIotFA.js} +11 -12
  29. package/dist/{RolePage-Dj_ocMnM.js → RolePage-DaNv049g.js} +10 -10
  30. package/dist/{RolesPage-PXrs4O-1.js → RolesPage-6hlzJes_.js} +6 -6
  31. package/dist/SearchInput.vue_vue_type_script_setup_true_lang-w4eAqyZ9.js +32 -0
  32. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-CtdF1zuv.js → SectionList.vue_vue_type_script_setup_true_lang-DR0_NsqC.js} +1 -1
  33. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-B5ove3rM.js → SectionNavigator.vue_vue_type_script_setup_true_lang-Dh3sXUt_.js} +2 -2
  34. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-ChfDFAA2.js → SegmentedField.vue_vue_type_script_setup_true_lang-zv_AxpBn.js} +1 -1
  35. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BP8nAQwo.js → SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js} +3 -3
  36. package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-aWkKwxNe.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-FJbWxME_.js} +20 -20
  37. package/dist/{ServiceAccountRecord-bxX9yQkC.js → ServiceAccountRecord-0-JF5lRx.js} +24 -24
  38. package/dist/{ServiceAccountsList-BXE6htxk.js → ServiceAccountsList-DcsnOcf-.js} +32 -32
  39. package/dist/{Sessions--Gvc0kxw.js → Sessions-DgWhpk-i.js} +23 -24
  40. package/dist/{SettingsPage-DzDC7gD-.js → SettingsPage-BXPWATYU.js} +28 -30
  41. package/dist/{SignIn-CTI_699e.js → SignIn-DPoUwHZd.js} +9 -10
  42. package/dist/{SignInPage-HKC1bm2E.js → SignInPage-OyrVemro.js} +4 -4
  43. package/dist/SignIns-BMDrZVVp.js +64 -0
  44. package/dist/StatusLine.vue_vue_type_script_setup_true_lang-DsdQmLq6.js +56 -0
  45. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-BMA2YXTZ.js → SwitchField.vue_vue_type_script_setup_true_lang-Ds4q0bbl.js} +1 -1
  46. package/dist/{TextField.vue_vue_type_script_setup_true_lang-BFVsqcBX.js → TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js} +2 -2
  47. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-Dyh4Hhyl.js → TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js} +1 -1
  48. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-gGFfQLuK.js → TimeField.vue_vue_type_script_setup_true_lang-D-Em4glH.js} +1 -1
  49. package/dist/UserRecord-BW-gdCqi.js +202 -0
  50. package/dist/UsersList-B3ZF_1Dj.js +74 -0
  51. package/dist/access/index.js +4 -4
  52. package/dist/app/index.d.ts +1 -0
  53. package/dist/app/index.js +11 -10
  54. package/dist/app/languages.d.ts +8 -0
  55. package/dist/{application-BmXW6iW_.js → application-CuzT-0vW.js} +1 -1
  56. package/dist/button/index.js +6 -5
  57. package/dist/collection/Highlight.vue.d.ts +12 -0
  58. package/dist/collection/PickerModal.vue.d.ts +26 -0
  59. package/dist/collection/definition.d.ts +6 -6
  60. package/dist/collection/http.d.ts +6 -6
  61. package/dist/collection/index.d.ts +6 -1
  62. package/dist/collection/index.js +145 -85
  63. package/dist/collection/picker.d.ts +39 -0
  64. package/dist/collection/types.d.ts +9 -4
  65. package/dist/collection/useCollection.d.ts +5 -5
  66. package/dist/content/ActivityStream.vue.d.ts +62 -0
  67. package/dist/content/CommentThread.vue.d.ts +52 -0
  68. package/dist/content/Composer.vue.d.ts +36 -0
  69. package/dist/content/index.d.ts +3 -0
  70. package/dist/content/index.js +321 -56
  71. package/dist/controls/index.js +28 -54
  72. package/dist/form/index.js +132 -134
  73. package/dist/format/index.d.ts +1 -0
  74. package/dist/format/index.js +10 -6
  75. package/dist/format/slug.d.ts +8 -0
  76. package/dist/http-Dm0uXY9O.js +95 -0
  77. package/dist/i18n/index.d.ts +15 -0
  78. package/dist/i18n/index.js +89 -63
  79. package/dist/i18n/plural.d.ts +23 -0
  80. package/dist/i18n/serverMessages.d.ts +16 -0
  81. package/dist/identity/embed.d.ts +39 -0
  82. package/dist/identity/index.d.ts +22 -1
  83. package/dist/identity/index.js +40 -21
  84. package/dist/identity/session.d.ts +9 -1
  85. package/dist/identity/shared/ChangeFeed.vue.d.ts +6 -3
  86. package/dist/identity/users/context.d.ts +11 -0
  87. package/dist/identity/users/dialogs.d.ts +10 -0
  88. package/dist/identity/users/ext.d.ts +8 -0
  89. package/dist/identity/users/feature.d.ts +22 -1
  90. package/dist/identity/users/list.d.ts +12 -1
  91. package/dist/identity/users/personSections.d.ts +15 -6
  92. package/dist/identity/users/replace.d.ts +45 -0
  93. package/dist/identity/users/words.d.ts +28 -0
  94. package/dist/incidents/api.d.ts +1 -1
  95. package/dist/incidents/index.js +1 -1
  96. package/dist/{index-Dz0LkLM8.js → index-ClJeyW3F.js} +4 -4
  97. package/dist/index-Cq9TuOqH.js +1264 -0
  98. package/dist/{index-Dm-sdJJr.js → index-kEHY7hcG.js} +31 -32
  99. package/dist/index.d.ts +1 -1
  100. package/dist/index.js +1 -1
  101. package/dist/keepAlive-ClGnsIzT.js +55 -0
  102. package/dist/modal/index.js +3 -3
  103. package/dist/modules/identity/entities.d.ts +7 -0
  104. package/dist/modules/identity/routes.d.ts +8 -4
  105. package/dist/modules/identity/schemas.d.ts +16 -0
  106. package/dist/{neighbors-DVfU9T0o.js → neighbors-OyvGi233.js} +2 -2
  107. package/dist/notifications/deadletters/list.d.ts +1 -1
  108. package/dist/notifications/index.js +1 -1
  109. package/dist/{options-QuOkMKVZ.js → options-B48UiYsG.js} +2 -2
  110. package/dist/page/index.js +11 -11
  111. package/dist/phone/index.js +1 -1
  112. package/dist/pwa/AndroidInstallBanner.vue.d.ts +18 -0
  113. package/dist/pwa/InstallQrSheet.vue.d.ts +21 -0
  114. package/dist/pwa/IosInstallGuide.vue.d.ts +19 -0
  115. package/dist/pwa/QrCode.vue.d.ts +16 -0
  116. package/dist/pwa/index.d.ts +4 -0
  117. package/dist/pwa/index.js +244 -24
  118. package/dist/resource/index.js +1 -1
  119. package/dist/rowLayout-BsKEzEME.js +650 -0
  120. package/dist/shell/DarkModeRow.vue.d.ts +15 -0
  121. package/dist/shell/OfflineNotice.vue.d.ts +2 -0
  122. package/dist/shell/QuickSearchButton.vue.d.ts +2 -0
  123. package/dist/shell/QuickSearchPalette.vue.d.ts +12 -0
  124. package/dist/shell/darkMode.d.ts +26 -0
  125. package/dist/shell/index.d.ts +10 -0
  126. package/dist/shell/index.js +954 -579
  127. package/dist/shell/offlineNotice.d.ts +3 -0
  128. package/dist/shell/quickSearch.d.ts +14 -0
  129. package/dist/shell/quickSearchControl.d.ts +69 -0
  130. package/dist/shortcut-DUR6yPWA.js +93 -0
  131. package/dist/state/BackgroundTaskCapsule.vue.d.ts +18 -0
  132. package/dist/state/backgroundTasks.d.ts +58 -0
  133. package/dist/state/index.d.ts +4 -0
  134. package/dist/state/index.js +194 -80
  135. package/dist/state/useCountUp.d.ts +9 -0
  136. package/dist/styles.css +1 -1
  137. package/dist/{suggestions-BVQhoXzS.js → suggestions-q_v3M7G6.js} +1 -1
  138. package/dist/testing/collection.d.ts +1 -1
  139. package/dist/{useCommand-Dc8Lgs9h.js → useCommand-Ch_nx1AQ.js} +4 -4
  140. package/dist/{useGroupSheet-DQ6cVG-z.js → useGroupSheet-CPjHydQV.js} +14 -15
  141. package/dist/{useRecordDialog-BTsbHY38.js → useRecordDialog-DdkauXnU.js} +1 -1
  142. package/dist/{useResourceForm-DJ4Q75pq.js → useResourceForm-Dl6YFYyz.js} +1 -1
  143. package/package.json +3 -2
  144. package/dist/ActionRow.vue_vue_type_script_setup_true_lang-Cg1lhpcA.js +0 -45
  145. package/dist/Activity-29hsZ28j.js +0 -156
  146. package/dist/Button.vue_vue_type_script_setup_true_lang-Dp7OB-eF.js +0 -192
  147. package/dist/Changes-Dxjdkd_5.js +0 -129
  148. package/dist/FormErrors.vue_vue_type_script_setup_true_lang-CIggKPtq.js +0 -295
  149. package/dist/FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js +0 -137
  150. package/dist/PageBar.vue_vue_type_script_setup_true_lang-qI94fjJv.js +0 -47
  151. package/dist/ProfilePage-BnohZIEg.js +0 -764
  152. package/dist/ProgressTrack.vue_vue_type_script_setup_true_lang-B6Prw9hi.js +0 -64
  153. package/dist/SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js +0 -23
  154. package/dist/SessionList.vue_vue_type_script_setup_true_lang-Cnyt5V8T.js +0 -133
  155. package/dist/SignIns-BcqBgWgN.js +0 -121
  156. package/dist/UserRecord-CtUPpbCt.js +0 -267
  157. package/dist/UsersList-BMkIgIg8.js +0 -155
  158. package/dist/definition-C7QuyV3i.js +0 -54
  159. package/dist/http-nz92KjdS.js +0 -42
  160. package/dist/identity/fieldMessages.d.ts +0 -15
  161. package/dist/identity/users/languages.d.ts +0 -4
  162. package/dist/index-CdtofdcJ.js +0 -501
  163. package/dist/keepAlive-z3IRFkQq.js +0 -46
  164. package/dist/languages-BShG9LpE.js +0 -10
  165. package/dist/rowLayout-CT8vWYgI.js +0 -663
  166. package/dist/signInEvents-DWShrJox.js +0 -30
  167. package/dist/status-BRA14qwX.js +0 -34
  168. package/dist/useWaitStatus-fsacMl4W.js +0 -24
  169. /package/dist/{fieldMessages-B6GHgi40.js → serverMessages-B6GHgi40.js} +0 -0
@@ -0,0 +1,30 @@
1
+ import { defineComponent as r, computed as o, openBlock as i, createElementBlock as s, normalizeClass as n, createElementVNode as u, normalizeStyle as d } from "vue";
2
+ const c = ["aria-label", "aria-valuenow"], p = /* @__PURE__ */ r({
3
+ __name: "ProgressTrack",
4
+ props: {
5
+ value: {},
6
+ done: { type: Boolean, default: !1 },
7
+ durationMs: { default: 1e3 },
8
+ hairline: { type: Boolean, default: !1 },
9
+ label: { default: void 0 }
10
+ },
11
+ setup(l) {
12
+ const e = l, a = o(() => e.done ? 100 : Math.min(Math.max(e.value, 0), 95)), t = o(() => `${e.done ? 350 : e.durationMs}ms`);
13
+ return (m, f) => (i(), s("div", {
14
+ class: n(["w-full overflow-hidden", e.hairline ? "h-0.5" : "h-1.5 rounded-full bg-tint-soft"]),
15
+ role: "progressbar",
16
+ "aria-label": e.label,
17
+ "aria-valuemin": "0",
18
+ "aria-valuemax": "100",
19
+ "aria-valuenow": Math.round(a.value)
20
+ }, [
21
+ u("div", {
22
+ class: n(["h-full bg-control-on ease-motion-standard motion-reduce:transition-none", e.hairline ? "" : "rounded-full"]),
23
+ style: d({ width: `${a.value}%`, transitionProperty: "width", transitionDuration: t.value })
24
+ }, null, 6)
25
+ ], 10, c));
26
+ }
27
+ });
28
+ export {
29
+ p as _
30
+ };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as p, useTemplateRef as u, openBlock as t, createElementBlock as c, renderSlot as r, createCommentVNode as s, createElementVNode as n, toDisplayString as a, Fragment as d, renderList as f, createBlock as h, resolveDynamicComponent as g, withCtx as x, createVNode as _, unref as k } from "vue";
2
2
  import { _ as b } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
3
- import { u as w } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js";
3
+ import { u as w } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js";
4
4
  const v = { class: "flex min-w-0 flex-wrap items-center gap-5 compact:flex-col compact:gap-2 compact:text-center" }, y = {
5
5
  key: 0,
6
6
  class: "min-w-0 max-w-full shrink-0"
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as S, openBlock as a, createElementBlock as v, unref as t, createBlock as d, withCtx as s, createVNode as i, normalizeClass as m, createElementVNode as R, toDisplayString as y, computed as f, createSlots as $, renderSlot as u, createCommentVNode as A } from "vue";
2
2
  import { useI18n as z } from "vue-i18n";
3
- import { a as C } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js";
4
- import { _ as B } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BdeOKqz_.js";
3
+ import { _ as C } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js";
4
+ import { _ as B } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
5
5
  import { _ as D } from "./EmptyState.vue_vue_type_script_setup_true_lang-DbZiO2RF.js";
6
6
  import { useRouter as K, RouterLink as w } from "vue-router";
7
- import { u as N } from "./Button.vue_vue_type_script_setup_true_lang-Dp7OB-eF.js";
7
+ import { u as N } from "./shortcut-DUR6yPWA.js";
8
8
  import { _ as g } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
9
9
  import { _ as x } from "./Tooltip.vue_vue_type_script_setup_true_lang-Dtg5Y6pf.js";
10
10
  const V = ["aria-label"], j = {
@@ -1,21 +1,20 @@
1
1
  import { defineComponent as D, computed as k, ref as H, openBlock as r, createElementBlock as g, createElementVNode as O, unref as t, Fragment as L, renderList as C, normalizeClass as X, toDisplayString as f, createVNode as q, withCtx as p, createTextVNode as x, createCommentVNode as V, createBlock as _, createSlots as Y, watch as Z, mergeProps as F } from "vue";
2
2
  import { useI18n as I } from "vue-i18n";
3
- import { u as ee } from "./FormErrors.vue_vue_type_script_setup_true_lang-CIggKPtq.js";
4
- import { _ as Q } from "./FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js";
5
- import { _ as te } from "./FormView.vue_vue_type_script_setup_true_lang-aaNnMIOi.js";
6
- import { _ as ae } from "./SelectField.vue_vue_type_script_setup_true_lang-BP8nAQwo.js";
7
- import { _ as se } from "./TextareaField.vue_vue_type_script_setup_true_lang-Dyh4Hhyl.js";
8
- import { _ as oe } from "./TextField.vue_vue_type_script_setup_true_lang-BFVsqcBX.js";
3
+ import { a as Q, u as ee } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
4
+ import { _ as te } from "./FormView.vue_vue_type_script_setup_true_lang-DvbPEiNQ.js";
5
+ import { _ as ae } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
6
+ import { _ as se } from "./TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js";
7
+ import { _ as oe } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
9
8
  import { u as ne } from "./useSaveChrome-7huA3FzR.js";
10
9
  import { t as le } from "./toast-CqSDTWRX.js";
11
10
  import { _ as E } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
12
11
  import { _ as R } from "./Banner.vue_vue_type_script_setup_true_lang-sv0phngk.js";
13
- import { u as re } from "./PersonAccess.vue_vue_type_script_setup_true_lang-qz1tmYpF.js";
12
+ import { u as re } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DbGZSNQc.js";
14
13
  import { g as W, u as G, p as ie, o as T, h as K, i as M, s as ce, j as ue, f as de, a as me, k as fe } from "./refusals-DfPzVNNY.js";
15
- import { _ as pe } from "./Button.vue_vue_type_script_setup_true_lang-Dp7OB-eF.js";
14
+ import { _ as pe } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
16
15
  import { _ as _e } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
17
- import { _ as ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-ChfDFAA2.js";
18
- import { _ as be } from "./SwitchField.vue_vue_type_script_setup_true_lang-BMA2YXTZ.js";
16
+ import { _ as ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-zv_AxpBn.js";
17
+ import { _ as be } from "./SwitchField.vue_vue_type_script_setup_true_lang-Ds4q0bbl.js";
19
18
  import { u as ge } from "./platform-BQOX_Ntw.js";
20
19
  function ye(y, c) {
21
20
  return Object.fromEntries(
@@ -183,7 +182,7 @@ const ke = {
183
182
  key: 0,
184
183
  class: "flex flex-wrap gap-1.5 px-row-inset py-2",
185
184
  "data-test": "role-attrs"
186
- }, Ze = /* @__PURE__ */ D({
185
+ }, Ye = /* @__PURE__ */ D({
187
186
  __name: "RoleEditor",
188
187
  props: {
189
188
  role: {},
@@ -323,5 +322,5 @@ const ke = {
323
322
  }
324
323
  });
325
324
  export {
326
- Ze as _
325
+ Ye as _
327
326
  };
@@ -2,22 +2,22 @@ import { defineComponent as I, computed as L, openBlock as a, createBlock as b,
2
2
  import { useI18n as K } from "vue-i18n";
3
3
  import { useRouter as Z } from "vue-router";
4
4
  import { _ as ee } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
5
- import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js";
6
- import { g as z } from "./options-QuOkMKVZ.js";
5
+ import { a as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
6
+ import { g as z } from "./options-B48UiYsG.js";
7
7
  import { _ as oe } from "./AlertDialog.vue_vue_type_script_setup_true_lang-CrFhR9rJ.js";
8
8
  import { t as E } from "./toast-CqSDTWRX.js";
9
- import { _ as te } from "./RecordHeader.vue_vue_type_script_setup_true_lang-B9mN7UxZ.js";
9
+ import { _ as te } from "./RecordHeader.vue_vue_type_script_setup_true_lang-DqGc3Jyo.js";
10
10
  import { u as ae } from "./platform-BQOX_Ntw.js";
11
11
  import { a as le, u as se } from "./routeResource-DlTsGTg_.js";
12
- import { a as re } from "./ResourcePage.vue_vue_type_script_setup_true_lang-Cw8mGf_B.js";
13
- import { _ as ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BdeOKqz_.js";
12
+ import { a as re } from "./ResourcePage.vue_vue_type_script_setup_true_lang-DljhsTU4.js";
13
+ import { _ as ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
14
14
  import { _ as H } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
- import { u as O } from "./PersonAccess.vue_vue_type_script_setup_true_lang-qz1tmYpF.js";
15
+ import { u as O } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DbGZSNQc.js";
16
16
  import { u as U, f as ne, e as ie, g as ue, a as M } from "./refusals-DfPzVNNY.js";
17
- import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-BP8nAQwo.js";
18
- import { u as me, _ as pe } from "./useCommand-Dc8Lgs9h.js";
19
- import { _ as fe } from "./Modal.vue_vue_type_script_setup_true_lang-BlHhdmMy.js";
20
- import { _ as de } from "./RoleEditor.vue_vue_type_script_setup_true_lang-CJPvOVDV.js";
17
+ import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
18
+ import { u as me, _ as pe } from "./useCommand-Ch_nx1AQ.js";
19
+ import { _ as fe } from "./Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js";
20
+ import { _ as de } from "./RoleEditor.vue_vue_type_script_setup_true_lang-C0FIotFA.js";
21
21
  import { accessPages as T } from "./access/index.js";
22
22
  const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
23
23
  __name: "ReplaceRoleDialog",
@@ -3,15 +3,15 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { useRouter as F } from "vue-router";
4
4
  import { _ as S } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
5
5
  import { _ as E } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
6
- import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js";
7
- import { g as j } from "./options-QuOkMKVZ.js";
8
- import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-BFVsqcBX.js";
9
- import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js";
6
+ import { a as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
7
+ import { g as j } from "./options-B48UiYsG.js";
8
+ import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
9
+ import { _ as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js";
10
10
  import { u as K } from "./platform-BQOX_Ntw.js";
11
- import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BdeOKqz_.js";
11
+ import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
12
12
  import { _ as q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
13
13
  import { u as z } from "./useLoad-M7V-AVwR.js";
14
- import { u as G } from "./PersonAccess.vue_vue_type_script_setup_true_lang-qz1tmYpF.js";
14
+ import { u as G } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DbGZSNQc.js";
15
15
  import { u as H, a as J } from "./refusals-DfPzVNNY.js";
16
16
  import { accessPages as x } from "./access/index.js";
17
17
  const M = {
@@ -0,0 +1,32 @@
1
+ import { defineComponent as c, useModel as i, useTemplateRef as p, withDirectives as u, openBlock as d, createElementBlock as m, mergeProps as f, vModelText as h, mergeModels as b } from "vue";
2
+ const k = ["aria-label", "placeholder"], v = /* @__PURE__ */ c({
3
+ inheritAttrs: !1,
4
+ __name: "SearchInput",
5
+ props: /* @__PURE__ */ b({
6
+ label: {},
7
+ placeholder: {}
8
+ }, {
9
+ modelValue: { required: !0 },
10
+ modelModifiers: {}
11
+ }),
12
+ emits: ["update:modelValue"],
13
+ setup(e, { expose: r }) {
14
+ const l = i(e, "modelValue"), t = e, o = p("input");
15
+ return r({ focus: () => o.value?.focus() }), (n, a) => u((d(), m("input", f({
16
+ ref_key: "input",
17
+ ref: o,
18
+ "onUpdate:modelValue": a[0] || (a[0] = (s) => l.value = s),
19
+ type: "search",
20
+ enterkeyhint: "search",
21
+ autocomplete: "off",
22
+ spellcheck: "false",
23
+ "aria-label": t.label,
24
+ placeholder: t.placeholder
25
+ }, n.$attrs, { class: "min-w-0 flex-1 bg-transparent text-title outline-none placeholder:text-content-disabled [&::-webkit-search-cancel-button]:hidden" }), null, 16, k)), [
26
+ [h, l.value]
27
+ ]);
28
+ }
29
+ });
30
+ export {
31
+ v as _
32
+ };
@@ -2,7 +2,7 @@ import { defineComponent as $, computed as _, unref as s, openBlock as l, create
2
2
  import { useI18n as S } from "vue-i18n";
3
3
  import { _ as j } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
4
4
  import { _ as N } from "./Menu.vue_vue_type_script_setup_true_lang-wKc9gdCn.js";
5
- import { _ as V } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js";
5
+ import { _ as V } from "./BottomDockPortal.vue_vue_type_script_setup_true_lang-DmwR-2SP.js";
6
6
  import { a as q } from "./sectionIndex-BS0ic5W7.js";
7
7
  const M = {
8
8
  class: "dock-safe-area pointer-events-none",
@@ -6,9 +6,9 @@ import { _ as G } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
6
6
  import { a as re } from "./mediaQuery-CygcXmFW.js";
7
7
  import { u as ie } from "./access-DmAceEo5.js";
8
8
  import { u as ce, a as ue } from "./sections-CvUwZ-S1.js";
9
- import { p as de } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js";
9
+ import { p as de } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js";
10
10
  import { p as me } from "./sectionIndex-BS0ic5W7.js";
11
- import { _ as K, a as pe } from "./SectionList.vue_vue_type_script_setup_true_lang-CtdF1zuv.js";
11
+ import { _ as K, a as pe } from "./SectionList.vue_vue_type_script_setup_true_lang-DR0_NsqC.js";
12
12
  const fe = {
13
13
  key: 0,
14
14
  "data-test": "section-navigator",
@@ -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 "./options-QuOkMKVZ.js";
2
+ import { u as F, a as S, _ as T, f as D, b as N } from "./options-B48UiYsG.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({
@@ -1,13 +1,13 @@
1
1
  import { defineComponent as X, shallowRef as ee, ref as M, useId as te, useTemplateRef as Y, computed as g, watch as N, nextTick as oe, openBlock as n, createElementBlock as b, normalizeClass as k, createElementVNode as i, createVNode as O, unref as t, withDirectives as le, vModelText as ae, createCommentVNode as h, toDisplayString as L, createBlock as z, Fragment as U, renderList as G, renderSlot as V, onScopeDispose as ne, mergeProps as K, createSlots as E, withCtx as $, createTextVNode as H, normalizeProps as W, guardReactiveProps as J, mergeDefaults as se } from "vue";
2
2
  import { useI18n as Z } from "vue-i18n";
3
- import { _ as re } from "./Button.vue_vue_type_script_setup_true_lang-Dp7OB-eF.js";
3
+ import { _ as re } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
4
4
  import { _ as T } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
5
5
  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-B91aRD_y.js";
8
8
  import { _ as de } from "./Popover.vue_vue_type_script_setup_true_lang-C20Hf3Hl.js";
9
- import { i as ce, m as pe, a as me, e as ve, _ as fe, f as be, b as ge } from "./options-QuOkMKVZ.js";
10
- import { a as ye } from "./suggestions-BVQhoXzS.js";
9
+ import { h as ce, m as pe, a as me, e as ve, _ as fe, f as be, b as ge } from "./options-B48UiYsG.js";
10
+ import { a as ye } from "./suggestions-q_v3M7G6.js";
11
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 = {
12
12
  key: 0,
13
13
  role: "presentation"
@@ -1,19 +1,19 @@
1
1
  import { defineComponent as I, computed as K, ref as V, openBlock as A, createBlock as k, unref as e, withCtx as b, createElementVNode as B, createVNode as p, mergeProps as f, createCommentVNode as D } from "vue";
2
2
  import { useI18n as G } from "vue-i18n";
3
3
  import { f as T, u as U } from "./refusals-DfPzVNNY.js";
4
- import { _ as x } from "./FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js";
5
- import { u as M, _ as N } from "./SelectField.vue_vue_type_script_setup_true_lang-BP8nAQwo.js";
6
- import { _ as Z } from "./TextareaField.vue_vue_type_script_setup_true_lang-Dyh4Hhyl.js";
7
- import { _ as j } from "./TextField.vue_vue_type_script_setup_true_lang-BFVsqcBX.js";
8
- import { _ as F } from "./useCommand-Dc8Lgs9h.js";
9
- import { u as H } from "./useRecordDialog-BTsbHY38.js";
4
+ import { a as x } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
5
+ import { u as N, _ as O } from "./SelectField.vue_vue_type_script_setup_true_lang-BZwdANL3.js";
6
+ import { _ as Z } from "./TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js";
7
+ import { _ as j } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
8
+ import { _ as F } from "./useCommand-Ch_nx1AQ.js";
9
+ import { u as H } from "./useRecordDialog-DdkauXnU.js";
10
10
  import { t as J } from "./toast-CqSDTWRX.js";
11
- import { u as S } from "./platform-BQOX_Ntw.js";
12
- import { i as Q, f as W, M as X } from "./index-CdtofdcJ.js";
13
- import { r as Y } from "./http-nz92KjdS.js";
11
+ import { u as C } from "./platform-BQOX_Ntw.js";
12
+ import { i as Q, n as W, o as X } from "./index-Cq9TuOqH.js";
13
+ import { r as Y } from "./http-Dm0uXY9O.js";
14
14
  import { s as l } from "./routes-Beyr5NQo.js";
15
- import { u as ee } from "./fieldMessages-B6GHgi40.js";
16
- const y = (o) => ({ headers: { "Idempotency-Key": o } }), O = 500;
15
+ import { u as ee } from "./serverMessages-B6GHgi40.js";
16
+ const y = (o) => ({ headers: { "Idempotency-Key": o } }), S = 500;
17
17
  function ae(o) {
18
18
  return {
19
19
  list: async (s) => (await o.request(l.index, void 0, s)).data.service_accounts,
@@ -26,10 +26,10 @@ function ae(o) {
26
26
  createKey: async (s, t, c) => (await o.request(l.createkey, { ...t, id: s }, y(c))).data,
27
27
  revokeKey: async (s, t) => void await o.request(l.revokekey, { id: s, keyID: t }),
28
28
  /** The people who can answer for an account: the active ones of the users list (its largest page). */
29
- people: async (s) => Y(await o.request(Q.usersList, { view: "active", order_col: "name", order_dir: "asc", page: 1, per_page: O }, s), { page: 1, pageSize: O }).rows.map((t) => ({ id: t.id, name: t.name }))
29
+ people: async (s) => Y(await o.request(Q.usersList, { view: "active", order_col: "name", order_dir: "asc", page: 1, per_page: S }, s), { page: 1, pageSize: S }).rows.map((t) => ({ id: t.id, name: t.name }))
30
30
  };
31
31
  }
32
- const se = () => ae(S().http);
32
+ const se = () => ae(C().http);
33
33
  function te() {
34
34
  const o = ee(), s = T();
35
35
  return { ...o, failureMessage: (t, c) => s(t, c) ?? o.failureMessage(t, c) };
@@ -41,8 +41,8 @@ const ne = {
41
41
  __name: "ServiceAccountDialog",
42
42
  emits: ["saved"],
43
43
  setup(o, { expose: s, emit: t }) {
44
- const c = t, { t: r } = G(), { access: C } = S(), L = U(), _ = se(), { tenants: u } = W(), P = te(), v = K(() => {
45
- const a = C.held(X);
44
+ const c = t, { t: r } = G(), { access: L } = C(), M = U(), _ = se(), { tenants: u } = W(), P = te(), v = K(() => {
45
+ const a = L.held(X);
46
46
  return a !== null && a.scope.id === void 0;
47
47
  }), R = (a) => a.trim() === "", d = H({
48
48
  ...P,
@@ -59,13 +59,13 @@ const ne = {
59
59
  done: (a) => {
60
60
  J.success(r("core.serviceaccounts.toasts.saved")), c("saved", a);
61
61
  }
62
- }), m = d.form, g = V(!1), $ = M({
62
+ }), m = d.form, g = V(!1), $ = N({
63
63
  for: () => g.value && u !== null ? !0 : null,
64
64
  load: async (a, { signal: n }) => [
65
- ...v.value ? [{ value: h, label: L.levelLabel("organization") }] : [],
65
+ ...v.value ? [{ value: h, label: M.levelLabel("organization") }] : [],
66
66
  ...(await (u?.options(n) ?? [])).map((i) => ({ value: i.id, label: i.name }))
67
67
  ]
68
- }), z = M({
68
+ }), z = N({
69
69
  for: () => g.value ? !0 : null,
70
70
  load: async (a, { signal: n }) => (await _.people({ signal: n })).map((i) => ({ value: i.id, label: i.name }))
71
71
  });
@@ -100,12 +100,12 @@ const ne = {
100
100
  footer: e(r)("core.serviceaccounts.fields.owner_hint")
101
101
  }, {
102
102
  default: b(() => [
103
- e(u) ? (A(), k(e(N), f({ key: 0 }, e(m).bind("tenant_id"), {
103
+ e(u) ? (A(), k(e(O), f({ key: 0 }, e(m).bind("tenant_id"), {
104
104
  label: e(r)(e(u).labelKey),
105
105
  options: e($),
106
106
  required: ""
107
107
  }), null, 16, ["label", "options"])) : D("", !0),
108
- p(e(N), f(e(m).bind("owner_id"), {
108
+ p(e(O), f(e(m).bind("owner_id"), {
109
109
  label: e(r)("core.serviceaccounts.fields.owner"),
110
110
  options: e(z),
111
111
  required: ""
@@ -2,28 +2,28 @@ import { defineComponent as P, useTemplateRef as F, ref as N, openBlock as r, cr
2
2
  import { useI18n as q } from "vue-i18n";
3
3
  import { useRoute as re } from "vue-router";
4
4
  import { u as le } from "./refusals-DfPzVNNY.js";
5
- import { a as ie } from "./PersonAccess.vue_vue_type_script_setup_true_lang-qz1tmYpF.js";
5
+ import { a as ie } from "./PersonAccess.vue_vue_type_script_setup_true_lang-DbGZSNQc.js";
6
6
  import { _ as ee } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
7
7
  import { _ as ue } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
8
- import { _ as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js";
9
- import { g as p } from "./options-QuOkMKVZ.js";
8
+ import { a as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
9
+ import { g as p } from "./options-B48UiYsG.js";
10
10
  import { u as Q } from "./format-D8KUBmbS.js";
11
11
  import { _ as te } from "./AlertDialog.vue_vue_type_script_setup_true_lang-CrFhR9rJ.js";
12
12
  import { t as j } from "./toast-CqSDTWRX.js";
13
- import { _ as de } from "./RecordHeader.vue_vue_type_script_setup_true_lang-B9mN7UxZ.js";
13
+ import { _ as de } from "./RecordHeader.vue_vue_type_script_setup_true_lang-DqGc3Jyo.js";
14
14
  import { u as ae } from "./platform-BQOX_Ntw.js";
15
15
  import { u as me, a as ve } from "./routeResource-DlTsGTg_.js";
16
- import { a as fe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-Cw8mGf_B.js";
16
+ import { a as fe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-DljhsTU4.js";
17
17
  import { _ as O } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
18
- import { M as ce, R as _e, f as pe, s as ye } from "./index-CdtofdcJ.js";
19
- import { u as W, a as X, _ as ke } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-aWkKwxNe.js";
20
- import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-Dp7OB-eF.js";
21
- import { _ as be } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BdeOKqz_.js";
22
- import { _ as ge } from "./Modal.vue_vue_type_script_setup_true_lang-BlHhdmMy.js";
18
+ import { o as ce, R as _e, n as pe, p as ye } from "./index-Cq9TuOqH.js";
19
+ import { u as W, a as X, _ as ke } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-FJbWxME_.js";
20
+ import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-C74hcb0N.js";
21
+ import { _ as be } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
22
+ import { _ as ge } from "./Modal.vue_vue_type_script_setup_true_lang-DDS0iEnn.js";
23
23
  import { _ as xe } from "./Banner.vue_vue_type_script_setup_true_lang-sv0phngk.js";
24
- import { _ as we } from "./DateField.vue_vue_type_script_setup_true_lang-BhKdCVFn.js";
25
- import { _ as $e } from "./TextField.vue_vue_type_script_setup_true_lang-BFVsqcBX.js";
26
- import { u as he, _ as Ce } from "./useCommand-Dc8Lgs9h.js";
24
+ import { _ as we } from "./DateField.vue_vue_type_script_setup_true_lang-CeNwBbJT.js";
25
+ import { _ as $e } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
26
+ import { u as he, _ as Ce } from "./useCommand-Ch_nx1AQ.js";
27
27
  async function Se(u) {
28
28
  try {
29
29
  return await navigator.clipboard.writeText(u), !0;
@@ -210,7 +210,7 @@ const Ee = {
210
210
  }), je = {
211
211
  class: "flex min-w-0 flex-col gap-group-gap",
212
212
  "data-test": "api-keys"
213
- }, Me = ["data-test"], ze = {
213
+ }, ze = ["data-test"], Me = {
214
214
  class: "contents",
215
215
  "data-test": "new-api-key-action"
216
216
  }, Oe = /* @__PURE__ */ P({
@@ -220,7 +220,7 @@ const Ee = {
220
220
  },
221
221
  emits: ["changed"],
222
222
  setup(u, { expose: t, emit: k }) {
223
- const l = u, g = k, { t: c } = q(), { access: $ } = ae(), d = Q(), m = W(), i = X(), n = me({ for: () => l.account.id, load: (a, { signal: f }) => m.keys(a, { signal: f }) }), v = () => n.reload(), x = F("newKey"), h = F("createdKey"), C = F("revokeConfirm"), A = N(null), M = K(() => !l.account.deactivated_at), B = K(() => $.can(ce)), z = K(() => $.can(_e)), T = (a) => a.expires_at !== null && new Date(a.expires_at).getTime() < Date.now();
223
+ const l = u, g = k, { t: c } = q(), { access: $ } = ae(), d = Q(), m = W(), i = X(), n = me({ for: () => l.account.id, load: (a, { signal: f }) => m.keys(a, { signal: f }) }), v = () => n.reload(), x = F("newKey"), h = F("createdKey"), C = F("revokeConfirm"), A = N(null), z = K(() => !l.account.deactivated_at), B = K(() => $.can(ce)), M = K(() => $.can(_e)), T = (a) => a.expires_at !== null && new Date(a.expires_at).getTime() < Date.now();
224
224
  function I(a) {
225
225
  return [
226
226
  `${a.prefix}…`,
@@ -292,7 +292,7 @@ const Ee = {
292
292
  ]),
293
293
  _: 2
294
294
  }, [
295
- z.value && !b.revoked_at ? {
295
+ M.value && !b.revoked_at ? {
296
296
  name: "trailing",
297
297
  fn: o(() => [
298
298
  D("span", {
@@ -310,17 +310,17 @@ const Ee = {
310
310
  ]),
311
311
  _: 1
312
312
  }, 8, ["onClick"])
313
- ], 8, Me)
313
+ ], 8, ze)
314
314
  ]),
315
315
  key: "0"
316
316
  } : void 0
317
317
  ]), 1032, ["label", "sub"]))), 128)),
318
- B.value && M.value ? (r(), _(e(p), {
318
+ B.value && z.value ? (r(), _(e(p), {
319
319
  key: 1,
320
320
  layout: "stacked"
321
321
  }, {
322
322
  default: o(() => [
323
- D("span", ze, [
323
+ D("span", Me, [
324
324
  s(e(J), {
325
325
  prominence: "secondary",
326
326
  icon: "addLine",
@@ -372,15 +372,15 @@ const Ee = {
372
372
  }, yt = /* @__PURE__ */ P({
373
373
  __name: "ServiceAccountRecord",
374
374
  setup(u) {
375
- const { t } = q(), k = re(), { access: l } = ae(), g = Q(), c = le(), $ = W(), { tenants: d } = pe(), m = X(), i = ve({ param: "id", load: (S, { signal: y }) => $.show(S, { signal: y }) }), n = i.data, v = ["general", "access", "keys"], x = typeof k.query.tab == "string" ? k.query.tab : "", h = N(v.includes(x) ? x : "general"), C = N(null), A = F("editDialog"), M = F("deactivateConfirm"), B = K(() => l.can(ce)), z = K(() => n.value !== null && !n.value.deactivated_at), T = K(() => n.value?.tenant?.name ?? c.levelLabel("organization")), I = K(() => [
375
+ const { t } = q(), k = re(), { access: l } = ae(), g = Q(), c = le(), $ = W(), { tenants: d } = pe(), m = X(), i = ve({ param: "id", load: (S, { signal: y }) => $.show(S, { signal: y }) }), n = i.data, v = ["general", "access", "keys"], x = typeof k.query.tab == "string" ? k.query.tab : "", h = N(v.includes(x) ? x : "general"), C = N(null), A = F("editDialog"), z = F("deactivateConfirm"), B = K(() => l.can(ce)), M = K(() => n.value !== null && !n.value.deactivated_at), T = K(() => n.value?.tenant?.name ?? c.levelLabel("organization")), I = K(() => [
376
376
  { value: "general", label: t("core.serviceaccounts.tabs.general"), icon: "settings3Line" },
377
377
  { value: "access", label: t("core.serviceaccounts.tabs.access"), icon: "shieldStarFill", ...C.value !== null ? { badge: C.value } : {} },
378
378
  { value: "keys", label: t("core.serviceaccounts.tabs.keys"), icon: "key2Line", badge: n.value?.active_keys ?? 0 }
379
379
  ]), U = K(() => {
380
380
  const S = n.value;
381
- return !S || !B.value || !z.value ? [] : [
381
+ return !S || !B.value || !M.value ? [] : [
382
382
  { id: "edit", label: t("core.serviceaccounts.actions.edit"), icon: "edit", placement: "secondary", onClick: () => A.value?.show(S) },
383
- { id: "deactivate", label: t("core.serviceaccounts.actions.deactivate"), icon: "lockLine", placement: "overflow", tone: "critical", onClick: () => M.value?.present() }
383
+ { id: "deactivate", label: t("core.serviceaccounts.actions.deactivate"), icon: "lockLine", placement: "overflow", tone: "critical", onClick: () => z.value?.present() }
384
384
  ];
385
385
  });
386
386
  async function Y() {
@@ -414,7 +414,7 @@ const Ee = {
414
414
  _: 1
415
415
  }),
416
416
  e(d) ? (r(), E("span", Pe, w(T.value), 1)) : L("", !0),
417
- z.value ? L("", !0) : (r(), _(e(O), {
417
+ M.value ? L("", !0) : (r(), _(e(O), {
418
418
  key: 1,
419
419
  tone: "neutral"
420
420
  }, {
@@ -493,7 +493,7 @@ const Ee = {
493
493
  }, null, 512),
494
494
  s(e(te), {
495
495
  ref_key: "deactivateConfirm",
496
- ref: M,
496
+ ref: z,
497
497
  title: e(t)("core.serviceaccounts.deactivate_title"),
498
498
  message: e(t)("core.serviceaccounts.deactivate_body", { name: a.name }),
499
499
  "confirm-label": e(t)("core.serviceaccounts.actions.deactivate"),
@@ -1,21 +1,21 @@
1
- import { defineComponent as F, useTemplateRef as M, ref as w, computed as n, openBlock as c, createBlock as d, unref as t, withCtx as r, createElementVNode as p, createVNode as l, createElementBlock as _, toDisplayString as b, createCommentVNode as x, Fragment as O, renderList as j, createTextVNode as q } from "vue";
2
- import { useI18n as z } from "vue-i18n";
3
- import { useRouter as D } from "vue-router";
4
- import { u as G } from "./refusals-DfPzVNNY.js";
5
- import { _ as I } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
6
- import { _ as K } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
7
- import { _ as P } from "./FormGroup.vue_vue_type_script_setup_true_lang-B37dixvJ.js";
8
- import { g as H } from "./options-QuOkMKVZ.js";
9
- import { _ as J } from "./TextField.vue_vue_type_script_setup_true_lang-BFVsqcBX.js";
1
+ import { defineComponent as F, useTemplateRef as O, ref as w, computed as n, openBlock as c, createBlock as d, unref as t, withCtx as r, createElementVNode as p, createVNode as l, createElementBlock as _, toDisplayString as b, createCommentVNode as x, Fragment as j, renderList as q, createTextVNode as z } from "vue";
2
+ import { useI18n as D } from "vue-i18n";
3
+ import { useRouter as G } from "vue-router";
4
+ import { u as I } from "./refusals-DfPzVNNY.js";
5
+ import { _ as K } from "./IconTile.vue_vue_type_script_setup_true_lang-BmxCuUZ9.js";
6
+ import { _ as M } from "./Tabs.vue_vue_type_script_setup_true_lang-tpkGp98F.js";
7
+ import { a as P } from "./FormGroup.vue_vue_type_script_setup_true_lang-D6jYfNjW.js";
8
+ import { g as H } from "./options-B48UiYsG.js";
9
+ import { _ as J } from "./TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js";
10
10
  import { u as Q } from "./format-D8KUBmbS.js";
11
- import { a as W } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-DdJOodn8.js";
11
+ import { _ as W } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-D5i77H6S.js";
12
12
  import { u as X } from "./platform-BQOX_Ntw.js";
13
- import { _ as Y } from "./AsyncSection.vue_vue_type_script_setup_true_lang-BdeOKqz_.js";
13
+ import { _ as Y } from "./AsyncSection.vue_vue_type_script_setup_true_lang-DGzQ-Snp.js";
14
14
  import { _ as Z } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as ee } from "./useLoad-M7V-AVwR.js";
16
- import { f as te, M as $, s as A } from "./index-CdtofdcJ.js";
17
- import { u as ae, _ as se } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-aWkKwxNe.js";
18
- const oe = {
16
+ import { n as te, o as $, p as A } from "./index-Cq9TuOqH.js";
17
+ import { u as ae, _ as oe } from "./ServiceAccountDialog.vue_vue_type_script_setup_true_lang-FJbWxME_.js";
18
+ const se = {
19
19
  class: "flex min-w-0 flex-col gap-group-gap",
20
20
  "data-test": "service-segment"
21
21
  }, ce = { class: "flex flex-wrap items-center gap-3" }, re = { "data-test": "service-accounts" }, ne = {
@@ -29,9 +29,9 @@ const oe = {
29
29
  }, Ve = /* @__PURE__ */ F({
30
30
  __name: "ServiceAccountsList",
31
31
  setup(ie) {
32
- const { t: a } = z(), L = D(), { access: y } = X(), V = Q(), C = G(), N = ae(), { tenants: S } = te(), g = M("dialog"), v = ee(({ signal: e }) => N.list({ signal: e })), i = w("active"), f = w(""), h = n(() => v.data.value ?? []), u = (e) => e.deactivated_at === null, B = (e) => e.tenant?.name ?? C.levelLabel("organization"), m = n(() => {
32
+ const { t: a } = D(), L = G(), { access: y } = X(), V = Q(), C = I(), N = ae(), { tenants: S } = te(), g = O("dialog"), v = ee(({ signal: e }) => N.list({ signal: e })), i = w("active"), f = w(""), h = n(() => v.data.value ?? []), u = (e) => e.deactivated_at === null, B = (e) => e.tenant?.name ?? C.levelLabel("organization"), m = n(() => {
33
33
  const e = f.value.trim().toLowerCase();
34
- return h.value.filter((o) => e === "" || `${o.name} ${o.description} ${o.owner.name}`.toLowerCase().includes(e));
34
+ return h.value.filter((s) => e === "" || `${s.name} ${s.description} ${s.owner.name}`.toLowerCase().includes(e));
35
35
  }), k = n(() => m.value.filter((e) => i.value === "all" || i.value === "active" === u(e))), R = n(() => [
36
36
  { value: "active", label: a("core.serviceaccounts.views.active"), badge: m.value.filter(u).length },
37
37
  { value: "inactive", label: a("core.serviceaccounts.views.inactive"), badge: m.value.filter((e) => !u(e)).length },
@@ -48,7 +48,7 @@ const oe = {
48
48
  ].filter(Boolean).join(" · ");
49
49
  }
50
50
  const U = (e) => void L.push({ ...A.record({ id: e.id }), query: { tab: "access" } });
51
- return (e, o) => (c(), d(t(W), {
51
+ return (e, s) => (c(), d(t(W), {
52
52
  title: t(a)("core.serviceaccounts.title_plural"),
53
53
  description: t(a)("core.serviceaccounts.description"),
54
54
  icon: "key2Line",
@@ -56,17 +56,17 @@ const oe = {
56
56
  actions: T.value
57
57
  }, {
58
58
  default: r(() => [
59
- p("div", oe, [
59
+ p("div", se, [
60
60
  p("div", ce, [
61
- l(t(K), {
61
+ l(t(M), {
62
62
  modelValue: i.value,
63
- "onUpdate:modelValue": o[0] || (o[0] = (s) => i.value = s),
63
+ "onUpdate:modelValue": s[0] || (s[0] = (o) => i.value = o),
64
64
  tabs: R.value,
65
65
  presentation: "scope"
66
66
  }, null, 8, ["modelValue", "tabs"]),
67
67
  l(t(J), {
68
68
  modelValue: f.value,
69
- "onUpdate:modelValue": o[1] || (o[1] = (s) => f.value = s),
69
+ "onUpdate:modelValue": s[1] || (s[1] = (o) => f.value = o),
70
70
  class: "min-w-[14rem] flex-1",
71
71
  label: t(a)("core.serviceaccounts.search"),
72
72
  "label-hidden": "",
@@ -77,7 +77,7 @@ const oe = {
77
77
  state: t(v).state.value,
78
78
  "skeleton-rows": 4,
79
79
  "is-empty": () => !1,
80
- onRetry: o[2] || (o[2] = (s) => t(v).reload())
80
+ onRetry: s[2] || (s[2] = (o) => t(v).reload())
81
81
  }, {
82
82
  default: r(() => [
83
83
  p("div", re, [
@@ -86,27 +86,27 @@ const oe = {
86
86
  }, {
87
87
  default: r(() => [
88
88
  k.value.length === 0 ? (c(), _("p", ne, b(t(a)("core.serviceaccounts.empty")), 1)) : x("", !0),
89
- (c(!0), _(O, null, j(k.value, (s) => (c(), d(t(H), {
90
- key: s.id,
89
+ (c(!0), _(j, null, q(k.value, (o) => (c(), d(t(H), {
90
+ key: o.id,
91
91
  layout: "setting",
92
- label: s.name,
93
- sub: E(s),
94
- to: t(A).record({ id: s.id }),
95
- "data-service-account": s.id
92
+ label: o.name,
93
+ sub: E(o),
94
+ to: t(A).record({ id: o.id }),
95
+ "data-service-account": o.id
96
96
  }, {
97
97
  leading: r(() => [
98
- l(t(I), {
98
+ l(t(K), {
99
99
  tone: "anchor",
100
100
  icon: "key2Line"
101
101
  })
102
102
  ]),
103
103
  default: r(() => [
104
- u(s) ? (c(), _("span", le, b(t(a)("core.serviceaccounts.active_keys", { count: s.active_keys })), 1)) : (c(), d(t(Z), {
104
+ u(o) ? (c(), _("span", le, b(t(a)("core.serviceaccounts.active_keys", { count: o.active_keys })), 1)) : (c(), d(t(Z), {
105
105
  key: 0,
106
106
  tone: "neutral"
107
107
  }, {
108
108
  default: r(() => [
109
- q(b(t(a)("core.serviceaccounts.deactivated")), 1)
109
+ z(b(t(a)("core.serviceaccounts.deactivated")), 1)
110
110
  ]),
111
111
  _: 1
112
112
  }))
@@ -121,7 +121,7 @@ const oe = {
121
121
  _: 1
122
122
  }, 8, ["state"])
123
123
  ]),
124
- t(y).can(t($)) ? (c(), d(se, {
124
+ t(y).can(t($)) ? (c(), d(oe, {
125
125
  key: 0,
126
126
  ref_key: "dialog",
127
127
  ref: g,