@wssto2/vue-core 0.4.17 → 0.4.19

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 (78) hide show
  1. package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-DOjn7fqy.js → ActionRow.vue_vue_type_script_setup_true_lang-QPvYudWc.js} +1 -1
  2. package/dist/{Activity-DnFB6WXf.js → Activity-CLyG5Y9o.js} +4 -4
  3. package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bm0sxqNz.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js} +1 -1
  4. package/dist/{Changes-DMrQYv2e.js → Changes-xF1VMbqD.js} +3 -3
  5. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-CVnZzaBm.js → CollectionPage.vue_vue_type_script_setup_true_lang-nojILoAf.js} +6 -6
  6. package/dist/{DataTable.vue_vue_type_script_setup_true_lang-Wuvo-l_z.js → DataTable.vue_vue_type_script_setup_true_lang-DPuH84I7.js} +1 -1
  7. package/dist/{DateButton.vue_vue_type_script_setup_true_lang-EcqrfWKz.js → DateButton.vue_vue_type_script_setup_true_lang-CovKG5lN.js} +5 -5
  8. package/dist/{DateField.vue_vue_type_script_setup_true_lang-BIXzNzYo.js → DateField.vue_vue_type_script_setup_true_lang-CfPwcEM2.js} +3 -3
  9. package/dist/{DeadLetters-BF9PS4mA.js → DeadLetters-AbbNs69D.js} +2 -2
  10. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-BokxZ7LU.js → FormGroup.vue_vue_type_script_setup_true_lang-C7nq7MJB.js} +1 -1
  11. package/dist/{FormView.vue_vue_type_script_setup_true_lang-Dz5TZt92.js → FormView.vue_vue_type_script_setup_true_lang-Dbfg_jGh.js} +1 -1
  12. package/dist/{General-yInbmj6I.js → General-De4Q6Wfn.js} +6 -6
  13. package/dist/{Menu.vue_vue_type_script_setup_true_lang-uPmxWvds.js → Menu.vue_vue_type_script_setup_true_lang-DsFOeCVe.js} +1 -1
  14. package/dist/{NewRolePage-09C3P6fE.js → NewRolePage-QAv_XsT0.js} +3 -3
  15. package/dist/{NumberField.vue_vue_type_script_setup_true_lang-CC8bKyR_.js → NumberField.vue_vue_type_script_setup_true_lang-djJvP6Og.js} +1 -1
  16. package/dist/{Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js → Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js} +20 -20
  17. package/dist/{ProfilePage-CvV44C0m.js → ProfilePage-CjjKhkHX.js} +6 -6
  18. package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-DijFQnU6.js → RecordHeader.vue_vue_type_script_setup_true_lang-szzWzdDu.js} +1 -1
  19. package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-BpLnmA6n.js → ResourcePage.vue_vue_type_script_setup_true_lang-BFaaFQSm.js} +2 -2
  20. package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-BqWoby16.js → RoleEditor.vue_vue_type_script_setup_true_lang-FLJk6Kb2.js} +7 -7
  21. package/dist/{RolePage-DuIFjSKH.js → RolePage-De7s2sYr.js} +7 -7
  22. package/dist/{RolesPage-BzqBqils.js → RolesPage-TXQKtK_J.js} +5 -5
  23. package/dist/{SectionList.vue_vue_type_script_setup_true_lang-D5QWy-c1.js → SectionList.vue_vue_type_script_setup_true_lang-BJnz2ROc.js} +2 -2
  24. package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-CW81A_bn.js → SectionNavigator.vue_vue_type_script_setup_true_lang-BltrQnrQ.js} +2 -2
  25. package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-BMBkEmxr.js → SegmentedField.vue_vue_type_script_setup_true_lang-Dg-_ZjgR.js} +1 -1
  26. package/dist/SelectField.vue_vue_type_script_setup_true_lang-ByDo_32P.js +493 -0
  27. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-C0XvavBw.js → SessionList.vue_vue_type_script_setup_true_lang-CuxVe7rm.js} +2 -2
  28. package/dist/{Sessions-_qmODKw2.js → Sessions-BDLI0o-z.js} +2 -2
  29. package/dist/{SettingsPage-Bz48sO08.js → SettingsPage-Kzcqv91E.js} +7 -7
  30. package/dist/{SignIn-DJsTGQ79.js → SignIn-DKo46hNK.js} +4 -4
  31. package/dist/{SignInPage-Bb78MIDk.js → SignInPage-B2v3is80.js} +3 -3
  32. package/dist/{SignInTable.vue_vue_type_script_setup_true_lang-7Z9EmLs-.js → SignInTable.vue_vue_type_script_setup_true_lang-ByEAVfjv.js} +1 -1
  33. package/dist/{SignIns-yRjJrf47.js → SignIns-D-_a_S6O.js} +2 -2
  34. package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-0weBvsJf.js → SwitchField.vue_vue_type_script_setup_true_lang-ALvJisiP.js} +1 -1
  35. package/dist/TextField.vue_vue_type_script_setup_true_lang-BslHroDP.js +314 -0
  36. package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-4wC3c0BM.js → TextareaField.vue_vue_type_script_setup_true_lang-XZRHwx-n.js} +1 -1
  37. package/dist/{TimeField.vue_vue_type_script_setup_true_lang-DrLtIexs.js → TimeField.vue_vue_type_script_setup_true_lang-BB7ZGpvP.js} +3 -3
  38. package/dist/{Tooltip.vue_vue_type_script_setup_true_lang-OOD_XNWx.js → Tooltip.vue_vue_type_script_setup_true_lang-mErNPt8e.js} +1 -1
  39. package/dist/{UserRecord-4L0FrCty.js → UserRecord-BR70ai9q.js} +7 -7
  40. package/dist/{UsersList-ww_-FoAq.js → UsersList-BC9S6omH.js} +6 -6
  41. package/dist/access/index.js +1 -1
  42. package/dist/{anchored-Cj4--8dT.js → anchored-DpuUwf-9.js} +17 -15
  43. package/dist/collection/index.js +4 -4
  44. package/dist/{control-B_Nwtmag.js → control-B4SdblL6.js} +134 -118
  45. package/dist/controls/index.js +1 -1
  46. package/dist/form/ComboField.vue.d.ts +13 -8
  47. package/dist/form/Field.vue.d.ts +2 -0
  48. package/dist/form/MultiSelectField.vue.d.ts +8 -5
  49. package/dist/form/OptionList.vue.d.ts +7 -4
  50. package/dist/form/SelectField.vue.d.ts +13 -8
  51. package/dist/form/SuggestionList.vue.d.ts +11 -6
  52. package/dist/form/TextField.vue.d.ts +6 -2
  53. package/dist/form/index.d.ts +3 -1
  54. package/dist/form/index.js +1196 -1137
  55. package/dist/form/options.d.ts +18 -5
  56. package/dist/form/suggestions.d.ts +12 -12
  57. package/dist/form/useOptions.d.ts +12 -12
  58. package/dist/form/useRecordDialog.d.ts +47 -0
  59. package/dist/identity/index.js +1 -1
  60. package/dist/{index-C6vCe149.js → index-B9KqrN-F.js} +3 -3
  61. package/dist/{index-DW9gyWL1.js → index-BrqxylSS.js} +7 -7
  62. package/dist/{index-JjALCpwi.js → index-D8akxuKo.js} +12 -12
  63. package/dist/index.d.ts +1 -1
  64. package/dist/index.js +1 -1
  65. package/dist/notifications/index.js +1 -1
  66. package/dist/overlay/anchored.d.ts +2 -0
  67. package/dist/overlay/index.js +3 -3
  68. package/dist/page/index.js +5 -5
  69. package/dist/phone/index.js +2 -2
  70. package/dist/resource/index.js +1 -1
  71. package/dist/{rowLayout-BFz4Kdoy.js → rowLayout-D1vrdy0s.js} +2 -2
  72. package/dist/shell/index.js +2 -2
  73. package/dist/{status-Cz54-7z7.js → status-vMwum3Y9.js} +1 -1
  74. package/dist/styles.css +1 -1
  75. package/dist/{suggestions-BxMm6MQA.js → suggestions-DHJFKB26.js} +50 -50
  76. package/package.json +1 -1
  77. package/dist/SelectField.vue_vue_type_script_setup_true_lang-C1Flb1hA.js +0 -465
  78. package/dist/TextField.vue_vue_type_script_setup_true_lang-D3-R5XXG.js +0 -292
@@ -0,0 +1,493 @@
1
+ import { defineComponent as Q, shallowRef as Z, ref as N, useId as ee, useTemplateRef as X, computed as v, watch as U, nextTick as te, openBlock as r, createElementBlock as g, normalizeClass as h, createElementVNode as d, createVNode as A, unref as t, withDirectives as oe, vModelText as le, createCommentVNode as y, toDisplayString as L, createBlock as V, Fragment as I, renderList as j, renderSlot as R, onScopeDispose as ae, mergeProps as G, createSlots as E, withCtx as C, normalizeProps as K, guardReactiveProps as W, createTextVNode as ne, mergeDefaults as se } from "vue";
2
+ import { useI18n as Y } from "vue-i18n";
3
+ import { _ as re } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
4
+ import { _ as O } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
5
+ import { u as ie } from "./mediaQuery-CygcXmFW.js";
6
+ import { _ as H } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
7
+ import { _ as ue } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
8
+ import { _ as de } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
9
+ import { a as ce, c as pe, _ as me, f as fe, b as ve } from "./control-B4SdblL6.js";
10
+ import { g as be, m as ge } from "./options-Ba_0uLWN.js";
11
+ import { a as ye } from "./suggestions-DHJFKB26.js";
12
+ 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 = {
13
+ key: 0,
14
+ role: "presentation"
15
+ }, _e = ["aria-selected"], $e = { class: "flex-1 py-2" }, Ce = {
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
+ }, Le = { role: "status" }, Se = {
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
+ }, Ve = {
26
+ role: "alert",
27
+ class: "text-subheadline text-content-destructive"
28
+ }, ze = ["id"], De = ["aria-labelledby"], Fe = ["aria-selected"], qe = ["disabled", "onFocus", "onClick"], Ae = {
29
+ key: 0,
30
+ "aria-hidden": "true",
31
+ class: "flex shrink-0 items-center"
32
+ }, Oe = { class: "min-w-0 flex-1 text-content-strong" }, Te = {
33
+ key: 1,
34
+ class: "shrink-0 text-footnote text-content-muted"
35
+ }, Be = {
36
+ key: 3,
37
+ class: "px-4 py-6 text-center text-subheadline text-content-muted"
38
+ }, J = /* @__PURE__ */ Q({
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(p, { emit: k }) {
51
+ const e = p, x = k, _ = Z(null), c = (n) => n, f = (n) => void (_.value = n), z = (n) => _.value === n.value, { t: o } = Y(), w = N(""), T = ee(), i = X("root"), $ = v(() => e.options.length >= e.searchFrom), D = v(() => be(ge(e.options, w.value))), F = (n) => e.multiple ? Array.isArray(e.modelValue) && e.modelValue.includes(n.value) : e.modelValue === n.value, B = v(() => e.multiple ? !1 : e.modelValue === null);
52
+ function q(n) {
53
+ if (!["ArrowDown", "ArrowUp", "Home", "End"].includes(n.key)) return;
54
+ const s = [...i.value?.querySelectorAll("[data-option]:not([disabled])") ?? []];
55
+ if (s.length === 0) return;
56
+ const u = s.indexOf(document.activeElement), a = n.key === "Home" ? 0 : n.key === "End" ? s.length - 1 : n.key === "ArrowDown" ? Math.min(u + 1, s.length - 1) : Math.max(u - 1, 0);
57
+ n.key === "ArrowUp" && u <= 0 ? i.value?.querySelector("[data-option-search]")?.focus() : s[u === -1 && n.key === "ArrowDown" ? 0 : a]?.focus(), n.preventDefault();
58
+ }
59
+ const S = v(() => e.presentation === "grouped"), l = v(() => e.status === "loading"), m = v(() => e.status === "failed");
60
+ return U(() => e.status, (n, b) => {
61
+ b !== "loading" || n === "loading" || te(() => {
62
+ const s = document.activeElement;
63
+ (!s || s === document.body || s.getAttribute("role") === "dialog" && !!i.value && s.contains(i.value)) && i.value?.querySelector("[data-option-search], [data-option]:not([disabled])")?.focus({ preventScroll: !0 });
64
+ });
65
+ }), (n, b) => (r(), g("div", {
66
+ ref_key: "root",
67
+ ref: i,
68
+ "data-test": "option-list",
69
+ onKeydown: q
70
+ }, [
71
+ $.value ? (r(), g("div", {
72
+ key: 0,
73
+ class: h(["sticky top-0 z-10 pb-2", S.value ? "bg-surface-page pt-1" : "bg-surface-cell"])
74
+ }, [
75
+ d("label", he, [
76
+ A(t(O), {
77
+ name: "search",
78
+ size: 16,
79
+ class: "shrink-0"
80
+ }),
81
+ oe(d("input", {
82
+ "onUpdate:modelValue": b[0] || (b[0] = (s) => w.value = s),
83
+ "data-option-search": "",
84
+ type: "search",
85
+ enterkeyhint: "search",
86
+ autocomplete: "off",
87
+ autocapitalize: "off",
88
+ spellcheck: "false",
89
+ "aria-label": t(o)("core.form.select.search"),
90
+ placeholder: t(o)("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, ke), [
93
+ [le, w.value]
94
+ ])
95
+ ])
96
+ ], 2)) : y("", !0),
97
+ d("ul", {
98
+ class: h(["flex flex-col", S.value ? "gap-group-gap" : "gap-2"]),
99
+ role: "listbox",
100
+ "aria-multiselectable": e.multiple || void 0,
101
+ "aria-busy": l.value || void 0
102
+ }, [
103
+ e.noneLabel && w.value === "" ? (r(), g("li", we, [
104
+ d("ul", {
105
+ role: "group",
106
+ class: h(S.value ? "rounded-group bg-surface-cell shadow-group" : "")
107
+ }, [
108
+ d("li", {
109
+ role: "option",
110
+ "aria-selected": B.value
111
+ }, [
112
+ d("button", {
113
+ type: "button",
114
+ "data-option": "",
115
+ class: h(["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", [B.value ? "text-content-strong" : "text-content-muted", S.value ? "rounded-group" : "rounded-control"]]),
116
+ onClick: b[1] || (b[1] = (s) => x("select", null))
117
+ }, [
118
+ d("span", $e, L(e.noneLabel), 1),
119
+ B.value ? (r(), V(t(O), {
120
+ key: 0,
121
+ name: "checkCustom",
122
+ size: 18,
123
+ class: "shrink-0 text-content-link"
124
+ })) : y("", !0)
125
+ ], 2)
126
+ ], 8, _e)
127
+ ], 2)
128
+ ])) : y("", !0),
129
+ l.value ? (r(), g("li", Ce, [
130
+ A(t(O), {
131
+ name: "loader4Line",
132
+ size: 16,
133
+ class: "shrink-0 animate-spin text-content-link"
134
+ }),
135
+ d("span", Le, L(t(o)("core.form.select.loading")), 1)
136
+ ])) : m.value ? (r(), g("li", Se, [
137
+ d("span", Ve, L(t(o)("core.form.select.load_failed")), 1),
138
+ d("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: b[2] || (b[2] = (s) => x("retry"))
144
+ }, L(t(o)("core.actions.retry")), 1)
145
+ ])) : y("", !0),
146
+ (r(!0), g(I, null, j(D.value, (s, u) => (r(), g("li", {
147
+ key: s.title ?? u,
148
+ role: "presentation"
149
+ }, [
150
+ s.title ? (r(), g("p", {
151
+ key: 0,
152
+ id: `${t(T)}-${u}`,
153
+ class: "px-row-inset pb-1.5 text-footnote uppercase tracking-wide text-content-muted"
154
+ }, L(s.title), 9, ze)) : y("", !0),
155
+ d("ul", {
156
+ role: "group",
157
+ "aria-labelledby": s.title ? `${t(T)}-${u}` : void 0,
158
+ class: h(S.value ? "rounded-group bg-surface-cell shadow-group" : "")
159
+ }, [
160
+ (r(!0), g(I, null, j(s.options, (a) => (r(), g("li", {
161
+ key: String(a.value),
162
+ role: "option",
163
+ "aria-selected": F(a),
164
+ class: "group/option"
165
+ }, [
166
+ d("button", {
167
+ type: "button",
168
+ "data-option": "",
169
+ "data-test": "option",
170
+ disabled: a.disabled,
171
+ class: h(["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", S.value ? "group-first/option:rounded-t-group group-last/option:rounded-b-group" : "rounded-control"]),
172
+ onFocus: (M) => f(a.value),
173
+ onBlur: b[3] || (b[3] = (M) => f(null)),
174
+ onClick: (M) => x("select", a.value)
175
+ }, [
176
+ e.multiple ? (r(), g("span", Ae, [
177
+ d("span", {
178
+ class: h(["flex size-5.5 items-center justify-center rounded-full border", F(a) ? "border-control-on bg-control-on text-white" : "border-border-control"])
179
+ }, [
180
+ F(a) ? (r(), V(t(O), {
181
+ key: 0,
182
+ name: "checkCustom",
183
+ size: 12
184
+ })) : y("", !0)
185
+ ], 2)
186
+ ])) : y("", !0),
187
+ d("span", {
188
+ class: h(["flex min-h-row min-w-0 flex-1 items-center gap-3 py-2 pr-row-inset", S.value ? "border-t border-border-separator group-first/option:border-t-0" : ""])
189
+ }, [
190
+ R(n.$slots, "option", {
191
+ option: c(a),
192
+ active: z(a),
193
+ selected: F(a)
194
+ }, () => [
195
+ a.dot ? (r(), V(H, {
196
+ key: 0,
197
+ tone: a.dot,
198
+ class: "-mr-1.5"
199
+ }, null, 8, ["tone"])) : y("", !0),
200
+ d("span", Oe, L(a.label), 1),
201
+ a.description ? (r(), g("span", Te, L(a.description), 1)) : y("", !0)
202
+ ]),
203
+ !e.multiple && F(a) ? (r(), V(t(O), {
204
+ key: 0,
205
+ name: "checkCustom",
206
+ size: 18,
207
+ class: "shrink-0 text-content-link"
208
+ })) : y("", !0)
209
+ ], 2)
210
+ ], 42, qe)
211
+ ], 8, Fe))), 128))
212
+ ], 10, De)
213
+ ]))), 128)),
214
+ D.value.length === 0 && !l.value && !m.value ? (r(), g("li", Be, L(t(o)("core.form.select.no_matches")), 1)) : y("", !0)
215
+ ], 10, xe)
216
+ ], 544));
217
+ }
218
+ });
219
+ function Ze(p) {
220
+ const k = ye(), e = p.for !== void 0;
221
+ let x = 0;
222
+ function _() {
223
+ const c = p.for?.();
224
+ if (e && c == null) {
225
+ k.cancel(), k.items.value = [], k.status.value = "idle";
226
+ return;
227
+ }
228
+ k.run(
229
+ (f) => e ? p.load(c, { signal: f }) : p.load({ signal: f })
230
+ );
231
+ }
232
+ return U(
233
+ () => p.for?.(),
234
+ (c, f) => {
235
+ f != null && x++, _();
236
+ },
237
+ { immediate: !0 }
238
+ ), ae(k.cancel), {
239
+ get status() {
240
+ return k.status.value;
241
+ },
242
+ get options() {
243
+ return k.items.value;
244
+ },
245
+ get generation() {
246
+ return x;
247
+ },
248
+ reload: _
249
+ };
250
+ }
251
+ const P = (p) => Array.isArray(p), Pe = [];
252
+ function Re(p, k) {
253
+ const e = v(() => {
254
+ const o = p();
255
+ return P(o) ? o : o.options;
256
+ }), x = v(() => {
257
+ const o = p();
258
+ return P(o) ? "loaded" : o.status;
259
+ }), _ = v(() => x.value === "loading" || x.value === "failed" ? Pe : e.value), c = v(() => x.value === "loading"), f = p();
260
+ let z = P(f) ? 0 : f.generation;
261
+ return U(
262
+ () => {
263
+ const o = p();
264
+ return P(o) ? null : o.status === "loaded" || o.status === "idle" ? o.options : null;
265
+ },
266
+ (o) => {
267
+ const w = p();
268
+ o === null || P(w) || w.generation === z || (z = w.generation, k(o));
269
+ }
270
+ ), { known: e, rows: _, status: x, loading: c, reload: () => {
271
+ const o = p();
272
+ P(o) || o.reload();
273
+ } };
274
+ }
275
+ const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid", "aria-describedby", "aria-busy"], Ue = ["id", "disabled", "aria-required", "aria-invalid", "aria-describedby", "aria-busy", "onClick"], Ne = { class: "max-h-72 overflow-y-auto" }, et = /* @__PURE__ */ Q({
276
+ __name: "SelectField",
277
+ props: /* @__PURE__ */ se({
278
+ label: {},
279
+ labelHidden: { type: Boolean },
280
+ hint: {},
281
+ error: {},
282
+ required: { type: Boolean },
283
+ editable: { type: Boolean },
284
+ disabled: { type: Boolean },
285
+ lockedReason: {},
286
+ presentation: {},
287
+ name: {},
288
+ options: {},
289
+ selected: {},
290
+ placeholder: {},
291
+ clearable: {},
292
+ modelValue: {},
293
+ searchFrom: {},
294
+ rowLayout: {}
295
+ }, { ...ve, selected: null, placeholder: void 0, clearable: void 0, modelValue: void 0, searchFrom: 9, rowLayout: void 0 }),
296
+ emits: ["update:modelValue"],
297
+ setup(p, { emit: k }) {
298
+ const e = p, x = k, _ = N(e.modelValue ?? null);
299
+ U(() => e.modelValue, (l) => _.value = l ?? null);
300
+ const c = v({
301
+ get: () => _.value,
302
+ set: (l) => {
303
+ _.value = l, x("update:modelValue", l);
304
+ }
305
+ }), { t: f } = Y(), z = ie(), o = !!ce(), w = X("sheet"), T = N(!1), i = Re(() => e.options, (l) => {
306
+ c.value !== null && !l.some((m) => m.value === c.value) && (c.value = null);
307
+ }), $ = v(() => i.known.value.find((l) => l.value === c.value) ?? (e.selected?.value === c.value ? e.selected : null)), D = v(() => e.placeholder ?? f("core.form.select.choose")), F = pe("popup", () => e.error ? "error" : e.disabled ? "locked" : "rest");
308
+ function B(l) {
309
+ c.value = l, w.value?.dismiss();
310
+ }
311
+ const q = v(() => e.rowLayout === "stacked"), S = v(() => [
312
+ "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",
313
+ q.value ? "w-full" : "",
314
+ o ? "compact:pl-0 compact:pr-0" : "",
315
+ e.disabled ? "cursor-not-allowed" : "cursor-pointer"
316
+ ]);
317
+ return (l, m) => (r(), V(me, G(t(fe)(e), {
318
+ value: $.value?.label ?? null,
319
+ "row-layout": e.rowLayout
320
+ }), E({
321
+ default: C(({ id: n, describedby: b, invalid: s }) => [
322
+ d("div", {
323
+ class: h(["max-w-full min-w-0", [q.value ? "flex w-full" : "inline-flex", t(F)]])
324
+ }, [
325
+ t(z) ? (r(), g("button", {
326
+ key: 0,
327
+ id: n,
328
+ type: "button",
329
+ disabled: e.disabled,
330
+ "aria-haspopup": "dialog",
331
+ "aria-expanded": T.value,
332
+ "aria-required": e.required || void 0,
333
+ "aria-invalid": s || void 0,
334
+ "aria-describedby": b,
335
+ "aria-busy": t(i).loading.value || void 0,
336
+ class: h(S.value),
337
+ onClick: m[0] || (m[0] = (u) => w.value?.present())
338
+ }, [
339
+ $.value?.dot ? (r(), V(H, {
340
+ key: 0,
341
+ tone: $.value.dot
342
+ }, null, 8, ["tone"])) : y("", !0),
343
+ d("span", {
344
+ class: h(["min-w-0 truncate", [q.value ? "flex-1 text-left" : "", $.value ? o ? "text-content-strong compact:text-content-muted" : "text-content-strong" : "text-content-disabled"]])
345
+ }, L($.value?.label ?? D.value), 3),
346
+ A(t(O), {
347
+ name: t(i).loading.value ? "loader4Line" : "expandUpDownLine",
348
+ size: 14,
349
+ class: h(["shrink-0 text-content-muted", t(i).loading.value ? "animate-spin" : ""])
350
+ }, null, 8, ["name", "class"])
351
+ ], 10, Ee)) : (r(), V(de, {
352
+ key: 1,
353
+ label: e.label ?? D.value,
354
+ width: "lg",
355
+ "match-trigger-width": "",
356
+ placement: "bottom-start",
357
+ arrow: !1,
358
+ block: q.value
359
+ }, {
360
+ trigger: C(({ toggle: u, attrs: a }) => [
361
+ d("button", G({
362
+ id: n,
363
+ type: "button"
364
+ }, a, {
365
+ "aria-haspopup": "listbox",
366
+ disabled: e.disabled,
367
+ "aria-required": e.required || void 0,
368
+ "aria-invalid": s || void 0,
369
+ "aria-describedby": b,
370
+ "aria-busy": t(i).loading.value || void 0,
371
+ class: S.value,
372
+ onClick: u
373
+ }), [
374
+ $.value?.dot ? (r(), V(H, {
375
+ key: 0,
376
+ tone: $.value.dot
377
+ }, null, 8, ["tone"])) : y("", !0),
378
+ d("span", {
379
+ class: h(["min-w-0 truncate", [q.value ? "flex-1 text-left" : "", $.value ? "text-content-strong" : "text-content-disabled"]])
380
+ }, L($.value?.label ?? D.value), 3),
381
+ A(t(O), {
382
+ name: t(i).loading.value ? "loader4Line" : "expandUpDownLine",
383
+ size: 14,
384
+ class: h(["shrink-0 text-content-muted", t(i).loading.value ? "animate-spin" : ""])
385
+ }, null, 8, ["name", "class"])
386
+ ], 16, Ue)
387
+ ]),
388
+ default: C(({ dismiss: u }) => [
389
+ d("div", Ne, [
390
+ A(J, {
391
+ options: t(i).rows.value,
392
+ status: t(i).status.value,
393
+ "model-value": c.value,
394
+ "search-from": e.searchFrom,
395
+ "none-label": e.clearable ? t(f)("core.form.select.clear") : void 0,
396
+ presentation: "plain",
397
+ onSelect: (a) => {
398
+ c.value = a, u();
399
+ },
400
+ onRetry: m[1] || (m[1] = (a) => t(i).reload())
401
+ }, E({ _: 2 }, [
402
+ l.$slots.option ? {
403
+ name: "option",
404
+ fn: C((a) => [
405
+ R(l.$slots, "option", K(W(a)))
406
+ ]),
407
+ key: "0"
408
+ } : void 0
409
+ ]), 1032, ["options", "status", "model-value", "search-from", "none-label", "onSelect"])
410
+ ])
411
+ ]),
412
+ _: 2
413
+ }, 1032, ["label", "block"]))
414
+ ], 2),
415
+ t(z) ? (r(), V(ue, {
416
+ key: 0,
417
+ ref_key: "sheet",
418
+ ref: w,
419
+ title: e.label ?? D.value,
420
+ grouped: "",
421
+ onPresented: m[4] || (m[4] = (u) => T.value = !0),
422
+ onDismissed: m[5] || (m[5] = (u) => T.value = !1)
423
+ }, E({
424
+ default: C(() => [
425
+ A(J, {
426
+ options: t(i).rows.value,
427
+ status: t(i).status.value,
428
+ "model-value": c.value,
429
+ "search-from": e.searchFrom,
430
+ "none-label": e.clearable ? t(f)("core.form.select.clear") : void 0,
431
+ onSelect: B,
432
+ onRetry: m[2] || (m[2] = (u) => t(i).reload())
433
+ }, E({ _: 2 }, [
434
+ l.$slots.option ? {
435
+ name: "option",
436
+ fn: C((u) => [
437
+ R(l.$slots, "option", K(W(u)))
438
+ ]),
439
+ key: "0"
440
+ } : void 0
441
+ ]), 1032, ["options", "status", "model-value", "search-from", "none-label"])
442
+ ]),
443
+ _: 2
444
+ }, [
445
+ e.clearable && c.value !== null ? {
446
+ name: "footer",
447
+ fn: C(() => [
448
+ A(re, {
449
+ prominence: "plain",
450
+ onClick: m[3] || (m[3] = (u) => B(null))
451
+ }, {
452
+ default: C(() => [
453
+ ne(L(t(f)("core.form.select.clear")), 1)
454
+ ]),
455
+ _: 1
456
+ })
457
+ ]),
458
+ key: "0"
459
+ } : void 0
460
+ ]), 1032, ["title"])) : y("", !0)
461
+ ]),
462
+ _: 2
463
+ }, [
464
+ l.$slots.trailing ? {
465
+ name: "trailing",
466
+ fn: C(() => [
467
+ R(l.$slots, "trailing")
468
+ ]),
469
+ key: "0"
470
+ } : void 0,
471
+ l.$slots.labelTrailing ? {
472
+ name: "labelTrailing",
473
+ fn: C(() => [
474
+ R(l.$slots, "labelTrailing")
475
+ ]),
476
+ key: "1"
477
+ } : void 0,
478
+ l.$slots.readonly ? {
479
+ name: "readonly",
480
+ fn: C(() => [
481
+ R(l.$slots, "readonly")
482
+ ]),
483
+ key: "2"
484
+ } : void 0
485
+ ]), 1040, ["value", "row-layout"]));
486
+ }
487
+ });
488
+ export {
489
+ et as _,
490
+ J as a,
491
+ Ze as b,
492
+ Re as u
493
+ };
@@ -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-D8X4zsx6.js";
6
- import { _ as N } from "./FormGroup.vue_vue_type_script_setup_true_lang-BokxZ7LU.js";
7
- import { e as f } from "./control-B_Nwtmag.js";
6
+ import { _ as N } from "./FormGroup.vue_vue_type_script_setup_true_lang-C7nq7MJB.js";
7
+ import { e as f } from "./control-B4SdblL6.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,
@@ -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-B-NMa--w.js";
5
- import { P as D, b as L, e as O, i as g, d as T } from "./index-JjALCpwi.js";
5
+ import { P as D, b as L, e as O, i as g, d as T } from "./index-D8akxuKo.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
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-C0XvavBw.js";
12
+ import { _ as F } from "./SessionList.vue_vue_type_script_setup_true_lang-CuxVe7rm.js";
13
13
  const G = {
14
14
  class: "flex min-w-0 flex-col gap-group-gap",
15
15
  "data-person-sessions": ""
@@ -1,21 +1,21 @@
1
1
  import { defineComponent as w, openBlock as u, createBlock as b, unref as e, withCtx as p, createElementBlock as g, toDisplayString as y, Fragment as $, renderList as Q, createElementVNode as P, createVNode as d, createTextVNode as U, createCommentVNode as S, computed as V, mergeProps as h, ref as D } from "vue";
2
2
  import { useI18n as v } from "vue-i18n";
3
3
  import { useRouter as I } from "vue-router";
4
- import { a as j } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-Bm0sxqNz.js";
4
+ import { a as j } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-CxU9aNRQ.js";
5
5
  import { t as T } from "./toast-CqSDTWRX.js";
6
6
  import { u as N } from "./fieldMessages-6HVzSDqG.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-BokxZ7LU.js";
10
- import { e as G } from "./control-B_Nwtmag.js";
11
- import { _ as Z } from "./SwitchField.vue_vue_type_script_setup_true_lang-0weBvsJf.js";
9
+ import { _ as R } from "./FormGroup.vue_vue_type_script_setup_true_lang-C7nq7MJB.js";
10
+ import { e as G } from "./control-B4SdblL6.js";
11
+ import { _ as Z } from "./SwitchField.vue_vue_type_script_setup_true_lang-ALvJisiP.js";
12
12
  import { _ as J } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
13
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-Dz5TZt92.js";
15
- import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-DrLtIexs.js";
14
+ import { _ as W } from "./FormView.vue_vue_type_script_setup_true_lang-Dbfg_jGh.js";
15
+ import { _ as E } from "./TimeField.vue_vue_type_script_setup_true_lang-BB7ZGpvP.js";
16
16
  import { a as k, n as X } from "./useTypedEntry-C7k7Dyl-.js";
17
17
  import { _ as Y } from "./PanelActions.vue_vue_type_script_setup_true_lang-E9VdIGkf.js";
18
- import { n as q } from "./index-C6vCe149.js";
18
+ import { n as q } from "./index-B9KqrN-F.js";
19
19
  import { u as ee } from "./platform-q3cjODLx.js";
20
20
  import { u as te } from "./useLoad-M7V-AVwR.js";
21
21
  function ne() {
@@ -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-BokxZ7LU.js";
7
- import { e as b } from "./control-B_Nwtmag.js";
6
+ import { _ as p } from "./FormGroup.vue_vue_type_script_setup_true_lang-C7nq7MJB.js";
7
+ import { e as b } from "./control-B4SdblL6.js";
8
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-JjALCpwi.js";
9
+ import { c as q, P as z, b as F, _ as L, i as O, d as T } from "./index-D8akxuKo.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
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-DOjn7fqy.js";
14
+ import { _ as K } from "./ActionRow.vue_vue_type_script_setup_true_lang-QPvYudWc.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-Dz5TZt92.js";
7
- import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-D3-R5XXG.js";
6
+ import { _ as S } from "./FormView.vue_vue_type_script_setup_true_lang-Dbfg_jGh.js";
7
+ import { _ as a } from "./TextField.vue_vue_type_script_setup_true_lang-BslHroDP.js";
8
8
  import { r as $ } from "./guards-Dve61KjR.js";
9
- import { u as C, a as E } from "./index-JjALCpwi.js";
9
+ import { u as C, a as E } from "./index-D8akxuKo.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 _, computed as p, openBlock as y, createElementBlock as g, createVNode as l, unref as i, withCtx as s, createElementVNode as a, toDisplayString as r, createTextVNode as h } from "vue";
2
2
  import { useI18n as b } from "vue-i18n";
3
- import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-Wuvo-l_z.js";
3
+ import { _ as f } from "./DataTable.vue_vue_type_script_setup_true_lang-DPuH84I7.js";
4
4
  import { _ as v } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
5
5
  const w = {
6
6
  signed_in: { tone: "positive", byOther: !1 },
@@ -1,13 +1,13 @@
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-JjALCpwi.js";
3
+ import { P as S, i as b } from "./index-D8akxuKo.js";
4
4
  import { u as k } from "./platform-q3cjODLx.js";
5
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
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
- import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-7Z9EmLs-.js";
10
+ import { _ as P } from "./SignInTable.vue_vue_type_script_setup_true_lang-ByEAVfjv.js";
11
11
  import { _ as h } from "./ViewTabs.vue_vue_type_script_setup_true_lang-BJIoZAlH.js";
12
12
  const U = {
13
13
  class: "flex min-w-0 flex-col gap-group-gap",
@@ -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 "./control-B_Nwtmag.js";
3
+ import { u as V, _ as D, f as T, b as E } from "./control-B4SdblL6.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({