@wssto2/vue-core 0.4.18 → 0.4.20

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 (81) 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-DB9ABAMb.js → Activity-C0NvjIi5.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-IIczcs6O.js → Changes-hoMHeAZt.js} +3 -3
  5. package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-CUoyYpaW.js → CollectionPage.vue_vue_type_script_setup_true_lang-BNM_cbXa.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-CpuH0WTl.js +281 -0
  9. package/dist/{DeadLetters-Bq5YpnvT.js → DeadLetters-O6QReswO.js} +2 -2
  10. package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-BokxZ7LU.js → FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js} +3 -2
  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-DQruOZs2.js → General-9Sgxb74n.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-BcA8jBBQ.js → NewRolePage-D-LunWMH.js} +3 -3
  15. package/dist/NumberField.vue_vue_type_script_setup_true_lang-DaE5BLm4.js +161 -0
  16. package/dist/{Popover.vue_vue_type_script_setup_true_lang-BTOzgIQF.js → Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js} +8 -8
  17. package/dist/{ProfilePage-BqdCzyax.js → ProfilePage-DJUDCyEr.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-DPpCuJWk.js → RoleEditor.vue_vue_type_script_setup_true_lang-D-b-O6SG.js} +7 -7
  21. package/dist/{RolePage-IES_ADt5.js → RolePage-Ha-EgoEJ.js} +7 -7
  22. package/dist/{RolesPage-D0K7tEL-.js → RolesPage-8uWWCClN.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-C3FbRQW7.js +515 -0
  27. package/dist/{SessionList.vue_vue_type_script_setup_true_lang-C0XvavBw.js → SessionList.vue_vue_type_script_setup_true_lang-D5qm77Zo.js} +2 -2
  28. package/dist/{Sessions-BfpiOhGs.js → Sessions-Dz4KYMu9.js} +2 -2
  29. package/dist/{SettingsPage-BnEpURcU.js → SettingsPage-D47NSOYW.js} +7 -7
  30. package/dist/{SignIn-DrLE0gNr.js → SignIn-CNv68Tba.js} +4 -4
  31. package/dist/{SignInPage-CRynZCU2.js → SignInPage-CsjC4aiV.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-BQ8tISWn.js → SignIns-CgsNf8uf.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-CP2WeU36.js +317 -0
  36. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-BJ4__cvJ.js +93 -0
  37. package/dist/TimeField.vue_vue_type_script_setup_true_lang-DBxKAWRo.js +190 -0
  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-CqmPm4Fv.js → UserRecord-B9r_9U1z.js} +7 -7
  40. package/dist/{UsersList-CHAray61.js → UsersList-BBLa3OCv.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 +9 -3
  47. package/dist/form/DateField.vue.d.ts +4 -0
  48. package/dist/form/DateTimeField.vue.d.ts +4 -0
  49. package/dist/form/Field.vue.d.ts +2 -0
  50. package/dist/form/MoneyField.vue.d.ts +10 -5
  51. package/dist/form/NumberField.vue.d.ts +13 -5
  52. package/dist/form/SelectField.vue.d.ts +5 -1
  53. package/dist/form/TextField.vue.d.ts +10 -2
  54. package/dist/form/TextareaField.vue.d.ts +4 -0
  55. package/dist/form/TimeField.vue.d.ts +4 -0
  56. package/dist/form/index.d.ts +1 -1
  57. package/dist/form/index.js +1173 -1142
  58. package/dist/form/options.d.ts +4 -0
  59. package/dist/identity/index.js +1 -1
  60. package/dist/{index-91Lo0hJy.js → index-D-0JNiFF.js} +3 -3
  61. package/dist/{index-wlRejl73.js → index-D6BjUQJT.js} +7 -7
  62. package/dist/{index-sYamgVg7.js → index-Dxu7ZfCC.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-B_IMA25a.js → status-BLTC7wi1.js} +1 -1
  74. package/dist/styles.css +1 -1
  75. package/package.json +1 -1
  76. package/dist/DateField.vue_vue_type_script_setup_true_lang-8mvjzRA-.js +0 -278
  77. package/dist/NumberField.vue_vue_type_script_setup_true_lang-CC8bKyR_.js +0 -150
  78. package/dist/SelectField.vue_vue_type_script_setup_true_lang-DkbBJpYX.js +0 -489
  79. package/dist/TextField.vue_vue_type_script_setup_true_lang-CWgn-vGl.js +0 -299
  80. package/dist/TextareaField.vue_vue_type_script_setup_true_lang-4wC3c0BM.js +0 -91
  81. package/dist/TimeField.vue_vue_type_script_setup_true_lang-BebAIPeL.js +0 -187
@@ -0,0 +1,317 @@
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
+ import { useI18n as G } from "vue-i18n";
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 "./control-B4SdblL6.js";
5
+ import { _ as xe } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
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-DHJFKB26.js";
8
+ const Me = ["id", "aria-busy"], qe = { class: "min-h-0 flex-1 overflow-y-auto p-1.5" }, Be = {
9
+ key: 0,
10
+ class: "px-2.5 pb-1 pt-1.5 text-caption font-semibold uppercase text-content-disabled",
11
+ role: "presentation"
12
+ }, Le = ["id", "aria-selected", "aria-disabled", "onMouseenter", "onClick"], Se = { class: "min-w-0 flex-1" }, Ce = { class: "block truncate text-body text-content-strong" }, Ve = {
13
+ key: 0,
14
+ class: "font-semibold"
15
+ }, We = {
16
+ key: 0,
17
+ class: "block truncate text-footnote text-content-muted"
18
+ }, De = {
19
+ key: 2,
20
+ class: "px-3 py-2 text-footnote text-content-muted",
21
+ role: "status"
22
+ }, Te = {
23
+ key: 3,
24
+ class: "px-3 py-2 text-footnote text-content-destructive",
25
+ role: "alert"
26
+ }, Re = {
27
+ key: 4,
28
+ class: "px-3 py-2 text-footnote text-content-muted"
29
+ }, Ee = {
30
+ key: 0,
31
+ class: "mx-1.5 mb-1.5 mt-0.5 border-t border-border-separator px-2.5 pb-0.5 pt-2 text-caption text-content-muted compact:hidden",
32
+ "aria-hidden": "true"
33
+ }, Ne = /* @__PURE__ */ K({
34
+ __name: "SuggestionList",
35
+ props: {
36
+ id: {},
37
+ anchor: {},
38
+ open: { type: Boolean },
39
+ items: {},
40
+ highlighted: {},
41
+ query: {},
42
+ status: {},
43
+ recent: { type: Boolean },
44
+ emptyMessage: { type: Boolean },
45
+ hint: { default: void 0 },
46
+ selected: { default: null }
47
+ },
48
+ emits: ["pick", "hover"],
49
+ setup($, { emit: L }) {
50
+ const o = $, t = L, { t: c } = G(), f = N("panel"), k = v(() => U(o.open, o.items.length, o.status, o.emptyMessage)), _ = v(() => o.status === "loading"), M = (u) => u, g = (u) => _e(u.label, o.query), { style: S } = be(f, {
51
+ reference: () => o.anchor,
52
+ placement: () => "bottom-start",
53
+ offset: 4,
54
+ padding: 8,
55
+ fit: (u, h) => {
56
+ const s = window.innerWidth < ke;
57
+ u.style.width = `${s ? window.innerWidth - 16 : o.anchor?.offsetWidth ?? 0}px`, u.style.minWidth = s ? "" : "min(20rem, calc(100vw - 16px))", u.style.maxHeight = `${Math.max(120, Math.min(320, h.height))}px`;
58
+ }
59
+ });
60
+ return te(() => o.highlighted, () => void oe(() => f.value?.querySelector("[aria-selected='true']")?.scrollIntoView?.({ block: "nearest" }))), (u, h) => k.value ? (n(), l("div", {
61
+ key: 0,
62
+ id: `${o.id}-list`,
63
+ ref_key: "panel",
64
+ ref: f,
65
+ role: "listbox",
66
+ "aria-busy": _.value || void 0,
67
+ style: ne(i(S)),
68
+ "data-test": "suggestion-list",
69
+ class: "z-1000 flex flex-col overflow-hidden rounded-menu bg-surface-overlay shadow-float",
70
+ onMousedown: h[0] || (h[0] = se(() => {
71
+ }, ["prevent"]))
72
+ }, [
73
+ m("div", qe, [
74
+ o.recent ? (n(), l("p", Be, r(i(c)("core.form.suggestions.recent")), 1)) : p("", !0),
75
+ o.items.length > 0 ? (n(!0), l(R, { key: 1 }, ae(o.items, (s, a) => (n(), l("div", {
76
+ id: `${o.id}-option-${a}`,
77
+ key: String(s.value),
78
+ role: "option",
79
+ "aria-selected": a === o.highlighted,
80
+ "aria-disabled": s.disabled || void 0,
81
+ "data-test": "suggestion-option",
82
+ class: B(["flex cursor-pointer items-center gap-2.5 rounded-control px-2.5 py-2", [a === o.highlighted ? "bg-tint-soft" : "hover:bg-fill", s.disabled ? "cursor-not-allowed opacity-45" : "", _.value ? "opacity-60" : ""]]),
83
+ onMouseenter: (d) => t("hover", a),
84
+ onClick: (d) => !s.disabled && t("pick", s)
85
+ }, [
86
+ o.recent ? (n(), P(i(xe), {
87
+ key: 0,
88
+ name: "history",
89
+ size: 16,
90
+ class: "shrink-0 text-content-disabled"
91
+ })) : p("", !0),
92
+ b(u.$slots, "option", {
93
+ option: M(s),
94
+ active: a === o.highlighted,
95
+ selected: o.selected === s.value
96
+ }, () => [
97
+ m("span", Se, [
98
+ m("span", Ce, [
99
+ o.recent ? (n(), l(R, { key: 0 }, [
100
+ E(r(s.label), 1)
101
+ ], 64)) : (n(), l(R, { key: 1 }, [
102
+ E(r(g(s).before), 1),
103
+ g(s).match ? (n(), l("strong", Ve, r(g(s).match), 1)) : p("", !0),
104
+ E(r(g(s).after), 1)
105
+ ], 64))
106
+ ]),
107
+ s.description ? (n(), l("span", We, r(s.description), 1)) : p("", !0)
108
+ ])
109
+ ])
110
+ ], 42, Le))), 128)) : o.status === "loading" ? (n(), l("p", De, r(i(c)("core.form.select.loading")), 1)) : o.status === "failed" ? (n(), l("p", Te, r(i(c)("core.form.select.failed")), 1)) : (n(), l("p", Re, r(i(c)("core.form.select.no_matches")), 1))
111
+ ]),
112
+ o.hint && o.items.length > 0 ? (n(), l("p", Ee, r(o.hint), 1)) : p("", !0)
113
+ ], 44, Me)) : p("", !0);
114
+ }
115
+ }), Pe = {
116
+ key: 0,
117
+ class: "flex shrink-0 items-center",
118
+ "data-test": "field-prefix"
119
+ }, Ae = {
120
+ key: 1,
121
+ class: "shrink-0 text-footnote text-content-muted"
122
+ }, Fe = { class: "relative min-w-0 flex-1" }, ze = ["id", "type", "name", "placeholder", "maxlength", "autocomplete", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby", "role", "aria-autocomplete", "aria-expanded", "aria-controls", "aria-activedescendant"], Ie = { class: "invisible" }, Oe = { class: "text-content-disabled" }, He = {
123
+ key: 2,
124
+ class: "shrink-0 text-footnote text-content-muted"
125
+ }, Ye = /* @__PURE__ */ K({
126
+ __name: "TextField",
127
+ props: /* @__PURE__ */ H(/* @__PURE__ */ pe({
128
+ label: {},
129
+ labelHidden: { type: Boolean },
130
+ hint: {},
131
+ error: {},
132
+ required: { type: Boolean },
133
+ editable: { type: Boolean },
134
+ disabled: { type: Boolean },
135
+ lockedReason: {},
136
+ presentation: {},
137
+ name: {},
138
+ type: {},
139
+ placeholder: {},
140
+ maxLength: {},
141
+ autocomplete: {},
142
+ mono: { type: Boolean },
143
+ prefix: {},
144
+ suffix: {},
145
+ width: {},
146
+ suggestions: { type: [Array, Function] },
147
+ suggestionsMinLength: {},
148
+ suggestionsDebounce: {},
149
+ suggestionsLimit: {},
150
+ recents: {}
151
+ }, {
152
+ ...ye,
153
+ type: "text",
154
+ placeholder: void 0,
155
+ maxLength: void 0,
156
+ autocomplete: void 0,
157
+ mono: !1,
158
+ prefix: void 0,
159
+ suffix: void 0,
160
+ width: "md",
161
+ suggestions: void 0,
162
+ suggestionsMinLength: 2,
163
+ suggestionsDebounce: 300,
164
+ suggestionsLimit: 8,
165
+ recents: void 0
166
+ }), {
167
+ modelValue: { default: "" },
168
+ modelModifiers: {}
169
+ }),
170
+ emits: /* @__PURE__ */ H(["picked", "focus", "blur"], ["update:modelValue"]),
171
+ setup($, { expose: L, emit: o }) {
172
+ const t = $, c = ie($, "modelValue"), f = o, k = N("input"), _ = N("anchor"), M = !!fe(), g = he("text", () => t.error ? "error" : t.disabled ? "locked" : "rest"), S = v(() => M ? me(t.width) : "w-full"), { t: u } = G(), h = (e) => typeof e == "string" ? { value: e, label: e } : { value: e.text, label: e.text, ...e.detail !== void 0 ? { description: e.detail } : {} }, s = v(() => {
173
+ const e = t.suggestions;
174
+ if (e)
175
+ return typeof e == "function" ? async (y, x) => (await e(y, x)).map(h) : e.map(h);
176
+ }), a = v(() => s.value !== void 0), d = we({
177
+ source: () => s.value,
178
+ minLength: () => t.suggestionsMinLength,
179
+ debounce: () => t.suggestionsDebounce,
180
+ limit: () => t.suggestionsLimit,
181
+ listAllWhenEmpty: !1,
182
+ recents: () => t.recents
183
+ }), { items: C, open: V, status: A, highlighted: F, showingRecent: z } = d, I = le(!0), W = () => {
184
+ const e = k.value;
185
+ I.value = !e || e.selectionStart === e.value.length && e.selectionEnd === e.value.length;
186
+ }, q = v(() => a.value && V.value && !z.value && I.value && d.current.value ? $e(c.value, d.current.value.label) : ""), O = v(() => U(V.value, C.value.length, A.value, !1));
187
+ function j(e) {
188
+ W(), a.value && d.ask(e.target.value);
189
+ }
190
+ function D(e) {
191
+ c.value = e.value, d.remember(e), d.close(), f("picked", { text: e.value, ...e.description !== void 0 ? { detail: e.description } : {} });
192
+ }
193
+ function J(e) {
194
+ f("focus", e), a.value && c.value === "" && d.show("");
195
+ }
196
+ function Q(e) {
197
+ d.close(), f("blur", e);
198
+ }
199
+ function X() {
200
+ const e = d.current.value;
201
+ return !q.value || !e ? !1 : (D(e), !0);
202
+ }
203
+ const Y = (e) => {
204
+ a.value && d.keydown(e, { pick: D, enterNeedsMove: !0, complete: X });
205
+ };
206
+ return L({ focus: () => k.value?.focus() }), (e, y) => (n(), P(ve, re(i(ge)(t), {
207
+ value: c.value,
208
+ prefix: t.prefix,
209
+ suffix: t.suffix,
210
+ "value-style": t.mono ? "mono" : void 0
211
+ }), ce({
212
+ default: w(({ id: x, describedby: Z, invalid: ee }) => [
213
+ m("div", {
214
+ ref_key: "anchor",
215
+ ref: _,
216
+ class: B(["flex items-center gap-1.5", [i(g), S.value]])
217
+ }, [
218
+ e.$slots.prefix ? (n(), l("span", Pe, [
219
+ b(e.$slots, "prefix")
220
+ ])) : p("", !0),
221
+ t.prefix ? (n(), l("span", Ae, r(t.prefix), 1)) : p("", !0),
222
+ m("div", Fe, [
223
+ de(m("input", {
224
+ id: x,
225
+ ref_key: "input",
226
+ ref: k,
227
+ "onUpdate:modelValue": y[0] || (y[0] = (T) => c.value = T),
228
+ type: t.type,
229
+ name: t.name,
230
+ placeholder: t.placeholder,
231
+ maxlength: t.maxLength,
232
+ autocomplete: a.value ? "off" : t.autocomplete,
233
+ disabled: t.disabled,
234
+ required: t.required,
235
+ "aria-required": t.required || void 0,
236
+ "aria-invalid": ee || void 0,
237
+ "aria-describedby": Z,
238
+ role: a.value ? "combobox" : void 0,
239
+ "aria-autocomplete": a.value ? "both" : void 0,
240
+ "aria-expanded": a.value ? O.value : void 0,
241
+ "aria-controls": a.value ? `${x}-list` : void 0,
242
+ "aria-activedescendant": a.value && O.value && i(C).length > 0 ? `${x}-option-${i(F)}` : void 0,
243
+ class: B(["block w-full min-w-0 border-0 bg-transparent px-0 py-1 text-body text-content-strong placeholder:text-content-disabled focus:outline-none focus:ring-0 disabled:cursor-not-allowed", [t.mono ? "font-mono" : "", M && !a.value ? "compact:text-right" : ""]]),
244
+ onInput: j,
245
+ onKeyup: W,
246
+ onClick: W,
247
+ onKeydown: Y,
248
+ onFocus: J,
249
+ onBlur: Q
250
+ }, null, 42, ze), [
251
+ [ue, c.value]
252
+ ]),
253
+ q.value ? (n(), l("span", {
254
+ key: 0,
255
+ "aria-hidden": "true",
256
+ class: B(["pointer-events-none absolute inset-0 flex items-center overflow-hidden whitespace-pre py-1 text-body", t.mono ? "font-mono" : ""]),
257
+ "data-test": "completion"
258
+ }, [
259
+ m("span", Ie, r(c.value), 1),
260
+ m("span", Oe, r(q.value), 1)
261
+ ], 2)) : p("", !0)
262
+ ]),
263
+ t.suffix ? (n(), l("span", He, r(t.suffix), 1)) : p("", !0)
264
+ ], 2),
265
+ a.value ? (n(), P(Ne, {
266
+ key: 0,
267
+ id: x,
268
+ anchor: _.value,
269
+ open: i(V),
270
+ items: i(C),
271
+ highlighted: i(F),
272
+ query: c.value,
273
+ status: i(A),
274
+ recent: i(z),
275
+ "empty-message": !1,
276
+ hint: q.value ? i(u)("core.form.suggestions.keys_complete") : i(u)("core.form.suggestions.keys_pick"),
277
+ onPick: D,
278
+ onHover: y[1] || (y[1] = (T) => i(d).highlight(T))
279
+ }, null, 8, ["id", "anchor", "open", "items", "highlighted", "query", "status", "recent", "hint"])) : p("", !0)
280
+ ]),
281
+ _: 2
282
+ }, [
283
+ e.$slots.prefix ? {
284
+ name: "prefix",
285
+ fn: w(() => [
286
+ b(e.$slots, "prefix")
287
+ ]),
288
+ key: "0"
289
+ } : void 0,
290
+ e.$slots.trailing ? {
291
+ name: "trailing",
292
+ fn: w(() => [
293
+ b(e.$slots, "trailing")
294
+ ]),
295
+ key: "1"
296
+ } : void 0,
297
+ e.$slots.labelTrailing ? {
298
+ name: "labelTrailing",
299
+ fn: w(() => [
300
+ b(e.$slots, "labelTrailing")
301
+ ]),
302
+ key: "2"
303
+ } : void 0,
304
+ e.$slots.readonly ? {
305
+ name: "readonly",
306
+ fn: w(() => [
307
+ b(e.$slots, "readonly")
308
+ ]),
309
+ key: "3"
310
+ } : void 0
311
+ ]), 1040, ["value", "prefix", "suffix", "value-style"]));
312
+ }
313
+ });
314
+ export {
315
+ Ye as _,
316
+ Ne as a
317
+ };
@@ -0,0 +1,93 @@
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
+ 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 "./control-B4SdblL6.js";
4
+ const K = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], O = {
5
+ key: 0,
6
+ class: "mt-1 self-end text-footnote tabular-nums text-content-muted"
7
+ }, Y = /* @__PURE__ */ V({
8
+ __name: "TextareaField",
9
+ props: /* @__PURE__ */ y(/* @__PURE__ */ _({
10
+ label: {},
11
+ labelHidden: { type: Boolean },
12
+ hint: {},
13
+ error: {},
14
+ required: { type: Boolean },
15
+ editable: { type: Boolean },
16
+ disabled: { type: Boolean },
17
+ lockedReason: {},
18
+ presentation: {},
19
+ name: {},
20
+ placeholder: {},
21
+ maxLength: {},
22
+ rows: {},
23
+ autocomplete: {},
24
+ stacked: { type: Boolean }
25
+ }, { ...J, placeholder: void 0, maxLength: void 0, rows: 3, autocomplete: void 0, stacked: !1 }), {
26
+ modelValue: { default: "" },
27
+ modelModifiers: {}
28
+ }),
29
+ emits: /* @__PURE__ */ y(["focus", "blur"], ["update:modelValue"]),
30
+ setup(u, { expose: g, emit: h }) {
31
+ const e = u, t = L(u, "modelValue"), m = h, c = M("area"), k = !!G(), w = j(), { editable: x } = H(e), s = i(() => k && !e.stacked && !w.value && x.value && !!e.label), r = i(() => e.maxLength ? `${t.value.length} / ${e.maxLength}` : void 0), B = i(() => s.value && r.value ? [e.hint, r.value].filter(Boolean).join(" · ") : e.hint), $ = U("area", () => e.error ? "error" : e.disabled ? "locked" : "rest");
32
+ return g({ focus: () => c.value?.focus() }), (o, a) => (p(), D(A, F({ ...f(I)(e), hint: B.value }, {
33
+ value: t.value,
34
+ "row-layout": s.value ? "entry" : "stacked",
35
+ "row-label-align": "top"
36
+ }), S({
37
+ default: n(({ id: q, describedby: C, invalid: T }) => [
38
+ v("div", {
39
+ class: b(["w-full", f($)])
40
+ }, [
41
+ z(v("textarea", {
42
+ id: q,
43
+ ref_key: "area",
44
+ ref: c,
45
+ "onUpdate:modelValue": a[0] || (a[0] = (l) => t.value = l),
46
+ name: e.name,
47
+ rows: e.rows,
48
+ placeholder: e.placeholder,
49
+ maxlength: e.maxLength,
50
+ autocomplete: e.autocomplete,
51
+ disabled: e.disabled,
52
+ required: e.required,
53
+ "aria-required": e.required || void 0,
54
+ "aria-invalid": T || void 0,
55
+ "aria-describedby": C,
56
+ class: b(["block w-full border-0 bg-transparent px-0 py-1 text-body text-content-strong placeholder:text-content-disabled focus:outline-none focus:ring-0 disabled:cursor-not-allowed", e.disabled ? "resize-none" : "resize-y"]),
57
+ onFocus: a[1] || (a[1] = (l) => m("focus", l)),
58
+ onBlur: a[2] || (a[2] = (l) => m("blur", l))
59
+ }, null, 42, K), [
60
+ [E, t.value]
61
+ ])
62
+ ], 2),
63
+ !s.value && r.value ? (p(), P("p", O, R(r.value), 1)) : N("", !0)
64
+ ]),
65
+ _: 2
66
+ }, [
67
+ o.$slots.trailing ? {
68
+ name: "trailing",
69
+ fn: n(() => [
70
+ d(o.$slots, "trailing")
71
+ ]),
72
+ key: "0"
73
+ } : void 0,
74
+ o.$slots.labelTrailing ? {
75
+ name: "labelTrailing",
76
+ fn: n(() => [
77
+ d(o.$slots, "labelTrailing")
78
+ ]),
79
+ key: "1"
80
+ } : void 0,
81
+ o.$slots.readonly ? {
82
+ name: "readonly",
83
+ fn: n(() => [
84
+ d(o.$slots, "readonly")
85
+ ]),
86
+ key: "2"
87
+ } : void 0
88
+ ]), 1040, ["value", "row-layout"]));
89
+ }
90
+ });
91
+ export {
92
+ Y as _
93
+ };
@@ -0,0 +1,190 @@
1
+ import { computed as m, defineComponent as G, useModel as J, useTemplateRef as b, openBlock as d, createBlock as F, mergeProps as T, unref as o, createSlots as O, withCtx as u, createElementBlock as _, Fragment as U, createVNode as c, createTextVNode as X, toDisplayString as Y, createCommentVNode as z, createElementVNode as h, normalizeClass as Z, renderSlot as x, mergeModels as L, mergeDefaults as ee, nextTick as M } from "vue";
2
+ import { useI18n as R } from "vue-i18n";
3
+ import { _ as te } from "./DateButton.vue_vue_type_script_setup_true_lang-CovKG5lN.js";
4
+ import { u as oe } from "./format-D8X4zsx6.js";
5
+ import { _ as le } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
6
+ import { u as ae } from "./mediaQuery-CygcXmFW.js";
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 "./control-B4SdblL6.js";
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
+ function ke(s) {
11
+ const { t: i } = R(), y = m(() => [i("core.form.time.words.now").toLowerCase(), "now"]);
12
+ return {
13
+ placeholder: m(() => i("core.form.time.placeholder")),
14
+ parse(e) {
15
+ if (y.value.includes(e.trim().toLowerCase())) return { value: I(s()) };
16
+ const l = ce(e, s());
17
+ return "time" in l ? { value: l.time } : { error: l.error === "step" ? i("core.form.time.step", { step: s() }) : i("core.form.time.invalid") };
18
+ },
19
+ shortcuts: (e) => (e ?? me).map((l) => de(l, i("core.form.time.now"), I(s())))
20
+ };
21
+ }
22
+ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], ge = ["aria-label", "onClick"], Be = /* @__PURE__ */ G({
23
+ __name: "TimeField",
24
+ props: /* @__PURE__ */ L(/* @__PURE__ */ ee({
25
+ label: {},
26
+ labelHidden: { type: Boolean },
27
+ hint: {},
28
+ error: {},
29
+ required: { type: Boolean },
30
+ editable: { type: Boolean },
31
+ disabled: { type: Boolean },
32
+ lockedReason: {},
33
+ presentation: {},
34
+ name: {},
35
+ minuteStep: {},
36
+ quickTimes: {}
37
+ }, { ...ue, minuteStep: 1, quickTimes: void 0 }), {
38
+ modelValue: { default: null },
39
+ modelModifiers: {}
40
+ }),
41
+ emits: /* @__PURE__ */ L(["focus", "blur"], ["update:modelValue"]),
42
+ setup(s, { expose: i, emit: y }) {
43
+ const e = s, l = J(s, "modelValue"), $ = y, { t: p } = R(), A = oe(), H = ae(), q = b("input"), f = b("popover"), C = b("panel"), V = b("sheet"), k = ke(() => e.minuteStep), a = pe({ model: l, display: (t) => t, parse: k.parse }), S = m(() => k.shortcuts(e.quickTimes)), B = m(() => e.error || a.message.value), K = se("date", () => B.value ? "error" : e.disabled ? "locked" : "rest"), W = m(() => {
44
+ const t = fe(l.value);
45
+ return t ? A.time(new Date(2e3, 0, 1, t.hour, t.minute)) : null;
46
+ }), D = m(() => Q(a.typed.value) ? a.typed.value : Q(l.value) ? l.value : null);
47
+ async function w(t) {
48
+ e.disabled || (f.value?.present(), t && (await M(), await M(), C.value?.querySelector("[role=listbox]")?.focus()));
49
+ }
50
+ function j(t) {
51
+ t.key === "Enter" ? (a.commit(), f.value?.dismiss()) : t.key === "ArrowDown" && (t.preventDefault(), w(!0));
52
+ }
53
+ return i({ focus: () => q.value?.focus() }), (t, r) => (d(), F(ie, T({ ...o(ne)(e), error: B.value }, {
54
+ value: W.value,
55
+ "value-style": "numeric"
56
+ }), O({
57
+ default: u(({ id: E, describedby: N, invalid: P }) => [
58
+ o(H) ? (d(), _(U, { key: 0 }, [
59
+ c(te, T({ id: E, "aria-describedby": N }, {
60
+ disabled: e.disabled,
61
+ invalid: P,
62
+ placeholder: o(p)("core.form.select.choose"),
63
+ onClick: r[0] || (r[0] = (v) => V.value?.present())
64
+ }), {
65
+ default: u(() => [
66
+ l.value ? (d(), _(U, { key: 0 }, [
67
+ X(Y(l.value), 1)
68
+ ], 64)) : z("", !0)
69
+ ]),
70
+ _: 1
71
+ }, 16, ["disabled", "invalid", "placeholder"]),
72
+ c(ve, {
73
+ ref_key: "sheet",
74
+ ref: V,
75
+ title: e.label ?? o(p)("core.form.time.label"),
76
+ mode: "time",
77
+ "model-value": l.value,
78
+ shortcuts: S.value,
79
+ step: e.minuteStep,
80
+ clearable: !e.required,
81
+ "onUpdate:modelValue": o(a).set
82
+ }, null, 8, ["title", "model-value", "shortcuts", "step", "clearable", "onUpdate:modelValue"])
83
+ ], 64)) : (d(), F(re, {
84
+ key: 1,
85
+ ref_key: "popover",
86
+ ref: f,
87
+ label: e.label ?? o(p)("core.form.time.label"),
88
+ width: "sm",
89
+ placement: "bottom-start",
90
+ arrow: !1,
91
+ autofocus: !1
92
+ }, {
93
+ trigger: u(({ attrs: v, presented: g }) => [
94
+ h("div", {
95
+ class: Z(["inline-flex max-w-full items-center gap-2", o(K)])
96
+ }, [
97
+ h("input", T({
98
+ id: E,
99
+ ref_key: "input",
100
+ ref: q
101
+ }, v, {
102
+ type: "text",
103
+ role: "combobox",
104
+ autocomplete: "off",
105
+ size: "10",
106
+ name: e.name,
107
+ value: o(a).text.value,
108
+ placeholder: o(k).placeholder.value,
109
+ disabled: e.disabled,
110
+ required: e.required,
111
+ "aria-required": e.required || void 0,
112
+ "aria-invalid": P || void 0,
113
+ "aria-describedby": N,
114
+ class: "block min-h-7 min-w-0 border-0 bg-transparent py-1 pl-2.5 text-body tabular-nums text-content-strong placeholder:text-content-disabled focus:outline-none focus:ring-0 disabled:cursor-not-allowed",
115
+ onInput: r[1] || (r[1] = (n) => o(a).input(n.target.value)),
116
+ onFocus: r[2] || (r[2] = (n) => $("focus", n)),
117
+ onBlur: r[3] || (r[3] = (n) => {
118
+ o(a).commit(), $("blur", n);
119
+ }),
120
+ onKeydown: j,
121
+ onClick: r[4] || (r[4] = (n) => w(!1))
122
+ }), null, 16, we),
123
+ e.disabled ? z("", !0) : (d(), _("button", {
124
+ key: 0,
125
+ type: "button",
126
+ tabindex: "-1",
127
+ "aria-label": o(p)("core.form.time.open"),
128
+ class: "mr-2 flex shrink-0 cursor-pointer items-center text-content-link",
129
+ onClick: (n) => g ? f.value?.dismiss() : w(!0)
130
+ }, [
131
+ c(o(le), {
132
+ name: "timeLine",
133
+ size: 18
134
+ })
135
+ ], 8, ge))
136
+ ], 2)
137
+ ]),
138
+ default: u(({ dismiss: v }) => [
139
+ h("div", {
140
+ ref_key: "panel",
141
+ ref: C,
142
+ class: "flex flex-col gap-2.5"
143
+ }, [
144
+ c(be, {
145
+ "model-value": D.value,
146
+ step: e.minuteStep,
147
+ "onUpdate:modelValue": o(a).set
148
+ }, null, 8, ["model-value", "step", "onUpdate:modelValue"]),
149
+ c(ye, {
150
+ items: S.value,
151
+ selected: D.value,
152
+ onPick: (g) => {
153
+ o(a).set(g), v();
154
+ }
155
+ }, null, 8, ["items", "selected", "onPick"])
156
+ ], 512)
157
+ ]),
158
+ _: 2
159
+ }, 1032, ["label"]))
160
+ ]),
161
+ _: 2
162
+ }, [
163
+ t.$slots.trailing ? {
164
+ name: "trailing",
165
+ fn: u(() => [
166
+ x(t.$slots, "trailing")
167
+ ]),
168
+ key: "0"
169
+ } : void 0,
170
+ t.$slots.labelTrailing ? {
171
+ name: "labelTrailing",
172
+ fn: u(() => [
173
+ x(t.$slots, "labelTrailing")
174
+ ]),
175
+ key: "1"
176
+ } : void 0,
177
+ t.$slots.readonly ? {
178
+ name: "readonly",
179
+ fn: u(() => [
180
+ x(t.$slots, "readonly")
181
+ ]),
182
+ key: "2"
183
+ } : void 0
184
+ ]), 1040, ["value"]));
185
+ }
186
+ });
187
+ export {
188
+ Be as _,
189
+ ke as u
190
+ };
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as S, useId as $, ref as a, watch as _, onUnmounted as z, openBlock as f, createElementBlock as k, Fragment as I, createElementVNode as b, renderSlot as x, createBlock as N, Teleport as P, mergeProps as B, unref as e, createTextVNode as C, toDisplayString as F, normalizeStyle as L, normalizeClass as V, createCommentVNode as A } from "vue";
2
2
  import { I as K } from "./dialogStack-DZZg55w0.js";
3
- import { u as M, a as i } from "./anchored-Cj4--8dT.js";
3
+ import { u as M, a as i } from "./anchored-DpuUwf-9.js";
4
4
  const j = /* @__PURE__ */ S({
5
5
  __name: "Tooltip",
6
6
  props: {
@@ -3,23 +3,23 @@ import { useI18n as A } from "vue-i18n";
3
3
  import { a as F } from "./neighbors-DVN_cADL.js";
4
4
  import { _ as H } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
5
5
  import { u as J } from "./describeError-B-NMa--w.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-sYamgVg7.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-Dxu7ZfCC.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
- import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-CW81A_bn.js";
9
+ import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-BltrQnrQ.js";
10
10
  import { u as E } from "./platform-q3cjODLx.js";
11
11
  import { a as te } from "./routeResource-DlTsGTg_.js";
12
- import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BpLnmA6n.js";
12
+ import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFaaFQSm.js";
13
13
  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-M7V-AVwR.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-BokxZ7LU.js";
18
- import { e as B } from "./control-B_Nwtmag.js";
17
+ import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js";
18
+ import { e as B } from "./control-B4SdblL6.js";
19
19
  import { u as z, _ as K } from "./useCommand-YN9EMb7s.js";
20
20
  import { u as U } from "./fieldMessages-6HVzSDqG.js";
21
- import { u as ce, s as le } from "./status-B_IMA25a.js";
22
- import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-CWgn-vGl.js";
21
+ import { u as ce, s as le } from "./status-BLTC7wi1.js";
22
+ import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js";
23
23
  const ue = /* @__PURE__ */ R({
24
24
  __name: "DeactivateDialog",
25
25
  props: {
@@ -1,18 +1,18 @@
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-CUoyYpaW.js";
4
+ import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-BNM_cbXa.js";
5
5
  import { _ as I } from "./Avatar.vue_vue_type_script_setup_true_lang-CFIheaSr.js";
6
6
  import { u as F } from "./format-D8X4zsx6.js";
7
7
  import { u as L } from "./platform-q3cjODLx.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-sYamgVg7.js";
10
- import { U as j, u as H, s as J } from "./status-B_IMA25a.js";
9
+ import { i as K, f as E, M as W } from "./index-Dxu7ZfCC.js";
10
+ import { U as j, u as H, s as J } from "./status-BLTC7wi1.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-BokxZ7LU.js";
14
- import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-DkbBJpYX.js";
15
- import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-CWgn-vGl.js";
13
+ import { _ as X } from "./FormGroup.vue_vue_type_script_setup_true_lang-DSwSRsA5.js";
14
+ import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-C3FbRQW7.js";
15
+ import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-CP2WeU36.js";
16
16
  import { u as Z, _ as ee } from "./useCommand-YN9EMb7s.js";
17
17
  import { t as se } from "./toast-CqSDTWRX.js";
18
18
  import { u as te } from "./fieldMessages-6HVzSDqG.js";
@@ -1,4 +1,4 @@
1
- import { _ as a, i as c, j as o, c as r, b as n, k as i, l as u, p as l, m as p, n as t, u as d, f as m } from "../index-wlRejl73.js";
1
+ import { _ as a, i as c, j as o, c as r, b as n, k as i, l as u, p as l, m as p, n as t, u as d, f as m } from "../index-D6BjUQJT.js";
2
2
  export {
3
3
  a as BindingRow,
4
4
  c as PersonAccess,