@wssto2/vue-core 0.4.14 → 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.
- package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-LlfIPWsJ.js → ActionRow.vue_vue_type_script_setup_true_lang-CkvS5W6K.js} +1 -1
- package/dist/{Activity-BdSvn0GP.js → Activity-4q26REYj.js} +6 -6
- package/dist/{Changes-BQO--N9F.js → Changes-CKIuGF8O.js} +5 -5
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-DkpFEHUw.js → CollectionPage.vue_vue_type_script_setup_true_lang-B17cUOzj.js} +2 -2
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-GVasv8ao.js → DateField.vue_vue_type_script_setup_true_lang-DehwWm78.js} +17 -16
- package/dist/{DeadLetters-OmeiADEi.js → DeadLetters-DPGcQOz1.js} +4 -4
- package/dist/FormErrors.vue_vue_type_script_setup_true_lang-DWcVKZM3.js +285 -0
- 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
- package/dist/{FormView.vue_vue_type_script_setup_true_lang-cr0xNDXP.js → FormView.vue_vue_type_script_setup_true_lang-BcIbTMHN.js} +2 -2
- package/dist/{General-CBwFLiKQ.js → General-CUA9b3ML.js} +10 -10
- package/dist/{NewRolePage-CblUW2gA.js → NewRolePage-DBfCvDWA.js} +3 -3
- package/dist/NumberField.vue_vue_type_script_setup_true_lang-Dm6FfJ2T.js +126 -0
- package/dist/{ProfilePage-BOoDDbmB.js → ProfilePage-On-eAiJ-.js} +41 -41
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-BCE5yrwy.js → RoleEditor.vue_vue_type_script_setup_true_lang-fvAf3rQm.js} +44 -44
- package/dist/{RolePage-xDsFL_eC.js → RolePage-B8oul55j.js} +8 -8
- package/dist/{RolesPage-C39wsF6X.js → RolesPage-DsXVivdj.js} +5 -5
- package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-BMqWlpsL.js → SegmentedField.vue_vue_type_script_setup_true_lang-B2d55hrh.js} +7 -6
- package/dist/SelectField.vue_vue_type_script_setup_true_lang-DedKLLQK.js +443 -0
- package/dist/{SessionList.vue_vue_type_script_setup_true_lang-D4k5QeWS.js → SessionList.vue_vue_type_script_setup_true_lang-CirlMdHb.js} +2 -2
- package/dist/{Sessions-m_i4aTfw.js → Sessions-BTyXDEuY.js} +4 -4
- package/dist/{SettingsPage-ktKvQQnE.js → SettingsPage-DHTmMgif.js} +9 -9
- package/dist/{SignIn-CkoEixY4.js → SignIn-DU4DE2wj.js} +6 -6
- package/dist/{SignInPage-DVcpFz3G.js → SignInPage-BA22kyOp.js} +3 -3
- package/dist/{SignIns-BnVAtncZ.js → SignIns-C8QAZBaL.js} +3 -3
- 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
- package/dist/{TextField.vue_vue_type_script_setup_true_lang-B9dwVASU.js → TextField.vue_vue_type_script_setup_true_lang-nqnGG7Zc.js} +27 -26
- package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-CqAWfABZ.js → TextareaField.vue_vue_type_script_setup_true_lang-BgIQyYtf.js} +9 -8
- 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
- package/dist/{UserRecord-Cg69_mbU.js → UserRecord-D1BNmYp9.js} +10 -10
- package/dist/{UsersList-BFmBDGs7.js → UsersList-ltx3G23-.js} +8 -8
- package/dist/access/index.js +1 -1
- package/dist/app/application.d.ts +7 -1
- package/dist/app/index.js +93 -93
- package/dist/collection/index.js +1 -1
- package/dist/control-CX9BG2UB.js +320 -0
- package/dist/{describeError-CvGmajU0.js → describeError-B-NMa--w.js} +12 -7
- package/dist/fieldMessages-DV6sESpn.js +25 -0
- package/dist/form/DateField.vue.d.ts +1 -0
- package/dist/form/DateTimeField.vue.d.ts +1 -0
- package/dist/form/Field.vue.d.ts +1 -0
- package/dist/form/FileField.vue.d.ts +1 -0
- package/dist/form/FormErrors.vue.d.ts +1 -1
- package/dist/form/FormRow.vue.d.ts +3 -0
- package/dist/form/I18nField.vue.d.ts +1 -0
- package/dist/form/MoneyField.vue.d.ts +1 -0
- package/dist/form/MonthYearField.vue.d.ts +1 -0
- package/dist/form/NumberField.vue.d.ts +5 -0
- package/dist/form/PhotoField.vue.d.ts +1 -0
- package/dist/form/SelectField.vue.d.ts +5 -6
- package/dist/form/SwitchField.vue.d.ts +1 -0
- package/dist/form/TextField.vue.d.ts +1 -0
- package/dist/form/TextareaField.vue.d.ts +1 -0
- package/dist/form/TimeField.vue.d.ts +1 -0
- package/dist/form/field.d.ts +3 -0
- package/dist/form/index.d.ts +2 -0
- package/dist/form/index.js +469 -456
- package/dist/form/useForm.d.ts +2 -2
- package/dist/form/useHiddenFieldErrors.d.ts +23 -0
- package/dist/form/useSaveChrome.d.ts +8 -3
- package/dist/i18n/describeError.d.ts +8 -0
- package/dist/i18n/index.d.ts +2 -2
- package/dist/i18n/index.js +3 -2
- package/dist/identity/fieldMessages.d.ts +1 -1
- package/dist/identity/index.js +1 -1
- package/dist/{index-B416VXmR.js → index-BCw_Ki6z.js} +2 -2
- package/dist/{index-KcCoCfr-.js → index-Chh4z9xW.js} +10 -10
- package/dist/{index-RNF5-9uf.js → index-DwdVrW6q.js} +15 -15
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/phone/PhoneField.vue.d.ts +1 -0
- package/dist/phone/index.js +66 -65
- package/dist/resource/index.js +1 -1
- package/dist/{routeResource-BwEFXzIX.js → routeResource-DlTsGTg_.js} +1 -1
- package/dist/state/index.js +1 -1
- package/dist/{status-OZUHZpWl.js → status-cWCAMAmW.js} +1 -1
- package/dist/{useCommand-BkONMn3X.js → useCommand-B-N6HJOz.js} +1 -1
- package/dist/{useLoad-DuEsLECT.js → useLoad-M7V-AVwR.js} +1 -1
- package/dist/{useResourceForm-D1hIpwW5.js → useResourceForm-CP2lCwmD.js} +1 -1
- package/dist/useSaveChrome-7huA3FzR.js +26 -0
- package/package.json +1 -1
- package/dist/FormErrors.vue_vue_type_script_setup_true_lang-BQb7wLT0.js +0 -276
- package/dist/NumberField.vue_vue_type_script_setup_true_lang-C7N5nq0P.js +0 -113
- package/dist/SelectField.vue_vue_type_script_setup_true_lang-BJoAkBo2.js +0 -437
- package/dist/control-7EP4tjYy.js +0 -313
- package/dist/fieldMessages-D_dpSe19.js +0 -25
- package/dist/useSaveChrome-DuWm0Czf.js +0 -25
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { defineComponent as p, useModel as b, computed as w, openBlock as v, createBlock as
|
|
1
|
+
import { defineComponent as p, useModel as b, computed as w, openBlock as v, createBlock as y, mergeProps as g, unref as a, withCtx as _, createElementVNode as t, renderSlot as k, normalizeClass as i, normalizeStyle as B, toDisplayString as z, mergeModels as S, mergeDefaults as x } from "vue";
|
|
2
2
|
import { useI18n as C } from "vue-i18n";
|
|
3
|
-
import { u as M, _ as V, f as D, b as E } from "./control-
|
|
4
|
-
const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria-label", "aria-describedby", "aria-invalid", "disabled"], P = { class: "sr-only" },
|
|
3
|
+
import { u as M, _ as V, f as D, b as E } from "./control-CX9BG2UB.js";
|
|
4
|
+
const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria-label", "aria-describedby", "aria-invalid", "disabled"], P = { class: "sr-only" }, R = /* @__PURE__ */ p({
|
|
5
5
|
__name: "SwitchField",
|
|
6
6
|
props: /* @__PURE__ */ S(/* @__PURE__ */ x({
|
|
7
7
|
label: {},
|
|
8
|
+
labelHidden: { type: Boolean },
|
|
8
9
|
hint: {},
|
|
9
10
|
error: {},
|
|
10
11
|
required: { type: Boolean },
|
|
@@ -20,7 +21,7 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
20
21
|
}),
|
|
21
22
|
emits: ["update:modelValue"],
|
|
22
23
|
setup(s) {
|
|
23
|
-
const o = s, e = b(s, "modelValue"), { t:
|
|
24
|
+
const o = s, e = b(s, "modelValue"), { t: l } = C(), { editable: r } = M(o), n = {
|
|
24
25
|
sm: { "--switch-w": "1.75rem", "--switch-h": "1rem" },
|
|
25
26
|
md: { "--switch-w": "var(--app-switch-width)", "--switch-h": "var(--app-switch-height)" },
|
|
26
27
|
lg: { "--switch-w": "3.1875rem", "--switch-h": "1.9375rem" }
|
|
@@ -28,7 +29,7 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
28
29
|
function c() {
|
|
29
30
|
!o.disabled && r.value && (e.value = !e.value);
|
|
30
31
|
}
|
|
31
|
-
return (u, $) => (v(),
|
|
32
|
+
return (u, $) => (v(), y(V, g(a(D)(o), {
|
|
32
33
|
value: e.value,
|
|
33
34
|
"row-layout": "setting"
|
|
34
35
|
}), {
|
|
@@ -44,14 +45,14 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
44
45
|
"aria-describedby": h,
|
|
45
46
|
"aria-invalid": f || void 0,
|
|
46
47
|
disabled: o.disabled,
|
|
47
|
-
style:
|
|
48
|
-
class:
|
|
48
|
+
style: B(d.value),
|
|
49
|
+
class: i(["hit-target relative inline-flex h-(--switch-h) w-(--switch-w) shrink-0 cursor-pointer rounded-full transition-colors duration-motion-fast ease-motion-standard focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus disabled:cursor-not-allowed disabled:opacity-45", e.value ? "bg-control-on" : "bg-fill-strong"]),
|
|
49
50
|
onClick: c
|
|
50
51
|
}, [
|
|
51
52
|
t("span", {
|
|
52
|
-
class:
|
|
53
|
+
class: i(["pointer-events-none absolute left-0.5 top-0.5 size-[calc(var(--switch-h)-0.25rem)] rounded-full bg-white shadow-knob transition-transform duration-motion-normal ease-motion-standard", e.value ? "translate-x-[calc(var(--switch-w)-var(--switch-h))]" : ""])
|
|
53
54
|
}, null, 2),
|
|
54
|
-
t("span", P,
|
|
55
|
+
t("span", P, z(e.value ? a(l)("core.form.yes") : a(l)("core.form.no")), 1)
|
|
55
56
|
], 14, I)
|
|
56
57
|
])
|
|
57
58
|
]),
|
|
@@ -60,5 +61,5 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
60
61
|
}
|
|
61
62
|
});
|
|
62
63
|
export {
|
|
63
|
-
|
|
64
|
+
R as _
|
|
64
65
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as I, useTemplateRef as P, computed as y, watch as Y, nextTick as Z, openBlock as n, createElementBlock as i, withModifiers as ee, normalizeStyle as te, unref as s, createElementVNode as m, toDisplayString as r, createCommentVNode as d, Fragment as E, renderList as oe, normalizeClass as q, createBlock as z, createTextVNode as F, useModel as se, ref as ne, mergeProps as ae, withCtx as ie, withDirectives as le, vModelDynamic as re, mergeModels as H, mergeDefaults as ce } from "vue";
|
|
2
2
|
import { useI18n as K } from "vue-i18n";
|
|
3
3
|
import { b as ue } from "./controlSurface-t7OEFESJ.js";
|
|
4
|
-
import { a as de, c as pe, _ as me, f as fe, b as he } from "./control-
|
|
4
|
+
import { a as de, c as pe, _ as me, f as fe, b as he } from "./control-CX9BG2UB.js";
|
|
5
5
|
import { _ as ve } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
|
|
6
6
|
import { u as ge } from "./anchored-Cj4--8dT.js";
|
|
7
|
-
import { l as O, m as
|
|
7
|
+
import { l as O, m as ye, u as xe, c as be } from "./suggestions-BxMm6MQA.js";
|
|
8
8
|
const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-1.5" }, we = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "px-2.5 pb-1 pt-1.5 text-caption font-semibold uppercase text-content-disabled",
|
|
11
11
|
role: "presentation"
|
|
12
|
-
}, $e = ["id", "aria-selected", "aria-disabled", "onMouseenter", "onClick"], Me = { class: "min-w-0 flex-1" }, qe = { class: "block truncate text-body text-content-strong" },
|
|
12
|
+
}, $e = ["id", "aria-selected", "aria-disabled", "onMouseenter", "onClick"], Me = { class: "min-w-0 flex-1" }, qe = { class: "block truncate text-body text-content-strong" }, Be = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "font-semibold"
|
|
15
|
-
},
|
|
15
|
+
}, Le = {
|
|
16
16
|
key: 0,
|
|
17
17
|
class: "block truncate text-footnote text-content-muted"
|
|
18
18
|
}, Ce = {
|
|
@@ -30,7 +30,7 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
30
30
|
key: 0,
|
|
31
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
32
|
"aria-hidden": "true"
|
|
33
|
-
}, Ee = /* @__PURE__ */
|
|
33
|
+
}, Ee = /* @__PURE__ */ I({
|
|
34
34
|
__name: "SuggestionList",
|
|
35
35
|
props: {
|
|
36
36
|
id: {},
|
|
@@ -45,8 +45,8 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
45
45
|
hint: {}
|
|
46
46
|
},
|
|
47
47
|
emits: ["pick", "hover"],
|
|
48
|
-
setup(w, { emit:
|
|
49
|
-
const o = w, t =
|
|
48
|
+
setup(w, { emit: B }) {
|
|
49
|
+
const o = w, t = B, { t: c } = K(), b = P("panel"), _ = y(() => O(o.open, o.items.length, o.status, o.emptyMessage)), k = y(() => o.status === "loading"), f = (h) => ye(h.label, o.query), { style: L } = ge(b, {
|
|
50
50
|
reference: () => o.anchor,
|
|
51
51
|
placement: () => "bottom-start",
|
|
52
52
|
offset: 4,
|
|
@@ -62,7 +62,7 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
62
62
|
ref: b,
|
|
63
63
|
role: "listbox",
|
|
64
64
|
"aria-busy": k.value || void 0,
|
|
65
|
-
style: te(s(
|
|
65
|
+
style: te(s(L)),
|
|
66
66
|
"data-test": "suggestion-list",
|
|
67
67
|
class: "z-1000 flex flex-col overflow-hidden rounded-menu bg-surface-overlay shadow-float",
|
|
68
68
|
onMousedown: v[0] || (v[0] = ee(() => {
|
|
@@ -93,11 +93,11 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
93
93
|
F(r(a.label), 1)
|
|
94
94
|
], 64)) : (n(), i(E, { key: 1 }, [
|
|
95
95
|
F(r(f(a).before), 1),
|
|
96
|
-
f(a).match ? (n(), i("strong",
|
|
96
|
+
f(a).match ? (n(), i("strong", Be, r(f(a).match), 1)) : d("", !0),
|
|
97
97
|
F(r(f(a).after), 1)
|
|
98
98
|
], 64))
|
|
99
99
|
]),
|
|
100
|
-
a.description ? (n(), i("span",
|
|
100
|
+
a.description ? (n(), i("span", Le, r(a.description), 1)) : d("", !0)
|
|
101
101
|
])
|
|
102
102
|
], 42, $e))), 128)) : o.status === "loading" ? (n(), i("p", Ce, r(s(c)("core.form.select.loading")), 1)) : o.status === "failed" ? (n(), i("p", Se, r(s(c)("core.form.select.failed")), 1)) : (n(), i("p", De, r(s(c)("core.form.select.no_matches")), 1))
|
|
103
103
|
]),
|
|
@@ -110,10 +110,11 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
110
110
|
}, Pe = { 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"], Ae = { class: "invisible" }, Ne = { class: "text-content-disabled" }, Re = {
|
|
111
111
|
key: 1,
|
|
112
112
|
class: "shrink-0 text-footnote text-content-muted"
|
|
113
|
-
}, Ue = /* @__PURE__ */
|
|
113
|
+
}, Ue = /* @__PURE__ */ I({
|
|
114
114
|
__name: "TextField",
|
|
115
|
-
props: /* @__PURE__ */
|
|
115
|
+
props: /* @__PURE__ */ H(/* @__PURE__ */ ce({
|
|
116
116
|
label: {},
|
|
117
|
+
labelHidden: { type: Boolean },
|
|
117
118
|
hint: {},
|
|
118
119
|
error: {},
|
|
119
120
|
required: { type: Boolean },
|
|
@@ -154,13 +155,13 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
154
155
|
modelValue: { default: "" },
|
|
155
156
|
modelModifiers: {}
|
|
156
157
|
}),
|
|
157
|
-
emits: /* @__PURE__ */
|
|
158
|
-
setup(w, { expose:
|
|
159
|
-
const t = w, c = se(w, "modelValue"), b = o, _ = P("input"), k = P("anchor"), f = !!de(),
|
|
158
|
+
emits: /* @__PURE__ */ H(["picked"], ["update:modelValue"]),
|
|
159
|
+
setup(w, { expose: B, emit: o }) {
|
|
160
|
+
const t = w, c = se(w, "modelValue"), b = o, _ = P("input"), k = P("anchor"), f = !!de(), L = pe("text", () => t.error ? "error" : t.disabled ? "locked" : "rest"), h = y(() => f ? ue(t.width) : "w-full"), { t: v } = K(), a = (e) => typeof e == "string" ? { value: e, label: e } : { value: e.text, label: e.text, ...e.detail !== void 0 ? { description: e.detail } : {} }, g = y(() => {
|
|
160
161
|
const e = t.suggestions;
|
|
161
162
|
if (e)
|
|
162
|
-
return typeof e == "function" ? async (p,
|
|
163
|
-
}), l =
|
|
163
|
+
return typeof e == "function" ? async (p, x) => (await e(p, x)).map(a) : e.map(a);
|
|
164
|
+
}), l = y(() => g.value !== void 0), u = xe({
|
|
164
165
|
source: () => g.value,
|
|
165
166
|
minLength: () => t.suggestionsMinLength,
|
|
166
167
|
debounce: () => t.suggestionsDebounce,
|
|
@@ -170,7 +171,7 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
170
171
|
}), { items: C, open: S, status: A, highlighted: N, showingRecent: R } = u, T = ne(!0), D = () => {
|
|
171
172
|
const e = _.value;
|
|
172
173
|
T.value = !e || e.selectionStart === e.value.length && e.selectionEnd === e.value.length;
|
|
173
|
-
}, $ =
|
|
174
|
+
}, $ = y(() => l.value && S.value && !R.value && T.value && u.current.value ? be(c.value, u.current.value.label) : ""), W = y(() => O(S.value, C.value.length, A.value, !1));
|
|
174
175
|
function G(e) {
|
|
175
176
|
D(), l.value && u.ask(e.target.value);
|
|
176
177
|
}
|
|
@@ -187,22 +188,22 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
187
188
|
const J = (e) => {
|
|
188
189
|
l.value && u.keydown(e, { pick: V, enterNeedsMove: !0, complete: j });
|
|
189
190
|
};
|
|
190
|
-
return
|
|
191
|
+
return B({ focus: () => _.value?.focus() }), (e, p) => (n(), z(me, ae(s(fe)(t), {
|
|
191
192
|
value: c.value,
|
|
192
193
|
prefix: t.prefix,
|
|
193
194
|
suffix: t.suffix,
|
|
194
195
|
"value-style": t.mono ? "mono" : void 0
|
|
195
196
|
}), {
|
|
196
|
-
default: ie(({ id:
|
|
197
|
+
default: ie(({ id: x, describedby: Q, invalid: X }) => [
|
|
197
198
|
m("div", {
|
|
198
199
|
ref_key: "anchor",
|
|
199
200
|
ref: k,
|
|
200
|
-
class: q(["flex items-center gap-1.5", [s(
|
|
201
|
+
class: q(["flex items-center gap-1.5", [s(L), h.value]])
|
|
201
202
|
}, [
|
|
202
203
|
t.prefix ? (n(), i("span", Fe, r(t.prefix), 1)) : d("", !0),
|
|
203
204
|
m("div", Pe, [
|
|
204
205
|
le(m("input", {
|
|
205
|
-
id:
|
|
206
|
+
id: x,
|
|
206
207
|
ref_key: "input",
|
|
207
208
|
ref: _,
|
|
208
209
|
"onUpdate:modelValue": p[0] || (p[0] = (M) => c.value = M),
|
|
@@ -219,8 +220,8 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
219
220
|
role: l.value ? "combobox" : void 0,
|
|
220
221
|
"aria-autocomplete": l.value ? "both" : void 0,
|
|
221
222
|
"aria-expanded": l.value ? W.value : void 0,
|
|
222
|
-
"aria-controls": l.value ? `${
|
|
223
|
-
"aria-activedescendant": l.value && W.value && s(C).length > 0 ? `${
|
|
223
|
+
"aria-controls": l.value ? `${x}-list` : void 0,
|
|
224
|
+
"aria-activedescendant": l.value && W.value && s(C).length > 0 ? `${x}-option-${s(N)}` : void 0,
|
|
224
225
|
class: q(["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" : "", f && !l.value ? "compact:text-right" : ""]]),
|
|
225
226
|
onInput: G,
|
|
226
227
|
onKeyup: D,
|
|
@@ -245,7 +246,7 @@ const _e = ["id", "aria-busy"], ke = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
245
246
|
], 2),
|
|
246
247
|
l.value ? (n(), z(Ee, {
|
|
247
248
|
key: 0,
|
|
248
|
-
id:
|
|
249
|
+
id: x,
|
|
249
250
|
anchor: k.value,
|
|
250
251
|
open: s(S),
|
|
251
252
|
items: s(C),
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { defineComponent as k, useModel as _, useTemplateRef as B, computed as l, openBlock as d, createBlock as q, mergeProps as C, unref as i, withCtx as V, createElementVNode as u, normalizeClass as c, withDirectives as L, vModelText as M, createElementBlock as D, toDisplayString as z, createCommentVNode as E, mergeModels as F, mergeDefaults as P } from "vue";
|
|
2
2
|
import { u as R } from "./mediaQuery-CygcXmFW.js";
|
|
3
|
-
import { a as T, u as $, c as N, _ as S, f as j, b as G } from "./control-
|
|
4
|
-
const
|
|
3
|
+
import { a as T, u as $, c as N, _ as S, f as j, b as G } from "./control-CX9BG2UB.js";
|
|
4
|
+
const H = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], U = {
|
|
5
5
|
key: 0,
|
|
6
6
|
class: "mt-1 self-end text-footnote tabular-nums text-content-muted"
|
|
7
7
|
}, O = /* @__PURE__ */ k({
|
|
8
8
|
__name: "TextareaField",
|
|
9
9
|
props: /* @__PURE__ */ F(/* @__PURE__ */ P({
|
|
10
10
|
label: {},
|
|
11
|
+
labelHidden: { type: Boolean },
|
|
11
12
|
hint: {},
|
|
12
13
|
error: {},
|
|
13
14
|
required: { type: Boolean },
|
|
@@ -28,12 +29,12 @@ const U = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "di
|
|
|
28
29
|
emits: ["update:modelValue"],
|
|
29
30
|
setup(r, { expose: m }) {
|
|
30
31
|
const e = r, a = _(r, "modelValue"), s = B("area"), p = !!T(), f = R(), { editable: v } = $(e), t = l(() => p && !e.stacked && !f.value && v.value && !!e.label), o = l(() => e.maxLength ? `${a.value.length} / ${e.maxLength}` : void 0), b = l(() => t.value && o.value ? [e.hint, o.value].filter(Boolean).join(" · ") : e.hint), h = N("area", () => e.error ? "error" : e.disabled ? "locked" : "rest");
|
|
31
|
-
return m({ focus: () => s.value?.focus() }), (
|
|
32
|
+
return m({ focus: () => s.value?.focus() }), (A, n) => (d(), q(S, C({ ...i(j)(e), hint: b.value }, {
|
|
32
33
|
value: a.value,
|
|
33
34
|
"row-layout": t.value ? "entry" : "stacked",
|
|
34
35
|
"row-label-align": "top"
|
|
35
36
|
}), {
|
|
36
|
-
default: V(({ id: x, describedby:
|
|
37
|
+
default: V(({ id: x, describedby: y, invalid: g }) => [
|
|
37
38
|
u("div", {
|
|
38
39
|
class: c(["w-full", i(h)])
|
|
39
40
|
}, [
|
|
@@ -50,14 +51,14 @@ const U = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "di
|
|
|
50
51
|
disabled: e.disabled,
|
|
51
52
|
required: e.required,
|
|
52
53
|
"aria-required": e.required || void 0,
|
|
53
|
-
"aria-invalid":
|
|
54
|
-
"aria-describedby":
|
|
54
|
+
"aria-invalid": g || void 0,
|
|
55
|
+
"aria-describedby": y,
|
|
55
56
|
class: c(["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"])
|
|
56
|
-
}, null, 10,
|
|
57
|
+
}, null, 10, H), [
|
|
57
58
|
[M, a.value]
|
|
58
59
|
])
|
|
59
60
|
], 2),
|
|
60
|
-
!t.value && o.value ? (d(), D("p",
|
|
61
|
+
!t.value && o.value ? (d(), D("p", U, z(o.value), 1)) : E("", !0)
|
|
61
62
|
]),
|
|
62
63
|
_: 1
|
|
63
64
|
}, 16, ["value", "row-layout"]));
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { computed as u, defineComponent as
|
|
1
|
+
import { computed as u, defineComponent as H, useModel as K, useTemplateRef as v, openBlock as m, createBlock as E, mergeProps as w, unref as t, withCtx as b, createElementBlock as x, Fragment as N, createVNode as d, createTextVNode as W, toDisplayString as j, createCommentVNode as P, createElementVNode as h, normalizeClass as G, mergeModels as J, mergeDefaults as O, nextTick as U } from "vue";
|
|
2
2
|
import { useI18n as L } from "vue-i18n";
|
|
3
3
|
import { _ as X } from "./DateButton.vue_vue_type_script_setup_true_lang-EcqrfWKz.js";
|
|
4
4
|
import { u as Y } from "./format-B8mJm946.js";
|
|
5
5
|
import { _ as Z } from "./Icon.vue_vue_type_script_lang-D7oC-d-S.js";
|
|
6
6
|
import { u as ee } from "./mediaQuery-CygcXmFW.js";
|
|
7
7
|
import { _ as te } from "./Popover.vue_vue_type_script_setup_true_lang-Dx-tDhNE.js";
|
|
8
|
-
import { c as oe, _ as
|
|
8
|
+
import { c as oe, _ as ae, f as re, b as le } from "./control-CX9BG2UB.js";
|
|
9
9
|
import { d as se, r as ie, t as z, p as ne, u as ue, a as me, i as F, _ as de, b as ce, c as pe } from "./useTypedEntry-aTfPBAhw.js";
|
|
10
10
|
function fe(i) {
|
|
11
11
|
const { t: n } = L(), e = u(() => [n("core.form.time.words.now").toLowerCase(), "now"]);
|
|
@@ -13,16 +13,17 @@ function fe(i) {
|
|
|
13
13
|
placeholder: u(() => n("core.form.time.placeholder")),
|
|
14
14
|
parse(o) {
|
|
15
15
|
if (e.value.includes(o.trim().toLowerCase())) return { value: z(i()) };
|
|
16
|
-
const
|
|
17
|
-
return "time" in
|
|
16
|
+
const r = ne(o, i());
|
|
17
|
+
return "time" in r ? { value: r.time } : { error: r.error === "step" ? n("core.form.time.step", { step: i() }) : n("core.form.time.invalid") };
|
|
18
18
|
},
|
|
19
|
-
shortcuts: (o) => (o ?? se).map((
|
|
19
|
+
shortcuts: (o) => (o ?? se).map((r) => ie(r, n("core.form.time.now"), z(i())))
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], be = ["aria-label", "onClick"], Ce = /* @__PURE__ */
|
|
22
|
+
const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], be = ["aria-label", "onClick"], Ce = /* @__PURE__ */ H({
|
|
23
23
|
__name: "TimeField",
|
|
24
24
|
props: /* @__PURE__ */ J(/* @__PURE__ */ O({
|
|
25
25
|
label: {},
|
|
26
|
+
labelHidden: { type: Boolean },
|
|
26
27
|
hint: {},
|
|
27
28
|
error: {},
|
|
28
29
|
required: { type: Boolean },
|
|
@@ -39,31 +40,31 @@ const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
39
40
|
}),
|
|
40
41
|
emits: ["update:modelValue"],
|
|
41
42
|
setup(i, { expose: n }) {
|
|
42
|
-
const e = i, o =
|
|
43
|
-
const
|
|
44
|
-
return
|
|
43
|
+
const e = i, o = K(i, "modelValue"), { t: r } = L(), M = Y(), I = ee(), T = v("input"), c = v("popover"), g = v("panel"), q = v("sheet"), k = fe(() => e.minuteStep), l = ue({ model: o, display: (a) => a, parse: k.parse }), C = u(() => k.shortcuts(e.quickTimes)), V = u(() => e.error || l.message.value), Q = oe("date", () => V.value ? "error" : e.disabled ? "locked" : "rest"), R = u(() => {
|
|
44
|
+
const a = me(o.value);
|
|
45
|
+
return a ? M.time(new Date(2e3, 0, 1, a.hour, a.minute)) : null;
|
|
45
46
|
}), $ = u(() => F(l.typed.value) ? l.typed.value : F(o.value) ? o.value : null);
|
|
46
|
-
async function y(
|
|
47
|
-
e.disabled || (c.value?.present(),
|
|
47
|
+
async function y(a) {
|
|
48
|
+
e.disabled || (c.value?.present(), a && (await U(), await U(), g.value?.querySelector("[role=listbox]")?.focus()));
|
|
48
49
|
}
|
|
49
|
-
function A(
|
|
50
|
-
|
|
50
|
+
function A(a) {
|
|
51
|
+
a.key === "Enter" ? (l.commit(), c.value?.dismiss()) : a.key === "ArrowDown" && (a.preventDefault(), y(!0));
|
|
51
52
|
}
|
|
52
|
-
return n({ focus: () => T.value?.focus() }), (
|
|
53
|
+
return n({ focus: () => T.value?.focus() }), (a, s) => (m(), E(ae, w({ ...t(re)(e), error: V.value }, {
|
|
53
54
|
value: R.value,
|
|
54
55
|
"value-style": "numeric"
|
|
55
56
|
}), {
|
|
56
|
-
default: b(({ id:
|
|
57
|
+
default: b(({ id: B, describedby: S, invalid: D }) => [
|
|
57
58
|
t(I) ? (m(), x(N, { key: 0 }, [
|
|
58
|
-
d(X, w({ id:
|
|
59
|
+
d(X, w({ id: B, "aria-describedby": S }, {
|
|
59
60
|
disabled: e.disabled,
|
|
60
61
|
invalid: D,
|
|
61
|
-
placeholder: t(
|
|
62
|
+
placeholder: t(r)("core.form.select.choose"),
|
|
62
63
|
onClick: s[0] || (s[0] = (p) => q.value?.present())
|
|
63
64
|
}), {
|
|
64
65
|
default: b(() => [
|
|
65
66
|
o.value ? (m(), x(N, { key: 0 }, [
|
|
66
|
-
j(
|
|
67
|
+
W(j(o.value), 1)
|
|
67
68
|
], 64)) : P("", !0)
|
|
68
69
|
]),
|
|
69
70
|
_: 1
|
|
@@ -71,7 +72,7 @@ const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
71
72
|
d(de, {
|
|
72
73
|
ref_key: "sheet",
|
|
73
74
|
ref: q,
|
|
74
|
-
title: e.label ?? t(
|
|
75
|
+
title: e.label ?? t(r)("core.form.time.label"),
|
|
75
76
|
mode: "time",
|
|
76
77
|
"model-value": o.value,
|
|
77
78
|
shortcuts: C.value,
|
|
@@ -83,7 +84,7 @@ const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
83
84
|
key: 1,
|
|
84
85
|
ref_key: "popover",
|
|
85
86
|
ref: c,
|
|
86
|
-
label: e.label ?? t(
|
|
87
|
+
label: e.label ?? t(r)("core.form.time.label"),
|
|
87
88
|
width: "sm",
|
|
88
89
|
placement: "bottom-start",
|
|
89
90
|
arrow: !1,
|
|
@@ -91,10 +92,10 @@ const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
91
92
|
}, {
|
|
92
93
|
trigger: b(({ attrs: p, presented: _ }) => [
|
|
93
94
|
h("div", {
|
|
94
|
-
class:
|
|
95
|
+
class: G(["inline-flex max-w-full items-center gap-2", t(Q)])
|
|
95
96
|
}, [
|
|
96
97
|
h("input", w({
|
|
97
|
-
id:
|
|
98
|
+
id: B,
|
|
98
99
|
ref_key: "input",
|
|
99
100
|
ref: T
|
|
100
101
|
}, p, {
|
|
@@ -109,7 +110,7 @@ const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
109
110
|
required: e.required,
|
|
110
111
|
"aria-required": e.required || void 0,
|
|
111
112
|
"aria-invalid": D || void 0,
|
|
112
|
-
"aria-describedby":
|
|
113
|
+
"aria-describedby": S,
|
|
113
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",
|
|
114
115
|
onInput: s[1] || (s[1] = (f) => t(l).input(f.target.value)),
|
|
115
116
|
onBlur: s[2] || (s[2] = (f) => t(l).commit()),
|
|
@@ -120,7 +121,7 @@ const ve = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
120
121
|
key: 0,
|
|
121
122
|
type: "button",
|
|
122
123
|
tabindex: "-1",
|
|
123
|
-
"aria-label": t(
|
|
124
|
+
"aria-label": t(r)("core.form.time.open"),
|
|
124
125
|
class: "mr-2 flex shrink-0 cursor-pointer items-center text-content-link",
|
|
125
126
|
onClick: (f) => _ ? c.value?.dismiss() : y(!0)
|
|
126
127
|
}, [
|
|
@@ -2,24 +2,24 @@ import { defineComponent as R, openBlock as q, createBlock as P, unref as e, wit
|
|
|
2
2
|
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
|
-
import { u as J } from "./describeError-
|
|
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-
|
|
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-DwdVrW6q.js";
|
|
7
7
|
import { _ as se } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
|
|
8
8
|
import { t as k } from "./toast-CqSDTWRX.js";
|
|
9
9
|
import { _ as ae } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-D5Cnb4_O.js";
|
|
10
10
|
import { u as E } from "./platform-q3cjODLx.js";
|
|
11
|
-
import { a as te } from "./routeResource-
|
|
11
|
+
import { a as te } from "./routeResource-DlTsGTg_.js";
|
|
12
12
|
import { a as oe } from "./ResourcePage.vue_vue_type_script_setup_true_lang-Da0M-hen.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
|
-
import { u as ie } from "./useLoad-
|
|
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-
|
|
18
|
-
import { e as B } from "./control-
|
|
19
|
-
import { u as z, _ as K } from "./useCommand-
|
|
20
|
-
import { u as U } from "./fieldMessages-
|
|
21
|
-
import { u as ce, s as le } from "./status-
|
|
22
|
-
import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-
|
|
17
|
+
import { _ as T } from "./FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js";
|
|
18
|
+
import { e as B } from "./control-CX9BG2UB.js";
|
|
19
|
+
import { u as z, _ as K } from "./useCommand-B-N6HJOz.js";
|
|
20
|
+
import { u as U } from "./fieldMessages-DV6sESpn.js";
|
|
21
|
+
import { u as ce, s as le } from "./status-cWCAMAmW.js";
|
|
22
|
+
import { _ as M } from "./TextField.vue_vue_type_script_setup_true_lang-nqnGG7Zc.js";
|
|
23
23
|
const ue = /* @__PURE__ */ R({
|
|
24
24
|
__name: "DeactivateDialog",
|
|
25
25
|
props: {
|
|
@@ -1,21 +1,21 @@
|
|
|
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-
|
|
4
|
+
import { u as P, _ as D } from "./CollectionPage.vue_vue_type_script_setup_true_lang-B17cUOzj.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-B8mJm946.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-
|
|
10
|
-
import { U as j, u as H, s as J } from "./status-
|
|
9
|
+
import { i as K, f as E, M as W } from "./index-DwdVrW6q.js";
|
|
10
|
+
import { U as j, u as H, s as J } from "./status-cWCAMAmW.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-
|
|
14
|
-
import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-
|
|
15
|
-
import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-
|
|
16
|
-
import { u as Z, _ as ee } from "./useCommand-
|
|
13
|
+
import { _ as X } from "./FormGroup.vue_vue_type_script_setup_true_lang-noYI9QMk.js";
|
|
14
|
+
import { _ as Y } from "./SelectField.vue_vue_type_script_setup_true_lang-DedKLLQK.js";
|
|
15
|
+
import { _ as d } from "./TextField.vue_vue_type_script_setup_true_lang-nqnGG7Zc.js";
|
|
16
|
+
import { u as Z, _ as ee } from "./useCommand-B-N6HJOz.js";
|
|
17
17
|
import { t as se } from "./toast-CqSDTWRX.js";
|
|
18
|
-
import { u as te } from "./fieldMessages-
|
|
18
|
+
import { u as te } from "./fieldMessages-DV6sESpn.js";
|
|
19
19
|
const oe = /* @__PURE__ */ U({
|
|
20
20
|
__name: "NewUserDialog",
|
|
21
21
|
emits: ["created"],
|
package/dist/access/index.js
CHANGED
|
@@ -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-
|
|
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-Chh4z9xW.js";
|
|
2
2
|
export {
|
|
3
3
|
a as BindingRow,
|
|
4
4
|
c as PersonAccess,
|
|
@@ -7,7 +7,7 @@ import { type IconSet } from "../icon";
|
|
|
7
7
|
import { type Platform, type SessionSnapshot } from "../platform";
|
|
8
8
|
import type { NavigationCatalogue } from "../router/navigation";
|
|
9
9
|
import { type ApplicationEnvironment } from "./environment";
|
|
10
|
-
import { type AppErrorDescriber } from "../i18n/describeError";
|
|
10
|
+
import { type AppErrorDescriber, type AppFieldErrorDescriber } from "../i18n/describeError";
|
|
11
11
|
import type { Feature, ShellSlot } from "./feature";
|
|
12
12
|
/** A shell that says which slots it renders, so a contribution to a slot it lacks fails at startup instead of vanishing. */
|
|
13
13
|
export interface ShellDefinition {
|
|
@@ -100,6 +100,12 @@ export interface ApplicationOptions {
|
|
|
100
100
|
* client's. Return `undefined` to leave an error to the library.
|
|
101
101
|
*/
|
|
102
102
|
describeError?: AppErrorDescriber;
|
|
103
|
+
/**
|
|
104
|
+
* The application's one sentence for a field message the server sent (often a code or a translation key), for every form
|
|
105
|
+
* (`useForm`, `useResourceForm`, `useCommand`) that has no `describeFieldError` of its own; a form's own wins. Without either,
|
|
106
|
+
* messages show as sent.
|
|
107
|
+
*/
|
|
108
|
+
describeFieldError?: AppFieldErrorDescriber;
|
|
103
109
|
/** Called with every error the application catches (component errors, unhandled rejections, failed effects and loads). Default: `console.error`. */
|
|
104
110
|
onError?: (report: ApplicationErrorReport) => void;
|
|
105
111
|
}
|