@wssto2/vue-core 0.5.3 → 0.6.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 +32 -0
- package/README.md +3 -1
- package/dist/{ActionRow.vue_vue_type_script_setup_true_lang-Bv-APkGf.js → ActionRow.vue_vue_type_script_setup_true_lang-D8NCXX4p.js} +1 -1
- package/dist/{Activity-DUjDaPfP.js → Activity-DGodh6BU.js} +4 -4
- package/dist/{Changes-B0tZO6BZ.js → Changes-38u4xY6e.js} +3 -3
- package/dist/{CollectionPage.vue_vue_type_script_setup_true_lang-o_Pj-JcD.js → CollectionPage.vue_vue_type_script_setup_true_lang-DPcCnrjr.js} +3 -3
- package/dist/{DateField.vue_vue_type_script_setup_true_lang-CDg31ZU7.js → DateField.vue_vue_type_script_setup_true_lang-BxUuUypB.js} +1 -1
- package/dist/{DeadLetters-IgVHao84.js → DeadLetters-CeHfhFHP.js} +6 -5
- package/dist/{FormGroup.vue_vue_type_script_setup_true_lang-CSgT4ITL.js → FormGroup.vue_vue_type_script_setup_true_lang-CNb2CK01.js} +1 -1
- package/dist/{FormView.vue_vue_type_script_setup_true_lang-D31Hk3pJ.js → FormView.vue_vue_type_script_setup_true_lang-nyz8EkzM.js} +1 -1
- package/dist/{General-C40HxupS.js → General-BNTjPvat.js} +6 -6
- package/dist/{NewRolePage-Bhy8KJO1.js → NewRolePage-Btg7gzzH.js} +7 -6
- package/dist/{NumberField.vue_vue_type_script_setup_true_lang-BdS7BxuS.js → NumberField.vue_vue_type_script_setup_true_lang-C8um4ARi.js} +1 -1
- package/dist/PersonAccess.vue_vue_type_script_setup_true_lang-ClmawvYm.js +600 -0
- package/dist/{ProfilePage-Bf7dFzGd.js → ProfilePage-CoZyG11N.js} +9 -9
- package/dist/{RoleEditor.vue_vue_type_script_setup_true_lang-C6oloGIh.js → RoleEditor.vue_vue_type_script_setup_true_lang-Bs9bo0Zb.js} +30 -29
- package/dist/{RolePage-BjbvciTg.js → RolePage-CPlwZA6X.js} +37 -35
- package/dist/{RolesPage-DzVOgF4z.js → RolesPage-CdYdIHR4.js} +29 -27
- package/dist/{SegmentedField.vue_vue_type_script_setup_true_lang-DXe_iOS8.js → SegmentedField.vue_vue_type_script_setup_true_lang-B_hBL5f4.js} +1 -1
- package/dist/{SelectField.vue_vue_type_script_setup_true_lang-BN4vzvV9.js → SelectField.vue_vue_type_script_setup_true_lang-CBZhGNpm.js} +4 -4
- package/dist/ServiceAccountDialog.vue_vue_type_script_setup_true_lang-DuvSSBbX.js +126 -0
- package/dist/ServiceAccountRecord-BtaUZuWU.js +511 -0
- package/dist/ServiceAccountsList-CcRJvNaf.js +137 -0
- package/dist/{SessionList.vue_vue_type_script_setup_true_lang-PuWIK-Wa.js → SessionList.vue_vue_type_script_setup_true_lang-VvBB2EZz.js} +2 -2
- package/dist/{Sessions-CRUObe5G.js → Sessions-DkGNO1FO.js} +2 -2
- package/dist/{SettingsPage-C0qEC0uI.js → SettingsPage-D4G1HGbG.js} +8 -8
- package/dist/{SignIn-Uy0Jujzz.js → SignIn-DS1YymqD.js} +4 -4
- package/dist/{SignInPage-CpVZfrLZ.js → SignInPage-BrmL0PUw.js} +3 -3
- package/dist/{SignIns-Cp5Gx2dk.js → SignIns-C7l7IPHQ.js} +1 -1
- package/dist/{SwitchField.vue_vue_type_script_setup_true_lang-Dj5Aq8QT.js → SwitchField.vue_vue_type_script_setup_true_lang-DXZK89A3.js} +1 -1
- package/dist/{TextField.vue_vue_type_script_setup_true_lang-BwfNNQEz.js → TextField.vue_vue_type_script_setup_true_lang-CX3LdZLK.js} +2 -2
- package/dist/{TextareaField.vue_vue_type_script_setup_true_lang-aT1P8Xqr.js → TextareaField.vue_vue_type_script_setup_true_lang-BOtn_1GT.js} +1 -1
- package/dist/{TimeField.vue_vue_type_script_setup_true_lang-jPKPE1hc.js → TimeField.vue_vue_type_script_setup_true_lang-CbflIrq6.js} +1 -1
- package/dist/{UserRecord-DbSMnTbj.js → UserRecord-Du8M_kuk.js} +25 -25
- package/dist/{UsersList-9MicE2pG.js → UsersList-D3ydQice.js} +13 -13
- package/dist/access/api.d.ts +7 -8
- package/dist/access/context.d.ts +2 -7
- package/dist/access/feature.d.ts +0 -8
- package/dist/access/index.js +47 -15
- package/dist/client/client.d.ts +2 -2
- package/dist/client/index.d.ts +1 -1
- package/dist/client/route.d.ts +22 -3
- package/dist/collection/http.d.ts +3 -2
- package/dist/collection/index.js +17 -16
- package/dist/form/index.js +586 -611
- package/dist/http-nz92KjdS.js +42 -0
- package/dist/i18n/index.js +32 -32
- package/dist/identity/index.d.ts +7 -0
- package/dist/identity/index.js +19 -15
- package/dist/identity/serviceaccounts/ApiKeysPanel.vue.d.ts +17 -0
- package/dist/identity/serviceaccounts/CreatedApiKeyDialog.vue.d.ts +53 -0
- package/dist/identity/serviceaccounts/NewApiKeyDialog.vue.d.ts +24 -0
- package/dist/identity/serviceaccounts/ServiceAccountDialog.vue.d.ts +22 -0
- package/dist/identity/serviceaccounts/ServiceAccountRecord.vue.d.ts +2 -0
- package/dist/identity/serviceaccounts/ServiceAccountsList.vue.d.ts +2 -0
- package/dist/identity/serviceaccounts/access.d.ts +4 -0
- package/dist/identity/serviceaccounts/api.d.ts +27 -0
- package/dist/identity/serviceaccounts/context.d.ts +14 -0
- package/dist/identity/serviceaccounts/feature.d.ts +23 -0
- package/dist/identity/serviceaccounts/form.d.ts +4 -0
- package/dist/identity/serviceaccounts/messages.d.ts +11 -0
- package/dist/identity/serviceaccounts/routes.d.ts +22 -0
- package/dist/{index-Ok29ucE3.js → index-Cmj9iZmT.js} +191 -168
- package/dist/{index-C-oM_Mnf.js → index-DH0MoFqg.js} +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/copyText.d.ts +5 -0
- package/dist/modules/access/routes.d.ts +13 -13
- package/dist/modules/events/routes.d.ts +4 -4
- package/dist/modules/identity/routes.d.ts +31 -31
- package/dist/modules/notification/routes.d.ts +16 -16
- package/dist/modules/serviceaccount/entities.d.ts +127 -0
- package/dist/modules/serviceaccount/routes.d.ts +58 -0
- package/dist/modules/serviceaccount/schemas.d.ts +49 -0
- package/dist/{neighbors-Bv6vnWlW.js → neighbors-DNZuGlQH.js} +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/{options-Bu0XbEpN.js → options-e_CAfvDQ.js} +3 -3
- package/dist/phone/index.js +1 -1
- package/dist/refusals-COPr15XZ.js +135 -0
- package/dist/routes-CVckt7Pj.js +19 -0
- package/dist/state-BC1Fc6U2.js +154 -0
- package/dist/{status-C78NpXyB.js → status-C8XtnK6m.js} +7 -6
- package/dist/styles.css +1 -1
- package/dist/{suggestions-ClyLexMO.js → suggestions-cPjs5gQz.js} +1 -1
- package/dist/{useCommand-DyuPTosF.js → useCommand-CfG727e8.js} +1 -1
- package/dist/{useGroupSheet-C2NyqWRp.js → useGroupSheet-BVcNDWbP.js} +2 -2
- package/dist/useRecordDialog-D65FF85F.js +30 -0
- package/package.json +2 -2
- package/dist/http-CdQowFlW.js +0 -194
- package/dist/index-BdGnA1Jh.js +0 -765
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { defineComponent as D, computed as k, ref as H, openBlock as r, createElementBlock as g, createElementVNode as O, unref as t, Fragment as
|
|
1
|
+
import { defineComponent as D, computed as k, ref as H, openBlock as r, createElementBlock as g, createElementVNode as O, unref as t, Fragment as L, renderList as C, normalizeClass as X, toDisplayString as f, createVNode as q, withCtx as p, createTextVNode as x, createCommentVNode as V, createBlock as _, createSlots as Y, watch as Z, mergeProps as F } from "vue";
|
|
2
2
|
import { useI18n as I } from "vue-i18n";
|
|
3
3
|
import { u as ee } from "./FormErrors.vue_vue_type_script_setup_true_lang-D7edzNTL.js";
|
|
4
|
-
import { _ as Q } from "./FormGroup.vue_vue_type_script_setup_true_lang-
|
|
5
|
-
import { _ as te } from "./FormView.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { _ as ae } from "./SelectField.vue_vue_type_script_setup_true_lang-
|
|
7
|
-
import { _ as se } from "./TextareaField.vue_vue_type_script_setup_true_lang-
|
|
8
|
-
import { _ as oe } from "./TextField.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { _ as Q } from "./FormGroup.vue_vue_type_script_setup_true_lang-CNb2CK01.js";
|
|
5
|
+
import { _ as te } from "./FormView.vue_vue_type_script_setup_true_lang-nyz8EkzM.js";
|
|
6
|
+
import { _ as ae } from "./SelectField.vue_vue_type_script_setup_true_lang-CBZhGNpm.js";
|
|
7
|
+
import { _ as se } from "./TextareaField.vue_vue_type_script_setup_true_lang-BOtn_1GT.js";
|
|
8
|
+
import { _ as oe } from "./TextField.vue_vue_type_script_setup_true_lang-CX3LdZLK.js";
|
|
9
9
|
import { u as ne } from "./useSaveChrome-7huA3FzR.js";
|
|
10
10
|
import { t as le } from "./toast-CqSDTWRX.js";
|
|
11
11
|
import { _ as E } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
12
12
|
import { _ as R } from "./Banner.vue_vue_type_script_setup_true_lang-DSStj_5z.js";
|
|
13
|
-
import {
|
|
13
|
+
import { u as re } from "./PersonAccess.vue_vue_type_script_setup_true_lang-ClmawvYm.js";
|
|
14
|
+
import { g as W, u as G, p as ie, o as T, h as K, i as M, s as ce, j as ue, f as de, a as me, k as fe } from "./refusals-COPr15XZ.js";
|
|
14
15
|
import { _ as pe } from "./Button.vue_vue_type_script_setup_true_lang-CL9Qh5yq.js";
|
|
15
16
|
import { _ as _e } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
|
|
16
|
-
import { _ as ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-
|
|
17
|
-
import { _ as be } from "./SwitchField.vue_vue_type_script_setup_true_lang-
|
|
17
|
+
import { _ as ve } from "./SegmentedField.vue_vue_type_script_setup_true_lang-B_hBL5f4.js";
|
|
18
|
+
import { _ as be } from "./SwitchField.vue_vue_type_script_setup_true_lang-DXZK89A3.js";
|
|
18
19
|
import { u as ge } from "./platform-Dx6STiwY.js";
|
|
19
20
|
function ye(y, c) {
|
|
20
21
|
return Object.fromEntries(
|
|
@@ -34,7 +35,7 @@ function he(y, c, d, o) {
|
|
|
34
35
|
const ke = {
|
|
35
36
|
class: "flex min-w-0 flex-col gap-4 lg:grid lg:grid-cols-[15rem_minmax(0,1fr)] lg:items-start lg:gap-8",
|
|
36
37
|
"data-test": "permission-tree"
|
|
37
|
-
}, xe = ["aria-label"], we = ["data-test", "aria-current", "onClick"], $e = { class: "min-w-0 flex-1 truncate" }, Oe = ["data-test"], Ve = ["data-test"],
|
|
38
|
+
}, xe = ["aria-label"], we = ["data-test", "aria-current", "onClick"], $e = { class: "min-w-0 flex-1 truncate" }, Oe = ["data-test"], Ve = ["data-test"], je = { class: "flex min-w-0 items-center justify-between gap-3 px-row-inset" }, Le = { class: "min-w-0 flex-1 text-title3 font-semibold text-content-strong" }, Ce = { class: "text-footnote tabular-nums text-content-muted" }, qe = {
|
|
38
39
|
key: 0,
|
|
39
40
|
class: "contents",
|
|
40
41
|
"data-test": "tree-toggle-all"
|
|
@@ -45,10 +46,10 @@ const ke = {
|
|
|
45
46
|
readonly: { type: Boolean }
|
|
46
47
|
},
|
|
47
48
|
setup(y) {
|
|
48
|
-
const c = y, { t: d } = I(), { catalogue: o } = W(), u = G(), l = k(() =>
|
|
49
|
+
const c = y, { t: d } = I(), { catalogue: o } = W(), u = G(), l = k(() => ie(o)), v = H(l.value[0]?.key ?? ""), i = k(() => l.value.find((a) => a.key === v.value) ?? l.value[0]), b = (a) => Object.entries(o).filter(([, s]) => ue(s) === a).map(([s]) => s), w = (a) => {
|
|
49
50
|
const s = b(a);
|
|
50
51
|
return { granted: s.filter((e) => e in c.grants).length, total: s.length };
|
|
51
|
-
}, B = (a) => `${w(a).granted} / ${w(a).total}`,
|
|
52
|
+
}, B = (a) => `${w(a).granted} / ${w(a).total}`, j = k(() => l.value.map((a) => ({ value: a.key, label: u.groupLabel(a.key), badge: B(a.key) }))), P = k(() => i.value !== void 0 && w(i.value.key).granted === w(i.value.key).total);
|
|
52
53
|
function m() {
|
|
53
54
|
if (!i.value) return;
|
|
54
55
|
const a = P.value;
|
|
@@ -64,14 +65,14 @@ const ke = {
|
|
|
64
65
|
const s = a.requires.map((e) => u.permissionLabel(e)).join(", ");
|
|
65
66
|
return [u.permissionDescription(a.id), s ? d("core.access.requires", { names: s }) : ""].filter(Boolean).join(" ");
|
|
66
67
|
}
|
|
67
|
-
const A = (a, s) =>
|
|
68
|
+
const A = (a, s) => ce(o, c.grants, a, s), z = (a, s) => s ? M(o, c.grants, a) : K(o, c.grants, a);
|
|
68
69
|
return (a, s) => (r(), g("div", ke, [
|
|
69
70
|
O("nav", {
|
|
70
71
|
class: "hidden flex-col gap-0.5 lg:sticky lg:top-4 lg:flex",
|
|
71
72
|
"aria-label": t(d)("core.access.modules"),
|
|
72
73
|
"data-test": "tree-modules"
|
|
73
74
|
}, [
|
|
74
|
-
(r(!0), g(
|
|
75
|
+
(r(!0), g(L, null, C(l.value, (e) => (r(), g("button", {
|
|
75
76
|
key: e.key,
|
|
76
77
|
type: "button",
|
|
77
78
|
"data-test": `tree-module-${e.key}`,
|
|
@@ -89,7 +90,7 @@ const ke = {
|
|
|
89
90
|
q(t(_e), {
|
|
90
91
|
modelValue: v.value,
|
|
91
92
|
"onUpdate:modelValue": s[0] || (s[0] = (e) => v.value = e),
|
|
92
|
-
tabs:
|
|
93
|
+
tabs: j.value,
|
|
93
94
|
presentation: "scope",
|
|
94
95
|
class: "lg:hidden"
|
|
95
96
|
}, null, 8, ["modelValue", "tabs"]),
|
|
@@ -98,8 +99,8 @@ const ke = {
|
|
|
98
99
|
class: "flex min-w-0 flex-col gap-6",
|
|
99
100
|
"data-test": `tree-panel-${i.value.key}`
|
|
100
101
|
}, [
|
|
101
|
-
O("div",
|
|
102
|
-
O("h2",
|
|
102
|
+
O("div", je, [
|
|
103
|
+
O("h2", Le, f(t(u).groupLabel(i.value.key)), 1),
|
|
103
104
|
O("span", Ce, f(B(i.value.key)), 1),
|
|
104
105
|
c.readonly ? V("", !0) : (r(), g("span", qe, [
|
|
105
106
|
q(t(pe), {
|
|
@@ -114,12 +115,12 @@ const ke = {
|
|
|
114
115
|
})
|
|
115
116
|
]))
|
|
116
117
|
]),
|
|
117
|
-
(r(!0), g(
|
|
118
|
+
(r(!0), g(L, null, C(i.value.screens, (e) => (r(), _(t(Q), {
|
|
118
119
|
key: e.key,
|
|
119
120
|
header: t(u).screenLabel(e.key)
|
|
120
121
|
}, {
|
|
121
122
|
default: p(() => [
|
|
122
|
-
(r(!0), g(
|
|
123
|
+
(r(!0), g(L, null, C(U(e), (n) => (r(), _(t(ve), {
|
|
123
124
|
key: n,
|
|
124
125
|
label: t(u).ownableLabel(n),
|
|
125
126
|
hint: $(e, n),
|
|
@@ -128,7 +129,7 @@ const ke = {
|
|
|
128
129
|
disabled: c.readonly || t(T)(t(o), c.grants, n) === null,
|
|
129
130
|
"onUpdate:modelValue": (h) => A(n, h)
|
|
130
131
|
}, null, 8, ["label", "hint", "model-value", "options", "disabled", "onUpdate:modelValue"]))), 128)),
|
|
131
|
-
(r(!0), g(
|
|
132
|
+
(r(!0), g(L, null, C(e.permissions, (n) => (r(), _(t(be), {
|
|
132
133
|
key: n.id,
|
|
133
134
|
label: t(u).permissionLabel(n.id),
|
|
134
135
|
hint: S(n),
|
|
@@ -182,7 +183,7 @@ const ke = {
|
|
|
182
183
|
key: 0,
|
|
183
184
|
class: "flex flex-wrap gap-1.5 px-row-inset py-2",
|
|
184
185
|
"data-test": "role-attrs"
|
|
185
|
-
},
|
|
186
|
+
}, Ze = /* @__PURE__ */ D({
|
|
186
187
|
__name: "RoleEditor",
|
|
187
188
|
props: {
|
|
188
189
|
role: {},
|
|
@@ -190,7 +191,7 @@ const ke = {
|
|
|
190
191
|
},
|
|
191
192
|
emits: ["saved"],
|
|
192
193
|
setup(y, { expose: c, emit: d }) {
|
|
193
|
-
const o = y, u = d, { t: l } = I(), v = G(), { catalogue: i, constraints: b } = W(), w =
|
|
194
|
+
const o = y, u = d, { t: l } = I(), v = G(), { catalogue: i, constraints: b } = W(), w = re(), { access: B } = ge(), j = (a, s) => {
|
|
194
195
|
const e = a ?? s ?? null;
|
|
195
196
|
return {
|
|
196
197
|
name: a ? a.name : s ? l("core.access.copy_name", { name: v.roleName(s) }) : "",
|
|
@@ -199,7 +200,7 @@ const ke = {
|
|
|
199
200
|
constraints: ye(b, e?.attrs ?? [])
|
|
200
201
|
};
|
|
201
202
|
}, m = ee({
|
|
202
|
-
defaults: () =>
|
|
203
|
+
defaults: () => j(o.role, o.source),
|
|
203
204
|
validator: {
|
|
204
205
|
safeParse(a) {
|
|
205
206
|
const s = a, e = [
|
|
@@ -213,7 +214,7 @@ const ke = {
|
|
|
213
214
|
failureMessage: de()
|
|
214
215
|
}), U = H([]);
|
|
215
216
|
function N() {
|
|
216
|
-
m.hydrate(
|
|
217
|
+
m.hydrate(j(o.role, o.source)), U.value = fe(i, m.values.grants);
|
|
217
218
|
}
|
|
218
219
|
N(), Z(() => [o.role, o.source], N);
|
|
219
220
|
const $ = k(() => o.role !== null && (o.role.predefined || o.role.computed) || !B.can(me.manageRoles)), S = k(
|
|
@@ -228,11 +229,11 @@ const ke = {
|
|
|
228
229
|
description: e.description,
|
|
229
230
|
grants: Object.entries(e.grants).map(([h, J]) => ({ permission: h, qualifier: J })),
|
|
230
231
|
// The application's constraints are edited; any other attribute stays as the role has it.
|
|
231
|
-
attrs: he(b, a?.attrs ?? [],
|
|
232
|
+
attrs: he(b, a?.attrs ?? [], j(o.role, o.source).constraints, e.constraints)
|
|
232
233
|
};
|
|
233
234
|
return o.role ? w.update({ ref: o.role.ref, ...n }) : w.create(n);
|
|
234
235
|
},
|
|
235
|
-
{ hydrateFrom: (e) =>
|
|
236
|
+
{ hydrateFrom: (e) => j(e, null) }
|
|
236
237
|
);
|
|
237
238
|
(s.status === "saved" || s.status === "saved-refresh-failed") && (le.success(l("core.access.saved")), u("saved", s.value));
|
|
238
239
|
}
|
|
@@ -289,7 +290,7 @@ const ke = {
|
|
|
289
290
|
rows: 2,
|
|
290
291
|
"max-length": 255
|
|
291
292
|
}), null, 16, ["label"]),
|
|
292
|
-
(r(!0), g(
|
|
293
|
+
(r(!0), g(L, null, C(t(b), (e) => (r(), _(t(ae), {
|
|
293
294
|
key: e.attribute,
|
|
294
295
|
label: t(l)(e.labelKey),
|
|
295
296
|
"data-test": `role-constraint-${e.attribute}`,
|
|
@@ -298,7 +299,7 @@ const ke = {
|
|
|
298
299
|
"onUpdate:modelValue": (n) => t(m).values.constraints[e.attribute] = n
|
|
299
300
|
}, null, 8, ["label", "data-test", "model-value", "options", "onUpdate:modelValue"]))), 128)),
|
|
300
301
|
z.value.length ? (r(), g("div", Ae, [
|
|
301
|
-
(r(!0), g(
|
|
302
|
+
(r(!0), g(L, null, C(z.value, (e) => (r(), _(t(E), {
|
|
302
303
|
key: e.attribute,
|
|
303
304
|
tone: "neutral"
|
|
304
305
|
}, {
|
|
@@ -322,5 +323,5 @@ const ke = {
|
|
|
322
323
|
}
|
|
323
324
|
});
|
|
324
325
|
export {
|
|
325
|
-
|
|
326
|
+
Ze as _
|
|
326
327
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { defineComponent as I, computed as L, openBlock as a, createBlock as b, unref as e, withCtx as c, createElementVNode as S, createVNode as
|
|
1
|
+
import { defineComponent as I, computed as L, openBlock as a, createBlock as b, unref as e, withCtx as c, createElementVNode as S, createVNode as d, mergeProps as Y, useTemplateRef as F, ref as P, createElementBlock as g, toDisplayString as N, Fragment as D, createCommentVNode as x, renderList as q, createTextVNode as G } from "vue";
|
|
2
2
|
import { useI18n as K } from "vue-i18n";
|
|
3
3
|
import { useRouter as Z } from "vue-router";
|
|
4
4
|
import { _ as ee } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
|
|
5
|
-
import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-
|
|
6
|
-
import { g as z } from "./options-
|
|
5
|
+
import { _ as C } from "./FormGroup.vue_vue_type_script_setup_true_lang-CNb2CK01.js";
|
|
6
|
+
import { g as z } from "./options-e_CAfvDQ.js";
|
|
7
7
|
import { _ as oe } from "./AlertDialog.vue_vue_type_script_setup_true_lang-whA4WLdl.js";
|
|
8
8
|
import { t as E } from "./toast-CqSDTWRX.js";
|
|
9
9
|
import { _ as te } from "./RecordHeader.vue_vue_type_script_setup_true_lang-fmx0f8xi.js";
|
|
@@ -12,11 +12,13 @@ import { a as le, u as se } from "./routeResource-CcYA75T2.js";
|
|
|
12
12
|
import { a as re } from "./ResourcePage.vue_vue_type_script_setup_true_lang-BFBGvevP.js";
|
|
13
13
|
import { _ as ce } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
|
|
14
14
|
import { _ as H } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
15
|
-
import { u as O
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import { _ as
|
|
19
|
-
import { _ as fe } from "./
|
|
15
|
+
import { u as O } from "./PersonAccess.vue_vue_type_script_setup_true_lang-ClmawvYm.js";
|
|
16
|
+
import { u as U, f as ne, e as ie, g as ue, a as M } from "./refusals-COPr15XZ.js";
|
|
17
|
+
import { _ as J } from "./SelectField.vue_vue_type_script_setup_true_lang-CBZhGNpm.js";
|
|
18
|
+
import { u as me, _ as pe } from "./useCommand-CfG727e8.js";
|
|
19
|
+
import { _ as fe } from "./Modal.vue_vue_type_script_setup_true_lang-DpBb8ans.js";
|
|
20
|
+
import { _ as de } from "./RoleEditor.vue_vue_type_script_setup_true_lang-Bs9bo0Zb.js";
|
|
21
|
+
import { accessPages as T } from "./access/index.js";
|
|
20
22
|
const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
21
23
|
__name: "ReplaceRoleDialog",
|
|
22
24
|
props: {
|
|
@@ -25,7 +27,7 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
25
27
|
},
|
|
26
28
|
emits: ["replaced"],
|
|
27
29
|
setup(j, { expose: s, emit: y }) {
|
|
28
|
-
const l = j, n = y, { t: _ } = K(), w =
|
|
30
|
+
const l = j, n = y, { t: _ } = K(), w = U(), m = O(), p = me({
|
|
29
31
|
defaults: () => ({ with: null }),
|
|
30
32
|
validator: {
|
|
31
33
|
safeParse: (i) => i.with ? { success: !0, data: { with: i.with } } : { success: !1, error: { issues: [{ path: ["with"], message: _("core.access.replace.choose") }] } }
|
|
@@ -46,11 +48,11 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
46
48
|
}, {
|
|
47
49
|
default: c(() => [
|
|
48
50
|
S("div", _e, [
|
|
49
|
-
|
|
51
|
+
d(e(C), {
|
|
50
52
|
footer: e(_)("core.access.replace.footer")
|
|
51
53
|
}, {
|
|
52
54
|
default: c(() => [
|
|
53
|
-
|
|
55
|
+
d(e(J), Y(e(p).form.bind("with"), {
|
|
54
56
|
label: e(_)("core.access.replace.with"),
|
|
55
57
|
options: h.value
|
|
56
58
|
}), null, 16, ["label", "options"])
|
|
@@ -85,24 +87,24 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
85
87
|
others: {}
|
|
86
88
|
},
|
|
87
89
|
setup(j, { expose: s }) {
|
|
88
|
-
const y = j, { t: l } = K(), n =
|
|
89
|
-
async function V(
|
|
90
|
-
if (m.value =
|
|
90
|
+
const y = j, { t: l } = K(), n = U(), _ = O(), w = F("modal"), m = P(null), t = P(null), p = P(!1), h = P(!1), i = L(() => y.others.map((f) => ({ value: f.ref, label: n.roleName(f) }))), B = L(() => t.value !== null && !t.value.only_in_role.length && !t.value.only_in_other.length && !t.value.different.length);
|
|
91
|
+
async function V(f) {
|
|
92
|
+
if (m.value = f, t.value = null, h.value = !1, p.value = !1, !!f) {
|
|
91
93
|
p.value = !0;
|
|
92
94
|
try {
|
|
93
|
-
const k = await _.compare(y.role.ref,
|
|
94
|
-
m.value ===
|
|
95
|
+
const k = await _.compare(y.role.ref, f);
|
|
96
|
+
m.value === f && (t.value = k);
|
|
95
97
|
} catch {
|
|
96
|
-
m.value ===
|
|
98
|
+
m.value === f && (h.value = !0);
|
|
97
99
|
} finally {
|
|
98
|
-
m.value ===
|
|
100
|
+
m.value === f && (p.value = !1);
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
}
|
|
102
104
|
function A() {
|
|
103
105
|
m.value = null, t.value = null, h.value = !1, w.value?.present();
|
|
104
106
|
}
|
|
105
|
-
return s({ present: A }), (
|
|
107
|
+
return s({ present: A }), (f, k) => (a(), b(e(fe), {
|
|
106
108
|
ref_key: "modal",
|
|
107
109
|
ref: w,
|
|
108
110
|
title: e(l)("core.access.compare.title"),
|
|
@@ -113,11 +115,11 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
113
115
|
}, {
|
|
114
116
|
default: c(() => [
|
|
115
117
|
S("div", he, [
|
|
116
|
-
|
|
118
|
+
d(e(C), {
|
|
117
119
|
footer: e(l)("core.access.compare.footer")
|
|
118
120
|
}, {
|
|
119
121
|
default: c(() => [
|
|
120
|
-
|
|
122
|
+
d(e(J), {
|
|
121
123
|
"model-value": m.value,
|
|
122
124
|
label: e(l)("core.access.compare.with"),
|
|
123
125
|
options: i.value,
|
|
@@ -174,10 +176,10 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
174
176
|
_: 1
|
|
175
177
|
}, 8, ["title", "subtitle"]));
|
|
176
178
|
}
|
|
177
|
-
}), we = { "data-test": "role-holders" }, xe = { class: "flex min-w-0 flex-col gap-group-gap" },
|
|
179
|
+
}), we = { "data-test": "role-holders" }, xe = { class: "flex min-w-0 flex-col gap-group-gap" }, Ue = /* @__PURE__ */ I({
|
|
178
180
|
__name: "RolePage",
|
|
179
181
|
setup(j) {
|
|
180
|
-
const { t: s } = K(), y = Z(), { access: l } = ae(), n =
|
|
182
|
+
const { t: s } = K(), y = Z(), { access: l } = ae(), n = U(), _ = ie(), { subjectRoute: w } = ue(), m = O(), t = le({ param: "ref", parse: (o) => o === "" ? null : o, identify: (o) => o.ref, load: (o, { signal: r }) => m.role(o, { signal: r }) }), p = se({ for: t, load: (o, { signal: r }) => m.holders(o, { signal: r }) }), h = P([]), i = L(() => h.value.filter((o) => o.ref !== t.data.value?.ref)), B = L(() => h.value.filter((o) => o.predefined)), V = F("compareDialog"), A = F("replaceDialog"), f = F("deleteDialog"), k = (o) => !o.predefined && !o.computed;
|
|
181
183
|
async function u(o) {
|
|
182
184
|
if (h.value.length === 0)
|
|
183
185
|
try {
|
|
@@ -192,7 +194,7 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
192
194
|
const o = t.data.value;
|
|
193
195
|
if (!o) return [];
|
|
194
196
|
const r = [];
|
|
195
|
-
return l.can(M.manageRoles) && r.push({ id: "copy", label: s("core.access.copy"), icon: "copy", placement: "secondary", onClick: () => void y.push({ ...T.newRole, query: { copy: o.ref } }) }), r.push({ id: "compare", label: s("core.access.compare.action"), icon: "swapBoxLine", placement: "overflow", onClick: () => void u(() => V.value?.present()) }), k(o) && l.can(M.manageRoles) && r.push({ id: "replace", label: s("core.access.replace.action"), icon: "refreshLine", placement: "overflow", onClick: () => void u(() => A.value?.present()) }), k(o) && l.can(M.deleteRoles) && r.push({ id: "delete", label: s("core.access.delete.action"), icon: "deleteBin2Line", placement: "overflow", tone: "critical", onClick: () =>
|
|
197
|
+
return l.can(M.manageRoles) && r.push({ id: "copy", label: s("core.access.copy"), icon: "copy", placement: "secondary", onClick: () => void y.push({ ...T.newRole, query: { copy: o.ref } }) }), r.push({ id: "compare", label: s("core.access.compare.action"), icon: "swapBoxLine", placement: "overflow", onClick: () => void u(() => V.value?.present()) }), k(o) && l.can(M.manageRoles) && r.push({ id: "replace", label: s("core.access.replace.action"), icon: "refreshLine", placement: "overflow", onClick: () => void u(() => A.value?.present()) }), k(o) && l.can(M.deleteRoles) && r.push({ id: "delete", label: s("core.access.delete.action"), icon: "deleteBin2Line", placement: "overflow", tone: "critical", onClick: () => f.value?.present(o) }), r;
|
|
196
198
|
});
|
|
197
199
|
async function W(o) {
|
|
198
200
|
await m.remove(o.ref), E.success(s("core.access.deleted")), await y.replace(T.roles);
|
|
@@ -205,19 +207,19 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
205
207
|
actions: Q.value
|
|
206
208
|
}, {
|
|
207
209
|
header: c(({ record: v }) => [
|
|
208
|
-
|
|
210
|
+
d(e(te), {
|
|
209
211
|
title: e(n).roleName(v),
|
|
210
212
|
subtitle: v.description
|
|
211
213
|
}, {
|
|
212
214
|
leading: c(() => [
|
|
213
|
-
|
|
215
|
+
d(e(ee), {
|
|
214
216
|
tone: v.predefined ? "anchor" : "brand",
|
|
215
217
|
icon: "shieldStarFill",
|
|
216
218
|
size: "lg"
|
|
217
219
|
}, null, 8, ["tone"])
|
|
218
220
|
]),
|
|
219
221
|
meta: c(() => [
|
|
220
|
-
|
|
222
|
+
d(e(H), {
|
|
221
223
|
tone: v.predefined ? "neutral" : "info"
|
|
222
224
|
}, {
|
|
223
225
|
default: c(() => [
|
|
@@ -232,20 +234,20 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
232
234
|
]),
|
|
233
235
|
default: c(({ record: v }) => [
|
|
234
236
|
S("div", xe, [
|
|
235
|
-
|
|
237
|
+
d(de, {
|
|
236
238
|
role: v,
|
|
237
239
|
onSaved: r[0] || (r[0] = ($) => {
|
|
238
240
|
e(t).update($), e(p).reload();
|
|
239
241
|
})
|
|
240
242
|
}, null, 8, ["role"]),
|
|
241
|
-
|
|
243
|
+
d(e(ce), {
|
|
242
244
|
state: e(p).state.value,
|
|
243
245
|
"skeleton-rows": 3,
|
|
244
246
|
"is-empty": () => !1,
|
|
245
247
|
onRetry: r[1] || (r[1] = ($) => e(p).reload())
|
|
246
248
|
}, {
|
|
247
249
|
default: c(({ value: $ }) => [
|
|
248
|
-
|
|
250
|
+
d(e(C), {
|
|
249
251
|
header: e(s)("core.access.holders.title"),
|
|
250
252
|
footer: $.length ? void 0 : e(s)("core.access.holders.empty")
|
|
251
253
|
}, {
|
|
@@ -276,14 +278,14 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
276
278
|
]),
|
|
277
279
|
_: 1
|
|
278
280
|
}, 8, ["state"]),
|
|
279
|
-
|
|
281
|
+
d(ke, {
|
|
280
282
|
ref_key: "compareDialog",
|
|
281
283
|
ref: V,
|
|
282
284
|
role: v,
|
|
283
285
|
others: i.value
|
|
284
286
|
}, null, 8, ["role", "others"]),
|
|
285
287
|
k(v) ? (a(), g(D, { key: 0 }, [
|
|
286
|
-
|
|
288
|
+
d(ve, {
|
|
287
289
|
ref_key: "replaceDialog",
|
|
288
290
|
ref: A,
|
|
289
291
|
role: v,
|
|
@@ -292,9 +294,9 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
292
294
|
e(t).reload(), e(p).reload();
|
|
293
295
|
})
|
|
294
296
|
}, null, 8, ["role", "others"]),
|
|
295
|
-
|
|
297
|
+
d(e(oe), {
|
|
296
298
|
ref_key: "deleteDialog",
|
|
297
|
-
ref:
|
|
299
|
+
ref: f,
|
|
298
300
|
tone: "critical",
|
|
299
301
|
title: e(s)("core.access.delete.title"),
|
|
300
302
|
message: e(s)("core.access.delete.body", { name: e(n).roleName(v) }),
|
|
@@ -310,5 +312,5 @@ const _e = { "data-test": "role-replace" }, ve = /* @__PURE__ */ I({
|
|
|
310
312
|
}
|
|
311
313
|
});
|
|
312
314
|
export {
|
|
313
|
-
|
|
315
|
+
Ue as default
|
|
314
316
|
};
|
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
import { defineComponent as L, ref as
|
|
1
|
+
import { defineComponent as L, ref as g, computed as i, openBlock as d, createBlock as b, unref as e, withCtx as l, createElementVNode as f, createVNode as n, createElementBlock as h, toDisplayString as _, createCommentVNode as N, Fragment as R, renderList as B, createTextVNode as P } from "vue";
|
|
2
2
|
import { useI18n as A } from "vue-i18n";
|
|
3
3
|
import { useRouter as F } from "vue-router";
|
|
4
4
|
import { _ as S } from "./IconTile.vue_vue_type_script_setup_true_lang-_FXvaj93.js";
|
|
5
5
|
import { _ as E } from "./Tabs.vue_vue_type_script_setup_true_lang-CcMcE38r.js";
|
|
6
|
-
import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-
|
|
7
|
-
import { g as j } from "./options-
|
|
8
|
-
import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-
|
|
6
|
+
import { _ as U } from "./FormGroup.vue_vue_type_script_setup_true_lang-CNb2CK01.js";
|
|
7
|
+
import { g as j } from "./options-e_CAfvDQ.js";
|
|
8
|
+
import { _ as D } from "./TextField.vue_vue_type_script_setup_true_lang-CX3LdZLK.js";
|
|
9
9
|
import { a as I } from "./AdaptivePageShell.vue_vue_type_script_setup_true_lang-GUTIXuNd.js";
|
|
10
10
|
import { u as K } from "./platform-Dx6STiwY.js";
|
|
11
11
|
import { _ as T } from "./AsyncSection.vue_vue_type_script_setup_true_lang-B0NfvG3B.js";
|
|
12
12
|
import { _ as q } from "./Badge.vue_vue_type_script_setup_true_lang-DJyZc0C7.js";
|
|
13
13
|
import { u as z } from "./useLoad-W4tfxmm5.js";
|
|
14
|
-
import { u as G
|
|
14
|
+
import { u as G } from "./PersonAccess.vue_vue_type_script_setup_true_lang-ClmawvYm.js";
|
|
15
|
+
import { u as H, a as J } from "./refusals-COPr15XZ.js";
|
|
16
|
+
import { accessPages as x } from "./access/index.js";
|
|
15
17
|
const M = {
|
|
16
18
|
class: "flex min-w-0 flex-col gap-group-gap",
|
|
17
19
|
"data-test": "roles-index"
|
|
@@ -22,24 +24,24 @@ const M = {
|
|
|
22
24
|
}, W = {
|
|
23
25
|
class: "min-w-[4.5rem] text-right text-footnote tabular-nums text-content-muted",
|
|
24
26
|
"data-test": "role-holders"
|
|
25
|
-
},
|
|
27
|
+
}, fe = /* @__PURE__ */ L({
|
|
26
28
|
__name: "RolesPage",
|
|
27
29
|
setup(X) {
|
|
28
|
-
const { t:
|
|
29
|
-
{ value: "all", label:
|
|
30
|
-
{ value: "predefined", label:
|
|
31
|
-
{ value: "custom", label:
|
|
30
|
+
const { t: s } = A(), k = F(), { access: w } = K(), m = H(), y = G(), u = z(({ signal: o }) => y.roles({ signal: o })), c = g("all"), p = g(""), r = i(() => u.data.value ?? []), $ = i(() => [
|
|
31
|
+
{ value: "all", label: s("core.access.kinds.all"), badge: r.value.length },
|
|
32
|
+
{ value: "predefined", label: s("core.access.kinds.predefined"), badge: r.value.filter((o) => o.predefined).length },
|
|
33
|
+
{ value: "custom", label: s("core.access.kinds.custom"), badge: r.value.filter((o) => !o.predefined).length }
|
|
32
34
|
]), v = i(() => {
|
|
33
|
-
const
|
|
35
|
+
const o = p.value.trim().toLowerCase();
|
|
34
36
|
return r.value.filter(
|
|
35
|
-
(a) => (c.value === "all" || c.value === "predefined" === a.predefined) && (
|
|
37
|
+
(a) => (c.value === "all" || c.value === "predefined" === a.predefined) && (o === "" || `${m.roleName(a)} ${a.description}`.toLowerCase().includes(o))
|
|
36
38
|
);
|
|
37
39
|
}), V = i(
|
|
38
|
-
() => w.can(J.manageRoles) ? [{ id: "create", label:
|
|
39
|
-
), C = (
|
|
40
|
-
return (
|
|
41
|
-
title: e(
|
|
42
|
-
description: e(
|
|
40
|
+
() => w.can(J.manageRoles) ? [{ id: "create", label: s("core.access.create"), icon: "addLine", placement: "primary", compact: "icon", onClick: () => void k.push(x.newRole) }] : []
|
|
41
|
+
), C = (o) => [o.description, s("core.access.permissions", { count: o.permission_count })].filter(Boolean).join(" · ");
|
|
42
|
+
return (o, a) => (d(), b(e(I), {
|
|
43
|
+
title: e(s)("core.access.title"),
|
|
44
|
+
description: e(s)("core.access.description"),
|
|
43
45
|
icon: "shieldStarFill",
|
|
44
46
|
count: r.value.length || null,
|
|
45
47
|
actions: V.value
|
|
@@ -57,25 +59,25 @@ const M = {
|
|
|
57
59
|
modelValue: p.value,
|
|
58
60
|
"onUpdate:modelValue": a[1] || (a[1] = (t) => p.value = t),
|
|
59
61
|
class: "min-w-[14rem] flex-1",
|
|
60
|
-
placeholder: e(
|
|
62
|
+
placeholder: e(s)("core.access.search")
|
|
61
63
|
}, null, 8, ["modelValue", "placeholder"])
|
|
62
64
|
]),
|
|
63
65
|
n(e(T), {
|
|
64
|
-
state: e(
|
|
66
|
+
state: e(u).state.value,
|
|
65
67
|
"skeleton-rows": 6,
|
|
66
68
|
"is-empty": () => !1,
|
|
67
|
-
onRetry: a[2] || (a[2] = (t) => e(
|
|
69
|
+
onRetry: a[2] || (a[2] = (t) => e(u).reload())
|
|
68
70
|
}, {
|
|
69
71
|
default: l(() => [
|
|
70
72
|
n(e(U), {
|
|
71
|
-
footer: e(
|
|
73
|
+
footer: e(s)("core.access.list_footer")
|
|
72
74
|
}, {
|
|
73
75
|
default: l(() => [
|
|
74
|
-
v.value.length === 0 ? (d(), h("p", Q, _(e(
|
|
75
|
-
(d(!0), h(R, null, B(v.value, (t) => (d(),
|
|
76
|
+
v.value.length === 0 ? (d(), h("p", Q, _(e(s)("core.access.empty")), 1)) : N("", !0),
|
|
77
|
+
(d(!0), h(R, null, B(v.value, (t) => (d(), b(e(j), {
|
|
76
78
|
key: t.ref,
|
|
77
79
|
layout: "setting",
|
|
78
|
-
label: e(
|
|
80
|
+
label: e(m).roleName(t),
|
|
79
81
|
sub: C(t),
|
|
80
82
|
to: e(x).role({ ref: t.ref })
|
|
81
83
|
}, {
|
|
@@ -90,11 +92,11 @@ const M = {
|
|
|
90
92
|
tone: t.predefined ? "neutral" : "info"
|
|
91
93
|
}, {
|
|
92
94
|
default: l(() => [
|
|
93
|
-
P(_(e(
|
|
95
|
+
P(_(e(m).roleKind(t)), 1)
|
|
94
96
|
]),
|
|
95
97
|
_: 2
|
|
96
98
|
}, 1032, ["tone"]),
|
|
97
|
-
f("span", W, _(e(
|
|
99
|
+
f("span", W, _(e(s)("core.access.holders_count", { count: t.holders })), 1)
|
|
98
100
|
]),
|
|
99
101
|
_: 2
|
|
100
102
|
}, 1032, ["label", "sub", "to"]))), 128))
|
|
@@ -111,5 +113,5 @@ const M = {
|
|
|
111
113
|
}
|
|
112
114
|
});
|
|
113
115
|
export {
|
|
114
|
-
|
|
116
|
+
fe as default
|
|
115
117
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as w, openBlock as a, createBlock as k, mergeProps as x, unref as r, createSlots as V, withCtx as o, createElementVNode as h, normalizeClass as n, createElementBlock as s, Fragment as _, renderList as $, createTextVNode as B, toDisplayString as d, createCommentVNode as C, renderSlot as i, mergeDefaults as L } from "vue";
|
|
2
|
-
import { u as F, a as S, _ as T, f as D, b as N } from "./options-
|
|
2
|
+
import { u as F, a as S, _ as T, f as D, b as N } from "./options-e_CAfvDQ.js";
|
|
3
3
|
const E = ["id", "aria-label", "aria-describedby", "aria-invalid"], P = ["disabled", "aria-pressed", "onClick"], H = /* @__PURE__ */ w({
|
|
4
4
|
__name: "SegmentedField",
|
|
5
5
|
props: /* @__PURE__ */ L({
|
|
@@ -6,8 +6,8 @@ import { u as ie } from "./mediaQuery-CygcXmFW.js";
|
|
|
6
6
|
import { _ as I } from "./ToneDot.vue_vue_type_script_setup_true_lang-99rNn-L5.js";
|
|
7
7
|
import { _ as ue } from "./Sheet.vue_vue_type_script_setup_true_lang-DgOFV4fa.js";
|
|
8
8
|
import { _ as de } from "./Popover.vue_vue_type_script_setup_true_lang-C70GrCP7.js";
|
|
9
|
-
import { i as ce, m as pe, a as me,
|
|
10
|
-
import { a as ye } from "./suggestions-
|
|
9
|
+
import { i as ce, m as pe, a as me, e as ve, _ as fe, f as be, b as ge } from "./options-e_CAfvDQ.js";
|
|
10
|
+
import { a as ye } from "./suggestions-cPjs5gQz.js";
|
|
11
11
|
const he = { class: "flex min-h-9 items-center gap-1.5 rounded-control bg-fill px-2.5 text-content-muted focus-within:outline-2 focus-within:outline-offset-2 focus-within:outline-border-focus" }, ke = ["aria-label", "placeholder"], xe = ["aria-multiselectable", "aria-busy"], we = {
|
|
12
12
|
key: 0,
|
|
13
13
|
role: "presentation"
|
|
@@ -509,6 +509,6 @@ const Ee = ["id", "disabled", "aria-expanded", "aria-required", "aria-invalid",
|
|
|
509
509
|
export {
|
|
510
510
|
et as _,
|
|
511
511
|
Q as a,
|
|
512
|
-
|
|
513
|
-
|
|
512
|
+
Re as b,
|
|
513
|
+
Ze as u
|
|
514
514
|
};
|