@wssto2/vue-core 0.4.13 → 0.4.15

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 (91) hide show
  1. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-LlfIPWsJ.js → ActionRow.vue_vue_type_script_setup_true_lang-CkvS5W6K.js} +1 -1
  2. package/dist/{Activity-DhVVSf60.js → Activity-4q26REYj.js} +6 -6
  3. package/dist/{Changes-Czs32zlz.js → Changes-CKIuGF8O.js} +5 -5
  4. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-DkpFEHUw.js → CollectionPage.vue_vue_type_script_setup_true_lang-B17cUOzj.js} +2 -2
  5. package/dist/{DateField.vue_vue_type_script_setup_true_lang-GVasv8ao.js → DateField.vue_vue_type_script_setup_true_lang-DehwWm78.js} +17 -16
  6. package/dist/{DeadLetters-DBUALYXL.js → DeadLetters-DPGcQOz1.js} +4 -4
  7. package/dist/FormErrors.vue_vue_type_script_setup_true_lang-DWcVKZM3.js +285 -0
  8. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js → FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js} +1 -1
  9. package/dist/{FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js → FormView.vue_vue_type_script_setup_true_lang-BcIbTMHN.js} +2 -2
  10. package/dist/{General-UWbJQLc8.js → General-CUA9b3ML.js} +10 -10
  11. package/dist/{NewRolePage-Dm7urTx0.js → NewRolePage-DBfCvDWA.js} +3 -3
  12. package/dist/NumberField.vue_vue_type_script_setup_true_lang-Dm6FfJ2T.js +126 -0
  13. package/dist/{ProfilePage-Ep75xf-u.js → ProfilePage-On-eAiJ-.js} +41 -41
  14. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CDZjkiU5.js → RoleEditor.vue_vue_type_script_setup_true_lang-fvAf3rQm.js} +44 -44
  15. package/dist/{RolePage-CQc_wV3b.js → RolePage-B8oul55j.js} +8 -8
  16. package/dist/{RolesPage-CG7InZ_u.js → RolesPage-DsXVivdj.js} +5 -5
  17. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-BMqWlpsL.js → SegmentedField.vue_vue_type_script_setup_true_lang-B2d55hrh.js} +7 -6
  18. package/dist/SelectField.vue_vue_type_script_setup_true_lang-DedKLLQK.js +443 -0
  19. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-D4k5QeWS.js → SessionList.vue_vue_type_script_setup_true_lang-CirlMdHb.js} +2 -2
  20. package/dist/{Sessions-_w3Tnevz.js → Sessions-BTyXDEuY.js} +4 -4
  21. package/dist/{SettingsPage-BNdeH-_0.js → SettingsPage-DHTmMgif.js} +9 -9
  22. package/dist/{SignIn-DIjshMpl.js → SignIn-DU4DE2wj.js} +6 -6
  23. package/dist/{SignInPage-C3-LHjo2.js → SignInPage-BA22kyOp.js} +3 -3
  24. package/dist/{SignIns-DNdLctGJ.js → SignIns-C8QAZBaL.js} +3 -3
  25. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-CM8yp9JQ.js → SwitchField.vue_vue_type_script_setup_true_lang-B2Z2hy_h.js} +11 -10
  26. package/dist/{TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js → TextField.vue_vue_type_script_setup_true_lang-nqnGG7Zc.js} +27 -26
  27. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-CqAWfABZ.js → TextareaField.vue_vue_type_script_setup_true_lang-BgIQyYtf.js} +9 -8
  28. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js → TimeField.vue_vue_type_script_setup_true_lang-Dr0h-V_8.js} +25 -24
  29. package/dist/{UserRecord-C0JZgK47.js → UserRecord-D1BNmYp9.js} +10 -10
  30. package/dist/{UsersList-Bc8dCuRB.js → UsersList-ltx3G23-.js} +8 -8
  31. package/dist/access/index.js +1 -1
  32. package/dist/app/application.d.ts +13 -0
  33. package/dist/app/index.js +160 -159
  34. package/dist/collection/index.js +1 -1
  35. package/dist/control-CX9BG2UB.js +320 -0
  36. package/dist/describeError-B-NMa--w.js +53 -0
  37. package/dist/fieldMessages-DV6sESpn.js +25 -0
  38. package/dist/form/DateField.vue.d.ts +1 -0
  39. package/dist/form/DateTimeField.vue.d.ts +1 -0
  40. package/dist/form/Field.vue.d.ts +1 -0
  41. package/dist/form/FileField.vue.d.ts +1 -0
  42. package/dist/form/FormErrors.vue.d.ts +1 -1
  43. package/dist/form/FormRow.vue.d.ts +3 -0
  44. package/dist/form/I18nField.vue.d.ts +1 -0
  45. package/dist/form/MoneyField.vue.d.ts +1 -0
  46. package/dist/form/MonthYearField.vue.d.ts +1 -0
  47. package/dist/form/NumberField.vue.d.ts +5 -0
  48. package/dist/form/PhotoField.vue.d.ts +1 -0
  49. package/dist/form/SelectField.vue.d.ts +5 -6
  50. package/dist/form/SwitchField.vue.d.ts +1 -0
  51. package/dist/form/TextField.vue.d.ts +1 -0
  52. package/dist/form/TextareaField.vue.d.ts +1 -0
  53. package/dist/form/TimeField.vue.d.ts +1 -0
  54. package/dist/form/field.d.ts +3 -0
  55. package/dist/form/index.d.ts +2 -0
  56. package/dist/form/index.js +469 -456
  57. package/dist/form/useForm.d.ts +2 -2
  58. package/dist/form/useHiddenFieldErrors.d.ts +23 -0
  59. package/dist/form/useSaveChrome.d.ts +8 -3
  60. package/dist/i18n/describeError.d.ts +19 -1
  61. package/dist/i18n/index.d.ts +2 -2
  62. package/dist/i18n/index.js +8 -6
  63. package/dist/identity/fieldMessages.d.ts +1 -1
  64. package/dist/identity/index.js +1 -1
  65. package/dist/{index-Cz4LtYKa.js → index-BCw_Ki6z.js} +2 -2
  66. package/dist/{index-BesWsiIg.js → index-Chh4z9xW.js} +10 -10
  67. package/dist/{index-BEDhdJQE.js → index-DwdVrW6q.js} +15 -15
  68. package/dist/index.d.ts +1 -1
  69. package/dist/index.js +1 -1
  70. package/dist/notifications/index.js +1 -1
  71. package/dist/phone/PhoneField.vue.d.ts +1 -0
  72. package/dist/phone/index.js +66 -65
  73. package/dist/resource/index.js +1 -1
  74. package/dist/resource/resource.d.ts +1 -1
  75. package/dist/{routeResource-DstM0hvf.js → routeResource-DlTsGTg_.js} +36 -32
  76. package/dist/state/index.js +1 -1
  77. package/dist/state/useLoad.d.ts +7 -0
  78. package/dist/{status-DfAac6vw.js → status-cWCAMAmW.js} +1 -1
  79. package/dist/{useCommand-BkONMn3X.js → useCommand-B-N6HJOz.js} +1 -1
  80. package/dist/useLoad-M7V-AVwR.js +43 -0
  81. package/dist/{useResourceForm-D1hIpwW5.js → useResourceForm-CP2lCwmD.js} +1 -1
  82. package/dist/useSaveChrome-7huA3FzR.js +26 -0
  83. package/package.json +1 -1
  84. package/dist/FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js +0 -276
  85. package/dist/NumberField.vue_vue_type_script_setup_true_lang-C7N5nq0P.js +0 -113
  86. package/dist/SelectField.vue_vue_type_script_setup_true_lang-BJoAkBo2.js +0 -437
  87. package/dist/control-7EP4tjYy.js +0 -313
  88. package/dist/describeError-Ctga6GcS.js +0 -41
  89. package/dist/fieldMessages-C3Rpbktw.js +0 -25
  90. package/dist/useLoad-CYRVx6HW.js +0 -39
  91. package/dist/useSaveChrome-DuWm0Czf.js +0 -25
@@ -2,22 +2,22 @@ import { defineComponent as I, computed as z, openBlock as l, createBlock as b,
2
2
  import { useI18n as K } from "vue-i18n";
3
3
  import { useRouter as X } from "vue-router";
4
4
  import { _ as Y } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
5
- import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
6
- import { e as F } from "./control-7EP4tjYy.js";
7
- import { u as Z } from "./describeError-Ctga6GcS.js";
5
+ import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js";
6
+ import { e as F } from "./control-CX9BG2UB.js";
7
+ import { u as Z } from "./describeError-B-NMa--w.js";
8
8
  import { _ as ee } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
9
9
  import { t as q } from "./toast-CqSDTWRX.js";
10
10
  import { _ as oe } from "./RecordHeader.vue_vue_type_script_setup_true_lang-D87Hs75d.js";
11
11
  import { u as te } from "./platform-q3cjODLx.js";
12
- import { a as ae, u as le } from "./routeResource-DstM0hvf.js";
12
+ import { a as ae, u as le } from "./routeResource-DlTsGTg_.js";
13
13
  import { a as se } from "./ResourcePage.vue_vue_type_script_setup_true_lang-Da0M-hen.js";
14
14
  import { _ as re } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
15
15
  import { _ as H } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
16
- import { u as O, a as U, f as ce, d as ne, b as M, c as T } from "./index-BesWsiIg.js";
17
- import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-BJoAkBo2.js";
18
- import { u as ie, _ as ue } from "./useCommand-BkONMn3X.js";
16
+ import { u as O, a as U, f as ce, d as ne, b as M, c as T } from "./index-Chh4z9xW.js";
17
+ import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-DedKLLQK.js";
18
+ import { u as ie, _ as ue } from "./useCommand-B-N6HJOz.js";
19
19
  import { _ as me } from "./Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js";
20
- import { _ as pe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-CDZjkiU5.js";
20
+ import { _ as pe } from "./RoleEditor.vue_vue_type_script_setup_true_lang-fvAf3rQm.js";
21
21
  const de = { "data-test": "role-replace" }, fe = /* @__PURE__ */ I({
22
22
  __name: "ReplaceRoleDialog",
23
23
  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-DG2zdG_a.js";
7
- import { e as j } from "./control-7EP4tjYy.js";
8
- import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
6
+ import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js";
7
+ import { e as j } from "./control-CX9BG2UB.js";
8
+ import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-nqnGG7Zc.js";
9
9
  import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-B7qSUiee.js";
10
10
  import { u as K } from "./platform-q3cjODLx.js";
11
11
  import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
12
12
  import { _ as q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
13
- import { u as z } from "./useLoad-CYRVx6HW.js";
14
- import { u as G, a as H, b as J, c as x } from "./index-BesWsiIg.js";
13
+ import { u as z } from "./useLoad-M7V-AVwR.js";
14
+ import { u as G, a as H, b as J, c as x } from "./index-Chh4z9xW.js";
15
15
  const M = {
16
16
  class: "flex min-w-0 flex-col gap-group-gap",
17
17
  "data-test": "roles-index"
@@ -1,9 +1,10 @@
1
- import { defineComponent as x, openBlock as l, createBlock as y, mergeProps as g, unref as s, withCtx as w, createElementVNode as _, normalizeClass as o, createElementBlock as a, Fragment as V, renderList as k, createTextVNode as h, toDisplayString as r, createCommentVNode as B, mergeDefaults as C } from "vue";
2
- import { u as L, a as F, _ as D, f as N, b as E } from "./control-7EP4tjYy.js";
1
+ import { defineComponent as x, openBlock as l, createBlock as y, mergeProps as g, unref as s, withCtx as w, createElementVNode as _, normalizeClass as o, createElementBlock as a, Fragment as V, renderList as k, createTextVNode as h, toDisplayString as i, createCommentVNode as B, mergeDefaults as C } from "vue";
2
+ import { u as L, a as F, _ as D, f as N, b as E } from "./control-CX9BG2UB.js";
3
3
  const P = ["id", "aria-label", "aria-describedby", "aria-invalid"], R = ["disabled", "aria-pressed", "onClick"], G = /* @__PURE__ */ x({
4
4
  __name: "SegmentedField",
5
5
  props: /* @__PURE__ */ C({
6
6
  label: {},
7
+ labelHidden: { type: Boolean },
7
8
  hint: {},
8
9
  error: {},
9
10
  required: { type: Boolean },
@@ -17,8 +18,8 @@ const P = ["id", "aria-label", "aria-describedby", "aria-invalid"], R = ["disabl
17
18
  rowLayout: {}
18
19
  }, { ...E, modelValue: null, rowLayout: "setting" }),
19
20
  emits: ["update:modelValue"],
20
- setup(i, { emit: d }) {
21
- const e = i, u = d, { editable: c } = L(e), m = !!F(), f = () => e.options.find((n) => n.value === e.modelValue)?.label ?? null;
21
+ setup(r, { emit: d }) {
22
+ const e = r, u = d, { editable: c } = L(e), m = !!F(), f = () => e.options.find((n) => n.value === e.modelValue)?.label ?? null;
22
23
  return (n, S) => (l(), y(D, g(s(N)(e), {
23
24
  value: f(),
24
25
  "row-layout": e.rowLayout
@@ -41,11 +42,11 @@ const P = ["id", "aria-label", "aria-describedby", "aria-invalid"], R = ["disabl
41
42
  class: o(["relative min-h-7 min-w-fit flex-1 whitespace-nowrap rounded-control px-3.5 py-1 text-sm transition-colors duration-motion-fast ease-motion-standard focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-border-focus", t.value === e.modelValue ? "bg-segment-selected font-semibold text-content-strong shadow-sm" : "cursor-pointer font-medium text-content hover:text-content-strong"]),
42
43
  onClick: ($) => u("update:modelValue", t.value)
43
44
  }, [
44
- h(r(t.label) + " ", 1),
45
+ h(i(t.label) + " ", 1),
45
46
  t.count !== void 0 ? (l(), a("span", {
46
47
  key: 0,
47
48
  class: o(["ml-1.5 rounded-full px-1.5 text-caption font-semibold tabular-nums", t.value === e.modelValue ? "bg-tint-soft text-content-link" : "bg-fill-strong text-content-muted"])
48
- }, r(t.count), 3)) : B("", !0)
49
+ }, i(t.count), 3)) : B("", !0)
49
50
  ], 10, R))), 128))
50
51
  ], 10, P)
51
52
  ]),
@@ -0,0 +1,443 @@
1
+ import { defineComponent as M, ref as U, useId as K, useTemplateRef as j, computed as g, watch as T, nextTick as W, openBlock as l, createElementBlock as f, normalizeClass as b, createElementVNode as r, createVNode as D, unref as o, withDirectives as J, vModelText as Q, createCommentVNode as v, toDisplayString as $, createBlock as S, Fragment as P, renderList as R, onScopeDispose as X, mergeProps as H, withCtx as z, createSlots as Y, createTextVNode as Z, mergeDefaults as ee } from "vue";
2
+ import { useI18n as G } from "vue-i18n";
3
+ import { _ as te } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
+ import { _ as q } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
5
+ import { u as oe } from "./mediaQuery-CygcXmFW.js";
6
+ import { _ as N } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
7
+ import { _ as le } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
8
+ import { _ as ae } from "./Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js";
9
+ import { a as ne, c as se, _ as re, f as ie, b as ue } from "./control-CX9BG2UB.js";
10
+ import { g as de, m as ce } from "./options-Ba_0uLWN.js";
11
+ import { a as pe } from "./suggestions-BxMm6MQA.js";
12
+ const me = { 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" }, fe = ["aria-label", "placeholder"], ve = ["aria-multiselectable", "aria-busy"], be = {
13
+ key: 0,
14
+ role: "presentation"
15
+ }, ge = ["aria-selected"], he = { class: "flex-1 py-2" }, ye = {
16
+ key: 1,
17
+ role: "presentation",
18
+ class: "flex items-center gap-2.5 px-row-inset py-4 text-subheadline text-content-muted",
19
+ "data-test": "options-loading"
20
+ }, xe = { role: "status" }, ke = {
21
+ key: 2,
22
+ role: "presentation",
23
+ class: "flex flex-col items-start gap-1 px-row-inset py-3",
24
+ "data-test": "options-failed"
25
+ }, _e = {
26
+ role: "alert",
27
+ class: "text-subheadline text-content-destructive"
28
+ }, we = ["id"], $e = ["aria-labelledby"], Ce = ["aria-selected"], Se = ["disabled", "onClick"], Ve = {
29
+ key: 0,
30
+ "aria-hidden": "true",
31
+ class: "flex shrink-0 items-center"
32
+ }, Le = { class: "min-w-0 flex-1 text-content-strong" }, De = {
33
+ key: 1,
34
+ class: "shrink-0 text-footnote text-content-muted"
35
+ }, qe = {
36
+ key: 3,
37
+ class: "px-4 py-6 text-center text-subheadline text-content-muted"
38
+ }, I = /* @__PURE__ */ M({
39
+ __name: "OptionList",
40
+ props: {
41
+ options: {},
42
+ modelValue: { default: null },
43
+ multiple: { type: Boolean, default: !1 },
44
+ searchFrom: { default: 9 },
45
+ noneLabel: { default: void 0 },
46
+ presentation: { default: "grouped" },
47
+ status: { default: "loaded" }
48
+ },
49
+ emits: ["select", "retry"],
50
+ setup(i, { emit: h }) {
51
+ const e = i, y = h, { t: m } = G(), a = U(""), c = K(), x = j("root"), n = g(() => e.options.length >= e.searchFrom), C = g(() => de(ce(e.options, a.value))), V = (p) => e.multiple ? Array.isArray(e.modelValue) && e.modelValue.includes(p.value) : e.modelValue === p.value, u = g(() => e.multiple ? !1 : e.modelValue === null);
52
+ function w(p) {
53
+ if (!["ArrowDown", "ArrowUp", "Home", "End"].includes(p.key)) return;
54
+ const t = [...x.value?.querySelectorAll("[data-option]:not([disabled])") ?? []];
55
+ if (t.length === 0) return;
56
+ const _ = t.indexOf(document.activeElement), d = p.key === "Home" ? 0 : p.key === "End" ? t.length - 1 : p.key === "ArrowDown" ? Math.min(_ + 1, t.length - 1) : Math.max(_ - 1, 0);
57
+ p.key === "ArrowUp" && _ <= 0 ? x.value?.querySelector("[data-option-search]")?.focus() : t[_ === -1 && p.key === "ArrowDown" ? 0 : d]?.focus(), p.preventDefault();
58
+ }
59
+ const k = g(() => e.presentation === "grouped"), O = g(() => e.status === "loading"), F = g(() => e.status === "failed");
60
+ return T(() => e.status, (p, s) => {
61
+ s !== "loading" || p === "loading" || W(() => {
62
+ const t = document.activeElement;
63
+ (!t || t === document.body || t.getAttribute("role") === "dialog" && !!x.value && t.contains(x.value)) && x.value?.querySelector("[data-option-search], [data-option]:not([disabled])")?.focus({ preventScroll: !0 });
64
+ });
65
+ }), (p, s) => (l(), f("div", {
66
+ ref_key: "root",
67
+ ref: x,
68
+ "data-test": "option-list",
69
+ onKeydown: w
70
+ }, [
71
+ n.value ? (l(), f("div", {
72
+ key: 0,
73
+ class: b(["sticky top-0 z-10 pb-2", k.value ? "bg-surface-page pt-1" : "bg-surface-cell"])
74
+ }, [
75
+ r("label", me, [
76
+ D(o(q), {
77
+ name: "search",
78
+ size: 16,
79
+ class: "shrink-0"
80
+ }),
81
+ J(r("input", {
82
+ "onUpdate:modelValue": s[0] || (s[0] = (t) => a.value = t),
83
+ "data-option-search": "",
84
+ type: "search",
85
+ enterkeyhint: "search",
86
+ autocomplete: "off",
87
+ autocapitalize: "off",
88
+ spellcheck: "false",
89
+ "aria-label": o(m)("core.form.select.search"),
90
+ placeholder: o(m)("core.form.select.search"),
91
+ class: "min-w-0 flex-1 border-0 bg-transparent p-0 text-body text-content-strong outline-none placeholder:text-content-disabled focus:ring-0"
92
+ }, null, 8, fe), [
93
+ [Q, a.value]
94
+ ])
95
+ ])
96
+ ], 2)) : v("", !0),
97
+ r("ul", {
98
+ class: b(["flex flex-col", k.value ? "gap-group-gap" : "gap-2"]),
99
+ role: "listbox",
100
+ "aria-multiselectable": e.multiple || void 0,
101
+ "aria-busy": O.value || void 0
102
+ }, [
103
+ e.noneLabel && a.value === "" ? (l(), f("li", be, [
104
+ r("ul", {
105
+ role: "group",
106
+ class: b(k.value ? "rounded-group bg-surface-cell shadow-group" : "")
107
+ }, [
108
+ r("li", {
109
+ role: "option",
110
+ "aria-selected": u.value
111
+ }, [
112
+ r("button", {
113
+ type: "button",
114
+ "data-option": "",
115
+ class: b(["flex min-h-row w-full cursor-pointer items-center gap-3 px-row-inset text-left text-body hover:bg-fill focus-visible:bg-fill focus-visible:outline-none active:bg-fill", [u.value ? "text-content-strong" : "text-content-muted", k.value ? "rounded-group" : "rounded-control"]]),
116
+ onClick: s[1] || (s[1] = (t) => y("select", null))
117
+ }, [
118
+ r("span", he, $(e.noneLabel), 1),
119
+ u.value ? (l(), S(o(q), {
120
+ key: 0,
121
+ name: "checkCustom",
122
+ size: 18,
123
+ class: "shrink-0 text-content-link"
124
+ })) : v("", !0)
125
+ ], 2)
126
+ ], 8, ge)
127
+ ], 2)
128
+ ])) : v("", !0),
129
+ O.value ? (l(), f("li", ye, [
130
+ D(o(q), {
131
+ name: "loader4Line",
132
+ size: 16,
133
+ class: "shrink-0 animate-spin text-content-link"
134
+ }),
135
+ r("span", xe, $(o(m)("core.form.select.loading")), 1)
136
+ ])) : F.value ? (l(), f("li", ke, [
137
+ r("span", _e, $(o(m)("core.form.select.load_failed")), 1),
138
+ r("button", {
139
+ type: "button",
140
+ "data-option": "",
141
+ "data-test": "options-retry",
142
+ class: "-ml-2 cursor-pointer rounded-control px-2 py-1 text-subheadline font-medium text-content-link hover:bg-fill focus-visible:bg-fill focus-visible:outline-none",
143
+ onClick: s[2] || (s[2] = (t) => y("retry"))
144
+ }, $(o(m)("core.actions.retry")), 1)
145
+ ])) : v("", !0),
146
+ (l(!0), f(P, null, R(C.value, (t, _) => (l(), f("li", {
147
+ key: t.title ?? _,
148
+ role: "presentation"
149
+ }, [
150
+ t.title ? (l(), f("p", {
151
+ key: 0,
152
+ id: `${o(c)}-${_}`,
153
+ class: "px-row-inset pb-1.5 text-footnote uppercase tracking-wide text-content-muted"
154
+ }, $(t.title), 9, we)) : v("", !0),
155
+ r("ul", {
156
+ role: "group",
157
+ "aria-labelledby": t.title ? `${o(c)}-${_}` : void 0,
158
+ class: b(k.value ? "rounded-group bg-surface-cell shadow-group" : "")
159
+ }, [
160
+ (l(!0), f(P, null, R(t.options, (d) => (l(), f("li", {
161
+ key: String(d.value),
162
+ role: "option",
163
+ "aria-selected": V(d),
164
+ class: "group/option"
165
+ }, [
166
+ r("button", {
167
+ type: "button",
168
+ "data-option": "",
169
+ "data-test": "option",
170
+ disabled: d.disabled,
171
+ class: b(["flex w-full cursor-pointer items-stretch gap-3 pl-row-inset text-left text-body hover:bg-fill focus-visible:bg-fill focus-visible:outline-none active:bg-fill disabled:cursor-not-allowed disabled:opacity-45", k.value ? "group-first/option:rounded-t-group group-last/option:rounded-b-group" : "rounded-control"]),
172
+ onClick: (E) => y("select", d.value)
173
+ }, [
174
+ e.multiple ? (l(), f("span", Ve, [
175
+ r("span", {
176
+ class: b(["flex size-5.5 items-center justify-center rounded-full border", V(d) ? "border-control-on bg-control-on text-white" : "border-border-control"])
177
+ }, [
178
+ V(d) ? (l(), S(o(q), {
179
+ key: 0,
180
+ name: "checkCustom",
181
+ size: 12
182
+ })) : v("", !0)
183
+ ], 2)
184
+ ])) : v("", !0),
185
+ r("span", {
186
+ class: b(["flex min-h-row min-w-0 flex-1 items-center gap-3 py-2 pr-row-inset", k.value ? "border-t border-border-separator group-first/option:border-t-0" : ""])
187
+ }, [
188
+ d.dot ? (l(), S(N, {
189
+ key: 0,
190
+ tone: d.dot,
191
+ class: "-mr-1.5"
192
+ }, null, 8, ["tone"])) : v("", !0),
193
+ r("span", Le, $(d.label), 1),
194
+ d.description ? (l(), f("span", De, $(d.description), 1)) : v("", !0),
195
+ !e.multiple && V(d) ? (l(), S(o(q), {
196
+ key: 2,
197
+ name: "checkCustom",
198
+ size: 18,
199
+ class: "shrink-0 text-content-link"
200
+ })) : v("", !0)
201
+ ], 2)
202
+ ], 10, Se)
203
+ ], 8, Ce))), 128))
204
+ ], 10, $e)
205
+ ]))), 128)),
206
+ C.value.length === 0 && !O.value && !F.value ? (l(), f("li", qe, $(o(m)("core.form.select.no_matches")), 1)) : v("", !0)
207
+ ], 10, ve)
208
+ ], 544));
209
+ }
210
+ });
211
+ function Ke(i) {
212
+ const h = pe(), e = i.for !== void 0;
213
+ let y = 0;
214
+ function m() {
215
+ const a = i.for?.();
216
+ if (e && a == null) {
217
+ h.cancel(), h.items.value = [], h.status.value = "idle";
218
+ return;
219
+ }
220
+ h.run(
221
+ (c) => e ? i.load(a, { signal: c }) : i.load({ signal: c })
222
+ );
223
+ }
224
+ return T(
225
+ () => i.for?.(),
226
+ (a, c) => {
227
+ c != null && y++, m();
228
+ },
229
+ { immediate: !0 }
230
+ ), X(h.cancel), {
231
+ get status() {
232
+ return h.status.value;
233
+ },
234
+ get options() {
235
+ return h.items.value;
236
+ },
237
+ get generation() {
238
+ return y;
239
+ },
240
+ reload: m
241
+ };
242
+ }
243
+ const A = (i) => Array.isArray(i), ze = [];
244
+ function Ae(i, h) {
245
+ const e = g(() => {
246
+ const n = i();
247
+ return A(n) ? n : n.options;
248
+ }), y = g(() => {
249
+ const n = i();
250
+ return A(n) ? "loaded" : n.status;
251
+ }), m = g(() => y.value === "loading" || y.value === "failed" ? ze : e.value), a = g(() => y.value === "loading"), c = i();
252
+ let x = A(c) ? 0 : c.generation;
253
+ return T(
254
+ () => {
255
+ const n = i();
256
+ return A(n) ? null : n.status === "loaded" || n.status === "idle" ? n.options : null;
257
+ },
258
+ (n) => {
259
+ const C = i();
260
+ n === null || A(C) || C.generation === x || (x = C.generation, h(n));
261
+ }
262
+ ), { known: e, rows: m, status: y, loading: a, reload: () => {
263
+ const n = i();
264
+ A(n) || n.reload();
265
+ } };
266
+ }
267
+ const Oe = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-describedby", "aria-busy"], Fe = ["id", "disabled", "aria-required", "aria-invalid", "aria-describedby", "aria-busy", "onClick"], Be = { class: "max-h-72 overflow-y-auto" }, We = /* @__PURE__ */ M({
268
+ __name: "SelectField",
269
+ props: /* @__PURE__ */ ee({
270
+ label: {},
271
+ labelHidden: { type: Boolean },
272
+ hint: {},
273
+ error: {},
274
+ required: { type: Boolean },
275
+ editable: { type: Boolean },
276
+ disabled: { type: Boolean },
277
+ lockedReason: {},
278
+ presentation: {},
279
+ name: {},
280
+ options: {},
281
+ selected: {},
282
+ placeholder: {},
283
+ clearable: {},
284
+ modelValue: {},
285
+ searchFrom: {}
286
+ }, { ...ue, selected: null, placeholder: void 0, clearable: void 0, modelValue: void 0, searchFrom: 9 }),
287
+ emits: ["update:modelValue"],
288
+ setup(i, { emit: h }) {
289
+ const e = i, y = h, m = U(e.modelValue ?? null);
290
+ T(() => e.modelValue, (s) => m.value = s ?? null);
291
+ const a = g({
292
+ get: () => m.value,
293
+ set: (s) => {
294
+ m.value = s, y("update:modelValue", s);
295
+ }
296
+ }), { t: c } = G(), x = oe(), n = !!ne(), C = j("sheet"), V = U(!1), u = Ae(() => e.options, (s) => {
297
+ a.value !== null && !s.some((t) => t.value === a.value) && (a.value = null);
298
+ }), w = g(() => u.known.value.find((s) => s.value === a.value) ?? (e.selected?.value === a.value ? e.selected : null)), k = g(() => e.placeholder ?? c("core.form.select.choose")), O = se("popup", () => e.error ? "error" : e.disabled ? "locked" : "rest");
299
+ function F(s) {
300
+ a.value = s, C.value?.dismiss();
301
+ }
302
+ const p = g(() => [
303
+ "flex max-w-full min-w-0 items-center gap-1.5 py-1 pl-2.5 pr-2 text-body focus-visible:outline-none",
304
+ n ? "compact:pl-0 compact:pr-0" : "",
305
+ e.disabled ? "cursor-not-allowed" : "cursor-pointer"
306
+ ]);
307
+ return (s, t) => (l(), S(re, H(o(ie)(e), {
308
+ value: w.value?.label ?? null
309
+ }), {
310
+ default: z(({ id: _, describedby: d, invalid: E }) => [
311
+ r("div", {
312
+ class: b(["inline-flex max-w-full min-w-0", o(O)])
313
+ }, [
314
+ o(x) ? (l(), f("button", {
315
+ key: 0,
316
+ id: _,
317
+ type: "button",
318
+ disabled: e.disabled,
319
+ "aria-haspopup": "dialog",
320
+ "aria-expanded": V.value,
321
+ "aria-required": e.required || void 0,
322
+ "aria-invalid": E || void 0,
323
+ "aria-describedby": d,
324
+ "aria-busy": o(u).loading.value || void 0,
325
+ class: b(p.value),
326
+ onClick: t[0] || (t[0] = (L) => C.value?.present())
327
+ }, [
328
+ w.value?.dot ? (l(), S(N, {
329
+ key: 0,
330
+ tone: w.value.dot
331
+ }, null, 8, ["tone"])) : v("", !0),
332
+ r("span", {
333
+ class: b(["min-w-0 truncate", w.value ? n ? "text-content-strong compact:text-content-muted" : "text-content-strong" : "text-content-disabled"])
334
+ }, $(w.value?.label ?? k.value), 3),
335
+ D(o(q), {
336
+ name: o(u).loading.value ? "loader4Line" : "expandUpDownLine",
337
+ size: 14,
338
+ class: b(["shrink-0 text-content-muted", o(u).loading.value ? "animate-spin" : ""])
339
+ }, null, 8, ["name", "class"])
340
+ ], 10, Oe)) : (l(), S(ae, {
341
+ key: 1,
342
+ label: e.label ?? k.value,
343
+ width: "md",
344
+ "match-trigger-width": "",
345
+ placement: "bottom-start",
346
+ arrow: !1
347
+ }, {
348
+ trigger: z(({ toggle: L, attrs: B }) => [
349
+ r("button", H({
350
+ id: _,
351
+ type: "button"
352
+ }, B, {
353
+ "aria-haspopup": "listbox",
354
+ disabled: e.disabled,
355
+ "aria-required": e.required || void 0,
356
+ "aria-invalid": E || void 0,
357
+ "aria-describedby": d,
358
+ "aria-busy": o(u).loading.value || void 0,
359
+ class: p.value,
360
+ onClick: L
361
+ }), [
362
+ w.value?.dot ? (l(), S(N, {
363
+ key: 0,
364
+ tone: w.value.dot
365
+ }, null, 8, ["tone"])) : v("", !0),
366
+ r("span", {
367
+ class: b(["min-w-0 truncate", w.value ? "text-content-strong" : "text-content-disabled"])
368
+ }, $(w.value?.label ?? k.value), 3),
369
+ D(o(q), {
370
+ name: o(u).loading.value ? "loader4Line" : "expandUpDownLine",
371
+ size: 14,
372
+ class: b(["shrink-0 text-content-muted", o(u).loading.value ? "animate-spin" : ""])
373
+ }, null, 8, ["name", "class"])
374
+ ], 16, Fe)
375
+ ]),
376
+ default: z(({ dismiss: L }) => [
377
+ r("div", Be, [
378
+ D(I, {
379
+ options: o(u).rows.value,
380
+ status: o(u).status.value,
381
+ "model-value": a.value,
382
+ "search-from": e.searchFrom,
383
+ "none-label": e.clearable ? o(c)("core.form.select.clear") : void 0,
384
+ presentation: "plain",
385
+ onSelect: (B) => {
386
+ a.value = B, L();
387
+ },
388
+ onRetry: t[1] || (t[1] = (B) => o(u).reload())
389
+ }, null, 8, ["options", "status", "model-value", "search-from", "none-label", "onSelect"])
390
+ ])
391
+ ]),
392
+ _: 2
393
+ }, 1032, ["label"]))
394
+ ], 2),
395
+ o(x) ? (l(), S(le, {
396
+ key: 0,
397
+ ref_key: "sheet",
398
+ ref: C,
399
+ title: e.label ?? k.value,
400
+ grouped: "",
401
+ onPresented: t[4] || (t[4] = (L) => V.value = !0),
402
+ onDismissed: t[5] || (t[5] = (L) => V.value = !1)
403
+ }, Y({
404
+ default: z(() => [
405
+ D(I, {
406
+ options: o(u).rows.value,
407
+ status: o(u).status.value,
408
+ "model-value": a.value,
409
+ "search-from": e.searchFrom,
410
+ "none-label": e.clearable ? o(c)("core.form.select.clear") : void 0,
411
+ onSelect: F,
412
+ onRetry: t[2] || (t[2] = (L) => o(u).reload())
413
+ }, null, 8, ["options", "status", "model-value", "search-from", "none-label"])
414
+ ]),
415
+ _: 2
416
+ }, [
417
+ e.clearable && a.value !== null ? {
418
+ name: "footer",
419
+ fn: z(() => [
420
+ D(te, {
421
+ prominence: "plain",
422
+ onClick: t[3] || (t[3] = (L) => F(null))
423
+ }, {
424
+ default: z(() => [
425
+ Z($(o(c)("core.form.select.clear")), 1)
426
+ ]),
427
+ _: 1
428
+ })
429
+ ]),
430
+ key: "0"
431
+ } : void 0
432
+ ]), 1032, ["title"])) : v("", !0)
433
+ ]),
434
+ _: 1
435
+ }, 16, ["value"]));
436
+ }
437
+ });
438
+ export {
439
+ We as _,
440
+ I as a,
441
+ Ke as b,
442
+ Ae as u
443
+ };
@@ -3,8 +3,8 @@ import { useI18n as $ } from "vue-i18n";
3
3
  import { _ as C } 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 E } from "./format-B8mJm946.js";
6
- import { _ as N } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
7
- import { e as f } from "./control-7EP4tjYy.js";
6
+ import { _ as N } from "./FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js";
7
+ import { e as f } from "./control-CX9BG2UB.js";
8
8
  import { _ as y } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
9
9
  const V = { class: "flex flex-wrap items-center gap-x-1.5 gap-y-0.5" }, L = {
10
10
  key: 0,
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as x, useTemplateRef as v, computed as w, ref as $, openBlock as E, createElementBlock as P, createVNode as t, unref as e, createSlots as h, withCtx as u, createTextVNode as B, toDisplayString as C } from "vue";
2
2
  import { useI18n as N } from "vue-i18n";
3
3
  import { _ as q } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
- import { u as A } from "./describeError-Ctga6GcS.js";
5
- import { P as D, b as L, e as O, i as g, d as T } from "./index-BEDhdJQE.js";
4
+ import { u as A } from "./describeError-B-NMa--w.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-DwdVrW6q.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-q3cjODLx.js";
9
- import { b as I } from "./routeResource-DstM0hvf.js";
9
+ import { b as I } from "./routeResource-DlTsGTg_.js";
10
10
  import { _ as j } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.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-D4k5QeWS.js";
12
+ import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-CirlMdHb.js";
13
13
  const G = {
14
14
  class: "flex min-w-0 flex-col gap-group-gap",
15
15
  "data-person-sessions": ""
@@ -3,21 +3,21 @@ import { useI18n as v } from "vue-i18n";
3
3
  import { useRouter as I } from "vue-router";
4
4
  import { a as j } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-B7qSUiee.js";
5
5
  import { t as T } from "./toast-CqSDTWRX.js";
6
- import { u as N } from "./fieldMessages-C3Rpbktw.js";
6
+ import { u as N } from "./fieldMessages-DV6sESpn.js";
7
7
  import { _ as A } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
8
8
  import { _ as O } from "./Panel.vue_vue_type_script_setup_true_lang-BA0u_DtS.js";
9
- import { _ as R } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
10
- import { e as G } from "./control-7EP4tjYy.js";
11
- import { _ as Z } from "./SwitchField.vue_vue_type_script_setup_true_lang-CM8yp9JQ.js";
9
+ import { _ as R } from "./FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js";
10
+ import { e as G } from "./control-CX9BG2UB.js";
11
+ import { _ as Z } from "./SwitchField.vue_vue_type_script_setup_true_lang-B2Z2hy_h.js";
12
12
  import { _ as J } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
13
- import { u as K } from "./FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js";
14
- import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js";
15
- import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-DWfAUlnz.js";
13
+ import { u as K } from "./FormErrors.vue_vue_type_script_setup_true_lang-DWcVKZM3.js";
14
+ import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-BcIbTMHN.js";
15
+ import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-Dr0h-V_8.js";
16
16
  import { a as k, n as X } from "./useTypedEntry-aTfPBAhw.js";
17
17
  import { _ as Y } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
18
- import { n as q } from "./index-Cz4LtYKa.js";
18
+ import { n as q } from "./index-BCw_Ki6z.js";
19
19
  import { u as ee } from "./platform-q3cjODLx.js";
20
- import { u as te } from "./useLoad-CYRVx6HW.js";
20
+ import { u as te } from "./useLoad-M7V-AVwR.js";
21
21
  function ne() {
22
22
  const { t: s, te: t } = v();
23
23
  return (n) => {
@@ -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-B8mJm946.js";
6
- import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-DG2zdG_a.js";
7
- import { e as b } from "./control-7EP4tjYy.js";
8
- import { u as U } from "./describeError-Ctga6GcS.js";
9
- import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-BEDhdJQE.js";
6
+ import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js";
7
+ import { e as b } from "./control-CX9BG2UB.js";
8
+ import { u as U } from "./describeError-B-NMa--w.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-DwdVrW6q.js";
10
10
  import { t as h } from "./toast-CqSDTWRX.js";
11
11
  import { u as j, h as G } from "./platform-q3cjODLx.js";
12
- import { b as H } from "./routeResource-DstM0hvf.js";
12
+ import { b as H } from "./routeResource-DlTsGTg_.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-LlfIPWsJ.js";
14
+ import { _ as K } from "./ActionRow.vue_vue_type_script_setup_true_lang-CkvS5W6K.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-cr0xNDXP.js";
7
- import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js";
6
+ import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-BcIbTMHN.js";
7
+ import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-nqnGG7Zc.js";
8
8
  import { r as $ } from "./guards-Dve61KjR.js";
9
- import { u as C, a as E } from "./index-BEDhdJQE.js";
9
+ import { u as C, a as E } from "./index-DwdVrW6q.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,10 +1,10 @@
1
1
  import { defineComponent as g, ref as m, watch as p, openBlock as c, createElementBlock as v, createVNode as i, unref as e, withCtx as w, createBlock as x, createCommentVNode as y, createElementVNode as V, toDisplayString as $ } from "vue";
2
2
  import { useI18n as N } from "vue-i18n";
3
- import { P as S, i as b } from "./index-BEDhdJQE.js";
3
+ import { P as S, i as b } from "./index-DwdVrW6q.js";
4
4
  import { u as k } from "./platform-q3cjODLx.js";
5
- import { b as I } from "./routeResource-DstM0hvf.js";
5
+ import { b as I } from "./routeResource-DlTsGTg_.js";
6
6
  import { _ as R } from "./AsyncSection.vue_vue_type_script_setup_true_lang-Blj6KgCr.js";
7
- import { u as C } from "./useLoad-CYRVx6HW.js";
7
+ import { u as C } from "./useLoad-M7V-AVwR.js";
8
8
  import { _ as E } from "./PageBar.vue_vue_type_script_setup_true_lang-B7qdEeej.js";
9
9
  import { _ as B } from "./SectionIntro.vue_vue_type_script_setup_true_lang-CZtPrmXD.js";
10
10
  import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-CIv34nRn.js";