@wssto2/vue-core 0.16.0 → 0.17.0
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/CHANGELOG.md +20 -0
- package/README.md +4 -3
- package/bin/architecture/engine.mjs +3 -0
- package/bin/architecture/permissions.mjs +56 -0
- package/bin/architecture/rules.mjs +17 -0
- package/bin/commands/check-architecture.mjs +19 -0
- package/bin/config.mjs +2 -0
- package/dist/{AccessGate.vue_vue_type_script_setup_true_lang-BH3f0hda.js → AccessGate.vue_vue_type_script_setup_true_lang-Bg8JFAOT.js} +1 -1
- package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-DybAIOHS.js → ActionRow.vue_vue_type_script_setup_true_lang-B5IMNnTf.js} +4 -4
- package/dist/{Activity-DOUuIkZR.js → Activity-CiYn5E6A.js} +7 -7
- package/dist/{AdaptivePageShell.vue_vue_type_script_setup_true_lang-d_dPurWG.js → AdaptivePageShell.vue_vue_type_script_setup_true_lang-oXWQTfBs.js} +1 -1
- package/dist/{Changes-BfcbVgmu.js → Changes-Cy8STpLX.js} +3 -3
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-B5hSkJ2N.js → CollectionPage.vue_vue_type_script_setup_true_lang-Dr6nFNBB.js} +6 -6
- package/dist/{DataTable.vue_vue_type_script_setup_true_lang-DbRS37n3.js → DataTable.vue_vue_type_script_setup_true_lang-D372wlxR.js} +1 -1
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-DzCvYHAf.js → DateField.vue_vue_type_script_setup_true_lang-D0KcfW8R.js} +17 -16
- package/dist/{DeadLetters-CuMvfXH8.js → DeadLetters-DhJkMpd_.js} +4 -4
- package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-dsO1m9Mm.js → FormGroup.vue_vue_type_script_setup_true_lang-lvAuBG-0.js} +2 -2
- package/dist/FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js +160 -0
- package/dist/{FormView.vue_vue_type_script_setup_true_lang-Bq_Qa4py.js → FormView.vue_vue_type_script_setup_true_lang-D01Jr4UU.js} +5 -5
- package/dist/{General-B5vcSEhP.js → General-CwTPC5UP.js} +10 -10
- package/dist/{IncidentRecord-wmStcEag.js → IncidentRecord-hXEGuLGg.js} +13 -13
- package/dist/{IncidentsList-CFx5tsxP.js → IncidentsList-C41VyDwK.js} +6 -6
- package/dist/{NewRolePage-CZxAp7LR.js → NewRolePage-BYYZJkK7.js} +3 -3
- package/dist/{NumberField.vue_vue_type_script_setup_true_lang-U-_kcnGr.js → NumberField.vue_vue_type_script_setup_true_lang-BhNZgEW6.js} +7 -6
- package/dist/{PersonAccess.vue_vue_type_script_setup_true_lang-BPDh9s2m.js → PersonAccess.vue_vue_type_script_setup_true_lang-mYFuG-Y3.js} +56 -56
- package/dist/{ProfilePage-B-T8kBcc.js → ProfilePage-DGEsIycR.js} +13 -13
- package/dist/{RecordHeader.vue_vue_type_script_setup_true_lang-Bt5mT19g.js → RecordHeader.vue_vue_type_script_setup_true_lang-B3BnYg1x.js} +1 -1
- package/dist/{ResourcePage.vue_vue_type_script_setup_true_lang-DOiFuJnH.js → ResourcePage.vue_vue_type_script_setup_true_lang-1iZtj3rh.js} +1 -1
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-CqSsNPCw.js → RoleEditor.vue_vue_type_script_setup_true_lang-BslSDDiM.js} +9 -9
- package/dist/{RolePage-zcUWpuDE.js → RolePage-C08ZUqw1.js} +9 -9
- package/dist/{RolesPage-C7_zWw-c.js → RolesPage-FOuY1VKg.js} +10 -10
- package/dist/{SectionNavigator.vue_vue_type_script_setup_true_lang-BlCx9dVL.js → SectionNavigator.vue_vue_type_script_setup_true_lang-DCTFxfPB.js} +2 -2
- package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-zv_AxpBn.js → SegmentedField.vue_vue_type_script_setup_true_lang-CLR6EvzO.js} +13 -12
- package/dist/{SelectField.vue_vue_type_script_setup_true_lang-CLkoPbGm.js → SelectField.vue_vue_type_script_setup_true_lang-D5xYofdb.js} +10 -9
- package/dist/{ServiceAccountDialog.vue_vue_type_script_setup_true_lang-C2D_D5Hi.js → ServiceAccountDialog.vue_vue_type_script_setup_true_lang-CDr4WNIb.js} +9 -9
- package/dist/{ServiceAccountRecord-BYxpHzTR.js → ServiceAccountRecord-kWwIQGZb.js} +12 -12
- package/dist/{ServiceAccountsList-BUuK-RUj.js → ServiceAccountsList-CKy9_YHP.js} +8 -8
- package/dist/{Sessions-Cm-Kilwl.js → Sessions-BDc8gdYH.js} +4 -4
- package/dist/{SettingsPage-Bavl0K-F.js → SettingsPage-t-8kmFVT.js} +13 -13
- package/dist/{SignIn-SfEhFiyM.js → SignIn-CqtkvtCZ.js} +7 -7
- package/dist/{SignInPage-BU0n2ehq.js → SignInPage-DcdNKZIb.js} +4 -4
- package/dist/{SignIns-Ahbn5cO6.js → SignIns-D4-nGu0B.js} +3 -3
- package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-Ds4q0bbl.js → SwitchField.vue_vue_type_script_setup_true_lang-CLtcuofe.js} +15 -14
- package/dist/{TextField.vue_vue_type_script_setup_true_lang-CWIeeZRE.js → TextField.vue_vue_type_script_setup_true_lang-CVGh-p3J.js} +7 -6
- package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-D2j4s96s.js → TextareaField.vue_vue_type_script_setup_true_lang-YxUlNHSk.js} +6 -5
- package/dist/{TimeField.vue_vue_type_script_setup_true_lang-C1mLvOkc.js → TimeField.vue_vue_type_script_setup_true_lang-DHNC_MLt.js} +30 -29
- package/dist/{Timestamp.vue_vue_type_script_setup_true_lang-jCXYFLtq.js → Timestamp.vue_vue_type_script_setup_true_lang-d_KuxWjH.js} +1 -1
- package/dist/{UserRecord-3pCKMHkq.js → UserRecord-CwZCr9Im.js} +10 -10
- package/dist/{UsersList-vw3aDpvo.js → UsersList-Cn19sFgv.js} +4 -4
- package/dist/access/index.js +4 -4
- package/dist/app/application.d.ts +2 -0
- package/dist/app/index.js +2 -2
- package/dist/app/validate.d.ts +3 -1
- package/dist/{application-CHPpOssP.js → application-CDSweJb9.js} +144 -142
- package/dist/collection/authors.d.ts +27 -0
- package/dist/collection/index.d.ts +2 -0
- package/dist/collection/index.js +81 -76
- package/dist/config/index.d.ts +42 -0
- package/dist/config/index.js +12 -3
- package/dist/content/Panel.vue.d.ts +1 -1
- package/dist/content/index.js +2 -2
- package/dist/{contributions-9CPT-Z5v.js → contributions-B0x5x5xD.js} +1 -1
- package/dist/form/CommandDialog.vue.d.ts +1 -1
- package/dist/form/DateField.vue.d.ts +1 -1
- package/dist/form/DateTimeField.vue.d.ts +1 -1
- package/dist/form/FileField.vue.d.ts +1 -1
- package/dist/form/FormRow.vue.d.ts +2 -2
- package/dist/form/I18nField.vue.d.ts +2 -2
- package/dist/form/TextField.vue.d.ts +1 -1
- package/dist/form/TextareaField.vue.d.ts +2 -2
- package/dist/form/date/value.d.ts +21 -0
- package/dist/form/index.d.ts +1 -0
- package/dist/form/index.js +745 -715
- package/dist/format/format.d.ts +8 -2
- package/dist/format/index.js +1 -1
- package/dist/format-C_HXlOYQ.js +136 -0
- package/dist/{guards-6fJxfUtk.js → guards-CNJ0ATVC.js} +1 -1
- package/dist/i18n/index.d.ts +14 -2
- package/dist/i18n/index.js +84 -73
- package/dist/i18n/messages.d.ts +10 -1
- package/dist/i18n/runtime.d.ts +3 -1
- package/dist/identity/index.js +3 -3
- package/dist/identity/profile/EmailChangeDialog.vue.d.ts +2 -2
- package/dist/identity/users/list.d.ts +1 -1
- package/dist/incidents/index.js +1 -1
- package/dist/{index-D9_xqF5g.js → index-1HS7O2-e.js} +9 -9
- package/dist/{index-nByFc1eL.js → index-BA2w8uwD.js} +86 -86
- package/dist/{index-Ct7W_gYE.js → index-SLJWm40T.js} +4 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/modal/DiscardChangesModal.vue.d.ts +2 -2
- package/dist/modal/Modal.vue.d.ts +2 -2
- package/dist/modal/Sheet.vue.d.ts +2 -2
- package/dist/modules/identity/routes.d.ts +1 -1
- package/dist/modules/identity/schemas.d.ts +2 -2
- package/dist/{navigation-DMJ6akat.js → navigation-d-JAPBGA.js} +1 -1
- package/dist/{neighbors-BpypL3Wb.js → neighbors-Dg_LU9ry.js} +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/onboarding/index.js +1 -1
- package/dist/options-mOOX6JSS.js +214 -0
- package/dist/overlay/AlertDialog.vue.d.ts +3 -3
- package/dist/overlay/Menu.vue.d.ts +2 -2
- package/dist/overlay/PhotoViewer.vue.d.ts +2 -2
- package/dist/overlay/Popover.vue.d.ts +2 -2
- package/dist/page/SectionNavigator.vue.d.ts +1 -1
- package/dist/page/SectionPanel.vue.d.ts +1 -1
- package/dist/page/index.js +3 -3
- package/dist/phone/index.js +57 -56
- package/dist/platform/index.d.ts +10 -1
- package/dist/platform/index.js +16 -15
- package/dist/platform/platform.d.ts +4 -2
- package/dist/{platform-ORzRR3Tw.js → platform-DU9QFts8.js} +7 -6
- package/dist/playwright/config.d.ts +33 -0
- package/dist/playwright/index.d.ts +2 -0
- package/dist/playwright/index.js +192 -171
- package/dist/resource/index.js +1 -1
- package/dist/router/index.js +3 -3
- package/dist/{rowLayout-QKfNHsML.js → rowLayout-PIuD7MGo.js} +2 -2
- package/dist/{sections-CSpJN0Z7.js → sections-BpiRLntE.js} +1 -1
- package/dist/{serverMessages-Ce8-MK4e.js → serverMessages-C_KkDvpT.js} +1 -1
- package/dist/shell/index.js +4 -4
- package/dist/state/NextStepPanel.vue.d.ts +63 -0
- package/dist/state/PhaseTiles.vue.d.ts +20 -0
- package/dist/state/PhaseTrack.vue.d.ts +48 -0
- package/dist/state/RequirementList.vue.d.ts +10 -0
- package/dist/state/TodoRow.vue.d.ts +52 -0
- package/dist/state/index.d.ts +9 -0
- package/dist/state/index.js +731 -126
- package/dist/state/phaseStep.d.ts +7 -0
- package/dist/state/phaseTile.d.ts +10 -0
- package/dist/state/requirementItem.d.ts +16 -0
- package/dist/state/todoRow.d.ts +8 -0
- package/dist/{state-QDaxntgR.js → state-z1iPF1DT.js} +1 -1
- package/dist/styles.css +1 -1
- package/dist/{suggestions-q_v3M7G6.js → suggestions-DeMgs_ki.js} +1 -1
- package/dist/testing/format.d.ts +1 -1
- package/dist/testing/index.js +31 -31
- package/dist/{useCommand-DAMgQ5NE.js → useCommand-DQKvro1n.js} +2 -2
- package/dist/{useGroupSheet-B-Hs4gNO.js → useGroupSheet-CRw3MUmX.js} +3 -3
- package/dist/{usePreferences-BfMXVbSO.js → usePreferences-DB29UTFD.js} +1 -1
- package/dist/{useRecordDialog-QPKFH1Ww.js → useRecordDialog-0azHxxvm.js} +1 -1
- package/dist/{useResourceForm-Oa6bk3NI.js → useResourceForm-zVuWerSn.js} +1 -1
- package/dist/{useTypedEntry-CITij2C_.js → useTypedEntry-BsMV66Yc.js} +46 -45
- package/package.json +1 -1
- package/dist/format-Cp1h0vsC.js +0 -125
- package/dist/options-B48UiYsG.js +0 -368
|
@@ -1,7 +1,8 @@
|
|
|
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
|
|
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 i, renderSlot as s, 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 {
|
|
4
|
-
|
|
3
|
+
import { _ as V } from "./options-mOOX6JSS.js";
|
|
4
|
+
import { u as D, f as T, b as E } from "./FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js";
|
|
5
|
+
const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria-label", "aria-describedby", "aria-invalid", "disabled"], P = { class: "sr-only" }, j = /* @__PURE__ */ v({
|
|
5
6
|
__name: "SwitchField",
|
|
6
7
|
props: /* @__PURE__ */ z(/* @__PURE__ */ C({
|
|
7
8
|
label: {},
|
|
@@ -21,7 +22,7 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
21
22
|
}),
|
|
22
23
|
emits: ["update:modelValue"],
|
|
23
24
|
setup(n) {
|
|
24
|
-
const a = n, e = w(n, "modelValue"), { t: r } = M(), { editable: c } =
|
|
25
|
+
const a = n, e = w(n, "modelValue"), { t: r } = M(), { editable: c } = D(a), u = {
|
|
25
26
|
sm: { "--switch-w": "1.75rem", "--switch-h": "1rem" },
|
|
26
27
|
md: { "--switch-w": "var(--app-switch-width)", "--switch-h": "var(--app-switch-height)" },
|
|
27
28
|
lg: { "--switch-w": "3.1875rem", "--switch-h": "1.9375rem" }
|
|
@@ -29,14 +30,14 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
29
30
|
function f() {
|
|
30
31
|
!a.disabled && c.value && (e.value = !e.value);
|
|
31
32
|
}
|
|
32
|
-
return (o, q) => (g(), k(
|
|
33
|
+
return (o, q) => (g(), k(V, _(t(T)(a), {
|
|
33
34
|
value: e.value,
|
|
34
35
|
"row-layout": "setting"
|
|
35
36
|
}), $({
|
|
36
37
|
default: l(({ id: h, describedby: b, invalid: p }) => [
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
i("div", F, [
|
|
39
|
+
s(o.$slots, "before"),
|
|
40
|
+
i("button", {
|
|
40
41
|
id: h,
|
|
41
42
|
type: "button",
|
|
42
43
|
role: "switch",
|
|
@@ -49,10 +50,10 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
49
50
|
class: d(["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"]),
|
|
50
51
|
onClick: f
|
|
51
52
|
}, [
|
|
52
|
-
|
|
53
|
+
i("span", {
|
|
53
54
|
class: d(["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))]" : ""])
|
|
54
55
|
}, null, 2),
|
|
55
|
-
|
|
56
|
+
i("span", P, S(e.value ? t(r)("core.form.yes") : t(r)("core.form.no")), 1)
|
|
56
57
|
], 14, I)
|
|
57
58
|
])
|
|
58
59
|
]),
|
|
@@ -61,21 +62,21 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
61
62
|
o.$slots.trailing ? {
|
|
62
63
|
name: "trailing",
|
|
63
64
|
fn: l(() => [
|
|
64
|
-
|
|
65
|
+
s(o.$slots, "trailing")
|
|
65
66
|
]),
|
|
66
67
|
key: "0"
|
|
67
68
|
} : void 0,
|
|
68
69
|
o.$slots.labelTrailing ? {
|
|
69
70
|
name: "labelTrailing",
|
|
70
71
|
fn: l(() => [
|
|
71
|
-
|
|
72
|
+
s(o.$slots, "labelTrailing")
|
|
72
73
|
]),
|
|
73
74
|
key: "1"
|
|
74
75
|
} : void 0,
|
|
75
76
|
o.$slots.readonly ? {
|
|
76
77
|
name: "readonly",
|
|
77
78
|
fn: l(() => [
|
|
78
|
-
|
|
79
|
+
s(o.$slots, "readonly")
|
|
79
80
|
]),
|
|
80
81
|
key: "2"
|
|
81
82
|
} : void 0
|
|
@@ -83,5 +84,5 @@ const F = { class: "flex items-center gap-2" }, I = ["id", "aria-checked", "aria
|
|
|
83
84
|
}
|
|
84
85
|
});
|
|
85
86
|
export {
|
|
86
|
-
|
|
87
|
+
j as _
|
|
87
88
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { defineComponent as K, useTemplateRef as N, computed as v, watch as te, nextTick as oe, openBlock as n, createElementBlock as l, withModifiers as se, normalizeStyle as ne, unref as i, createElementVNode as m, toDisplayString as r, createCommentVNode as p, Fragment as R, renderList as ae, normalizeClass as B, createBlock as P, renderSlot as b, createTextVNode as E, useModel as ie, ref as le, mergeProps as re, createSlots as ce, withCtx as w, withDirectives as de, vModelDynamic as ue, mergeModels as H, mergeDefaults as pe } from "vue";
|
|
2
2
|
import { useI18n as G } from "vue-i18n";
|
|
3
3
|
import { b as me } from "./controlSurface-t7OEFESJ.js";
|
|
4
|
-
import {
|
|
4
|
+
import { u as fe, _ as he } from "./options-mOOX6JSS.js";
|
|
5
|
+
import { a as ve, f as ge, b as ye } from "./FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js";
|
|
5
6
|
import { _ as xe } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
6
7
|
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-
|
|
8
|
+
import { l as U, m as _e, u as we, c as $e } from "./suggestions-DeMgs_ki.js";
|
|
8
9
|
const Me = ["id", "aria-busy"], qe = { class: "min-h-0 flex-1 overflow-y-auto p-1.5" }, Be = {
|
|
9
10
|
key: 0,
|
|
10
11
|
class: "px-2.5 pb-1 pt-1.5 text-caption font-semibold uppercase text-content-disabled",
|
|
@@ -122,7 +123,7 @@ const Me = ["id", "aria-busy"], qe = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
122
123
|
}, 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
124
|
key: 2,
|
|
124
125
|
class: "shrink-0 text-footnote text-content-muted"
|
|
125
|
-
},
|
|
126
|
+
}, Ze = /* @__PURE__ */ K({
|
|
126
127
|
__name: "TextField",
|
|
127
128
|
props: /* @__PURE__ */ H(/* @__PURE__ */ pe({
|
|
128
129
|
label: {},
|
|
@@ -169,7 +170,7 @@ const Me = ["id", "aria-busy"], qe = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
169
170
|
}),
|
|
170
171
|
emits: /* @__PURE__ */ H(["picked", "focus", "blur"], ["update:modelValue"]),
|
|
171
172
|
setup($, { expose: L, emit: o }) {
|
|
172
|
-
const t = $, c = ie($, "modelValue"), f = o, k = N("input"), _ = N("anchor"), M = !!
|
|
173
|
+
const t = $, c = ie($, "modelValue"), f = o, k = N("input"), _ = N("anchor"), M = !!ve(), g = fe("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
174
|
const e = t.suggestions;
|
|
174
175
|
if (e)
|
|
175
176
|
return typeof e == "function" ? async (y, x) => (await e(y, x)).map(h) : e.map(h);
|
|
@@ -203,7 +204,7 @@ const Me = ["id", "aria-busy"], qe = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
203
204
|
const Y = (e) => {
|
|
204
205
|
a.value && d.keydown(e, { pick: D, enterNeedsMove: !0, complete: X });
|
|
205
206
|
};
|
|
206
|
-
return L({ focus: () => k.value?.focus() }), (e, y) => (n(), P(
|
|
207
|
+
return L({ focus: () => k.value?.focus() }), (e, y) => (n(), P(he, re(i(ge)(t), {
|
|
207
208
|
value: c.value,
|
|
208
209
|
prefix: t.prefix,
|
|
209
210
|
suffix: t.suffix,
|
|
@@ -312,6 +313,6 @@ const Me = ["id", "aria-busy"], qe = { class: "min-h-0 flex-1 overflow-y-auto p-
|
|
|
312
313
|
}
|
|
313
314
|
});
|
|
314
315
|
export {
|
|
315
|
-
|
|
316
|
+
Ze as _,
|
|
316
317
|
Ne as a
|
|
317
318
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { defineComponent as V, useModel as L, useTemplateRef as M, computed as i, openBlock as p, createBlock as D, mergeProps as F, unref as f, createSlots as S, withCtx as n, createElementVNode as v, normalizeClass as b, withDirectives as z, vModelText as E, createElementBlock as P, toDisplayString as R, createCommentVNode as N, renderSlot as d, mergeModels as y, mergeDefaults as _ } from "vue";
|
|
2
2
|
import { u as j } from "./mediaQuery-CygcXmFW.js";
|
|
3
|
-
import {
|
|
3
|
+
import { u as G, _ as H } from "./options-mOOX6JSS.js";
|
|
4
|
+
import { a as U, u as A, f as I, b as J } from "./FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js";
|
|
4
5
|
const K = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], O = {
|
|
5
6
|
key: 0,
|
|
6
7
|
class: "mt-1 self-end text-footnote tabular-nums text-content-muted"
|
|
7
|
-
},
|
|
8
|
+
}, Z = /* @__PURE__ */ V({
|
|
8
9
|
__name: "TextareaField",
|
|
9
10
|
props: /* @__PURE__ */ y(/* @__PURE__ */ _({
|
|
10
11
|
label: {},
|
|
@@ -28,8 +29,8 @@ const K = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "di
|
|
|
28
29
|
}),
|
|
29
30
|
emits: /* @__PURE__ */ y(["focus", "blur"], ["update:modelValue"]),
|
|
30
31
|
setup(u, { expose: g, emit: h }) {
|
|
31
|
-
const e = u, t = L(u, "modelValue"), m = h, c = M("area"), k = !!
|
|
32
|
-
return g({ focus: () => c.value?.focus() }), (o, a) => (p(), D(
|
|
32
|
+
const e = u, t = L(u, "modelValue"), m = h, c = M("area"), k = !!U(), w = j(), { editable: x } = A(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), $ = G("area", () => e.error ? "error" : e.disabled ? "locked" : "rest");
|
|
33
|
+
return g({ focus: () => c.value?.focus() }), (o, a) => (p(), D(H, F({ ...f(I)(e), hint: B.value }, {
|
|
33
34
|
value: t.value,
|
|
34
35
|
"row-layout": s.value ? "entry" : "stacked",
|
|
35
36
|
"row-label-align": "top"
|
|
@@ -89,5 +90,5 @@ const K = ["id", "name", "rows", "placeholder", "maxlength", "autocomplete", "di
|
|
|
89
90
|
}
|
|
90
91
|
});
|
|
91
92
|
export {
|
|
92
|
-
|
|
93
|
+
Z as _
|
|
93
94
|
};
|
|
@@ -1,25 +1,26 @@
|
|
|
1
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
2
|
import { useI18n as R } from "vue-i18n";
|
|
3
3
|
import { _ as te } from "./DateButton.vue_vue_type_script_setup_true_lang-CovKG5lN.js";
|
|
4
|
-
import { u as oe } from "./format-
|
|
4
|
+
import { u as oe } from "./format-C_HXlOYQ.js";
|
|
5
5
|
import { _ as le } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
6
|
-
import { u as
|
|
7
|
-
import { _ as
|
|
8
|
-
import {
|
|
9
|
-
import { d as
|
|
6
|
+
import { u as re } from "./mediaQuery-CygcXmFW.js";
|
|
7
|
+
import { _ as ae } from "./Popover.vue_vue_type_script_setup_true_lang-BK8HL_V0.js";
|
|
8
|
+
import { u as se, _ as ie } from "./options-mOOX6JSS.js";
|
|
9
|
+
import { d as ne, r as ue, t as I, p as me, u as de, a as ce, i as Q, _ as pe, b as fe, c as ve } from "./useTypedEntry-BsMV66Yc.js";
|
|
10
|
+
import { f as be, b as ye } from "./FormRow.vue_vue_type_script_setup_true_lang-CpgNVQF4.js";
|
|
10
11
|
function ke(s) {
|
|
11
12
|
const { t: i } = R(), y = m(() => [i("core.form.time.words.now").toLowerCase(), "now"]);
|
|
12
13
|
return {
|
|
13
14
|
placeholder: m(() => i("core.form.time.placeholder")),
|
|
14
15
|
parse(e) {
|
|
15
16
|
if (y.value.includes(e.trim().toLowerCase())) return { value: I(s()) };
|
|
16
|
-
const l =
|
|
17
|
+
const l = me(e, s());
|
|
17
18
|
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
|
},
|
|
19
|
-
shortcuts: (e) => (e ??
|
|
20
|
+
shortcuts: (e) => (e ?? ne).map((l) => ue(l, i("core.form.time.now"), I(s())))
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
|
-
const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], ge = ["aria-label", "onClick"],
|
|
23
|
+
const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-required", "aria-invalid", "aria-describedby"], ge = ["aria-label", "onClick"], De = /* @__PURE__ */ G({
|
|
23
24
|
__name: "TimeField",
|
|
24
25
|
props: /* @__PURE__ */ L(/* @__PURE__ */ ee({
|
|
25
26
|
label: {},
|
|
@@ -34,23 +35,23 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
34
35
|
name: {},
|
|
35
36
|
minuteStep: {},
|
|
36
37
|
quickTimes: {}
|
|
37
|
-
}, { ...
|
|
38
|
+
}, { ...ye, minuteStep: 1, quickTimes: void 0 }), {
|
|
38
39
|
modelValue: { default: null },
|
|
39
40
|
modelModifiers: {}
|
|
40
41
|
}),
|
|
41
42
|
emits: /* @__PURE__ */ L(["focus", "blur"], ["update:modelValue"]),
|
|
42
43
|
setup(s, { expose: i, emit: y }) {
|
|
43
|
-
const e = s, l = J(s, "modelValue"), $ = y, { t: p } = R(), A = oe(), H =
|
|
44
|
-
const t =
|
|
44
|
+
const e = s, l = J(s, "modelValue"), $ = y, { t: p } = R(), A = oe(), H = re(), q = b("input"), f = b("popover"), C = b("panel"), V = b("sheet"), k = ke(() => e.minuteStep), r = de({ model: l, display: (t) => t, parse: k.parse }), S = m(() => k.shortcuts(e.quickTimes)), B = m(() => e.error || r.message.value), K = se("date", () => B.value ? "error" : e.disabled ? "locked" : "rest"), W = m(() => {
|
|
45
|
+
const t = ce(l.value);
|
|
45
46
|
return t ? A.time(new Date(2e3, 0, 1, t.hour, t.minute)) : null;
|
|
46
|
-
}), D = m(() => Q(
|
|
47
|
+
}), D = m(() => Q(r.typed.value) ? r.typed.value : Q(l.value) ? l.value : null);
|
|
47
48
|
async function w(t) {
|
|
48
49
|
e.disabled || (f.value?.present(), t && (await M(), await M(), C.value?.querySelector("[role=listbox]")?.focus()));
|
|
49
50
|
}
|
|
50
51
|
function j(t) {
|
|
51
|
-
t.key === "Enter" ? (
|
|
52
|
+
t.key === "Enter" ? (r.commit(), f.value?.dismiss()) : t.key === "ArrowDown" && (t.preventDefault(), w(!0));
|
|
52
53
|
}
|
|
53
|
-
return i({ focus: () => q.value?.focus() }), (t,
|
|
54
|
+
return i({ focus: () => q.value?.focus() }), (t, a) => (d(), F(ie, T({ ...o(be)(e), error: B.value }, {
|
|
54
55
|
value: W.value,
|
|
55
56
|
"value-style": "numeric"
|
|
56
57
|
}), O({
|
|
@@ -60,7 +61,7 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
60
61
|
disabled: e.disabled,
|
|
61
62
|
invalid: P,
|
|
62
63
|
placeholder: o(p)("core.form.select.choose"),
|
|
63
|
-
onClick:
|
|
64
|
+
onClick: a[0] || (a[0] = (v) => V.value?.present())
|
|
64
65
|
}), {
|
|
65
66
|
default: u(() => [
|
|
66
67
|
l.value ? (d(), _(U, { key: 0 }, [
|
|
@@ -69,7 +70,7 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
69
70
|
]),
|
|
70
71
|
_: 1
|
|
71
72
|
}, 16, ["disabled", "invalid", "placeholder"]),
|
|
72
|
-
c(
|
|
73
|
+
c(pe, {
|
|
73
74
|
ref_key: "sheet",
|
|
74
75
|
ref: V,
|
|
75
76
|
title: e.label ?? o(p)("core.form.time.label"),
|
|
@@ -78,9 +79,9 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
78
79
|
shortcuts: S.value,
|
|
79
80
|
step: e.minuteStep,
|
|
80
81
|
clearable: !e.required,
|
|
81
|
-
"onUpdate:modelValue": o(
|
|
82
|
+
"onUpdate:modelValue": o(r).set
|
|
82
83
|
}, null, 8, ["title", "model-value", "shortcuts", "step", "clearable", "onUpdate:modelValue"])
|
|
83
|
-
], 64)) : (d(), F(
|
|
84
|
+
], 64)) : (d(), F(ae, {
|
|
84
85
|
key: 1,
|
|
85
86
|
ref_key: "popover",
|
|
86
87
|
ref: f,
|
|
@@ -104,7 +105,7 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
104
105
|
autocomplete: "off",
|
|
105
106
|
size: "10",
|
|
106
107
|
name: e.name,
|
|
107
|
-
value: o(
|
|
108
|
+
value: o(r).text.value,
|
|
108
109
|
placeholder: o(k).placeholder.value,
|
|
109
110
|
disabled: e.disabled,
|
|
110
111
|
required: e.required,
|
|
@@ -112,13 +113,13 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
112
113
|
"aria-invalid": P || void 0,
|
|
113
114
|
"aria-describedby": N,
|
|
114
115
|
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:
|
|
116
|
-
onFocus:
|
|
117
|
-
onBlur:
|
|
118
|
-
o(
|
|
116
|
+
onInput: a[1] || (a[1] = (n) => o(r).input(n.target.value)),
|
|
117
|
+
onFocus: a[2] || (a[2] = (n) => $("focus", n)),
|
|
118
|
+
onBlur: a[3] || (a[3] = (n) => {
|
|
119
|
+
o(r).commit(), $("blur", n);
|
|
119
120
|
}),
|
|
120
121
|
onKeydown: j,
|
|
121
|
-
onClick:
|
|
122
|
+
onClick: a[4] || (a[4] = (n) => w(!1))
|
|
122
123
|
}), null, 16, we),
|
|
123
124
|
e.disabled ? z("", !0) : (d(), _("button", {
|
|
124
125
|
key: 0,
|
|
@@ -141,16 +142,16 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
141
142
|
ref: C,
|
|
142
143
|
class: "flex flex-col gap-2.5"
|
|
143
144
|
}, [
|
|
144
|
-
c(
|
|
145
|
+
c(fe, {
|
|
145
146
|
"model-value": D.value,
|
|
146
147
|
step: e.minuteStep,
|
|
147
|
-
"onUpdate:modelValue": o(
|
|
148
|
+
"onUpdate:modelValue": o(r).set
|
|
148
149
|
}, null, 8, ["model-value", "step", "onUpdate:modelValue"]),
|
|
149
|
-
c(
|
|
150
|
+
c(ve, {
|
|
150
151
|
items: S.value,
|
|
151
152
|
selected: D.value,
|
|
152
153
|
onPick: (g) => {
|
|
153
|
-
o(
|
|
154
|
+
o(r).set(g), v();
|
|
154
155
|
}
|
|
155
156
|
}, null, 8, ["items", "selected", "onPick"])
|
|
156
157
|
], 512)
|
|
@@ -185,6 +186,6 @@ const we = ["id", "name", "value", "placeholder", "disabled", "required", "aria-
|
|
|
185
186
|
}
|
|
186
187
|
});
|
|
187
188
|
export {
|
|
188
|
-
|
|
189
|
+
De as _,
|
|
189
190
|
ke as u
|
|
190
191
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as x, computed as s, openBlock as n, createElementBlock as o, createVNode as m, createElementVNode as l, toDisplayString as a, unref as u, createTextVNode as f } from "vue";
|
|
2
2
|
import { useI18n as v } from "vue-i18n";
|
|
3
|
-
import { u as h, t as g } from "./format-
|
|
3
|
+
import { u as h, t as g } from "./format-C_HXlOYQ.js";
|
|
4
4
|
import { _ as w } from "./Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
5
5
|
import { _ as y } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
|
|
6
6
|
const k = {
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { defineComponent as E, openBlock as N, createBlock as L, unref as e, withCtx as p, createVNode as n, mergeProps as q, provide as C, computed as _, useTemplateRef as D, createElementVNode as h, toDisplayString as S, createTextVNode as K } from "vue";
|
|
2
2
|
import { useI18n as U } from "vue-i18n";
|
|
3
|
-
import { u as z } from "./neighbors-
|
|
3
|
+
import { u as z } from "./neighbors-Dg_LU9ry.js";
|
|
4
4
|
import { _ as G } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
|
|
5
5
|
import { u as I } from "./describeError-B-NMa--w.js";
|
|
6
6
|
import { i as k } from "./preferences-hYhrw8Uy.js";
|
|
7
7
|
import { _ as O } from "./AlertDialog.vue_vue_type_script_setup_true_lang-WuGvAOrj.js";
|
|
8
8
|
import { t as $ } from "./toast-CqSDTWRX.js";
|
|
9
|
-
import { _ as j } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-
|
|
10
|
-
import { u as V } from "./platform-
|
|
9
|
+
import { _ as j } from "./SectionNavigator.vue_vue_type_script_setup_true_lang-DCTFxfPB.js";
|
|
10
|
+
import { u as V } from "./platform-DU9QFts8.js";
|
|
11
11
|
import { a as F } from "./routeResource-DlTsGTg_.js";
|
|
12
|
-
import { a as H } from "./ResourcePage.vue_vue_type_script_setup_true_lang-
|
|
12
|
+
import { a as H } from "./ResourcePage.vue_vue_type_script_setup_true_lang-1iZtj3rh.js";
|
|
13
13
|
import { A as J } from "./access-DmAceEo5.js";
|
|
14
14
|
import { _ as Q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
15
15
|
import { u as W } from "./useLoad-M7V-AVwR.js";
|
|
16
|
-
import { i as X } from "./usePreferences-
|
|
17
|
-
import { P as Y, p as Z, c as ee, d as se, b as ae, M as te, o as oe, s as re } from "./index-
|
|
18
|
-
import { a as ne } from "./FormGroup.vue_vue_type_script_setup_true_lang-
|
|
19
|
-
import { _ as A } from "./TextField.vue_vue_type_script_setup_true_lang-
|
|
20
|
-
import { u as ie, _ as ce } from "./useCommand-
|
|
21
|
-
import { u as le } from "./serverMessages-
|
|
16
|
+
import { i as X } from "./usePreferences-DB29UTFD.js";
|
|
17
|
+
import { P as Y, p as Z, c as ee, d as se, b as ae, M as te, o as oe, s as re } from "./index-BA2w8uwD.js";
|
|
18
|
+
import { a as ne } from "./FormGroup.vue_vue_type_script_setup_true_lang-lvAuBG-0.js";
|
|
19
|
+
import { _ as A } from "./TextField.vue_vue_type_script_setup_true_lang-CVGh-p3J.js";
|
|
20
|
+
import { u as ie, _ as ce } from "./useCommand-DQKvro1n.js";
|
|
21
|
+
import { u as le } from "./serverMessages-C_KkDvpT.js";
|
|
22
22
|
const ue = /* @__PURE__ */ E({
|
|
23
23
|
__name: "SetPasswordDialog",
|
|
24
24
|
props: {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { defineComponent as C, useTemplateRef as N, computed as a, openBlock as i, createBlock as m, unref as s, withCtx as r, createVNode as d, createTextVNode as R, toDisplayString as l, createCommentVNode as S, createElementBlock as _, normalizeClass as p } from "vue";
|
|
2
2
|
import { useI18n as E } from "vue-i18n";
|
|
3
3
|
import { useRouter as $ } from "vue-router";
|
|
4
|
-
import { u as B, _ as T } from "./CollectionPage.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { u as B, _ as T } from "./CollectionPage.vue_vue_type_script_setup_true_lang-Dr6nFNBB.js";
|
|
5
5
|
import { _ as V } from "./Avatar.vue_vue_type_script_setup_true_lang-BPj_fkJR.js";
|
|
6
|
-
import { u as L } from "./format-
|
|
7
|
-
import { u as z } from "./platform-
|
|
6
|
+
import { u as L } from "./format-C_HXlOYQ.js";
|
|
7
|
+
import { u as z } from "./platform-DU9QFts8.js";
|
|
8
8
|
import { _ as A } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
9
|
-
import { b as D, U as I, c as f, d as M, M as q, s as F } from "./index-
|
|
9
|
+
import { b as D, U as I, c as f, d as M, M as q, s as F } from "./index-BA2w8uwD.js";
|
|
10
10
|
const G = ["datetime"], Z = /* @__PURE__ */ C({
|
|
11
11
|
__name: "UsersList",
|
|
12
12
|
setup(K) {
|
package/dist/access/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as Q, a as U, b as W } from "../PersonAccess.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _ as Q, a as U, b as W } from "../PersonAccess.vue_vue_type_script_setup_true_lang-mYFuG-Y3.js";
|
|
2
2
|
import { d as _, p as x } from "../feature-DdUAfyi4.js";
|
|
3
3
|
import { a as n, b } from "../refusals-DfPzVNNY.js";
|
|
4
4
|
import { d as Y, p as Z, r as ee, c as se, u as te, e as oe, f as ce } from "../refusals-DfPzVNNY.js";
|
|
@@ -10,12 +10,12 @@ import { _ as P } from "../Button.vue_vue_type_script_setup_true_lang-JrqhO99l.j
|
|
|
10
10
|
import { _ as B } from "../Panel.vue_vue_type_script_setup_true_lang-D_Wg42hu.js";
|
|
11
11
|
import { _ as K } from "../Icon.vue_vue_type_script_lang-BhhsFYwp.js";
|
|
12
12
|
const p = h({
|
|
13
|
-
roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-
|
|
14
|
-
newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-
|
|
13
|
+
roles: { name: "access.roles", path: "/iam/roles", component: () => import("../RolesPage-FOuY1VKg.js"), meta: { access: n.viewRoles, titleKey: "core.access.title" } },
|
|
14
|
+
newRole: { name: "access.roles.new", path: "/iam/roles/new", component: () => import("../NewRolePage-BYYZJkK7.js"), meta: { access: n.manageRoles, titleKey: "core.access.new_title" } },
|
|
15
15
|
role: {
|
|
16
16
|
name: "access.role",
|
|
17
17
|
path: "/iam/roles/:ref",
|
|
18
|
-
component: () => import("../RolePage-
|
|
18
|
+
component: () => import("../RolePage-C08ZUqw1.js"),
|
|
19
19
|
// A role's ref (its key, or the id of a custom one) swaps in place when a link leads to another role.
|
|
20
20
|
meta: { access: n.viewRoles, titleKey: "core.access.title", remountOnParam: "ref" }
|
|
21
21
|
}
|
|
@@ -82,6 +82,8 @@ export interface ApplicationOptions {
|
|
|
82
82
|
shell?: Component | ShellDefinition;
|
|
83
83
|
router?: ApplicationRouterOptions;
|
|
84
84
|
i18n?: ApplicationI18nOptions;
|
|
85
|
+
/** Which file holds a locale's messages when the name differs, for namespaces declared from `import.meta.glob` (`{ bs: "ba" }`: `ba.json` is Bosnian). Default: the file name is the locale. */
|
|
86
|
+
localeFiles?: Readonly<Record<string, string>>;
|
|
85
87
|
locale?: ApplicationLocaleOptions;
|
|
86
88
|
/**
|
|
87
89
|
* How dates and numbers are written: the `Intl` formatters, any of them replaced, and the `FormattingSettings` (the `intlLocale` map, a numeric
|
package/dist/app/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { A as r, c as o } from "../application-
|
|
1
|
+
import { A as r, c as o } from "../application-CDSweJb9.js";
|
|
2
2
|
import { c as p, a as s } from "../current-CslcEPXp.js";
|
|
3
|
-
import { S as n } from "../contributions-
|
|
3
|
+
import { S as n } from "../contributions-B0x5x5xD.js";
|
|
4
4
|
import { a as l, u } from "../environment-Dva-SG8D.js";
|
|
5
5
|
import { d as x, p as m } from "../feature-DdUAfyi4.js";
|
|
6
6
|
import { k as d, u as S } from "../keepAlive-ClGnsIzT.js";
|
package/dist/app/validate.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InjectionKey } from "vue";
|
|
2
|
-
import type
|
|
2
|
+
import { type LocaleFiles, type MessageNamespace } from "../i18n";
|
|
3
3
|
import type { Platform } from "../platform/platform";
|
|
4
4
|
import type { Feature, ShellSlot } from "./feature";
|
|
5
5
|
/** One thing wrong with the composition, and who owns it. */
|
|
@@ -21,6 +21,8 @@ export interface CompositionInput {
|
|
|
21
21
|
/** Keys the runtime provides: a feature may not provide them. */
|
|
22
22
|
reservedContexts: readonly InjectionKey<never>[];
|
|
23
23
|
supportedLocales: readonly string[];
|
|
24
|
+
/** The file name per locale where it differs (`createApplication({ localeFiles })`). */
|
|
25
|
+
localeFiles?: LocaleFiles;
|
|
24
26
|
/** The slots the shell renders, when it says. */
|
|
25
27
|
shellSlots: readonly ShellSlot[] | undefined;
|
|
26
28
|
}
|