@wssto2/vue-core 0.5.1 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js → ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js} +1 -1
  3. package/dist/{Activity-dpY2kIs2.js → Activity-DUjDaPfP.js} +4 -4
  4. package/dist/{Changes-CL8F1w8q.js → Changes-B0tZO6BZ.js} +3 -3
  5. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-l-e-6WeS.js → CollectionPage.vue_vue_type_script_setup_true_lang-o_Pj-JcD.js} +2 -2
  6. package/dist/{DateField.vue_vue_type_script_setup_true_lang-DRuWzSaX.js → DateField.vue_vue_type_script_setup_true_lang-CDg31ZU7.js} +1 -1
  7. package/dist/{DeadLetters-BZLyL5lR.js → DeadLetters-IgVHao84.js} +2 -2
  8. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js → FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js} +1 -1
  9. package/dist/{FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js → FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js} +1 -1
  10. package/dist/{General-mrVzi-5R.js → General-C40HxupS.js} +6 -6
  11. package/dist/{NewRolePage-B2DItwvf.js → NewRolePage-Bhy8KJO1.js} +2 -2
  12. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-ButMV_sf.js → NumberField.vue_vue_type_script_setup_true_lang-BdS7BxuS.js} +1 -1
  13. package/dist/{ProfilePage-EiTIYzZ5.js → ProfilePage-Bf7dFzGd.js} +9 -9
  14. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-BqqilJGF.js → RoleEditor.vue_vue_type_script_setup_true_lang-C6oloGIh.js} +12 -11
  15. package/dist/{RolePage-jMHAt9y8.js → RolePage-BjbvciTg.js} +6 -6
  16. package/dist/{RolesPage-B9GaVQBx.js → RolesPage-DzVOgF4z.js} +4 -4
  17. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-BwyMvkis.js → SegmentedField.vue_vue_type_script_setup_true_lang-DXe_iOS8.js} +1 -1
  18. package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js → SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js} +2 -2
  19. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-DhoTd5D7.js → SessionList.vue_vue_type_script_setup_true_lang-PuWIK-Wa.js} +2 -2
  20. package/dist/{Sessions-CHLokZ9e.js → Sessions-CRUObe5G.js} +2 -2
  21. package/dist/{SettingsPage-CudoKdXm.js → SettingsPage-C0qEC0uI.js} +8 -8
  22. package/dist/{SignIn-ypRvdmjg.js → SignIn-Uy0Jujzz.js} +4 -4
  23. package/dist/{SignInPage-CbPeKlAo.js → SignInPage-CpVZfrLZ.js} +3 -3
  24. package/dist/{SignIns-BApzbGq-.js → SignIns-Cp5Gx2dk.js} +1 -1
  25. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-D_-HACqT.js → SwitchField.vue_vue_type_script_setup_true_lang-Dj5Aq8QT.js} +1 -1
  26. package/dist/{TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js → TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js} +2 -2
  27. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-DsjK2C9T.js → TextareaField.vue_vue_type_script_setup_true_lang-aT1P8Xqr.js} +1 -1
  28. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-Cz7KhUqt.js → TimeField.vue_vue_type_script_setup_true_lang-jPKPE1hc.js} +1 -1
  29. package/dist/{UserRecord-BCTaBajE.js → UserRecord-DbSMnTbj.js} +6 -6
  30. package/dist/{UsersList-CqSK3cQL.js → UsersList-9MicE2pG.js} +7 -7
  31. package/dist/access/api.d.ts +8 -7
  32. package/dist/access/context.d.ts +7 -0
  33. package/dist/access/feature.d.ts +8 -0
  34. package/dist/access/index.js +1 -1
  35. package/dist/access/labels.d.ts +5 -0
  36. package/dist/collection/index.js +1 -1
  37. package/dist/form/FormRow.vue.d.ts +3 -0
  38. package/dist/form/index.js +22 -22
  39. package/dist/identity/index.js +2 -2
  40. package/dist/index-BdGnA1Jh.js +765 -0
  41. package/dist/{index-BTRv8mcf.js → index-C-oM_Mnf.js} +261 -239
  42. package/dist/{index-auJqVMWC.js → index-Ok29ucE3.js} +13 -13
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.js +1 -1
  45. package/dist/notifications/index.d.ts +2 -0
  46. package/dist/notifications/index.js +5 -4
  47. package/dist/notifications/push/pushState.d.ts +27 -0
  48. package/dist/{options-g8RwEhBk.js → options-Bu0XbEpN.js} +104 -102
  49. package/dist/phone/index.js +1 -1
  50. package/dist/{status-BUFELJz2.js → status-C78NpXyB.js} +1 -1
  51. package/dist/styles.css +1 -1
  52. package/dist/{suggestions-CfFTHi8y.js → suggestions-ClyLexMO.js} +1 -1
  53. package/dist/{useCommand-CtqheKUv.js → useCommand-DyuPTosF.js} +1 -1
  54. package/dist/{useGroupSheet-ATvc0IiM.js → useGroupSheet-C2NyqWRp.js} +2 -2
  55. package/package.json +1 -1
  56. package/dist/index-VPzJJN6Z.js +0 -745
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.3 — 2026-10-13
4
+
5
+ The access rows on a phone.
6
+
7
+ ### Fixed
8
+ - **A role on a person and an effective permission read on a phone.** `BindingRow` and the rows of `EffectiveAccess` kept the place and the action in a right-hand column, which left the name one word per line. On compact widths they now stack: the name (and its icon) on the full width, the constraint line, the place (or where the permission comes from and its reach), then the action (*Remove*, *Why*) on its own line. Wide layouts are unchanged.
9
+
10
+ ### New
11
+ - **`FormRow` `stackOnCompact`** (`setting` layout): the same stacking for an application's own settings-style rows.
12
+
13
+ ## 0.5.2 — 2026-10-13
14
+
15
+ Access for service accounts, a working "turn on all", worded constraints, and this browser's push state for an app's own screens. Found by ARV's moves to the library's access and notifications.
16
+
17
+ ### Changed (no backward compatibility)
18
+ - **Access takes the subject's kind.** `accessFeature({ subjects: { service: { base, bindable } } })` says where an application serves the routes of a kind other than `user` (`${base}/:id/{access,scopes,bindings,bindings/:binding_id}`, in go-core's wire). `PersonAccess` and *Add role* read and write there; a kind with no entry is refused with an error that names it, never sent to the user routes. `createAccessApi(http, subjects)` takes the entries, and its `bindable(subject, level, scopeId)` now takes the subject first.
19
+
20
+ ### New
21
+ - **`usePushState()`** from `/notifications`: `ready`, `available`, `permission`, `subscribed`, `busy`, `enable()`, `disable()`, built on the settings page's own state. `subscribed` is true as soon as `ready` for a browser that already has push on. Type `PushState`.
22
+
23
+ ### Fixed
24
+ - **Turn on all** granted only part of a module: it read "all on" inside its loop, and once the closures had granted everything the rest were revoked again.
25
+ - **Constraints are worded.** A role's constraints on a person's roles (`BindingRow`) use the `roleConstraints` option labels ("Used only"); an attribute or value with no label stays `attribute: value`.
26
+
27
+ ### Docs
28
+ - The access recipe gains subjects and constraint labels; the notifications recipe gains `usePushState` and loses the stale "devices and push permission are not in these screens".
29
+
3
30
  ## 0.5.1 — 2026-10-13
4
31
 
5
32
  One renewal, sessions that do not renew, and the language before the first page. Found by ARV's move to the library's sign-in.
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as r, openBlock as s, createBlock as d, unref as n, withCtx as f, createElementVNode as t, normalizeClass as m, toDisplayString as l, createElementBlock as u, createCommentVNode as p, createVNode as b } from "vue";
2
- import { g as _ } from "./options-g8RwEhBk.js";
2
+ import { g as _ } from "./options-Bu0XbEpN.js";
3
3
  import { _ as x } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
4
4
  const k = ["disabled"], y = { class: "flex min-w-0 flex-1 flex-col" }, h = {
5
5
  key: 0,
@@ -3,10 +3,10 @@ import { useI18n as q } from "vue-i18n";
3
3
  import { _ as D } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
4
4
  import { _ as I } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
5
5
  import { u as O } from "./format-D8X4zsx6.js";
6
- import { _ as U } from "./DateField.vue_vue_type_script_setup_true_lang-DRuWzSaX.js";
7
- import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
8
- import { g as z } from "./options-g8RwEhBk.js";
9
- import { P as G, c as H, i as J } from "./index-auJqVMWC.js";
6
+ import { _ as U } from "./DateField.vue_vue_type_script_setup_true_lang-CDg31ZU7.js";
7
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
8
+ import { g as z } from "./options-Bu0XbEpN.js";
9
+ import { P as G, c as H, i as J } from "./index-Ok29ucE3.js";
10
10
  import { u as K } from "./platform-Dx6STiwY.js";
11
11
  import { b as M } from "./routeResource-CcYA75T2.js";
12
12
  import { _ as Q } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as k, computed as N, openBlock as n, createBlock as u, unref as a, withCtx as g, createElementBlock as p, Fragment as _, renderList as $, createElementVNode as i, toDisplayString as h, createCommentVNode as C, ref as x, watch as b, createVNode as y } from "vue";
2
2
  import { useI18n as E } from "vue-i18n";
3
- import { P as V, i as R } from "./index-auJqVMWC.js";
3
+ import { P as V, i as R } from "./index-Ok29ucE3.js";
4
4
  import { u as S } from "./platform-Dx6STiwY.js";
5
5
  import { b as B } from "./routeResource-CcYA75T2.js";
6
6
  import { _ as F } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
@@ -8,8 +8,8 @@ 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-_FXvaj93.js";
10
10
  import { u as O } from "./format-D8X4zsx6.js";
11
- import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
12
- import { g as U } from "./options-g8RwEhBk.js";
11
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
12
+ import { g as U } from "./options-Bu0XbEpN.js";
13
13
  import { _ as q } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.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-BJIoZAlH.js";
@@ -14,8 +14,8 @@ import { u as bt, _ as gt } from "./rowLayout-BBFyLbOl.js";
14
14
  import { _ as Ye } from "./Menu.vue_vue_type_script_setup_true_lang-DsFOeCVe.js";
15
15
  import { _ as Ze } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
16
16
  import { _ as we } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
17
- import { _ as ht } from "./NumberField.vue_vue_type_script_setup_true_lang-ButMV_sf.js";
18
- import { _ as yt } from "./SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
17
+ import { _ as ht } from "./NumberField.vue_vue_type_script_setup_true_lang-BdS7BxuS.js";
18
+ import { _ as yt } from "./SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
19
19
  import { a as _t } from "./mediaQuery-CygcXmFW.js";
20
20
  import { _ as xt } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
21
21
  import { t as ke } from "./toast-CqSDTWRX.js";
@@ -5,7 +5,7 @@ import { u as W } from "./format-D8X4zsx6.js";
5
5
  import { _ as de } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.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
- import { c as me, _ as fe, f as pe, b as be } from "./options-g8RwEhBk.js";
8
+ import { c as me, _ as fe, f as pe, b as be } from "./options-Bu0XbEpN.js";
9
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-C7k7Dyl-.js";
10
10
  const _e = ["d", "m", "y"];
11
11
  function $e(o) {
@@ -1,10 +1,10 @@
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-l-e-6WeS.js";
4
+ import { u as V, _ as N } from "./CollectionPage.vue_vue_type_script_setup_true_lang-o_Pj-JcD.js";
5
5
  import { u as P } from "./describeError-BqGAUZgX.js";
6
6
  import { u as I } from "./format-D8X4zsx6.js";
7
- import { e as a, R as O } from "./index-BTRv8mcf.js";
7
+ import { e as a, R as O } from "./index-C-oM_Mnf.js";
8
8
  import { _ as W } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
9
9
  import { t as i } from "./toast-CqSDTWRX.js";
10
10
  import { u as Y } from "./useLoad-W4tfxmm5.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as B, openBlock as d, createBlock as L, withCtx as N, createTextVNode as v, toDisplayString as m, unref as h, createCommentVNode as i, inject as C, provide as y, ref as R, useSlots as O, computed as n, shallowReactive as E, useTemplateRef as V, useId as A, createElementBlock as p, normalizeStyle as M, normalizeClass as G, createElementVNode as S, renderSlot as f } from "vue";
2
2
  import { s as T, u as W } from "./sectionIndex-BS0ic5W7.js";
3
- import { e as $, h as j } from "./options-g8RwEhBk.js";
3
+ import { e as $, h as j } from "./options-Bu0XbEpN.js";
4
4
  import { useI18n as D } from "vue-i18n";
5
5
  import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
6
6
  const H = /* @__PURE__ */ B({
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as n, provide as f, computed as s, useTemplateRef as u, openBlock as t, createElementBlock as p, withModifiers as c, createBlock as d, createCommentVNode as b, renderSlot as _ } from "vue";
2
- import { e as v } from "./options-g8RwEhBk.js";
2
+ import { e as v } from "./options-Bu0XbEpN.js";
3
3
  import { _ as k } from "./FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
4
4
  const x = /* @__PURE__ */ n({
5
5
  __name: "FormView",
@@ -3,17 +3,17 @@ import { useI18n as V } from "vue-i18n";
3
3
  import { RouterLink as B } from "vue-router";
4
4
  import { u as E } from "./format-D8X4zsx6.js";
5
5
  import { u as T } from "./useResourceForm-CJfl8rj_.js";
6
- import { _ as h } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
7
- import { _ as F } from "./FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js";
8
- import { _ as L } from "./SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
9
- import { _ as f } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
6
+ import { _ as h } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
7
+ import { _ as F } from "./FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js";
8
+ import { _ as L } from "./SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
9
+ import { _ as f } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
10
10
  import { u as A } from "./useSaveChrome-7huA3FzR.js";
11
- import { P as D, b as G, i as I } from "./index-auJqVMWC.js";
11
+ import { P as D, b as G, i as I } from "./index-Ok29ucE3.js";
12
12
  import { t as M } from "./toast-CqSDTWRX.js";
13
13
  import { u as O } from "./platform-Dx6STiwY.js";
14
14
  import { b as U } from "./routeResource-CcYA75T2.js";
15
15
  import { u as j } from "./fieldMessages-DTXpWnBd.js";
16
- import { _ as $ } from "./ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js";
16
+ import { _ as $ } from "./ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.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";
19
19
  const J = {
@@ -4,8 +4,8 @@ import { useRoute as k, useRouter as R } from "vue-router";
4
4
  import { a as $ } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
5
5
  import { _ as b } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
6
6
  import { u as g } from "./useLoad-W4tfxmm5.js";
7
- import { a as x, c as u } from "./index-VPzJJN6Z.js";
8
- import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-BqqilJGF.js";
7
+ import { a as x, c as u } from "./index-BdGnA1Jh.js";
8
+ import { _ as P } from "./RoleEditor.vue_vue_type_script_setup_true_lang-C6oloGIh.js";
9
9
  const V = /* @__PURE__ */ _({
10
10
  __name: "NewRolePage",
11
11
  setup(h) {
@@ -1,7 +1,7 @@
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
3
  import { u as Y } from "./format-D8X4zsx6.js";
4
- import { a as ee, c as te, _ as le, f as ae, b as oe } from "./options-g8RwEhBk.js";
4
+ import { a as ee, c as te, _ as le, f as ae, b as oe } from "./options-Bu0XbEpN.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] ?? "";
7
7
  return { decimal: r.charAt(r.length - 2) || ".", group: u === "." || u === "," ? u : "" };
@@ -4,25 +4,25 @@ import { a as ke } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang
4
4
  import { u as G } from "./platform-Dx6STiwY.js";
5
5
  import { _ as ee } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
6
6
  import { u as te } from "./useLoad-W4tfxmm5.js";
7
- import { i as S, d as T, c as qe } from "./index-auJqVMWC.js";
7
+ import { i as S, d as T, c as qe } from "./index-Ok29ucE3.js";
8
8
  import { u as ce } from "./FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
9
- import { _ as ue } from "./FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js";
10
- import { u as Ce, _ as Se, a as Ee, b as Ve } from "./useGroupSheet-ATvc0IiM.js";
11
- import { _ as H, p as Pe } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
9
+ import { _ as ue } from "./FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js";
10
+ import { u as Ce, _ as Se, a as Ee, b as Ve } from "./useGroupSheet-C2NyqWRp.js";
11
+ import { _ as H, p as Pe } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
12
12
  import { t as C } from "./toast-CqSDTWRX.js";
13
13
  import { u as W } from "./fieldMessages-DTXpWnBd.js";
14
- import { g as K } from "./options-g8RwEhBk.js";
15
- import { _ as F } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
14
+ import { g as K } from "./options-Bu0XbEpN.js";
15
+ import { _ as F } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
16
16
  import { _ as pe } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
17
17
  import { u as ae } from "./format-D8X4zsx6.js";
18
- import { _ as X } from "./ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js";
18
+ import { _ as X } from "./ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js";
19
19
  import { i as Z } from "./error-Bb_dr_Ay.js";
20
20
  import { a as Ie } from "./leaveGuard-Cc8yeLxM.js";
21
21
  import { _ as Ne } from "./Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js";
22
22
  import { _ as J } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
23
- import { u as Ae, _ as Me } from "./useCommand-CtqheKUv.js";
23
+ import { u as Ae, _ as Me } from "./useCommand-DyuPTosF.js";
24
24
  import { _ as Re } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
25
- import { _ as De } from "./SessionList.vue_vue_type_script_setup_true_lang-DhoTd5D7.js";
25
+ import { _ as De } from "./SessionList.vue_vue_type_script_setup_true_lang-PuWIK-Wa.js";
26
26
  import { _ as Le } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
27
27
  import { _ as Ue } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
28
28
  import { d as Fe, s as Ge, a as Be } from "./signInEvents-DWShrJox.js";
@@ -1,20 +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 j, 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
3
  import { u as ee } from "./FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
4
- import { _ as Q } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
5
- import { _ as te } from "./FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js";
6
- import { _ as ae } from "./SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
7
- import { _ as se } from "./TextareaField.vue_vue_type_script_setup_true_lang-DsjK2C9T.js";
8
- import { _ as oe } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
4
+ import { _ as Q } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
5
+ import { _ as te } from "./FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js";
6
+ import { _ as ae } from "./SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
7
+ import { _ as se } from "./TextareaField.vue_vue_type_script_setup_true_lang-aT1P8Xqr.js";
8
+ import { _ as oe } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
9
9
  import { u as ne } from "./useSaveChrome-7huA3FzR.js";
10
10
  import { t as le } from "./toast-CqSDTWRX.js";
11
11
  import { _ as E } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
12
12
  import { _ as R } from "./Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
13
- import { d as W, u as G, p as re, o as T, r as K, g as M, s as ie, e as ce, a as ue, f as de, b as me, h as fe } from "./index-VPzJJN6Z.js";
13
+ import { d as W, u as G, p as re, o as T, r as K, g as M, s as ie, e as ce, a as ue, f as de, b as me, h as fe } from "./index-BdGnA1Jh.js";
14
14
  import { _ as pe } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
15
15
  import { _ as _e } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
16
- import { _ as ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-BwyMvkis.js";
17
- import { _ as be } from "./SwitchField.vue_vue_type_script_setup_true_lang-D_-HACqT.js";
16
+ import { _ as ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-DXe_iOS8.js";
17
+ import { _ as be } from "./SwitchField.vue_vue_type_script_setup_true_lang-Dj5Aq8QT.js";
18
18
  import { u as ge } from "./platform-Dx6STiwY.js";
19
19
  function ye(y, c) {
20
20
  return Object.fromEntries(
@@ -50,9 +50,10 @@ const ke = {
50
50
  return { granted: s.filter((e) => e in c.grants).length, total: s.length };
51
51
  }, B = (a) => `${w(a).granted} / ${w(a).total}`, L = k(() => l.value.map((a) => ({ value: a.key, label: u.groupLabel(a.key), badge: B(a.key) }))), P = k(() => i.value !== void 0 && w(i.value.key).granted === w(i.value.key).total);
52
52
  function m() {
53
- if (i.value)
54
- for (const a of b(i.value.key))
55
- P.value ? K(o, c.grants, a) : M(o, c.grants, a);
53
+ if (!i.value) return;
54
+ const a = P.value;
55
+ for (const s of b(i.value.key))
56
+ a ? K(o, c.grants, s) : M(o, c.grants, s);
56
57
  }
57
58
  const U = (a) => [...new Set(a.permissions.map((s) => s.ownable).filter((s) => s !== null))], N = k(() => ["own", "own_location", "all"].map((a) => ({ value: a, label: u.qualifierLabel(a) })));
58
59
  function $(a, s) {
@@ -2,8 +2,8 @@ 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-_FXvaj93.js";
5
- import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
6
- import { g as z } from "./options-g8RwEhBk.js";
5
+ import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
6
+ import { g as z } from "./options-Bu0XbEpN.js";
7
7
  import { _ as oe } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
8
8
  import { t as E } from "./toast-CqSDTWRX.js";
9
9
  import { _ as te } from "./RecordHeader.vue_vue_type_script_setup_true_lang-fmx0f8xi.js";
@@ -12,11 +12,11 @@ import { a as le, u as se } from "./routeResource-CcYA75T2.js";
12
12
  import { a as re } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFBGvevP.js";
13
13
  import { _ as ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
14
14
  import { _ as H } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
- import { u as O, a as U, f as ne, i as ie, d as ue, b as M, c as T } from "./index-VPzJJN6Z.js";
16
- import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
17
- import { u as me, _ as pe } from "./useCommand-CtqheKUv.js";
15
+ import { u as O, a as U, f as ne, i as ie, d as ue, b as M, c as T } from "./index-BdGnA1Jh.js";
16
+ import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
17
+ import { u as me, _ as pe } from "./useCommand-DyuPTosF.js";
18
18
  import { _ as de } from "./Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js";
19
- import { _ as fe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-BqqilJGF.js";
19
+ import { _ as fe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-C6oloGIh.js";
20
20
  const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
21
21
  __name: "ReplaceRoleDialog",
22
22
  props: {
@@ -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-_FXvaj93.js";
5
5
  import { _ as E } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
6
- import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
7
- import { g as j } from "./options-g8RwEhBk.js";
8
- import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
6
+ import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
7
+ import { g as j } from "./options-Bu0XbEpN.js";
8
+ import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
9
9
  import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
10
10
  import { u as K } from "./platform-Dx6STiwY.js";
11
11
  import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.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-W4tfxmm5.js";
14
- import { u as G, a as H, b as J, c as x } from "./index-VPzJJN6Z.js";
14
+ import { u as G, a as H, b as J, c as x } from "./index-BdGnA1Jh.js";
15
15
  const M = {
16
16
  class: "flex min-w-0 flex-col gap-group-gap",
17
17
  "data-test": "roles-index"
@@ -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-g8RwEhBk.js";
2
+ import { u as F, a as S, _ as T, f as D, b as N } from "./options-Bu0XbEpN.js";
3
3
  const E = ["id", "aria-label", "aria-describedby", "aria-invalid"], P = ["disabled", "aria-pressed", "onClick"], H = /* @__PURE__ */ w({
4
4
  __name: "SegmentedField",
5
5
  props: /* @__PURE__ */ L({
@@ -6,8 +6,8 @@ import { u as ie } from "./mediaQuery-CygcXmFW.js";
6
6
  import { _ as I } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
7
7
  import { _ as ue } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
8
8
  import { _ as de } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
9
- import { i as ce, m as pe, a as me, c as ve, _ as fe, f as be, b as ge } from "./options-g8RwEhBk.js";
10
- import { a as ye } from "./suggestions-CfFTHi8y.js";
9
+ import { i as ce, m as pe, a as me, c as ve, _ as fe, f as be, b as ge } from "./options-Bu0XbEpN.js";
10
+ import { a as ye } from "./suggestions-ClyLexMO.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"
@@ -3,8 +3,8 @@ import { useI18n as E } from "vue-i18n";
3
3
  import { _ as y } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
4
  import { _ as B } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
5
5
  import { u as N } from "./format-D8X4zsx6.js";
6
- import { _ as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
7
- import { g as h } from "./options-g8RwEhBk.js";
6
+ import { _ as V } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
7
+ import { g as h } from "./options-Bu0XbEpN.js";
8
8
  import { _ as k } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
9
  const L = {
10
10
  class: "flex flex-col gap-y-0.5 md:flex-row md:flex-wrap md:items-center md:gap-x-1.5",
@@ -2,14 +2,14 @@ import { defineComponent as x, useTemplateRef as v, computed as w, ref as $, ope
2
2
  import { useI18n as N } from "vue-i18n";
3
3
  import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
4
  import { u as A } from "./describeError-BqGAUZgX.js";
5
- import { P as D, b as L, e as O, i as g, d as T } from "./index-auJqVMWC.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-Ok29ucE3.js";
6
6
  import { _ as k } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
7
7
  import { t as b } from "./toast-CqSDTWRX.js";
8
8
  import { u as V } from "./platform-Dx6STiwY.js";
9
9
  import { b as I } from "./routeResource-CcYA75T2.js";
10
10
  import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
11
11
  import { _ as z } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
12
- import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-DhoTd5D7.js";
12
+ import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-PuWIK-Wa.js";
13
13
  const G = {
14
14
  class: "flex min-w-0 flex-col gap-group-gap",
15
15
  "data-person-sessions": ""
@@ -5,26 +5,26 @@ import { a as oe } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang
5
5
  import { t as C } from "./toast-CqSDTWRX.js";
6
6
  import { u as U } from "./fieldMessages-DTXpWnBd.js";
7
7
  import { _ as W } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
8
- import { n as T, u as le, a as re } from "./index-BTRv8mcf.js";
8
+ import { n as T, u as le, a as re } from "./index-C-oM_Mnf.js";
9
9
  import { _ as H } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
10
10
  import { _ as j } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
11
11
  import { _ as ce } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
12
12
  import { u as ue } from "./format-D8X4zsx6.js";
13
- import { _ as R } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
14
- import { g as x } from "./options-g8RwEhBk.js";
15
- import { _ as de } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
13
+ import { _ as R } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
14
+ import { g as x } from "./options-Bu0XbEpN.js";
15
+ import { _ as de } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
16
16
  import { _ as fe } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
17
17
  import { _ as me } from "./Menu.vue_vue_type_script_setup_true_lang-DsFOeCVe.js";
18
18
  import { _ as pe } from "./MenuButton.vue_vue_type_script_setup_true_lang-AGbN9r5q.js";
19
19
  import { _ as E } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
20
- import { _ as I } from "./ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js";
20
+ import { _ as I } from "./ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js";
21
21
  import { u as X } from "./platform-Dx6STiwY.js";
22
22
  import { u as Y } from "./useLoad-W4tfxmm5.js";
23
- import { _ as ee } from "./SwitchField.vue_vue_type_script_setup_true_lang-D_-HACqT.js";
23
+ import { _ as ee } from "./SwitchField.vue_vue_type_script_setup_true_lang-Dj5Aq8QT.js";
24
24
  import { _ as _e } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
25
25
  import { u as ve } from "./FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
26
- import { _ as ge } from "./FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js";
27
- import { _ as A } from "./TimeField.vue_vue_type_script_setup_true_lang-Cz7KhUqt.js";
26
+ import { _ as ge } from "./FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js";
27
+ import { _ as A } from "./TimeField.vue_vue_type_script_setup_true_lang-jPKPE1hc.js";
28
28
  import { a as K, n as be } from "./useTypedEntry-C7k7Dyl-.js";
29
29
  const he = {
30
30
  class: "flex min-w-0 flex-col gap-group-gap",
@@ -3,15 +3,15 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { _ as B } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
4
  import { _ as V } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
5
5
  import { u as D } from "./format-D8X4zsx6.js";
6
- import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
7
- import { g as b } from "./options-g8RwEhBk.js";
6
+ import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
7
+ import { g as b } from "./options-Bu0XbEpN.js";
8
8
  import { u as U } from "./describeError-BqGAUZgX.js";
9
- import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-auJqVMWC.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-Ok29ucE3.js";
10
10
  import { t as h } from "./toast-CqSDTWRX.js";
11
11
  import { u as j, h as G } from "./platform-Dx6STiwY.js";
12
12
  import { b as H } from "./routeResource-CcYA75T2.js";
13
13
  import { _ as J } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
14
- import { _ as K } from "./ActionRow.vue_vue_type_script_setup_true_lang-BCgKzUvG.js";
14
+ import { _ as K } from "./ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js";
15
15
  import { _ as M } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
16
16
  const Q = {
17
17
  key: 0,
@@ -3,10 +3,10 @@ import { useI18n as x } from "vue-i18n";
3
3
  import { useRoute as y, useRouter as h } from "vue-router";
4
4
  import { _ as I } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
5
5
  import { _ as N } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
6
- import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-CPSYV7iQ.js";
7
- import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
6
+ import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js";
7
+ import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
8
8
  import { r as $ } from "./guards-D4mXf_2X.js";
9
- import { u as C, a as E } from "./index-auJqVMWC.js";
9
+ import { u as C, a as E } from "./index-Ok29ucE3.js";
10
10
  const V = { class: "flex flex-1 flex-col items-center justify-center gap-8" }, k = { class: "text-xl font-semibold text-content-strong" }, H = /* @__PURE__ */ d({
11
11
  __name: "SignInPage",
12
12
  setup(q) {
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as y, computed as k, openBlock as _, createElementBlock as b, createVNode as r, unref as t, withCtx as l, createElementVNode as u, toDisplayString as d, createTextVNode as $, ref as v, watch as w, createBlock as I, createCommentVNode as S } from "vue";
2
2
  import { useI18n as h } from "vue-i18n";
3
- import { P as V, i as N } from "./index-auJqVMWC.js";
3
+ import { P as V, i as N } from "./index-Ok29ucE3.js";
4
4
  import { u as B } from "./platform-Dx6STiwY.js";
5
5
  import { b as E } from "./routeResource-CcYA75T2.js";
6
6
  import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as v, useModel as w, computed as y, openBlock as g, createBlock as k, mergeProps as _, unref as t, createSlots as $, withCtx as l, createElementVNode as s, renderSlot as i, normalizeClass as d, normalizeStyle as B, toDisplayString as S, mergeModels as z, mergeDefaults as C } from "vue";
2
2
  import { useI18n as M } from "vue-i18n";
3
- import { u as V, _ as D, f as T, b as E } from "./options-g8RwEhBk.js";
3
+ import { u as V, _ as D, f as T, b as E } from "./options-Bu0XbEpN.js";
4
4
  const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria-label", "aria-describedby", "aria-invalid", "disabled"], P = { class: "sr-only" }, Z = /* @__PURE__ */ v({
5
5
  __name: "SwitchField",
6
6
  props: /* @__PURE__ */ z(/* @__PURE__ */ C({
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as K, useTemplateRef as N, computed as v, watch as te, nextTick as oe, openBlock as n, createElementBlock as l, withModifiers as se, normalizeStyle as ne, unref as i, createElementVNode as m, toDisplayString as r, createCommentVNode as p, Fragment as R, renderList as ae, normalizeClass as B, createBlock as P, renderSlot as b, createTextVNode as E, useModel as ie, ref as le, mergeProps as re, createSlots as ce, withCtx as w, withDirectives as de, vModelDynamic as ue, mergeModels as H, mergeDefaults as pe } from "vue";
2
2
  import { useI18n as G } from "vue-i18n";
3
3
  import { b as me } from "./controlSurface-t7OEFESJ.js";
4
- import { a as fe, c as he, _ as ve, f as ge, b as ye } from "./options-g8RwEhBk.js";
4
+ import { a as fe, c as he, _ as ve, f as ge, b as ye } from "./options-Bu0XbEpN.js";
5
5
  import { _ as xe } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
6
  import { u as be, N as ke } from "./anchored-DpuUwf-9.js";
7
- import { l as U, m as _e, u as we, c as $e } from "./suggestions-CfFTHi8y.js";
7
+ import { l as U, m as _e, u as we, c as $e } from "./suggestions-ClyLexMO.js";
8
8
  const Me = ["id", "aria-busy"], qe = { class: "min-h-0 flex-1 overflow-y-auto p-1.5" }, Be = {
9
9
  key: 0,
10
10
  class: "px-2.5 pb-1 pt-1.5 text-caption font-semibold uppercase text-content-disabled",
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as V, useModel as L, useTemplateRef as M, computed as i, openBlock as p, createBlock as D, mergeProps as F, unref as f, createSlots as S, withCtx as n, createElementVNode as v, normalizeClass as b, withDirectives as z, vModelText as E, createElementBlock as P, toDisplayString as R, createCommentVNode as N, renderSlot as d, mergeModels as y, mergeDefaults as _ } from "vue";
2
2
  import { u as j } from "./mediaQuery-CygcXmFW.js";
3
- import { a as G, u as H, c as U, _ as A, f as I, b as J } from "./options-g8RwEhBk.js";
3
+ import { a as G, u as H, c as U, _ as A, f as I, b as J } from "./options-Bu0XbEpN.js";
4
4
  const K = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], O = {
5
5
  key: 0,
6
6
  class: "mt-1 self-end text-footnote tabular-nums text-content-muted"
@@ -5,7 +5,7 @@ import { u as oe } from "./format-D8X4zsx6.js";
5
5
  import { _ as le } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
6
  import { u as ae } from "./mediaQuery-CygcXmFW.js";
7
7
  import { _ as re } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
8
- import { c as se, _ as ie, f as ne, b as ue } from "./options-g8RwEhBk.js";
8
+ import { c as se, _ as ie, f as ne, b as ue } from "./options-Bu0XbEpN.js";
9
9
  import { d as me, r as de, t as I, p as ce, u as pe, a as fe, i as Q, _ as ve, b as be, c as ye } from "./useTypedEntry-C7k7Dyl-.js";
10
10
  function ke(s) {
11
11
  const { t: i } = R(), y = m(() => [i("core.form.time.words.now").toLowerCase(), "now"]);
@@ -3,7 +3,7 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { a as F } from "./neighbors-Bv6vnWlW.js";
4
4
  import { _ as H } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
5
5
  import { u as J } from "./describeError-BqGAUZgX.js";
6
- import { i as w, P as Q, p as W, f as X, M as Y, g as Z, d as ee } from "./index-auJqVMWC.js";
6
+ import { i as w, P as Q, p as W, f as X, M as Y, g as Z, d as ee } from "./index-Ok29ucE3.js";
7
7
  import { _ as se } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
8
8
  import { t as k } from "./toast-CqSDTWRX.js";
9
9
  import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-Ci04hApd.js";
@@ -14,12 +14,12 @@ import { A as re } from "./access-DmAceEo5.js";
14
14
  import { _ as ne } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
15
15
  import { u as ie } from "./useLoad-W4tfxmm5.js";
16
16
  import { _ as V } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
17
- import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
18
- import { g as B } from "./options-g8RwEhBk.js";
19
- import { u as z, _ as K } from "./useCommand-CtqheKUv.js";
17
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
18
+ import { g as B } from "./options-Bu0XbEpN.js";
19
+ import { u as z, _ as K } from "./useCommand-DyuPTosF.js";
20
20
  import { u as U } from "./fieldMessages-DTXpWnBd.js";
21
- import { u as ce, s as le } from "./status-BUFELJz2.js";
22
- import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
21
+ import { u as ce, s as le } from "./status-C78NpXyB.js";
22
+ import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
23
23
  const ue = /* @__PURE__ */ R({
24
24
  __name: "DeactivateDialog",
25
25
  props: {
@@ -1,19 +1,19 @@
1
1
  import { defineComponent as U, openBlock as p, createBlock as C, unref as e, withCtx as c, createVNode as r, mergeProps as i, useTemplateRef as V, computed as q, createTextVNode as z, toDisplayString as $, createCommentVNode as A, createElementBlock as S, normalizeClass as N } from "vue";
2
2
  import { useI18n as B } from "vue-i18n";
3
3
  import { useRouter as M } from "vue-router";
4
- import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-l-e-6WeS.js";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-o_Pj-JcD.js";
5
5
  import { _ as I } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
6
6
  import { u as F } from "./format-D8X4zsx6.js";
7
7
  import { u as L } from "./platform-Dx6STiwY.js";
8
8
  import { _ as G } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
- import { i as K, f as E, M as W } from "./index-auJqVMWC.js";
10
- import { U as j, u as H, s as J } from "./status-BUFELJz2.js";
9
+ import { i as K, f as E, M as W } from "./index-Ok29ucE3.js";
10
+ import { U as j, u as H, s as J } from "./status-C78NpXyB.js";
11
11
  import { u as O } from "./environment-Dva-SG8D.js";
12
12
  import { u as Q } from "./languages-BShG9LpE.js";
13
- import { _ as X } from "./FormGroup.vue_vue_type_script_setup_true_lang-BPchlRCl.js";
14
- import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-BzQC1qDQ.js";
15
- import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-DTAQPbW0.js";
16
- import { u as Z, _ as ee } from "./useCommand-CtqheKUv.js";
13
+ import { _ as X } from "./FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js";
14
+ import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js";
15
+ import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js";
16
+ import { u as Z, _ as ee } from "./useCommand-DyuPTosF.js";
17
17
  import { t as se } from "./toast-CqSDTWRX.js";
18
18
  import { u as te } from "./fieldMessages-DTXpWnBd.js";
19
19
  const oe = /* @__PURE__ */ U({
@@ -1,11 +1,12 @@
1
1
  import type { HttpClient } from "../client";
2
2
  import type { BindInput, CreateRoleInput, UpdateRoleInput } from "../modules/access/schemas";
3
- import type { SubjectRef } from "../modules/access/entities";
3
+ import type { Binding, ScopeOptions, SubjectAccess, SubjectRef } from "../modules/access/entities";
4
+ import type { AccessSubjects } from "./context";
4
5
  type Options = {
5
6
  readonly signal?: AbortSignal;
6
7
  };
7
- /** go-core's access routes as calls; `data` of each answer already read. */
8
- export declare function createAccessApi(http: HttpClient): {
8
+ /** go-core's access routes as calls; `data` of each answer already read. A subject of another kind than `user` goes to `subjects[kind]`. */
9
+ export declare function createAccessApi(http: HttpClient, subjects?: AccessSubjects): {
9
10
  roles: (options?: Options) => Promise<import(".").RoleSummary[]>;
10
11
  role: (ref: string, options?: Options) => Promise<import(".").Role>;
11
12
  holders: (ref: string, options?: Options) => Promise<import(".").RoleHolder[]>;
@@ -14,10 +15,10 @@ export declare function createAccessApi(http: HttpClient): {
14
15
  update: (input: UpdateRoleInput) => Promise<import(".").Role>;
15
16
  remove: (ref: string) => Promise<undefined>;
16
17
  replace: (ref: string, other: string) => Promise<number>;
17
- access: (subject: SubjectRef, options?: Options) => Promise<import(".").SubjectAccess>;
18
- scopes: (subject: SubjectRef, options?: Options) => Promise<import(".").ScopeOptions>;
19
- bindable: (level: string, scopeId: number | null, options?: Options) => Promise<import(".").Role[]>;
20
- bind: (subject: SubjectRef, input: Omit<BindInput, "id">) => Promise<import(".").Binding>;
18
+ access: (subject: SubjectRef, options?: Options) => Promise<SubjectAccess>;
19
+ scopes: (subject: SubjectRef, options?: Options) => Promise<ScopeOptions>;
20
+ bindable: (subject: SubjectRef, level: string, scopeId: number | null, options?: Options) => Promise<import(".").Role[]>;
21
+ bind: (subject: SubjectRef, input: Omit<BindInput, "id">) => Promise<Binding>;
21
22
  unbind: (subject: SubjectRef, bindingId: number) => Promise<undefined>;
22
23
  };
23
24
  export type AccessApi = ReturnType<typeof createAccessApi>;