@webx-ui/module-admin 0.18.0 → 0.18.1

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.
@@ -38,8 +38,12 @@ type __VLS_Props = {
38
38
  * The way out of the screen. A route draws a link; `true` draws the same arrow and emits
39
39
  * `back` instead, which is what a pane inside `WxListDetail` needs — on a phone the drawer
40
40
  * carries no close of its own and the pane has to bring one (CLAUDE.md §4).
41
+ *
42
+ * `string` and `object` are spelled out beside `RouteLocationRaw` for the compiler: it
43
+ * cannot resolve the router's type, drops it and leaves `Boolean` alone as the runtime
44
+ * type, so every editor passing its list's path warned "Expected Boolean, got String".
41
45
  */
42
- back?: RouteLocationRaw | boolean;
46
+ back?: RouteLocationRaw | string | object | boolean;
43
47
  /** What the arrow's tooltip says. The panel's own word for it when not given. */
44
48
  backLabel?: string;
45
49
  /** `2` for a screen, `3` for a pane standing inside one. */
@@ -95,7 +99,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
95
99
  title: string;
96
100
  actions: ScreenAction[];
97
101
  subtitle: string;
98
- back: RouteLocationRaw | boolean;
102
+ back: RouteLocationRaw | string | object | boolean;
99
103
  backLabel: string;
100
104
  level: HeadingLevel;
101
105
  collapseBelow: number;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { inject as se, reactive as be, defineComponent as M, useModel as re, ref as L, watch as te, computed as g, openBlock as m, createElementBlock as $, createVNode as w, unref as a, withCtx as y, createElementVNode as B, toDisplayString as A, createBlock as S, createTextVNode as z, createCommentVNode as N, mergeModels as ne, provide as ze, normalizeClass as oe, createSlots as ke, nextTick as Ie, useId as Tt, Fragment as j, onMounted as Ee, renderList as ae, mergeProps as et, withModifiers as tt, useSlots as St, useTemplateRef as lt, renderSlot as Y, normalizeProps as Ct, guardReactiveProps as Wt, resolveComponent as X, watchEffect as At, onUnmounted as Vt, isRef as at, createApp as Lt, h as ce, withKeys as nt, onBeforeUnmount as ot } from "vue";
2
2
  import { RouterLink as Nt, useRouter as _e, useRoute as st, createRouter as Rt, createWebHistory as Ut, onBeforeRouteLeave as zt } from "vue-router";
3
- import { WxSortableList as Be, WxAction as ue, WxBadge as $e, WxSelect as we, WxAutocomplete as Ne, WxSwitch as Ae, WxInputNumber as It, WxButton as le, WxSegmented as Et, WxText as ee, WxInput as Te, WxCheckbox as He, WxActions as Bt, WxDropdownItem as Mt, useElementWidth as Pt, WxHeading as Ft, WxIcon as Me, WxTabs as Dt, WxCard as Re, WxRichText as Ot, useLocales as it, WxAlert as Se, WxResult as Ht, useResponsiveShell as jt, shellLayoutFor as Kt, WxToaster as qt, WebxUI as Yt, dateLocaleKey as Xt, localesKey as Gt, useModal as Jt, WxDialog as rt, WxFormItem as Qt, WxSpace as Zt, createModal as el, WxSkeleton as me, WxEmpty as ut, WxTooltip as dt, toast as K, confirm as xe, localizedValue as tl, WxBreadcrumb as ll, WxBreadcrumbItem as je, WxActionBar as al, WxPopover as nl, WxAvatar as ol, WxTextarea as Ke } from "@webx-ui/core";
3
+ import { WxSortableList as Be, WxAction as ue, WxBadge as $e, WxSelect as we, WxAutocomplete as Ne, WxSwitch as Ae, WxInputNumber as It, WxButton as le, WxSegmented as Et, WxText as ee, WxInput as Te, WxCheckbox as He, WxActions as Bt, WxDropdownItem as Mt, useElementWidth as Pt, WxHeading as Ft, WxIcon as Me, WxTabs as Ot, WxCard as Re, WxRichText as Dt, useLocales as it, WxAlert as Se, WxResult as Ht, useResponsiveShell as jt, shellLayoutFor as Kt, WxToaster as qt, WebxUI as Yt, dateLocaleKey as Xt, localesKey as Gt, useModal as Jt, WxDialog as rt, WxFormItem as Qt, WxSpace as Zt, createModal as el, WxSkeleton as me, WxEmpty as ut, WxTooltip as dt, toast as K, confirm as xe, localizedValue as tl, WxBreadcrumb as ll, WxBreadcrumbItem as je, WxActionBar as al, WxPopover as nl, WxAvatar as ol, WxTextarea as Ke } from "@webx-ui/core";
4
4
  import { watchSystemTheme as sl, applyTheme as il, systemTheme as rl } from "@webx-ui/tokens";
5
5
  import { WxScreenRenderer as ul } from "@webx-ui/schema";
6
6
  const Ce = /* @__PURE__ */ Symbol("webx-i18n");
@@ -10,7 +10,7 @@ function dl() {
10
10
  throw new Error("useI18n() was called outside a panel created by createAdmin().");
11
11
  return e;
12
12
  }
13
- function D(e) {
13
+ function O(e) {
14
14
  const t = se(Ce, null);
15
15
  return t === null ? Pe().scope(e) : t.scope(e);
16
16
  }
@@ -99,7 +99,7 @@ const vl = { class: "wx-categories-field" }, pl = { class: "wx-categories-field_
99
99
  }),
100
100
  emits: ["update:modelValue"],
101
101
  setup(e) {
102
- const t = e, l = re(e, "modelValue"), n = J(), o = D("webx-admin"), i = L([]);
102
+ const t = e, l = re(e, "modelValue"), n = J(), o = O("webx-admin"), i = L([]);
103
103
  te(
104
104
  () => t.source,
105
105
  async (v) => {
@@ -319,7 +319,7 @@ const Tl = ["src"], Sl = { class: "wx-relations-field__text" }, Cl = { class: "w
319
319
  }),
320
320
  emits: ["update:modelValue"],
321
321
  setup(e) {
322
- const t = e, l = re(e, "modelValue"), n = J(), o = $l(), i = D("webx-admin"), s = g(() => kl(n, t.target)), r = L(/* @__PURE__ */ new Map()), u = L(/* @__PURE__ */ new Set()), d = L(!1), h = L([]), f = L(!1), v = L(""), c = g(() => _l(l.value));
322
+ const t = e, l = re(e, "modelValue"), n = J(), o = $l(), i = O("webx-admin"), s = g(() => kl(n, t.target)), r = L(/* @__PURE__ */ new Map()), u = L(/* @__PURE__ */ new Set()), d = L(!1), h = L([]), f = L(!1), v = L(""), c = g(() => _l(l.value));
323
323
  function x(R) {
324
324
  const U = new Map(r.value);
325
325
  for (const I of R) U.set(I.id, I);
@@ -509,7 +509,7 @@ const zl = ["aria-busy"], Il = {
509
509
  }, Ml = ["for"], Pl = {
510
510
  key: 1,
511
511
  class: "wx-collection-field__row"
512
- }, Fl = { class: "wx-collection-field__label" }, Dl = { class: "wx-collection-field__hint" }, Ol = { class: "wx-collection-field__row" }, Hl = ["for"], jl = { class: "wx-collection-field__limit" }, Kl = {
512
+ }, Fl = { class: "wx-collection-field__label" }, Ol = { class: "wx-collection-field__hint" }, Dl = { class: "wx-collection-field__row" }, Hl = ["for"], jl = { class: "wx-collection-field__limit" }, Kl = {
513
513
  key: 3,
514
514
  class: "wx-collection-field__markup"
515
515
  }, ql = { class: "wx-collection-field__hint" }, Yl = /* @__PURE__ */ M({
@@ -524,7 +524,7 @@ const zl = ["aria-busy"], Il = {
524
524
  }),
525
525
  emits: ["update:modelValue"],
526
526
  setup(e) {
527
- const t = e, l = re(e, "modelValue"), n = J(), o = D("webx-admin"), i = Tt(), s = L(void 0), r = L([]);
527
+ const t = e, l = re(e, "modelValue"), n = J(), o = O("webx-admin"), i = Tt(), s = L(void 0), r = L([]);
528
528
  te(
529
529
  () => t.source,
530
530
  async (k) => {
@@ -631,7 +631,7 @@ const zl = ["aria-busy"], Il = {
631
631
  disabled: t.disabled,
632
632
  "onUpdate:modelValue": C[0] || (C[0] = (_) => F(_ === !0))
633
633
  }, null, 8, ["model-value", "label", "disabled"]),
634
- B("p", Dl, A(a(o)("relations.collection-related-current-hint", { target: p.value.title })), 1)
634
+ B("p", Ol, A(a(o)("relations.collection-related-current-hint", { target: p.value.title })), 1)
635
635
  ], 64)) : N("", !0),
636
636
  p.value && u.value.related?.current !== !0 ? (m(), S(mt, {
637
637
  key: 2,
@@ -643,7 +643,7 @@ const zl = ["aria-busy"], Il = {
643
643
  "onUpdate:modelValue": T
644
644
  }, null, 8, ["model-value", "target", "empty-text", "disabled"])) : N("", !0)
645
645
  ])) : N("", !0),
646
- B("div", Ol, [
646
+ B("div", Dl, [
647
647
  B("label", {
648
648
  class: "wx-collection-field__label",
649
649
  for: `${a(i)}-limit`
@@ -740,7 +740,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
740
740
  }),
741
741
  emits: ["update:modelValue"],
742
742
  setup(e) {
743
- const t = e, l = re(e, "modelValue"), n = J(), o = dl(), i = Jl(n), s = D("webx-admin"), r = L([]), u = L([]), d = L([]), h = L(!1), f = L(null), v = L(""), c = L(null);
743
+ const t = e, l = re(e, "modelValue"), n = J(), o = dl(), i = Jl(n), s = O("webx-admin"), r = L([]), u = L([]), d = L([]), h = L(!1), f = L(null), v = L(""), c = L(null);
744
744
  let x = null;
745
745
  const p = g(() => l.value ?? Gl()), b = g(() => {
746
746
  const W = [
@@ -775,8 +775,8 @@ const Ql = { class: "wx-link-picker" }, Zl = {
775
775
  }
776
776
  if (c.value?.id === P)
777
777
  return;
778
- const [O] = await i.resolve([{ type: W, id: P }], o.state.locale);
779
- c.value = O ?? null, v.value = O?.title ?? s("links.missing"), x = v.value;
778
+ const [D] = await i.resolve([{ type: W, id: P }], o.state.locale);
779
+ c.value = D ?? null, v.value = D?.title ?? s("links.missing"), x = v.value;
780
780
  }
781
781
  async function V() {
782
782
  d.value = await i.routes();
@@ -802,7 +802,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
802
802
  f.value = W == null ? null : String(W), u.value = [], k("");
803
803
  }
804
804
  function q(W) {
805
- const P = u.value.find((O) => O.id === W.id);
805
+ const P = u.value.find((D) => D.id === W.id);
806
806
  P === void 0 || f.value === null || (c.value = P, v.value = P.title, l.value = { ...p.value, entity_type: f.value, entity_id: P.id });
807
807
  }
808
808
  function R() {
@@ -819,12 +819,12 @@ const Ql = { class: "wx-link-picker" }, Zl = {
819
819
  l.value = { ...p.value, new_tab: W };
820
820
  }
821
821
  function ie(W, P) {
822
- const O = p.value.rel.filter((We) => We !== W);
823
- l.value = { ...p.value, rel: P ? [...O, W] : O };
822
+ const D = p.value.rel.filter((We) => We !== W);
823
+ l.value = { ...p.value, rel: P ? [...D, W] : D };
824
824
  }
825
825
  function E(W) {
826
826
  const P = [W.hint, W.url ?? void 0].filter(
827
- (O) => typeof O == "string" && O !== ""
827
+ (D) => typeof D == "string" && D !== ""
828
828
  );
829
829
  return W.available || P.push(s("links.unavailable")), P.join(" · ");
830
830
  }
@@ -859,7 +859,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
859
859
  placeholder: a(s)("links.search"),
860
860
  "aria-label": a(s)("links.search"),
861
861
  disabled: t.disabled,
862
- "onUpdate:modelValue": P[0] || (P[0] = (O) => v.value = O),
862
+ "onUpdate:modelValue": P[0] || (P[0] = (D) => v.value = D),
863
863
  onSearch: k,
864
864
  onSelect: q,
865
865
  onClear: R
@@ -904,7 +904,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
904
904
  w(a(He), {
905
905
  "model-value": p.value.new_tab,
906
906
  disabled: t.disabled,
907
- "onUpdate:modelValue": P[1] || (P[1] = (O) => de(O))
907
+ "onUpdate:modelValue": P[1] || (P[1] = (D) => de(D))
908
908
  }, {
909
909
  default: y(() => [
910
910
  z(A(a(s)("links.new-tab")), 1)
@@ -921,14 +921,14 @@ const Ql = { class: "wx-link-picker" }, Zl = {
921
921
  ]),
922
922
  _: 1
923
923
  }),
924
- (m(), $(j, null, ae(Z, (O) => w(a(He), {
925
- key: O,
926
- "model-value": p.value.rel.includes(O),
924
+ (m(), $(j, null, ae(Z, (D) => w(a(He), {
925
+ key: D,
926
+ "model-value": p.value.rel.includes(D),
927
927
  disabled: t.disabled,
928
- "onUpdate:modelValue": (We) => ie(O, We)
928
+ "onUpdate:modelValue": (We) => ie(D, We)
929
929
  }, {
930
930
  default: y(() => [
931
- z(A(a(s)(`links.rel-${O}`)), 1)
931
+ z(A(a(s)(`links.rel-${D}`)), 1)
932
932
  ]),
933
933
  _: 2
934
934
  }, 1032, ["model-value", "disabled", "onUpdate:modelValue"])), 64))
@@ -968,7 +968,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
968
968
  size: { default: "sm" }
969
969
  },
970
970
  setup(e) {
971
- const t = e, l = D("webx-admin"), n = g(() => t.label ?? l("editor.back"));
971
+ const t = e, l = O("webx-admin"), n = g(() => t.label ?? l("editor.back"));
972
972
  return (o, i) => (m(), S(a(ue), {
973
973
  icon: "arrow-left",
974
974
  class: "wx-back-button",
@@ -990,7 +990,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
990
990
  size: { default: "sm" }
991
991
  },
992
992
  setup(e) {
993
- const t = D("webx-admin"), l = e, n = g(() => [
993
+ const t = O("webx-admin"), l = e, n = g(() => [
994
994
  ...l.actions.filter((i) => !i.danger),
995
995
  ...l.actions.filter((i) => i.danger)
996
996
  ]), o = g(() => {
@@ -1048,7 +1048,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
1048
1048
  props: {
1049
1049
  title: { default: void 0 },
1050
1050
  subtitle: { default: void 0 },
1051
- back: { type: Boolean, default: void 0 },
1051
+ back: { type: [String, Object, Boolean], default: void 0 },
1052
1052
  backLabel: { default: void 0 },
1053
1053
  level: { default: 2 },
1054
1054
  actions: { default: void 0 },
@@ -1057,7 +1057,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
1057
1057
  },
1058
1058
  emits: ["back"],
1059
1059
  setup(e, { emit: t }) {
1060
- const l = e, n = t, o = D("webx-admin"), i = St(), s = lt("root"), r = Pt(s), u = g(() => r.value > 0 && r.value < l.collapseBelow), d = g(() => l.actions ?? []), h = g(
1060
+ const l = e, n = t, o = O("webx-admin"), i = St(), s = lt("root"), r = Pt(s), u = g(() => r.value > 0 && r.value < l.collapseBelow), d = g(() => l.actions ?? []), h = g(
1061
1061
  () => d.value.find((p) => p.primary) ?? null
1062
1062
  ), f = g(() => u.value ? h.value ? [h.value] : [] : d.value.filter((p) => !p.menu && !p.danger)), v = g(() => u.value ? d.value.filter((p) => p !== h.value) : d.value.filter((p) => p.menu || p.danger)), c = g(
1063
1063
  () => l.back && l.back !== !0 ? l.back : null
@@ -1159,7 +1159,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
1159
1159
  ])) : N("", !0)
1160
1160
  ], 10, da));
1161
1161
  }
1162
- }), pt = /* @__PURE__ */ G(va, [["__scopeId", "data-v-e27d184e"]]), pa = ["data-wx-fill"], ha = /* @__PURE__ */ M({
1162
+ }), pt = /* @__PURE__ */ G(va, [["__scopeId", "data-v-9ebd5372"]]), pa = ["data-wx-fill"], ha = /* @__PURE__ */ M({
1163
1163
  __name: "ListScreen",
1164
1164
  props: /* @__PURE__ */ ne({
1165
1165
  title: { default: void 0 },
@@ -1201,7 +1201,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
1201
1201
  key: "0"
1202
1202
  } : void 0
1203
1203
  ]), 1032, ["title", "subtitle", "back", "back-label", "actions"])) : N("", !0),
1204
- e.views && e.views.length > 0 ? (m(), S(a(Dt), {
1204
+ e.views && e.views.length > 0 ? (m(), S(a(Ot), {
1205
1205
  key: 1,
1206
1206
  modelValue: t.value,
1207
1207
  "onUpdate:modelValue": n[0] || (n[0] = (o) => t.value = o),
@@ -1242,7 +1242,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
1242
1242
  inheritAttrs: !1,
1243
1243
  __name: "RichTextField",
1244
1244
  setup(e) {
1245
- const t = J(), l = D("webx-admin"), n = g(() => t.pickImage ?? void 0), o = g(() => ({
1245
+ const t = J(), l = O("webx-admin"), n = g(() => t.pickImage ?? void 0), o = g(() => ({
1246
1246
  bold: l("rich-text.bold"),
1247
1247
  italic: l("rich-text.italic"),
1248
1248
  strike: l("rich-text.strike"),
@@ -1275,7 +1275,7 @@ const Ql = { class: "wx-link-picker" }, Zl = {
1275
1275
  cancel: l("rich-text.cancel"),
1276
1276
  uploading: l("rich-text.uploading")
1277
1277
  }));
1278
- return (i, s) => (m(), S(a(Ot), et(i.$attrs, {
1278
+ return (i, s) => (m(), S(a(Dt), et(i.$attrs, {
1279
1279
  labels: o.value,
1280
1280
  "pick-image": n.value
1281
1281
  }), null, 16, ["labels", "pick-image"]));
@@ -1471,7 +1471,7 @@ const Ca = /* @__PURE__ */ M({
1471
1471
  landing: { default: null }
1472
1472
  },
1473
1473
  setup(e) {
1474
- const t = e, l = J(), n = _e(), o = D("webx-admin"), i = g(() => {
1474
+ const t = e, l = J(), n = _e(), o = O("webx-admin"), i = g(() => {
1475
1475
  const s = l.nav.value;
1476
1476
  return s.length === 0 ? null : ((t.landing === null ? void 0 : s.find((u) => u.path === t.landing)) ?? s[0])?.path ?? null;
1477
1477
  });
@@ -1495,7 +1495,7 @@ const Ca = /* @__PURE__ */ M({
1495
1495
  },
1496
1496
  emits: ["select"],
1497
1497
  setup(e, { emit: t }) {
1498
- const l = t, n = J(), o = D("webx-admin"), i = _e(), s = st(), r = g({
1498
+ const l = t, n = J(), o = O("webx-admin"), i = _e(), s = st(), r = g({
1499
1499
  /*
1500
1500
  * The longest path that contains this one, on a segment boundary: a section may live inside
1501
1501
  * another's path (`/services/categories` under `/services`), and the first match in the order
@@ -1556,7 +1556,7 @@ const Ca = /* @__PURE__ */ M({
1556
1556
  }, Na = ["src", "alt", "width", "height"], Ra = ["src", "alt", "width", "height"], Ua = ["src", "alt"], za = { class: "wx-admin__user" }, Ia = { class: "wx-admin__user wx-admin__user--drawer" }, Ea = /* @__PURE__ */ M({
1557
1557
  __name: "AdminShell",
1558
1558
  setup(e) {
1559
- const t = J(), l = D("webx-admin"), n = L(null), { width: o, layout: i, collapsed: s, showAside: r, drawerOpen: u, toggle: d, close: h } = jt(
1559
+ const t = J(), l = O("webx-admin"), n = L(null), { width: o, layout: i, collapsed: s, showAside: r, drawerOpen: u, toggle: d, close: h } = jt(
1560
1560
  n,
1561
1561
  { persist: "webx-admin-shell" }
1562
1562
  ), f = g(() => t.state.manifest?.title ?? ""), v = g(() => t.state.manifest?.branding?.logo ?? null), c = g(() => t.state.manifest?.branding?.mark ?? null), x = g(() => Kt(o.value, null));
@@ -1755,7 +1755,7 @@ function Pa(e, t) {
1755
1755
  }
1756
1756
  function Fa(e = {}) {
1757
1757
  const t = e.storageKey === void 0 ? Ma : e.storageKey, l = be({
1758
- preference: Da(t) ?? "system",
1758
+ preference: Oa(t) ?? "system",
1759
1759
  resolved: "light"
1760
1760
  });
1761
1761
  function n() {
@@ -1783,7 +1783,7 @@ function Je(e, t) {
1783
1783
  } catch {
1784
1784
  }
1785
1785
  }
1786
- function Da(e) {
1786
+ function Oa(e) {
1787
1787
  if (e === null)
1788
1788
  return null;
1789
1789
  try {
@@ -2097,7 +2097,7 @@ function En(e = {}) {
2097
2097
  types: e.types,
2098
2098
  screens: e.screens,
2099
2099
  loadManifest: async () => (await d.get(t)).data
2100
- }), v = Lt(Oa(e));
2100
+ }), v = Lt(Da(e));
2101
2101
  v.use(Yt), Ta(v, f), cl(v, r), Pa(v, u);
2102
2102
  const c = L("");
2103
2103
  v.provide(
@@ -2136,7 +2136,7 @@ function En(e = {}) {
2136
2136
  b.install(x);
2137
2137
  return v.use(s), x;
2138
2138
  }
2139
- function Oa(e) {
2139
+ function Da(e) {
2140
2140
  const t = {
2141
2141
  // The menu is the panel's own: it is the manifest, drawn.
2142
2142
  // The shell hands in what a choice means where it drew the menu — in the drawer it is what
@@ -2309,8 +2309,8 @@ function Qa(e, t, l) {
2309
2309
  }
2310
2310
  return n !== null && n >= 500 ? t("errors.server") : n === null ? t("errors.offline") : l ?? t("errors.unknown");
2311
2311
  }
2312
- function De() {
2313
- const e = D("webx-admin");
2312
+ function Oe() {
2313
+ const e = O("webx-admin");
2314
2314
  return (t, l) => Qa(t, e, l);
2315
2315
  }
2316
2316
  function Za(e) {
@@ -2342,7 +2342,7 @@ function an(e) {
2342
2342
  return (e.q ?? "").trim() !== "" || e.filtered ? "locked" : e.category == null ? "all" : "category";
2343
2343
  }
2344
2344
  function Mn(e, t) {
2345
- const l = J(), n = D("webx-admin"), o = g(() => an(t()));
2345
+ const l = J(), n = O("webx-admin"), o = g(() => an(t()));
2346
2346
  return {
2347
2347
  mode: o,
2348
2348
  sortable: g(() => o.value !== "locked"),
@@ -2350,8 +2350,8 @@ function Mn(e, t) {
2350
2350
  move: (i) => fl(l, e, i, o.value === "category" ? t().category ?? null : null)
2351
2351
  };
2352
2352
  }
2353
- function Oe(e = {}) {
2354
- const t = D("webx-admin");
2353
+ function De(e = {}) {
2354
+ const t = O("webx-admin");
2355
2355
  return (l, n) => t(e[l] ?? `webx-admin::categories.${l}`, n);
2356
2356
  }
2357
2357
  const nn = /* @__PURE__ */ M({
@@ -2361,7 +2361,7 @@ const nn = /* @__PURE__ */ M({
2361
2361
  options: {}
2362
2362
  },
2363
2363
  setup(e) {
2364
- const t = e, { open: l, resolve: n, dismiss: o } = Jt(), i = ve(J(), t.options.api), s = Oe(t.options.words), r = L(""), u = L(!1), d = L({}), h = lt("field");
2364
+ const t = e, { open: l, resolve: n, dismiss: o } = Jt(), i = ve(J(), t.options.api), s = De(t.options.words), r = L(""), u = L(!1), d = L({}), h = lt("field");
2365
2365
  Ee(async () => {
2366
2366
  await Ie(), h.value?.querySelector("input")?.focus();
2367
2367
  });
@@ -2446,7 +2446,7 @@ const nn = /* @__PURE__ */ M({
2446
2446
  options: {}
2447
2447
  },
2448
2448
  setup(e) {
2449
- const t = e, l = J(), n = ve(l, t.options.api), o = _e(), i = Oe(t.options.words), s = De(), r = L([]), u = L(!0), d = L(!0), h = g(() => l.can(t.options.manage)), f = g(
2449
+ const t = e, l = J(), n = ve(l, t.options.api), o = _e(), i = De(t.options.words), s = Oe(), r = L([]), u = L(!0), d = L(!0), h = g(() => l.can(t.options.manage)), f = g(
2450
2450
  () => l.state.manifest?.modules.find((V) => V.id === t.options.module)?.title ?? ""
2451
2451
  ), v = el(nn), c = g(
2452
2452
  () => h.value ? [{ key: "new", label: i("new"), icon: "plus", primary: !0, run: () => {
@@ -2631,7 +2631,7 @@ const nn = /* @__PURE__ */ M({
2631
2631
  linger: { default: 2e3 }
2632
2632
  },
2633
2633
  setup(e) {
2634
- const t = e, l = D("webx-admin"), n = L(!1);
2634
+ const t = e, l = O("webx-admin"), n = L(!1);
2635
2635
  let o = null;
2636
2636
  te(
2637
2637
  () => t.state,
@@ -2671,7 +2671,7 @@ const nn = /* @__PURE__ */ M({
2671
2671
  }),
2672
2672
  emits: /* @__PURE__ */ ne(["loaded"], ["update:modelValue"]),
2673
2673
  setup(e, { expose: t, emit: l }) {
2674
- const n = e, o = l, i = re(e, "modelValue"), s = J(), r = D("webx-admin"), u = L(null), d = L(null);
2674
+ const n = e, o = l, i = re(e, "modelValue"), s = J(), r = O("webx-admin"), u = L(null), d = L(null);
2675
2675
  async function h() {
2676
2676
  u.value = null, d.value = null;
2677
2677
  try {
@@ -2716,7 +2716,7 @@ const nn = /* @__PURE__ */ M({
2716
2716
  options: {}
2717
2717
  },
2718
2718
  setup(e) {
2719
- const t = e, l = J(), n = ve(l, t.options.api), o = st(), i = _e(), s = it(), r = Oe(t.options.words), u = De(), d = g(() => Number(o.params.id)), h = g(() => t.options.path), f = L(null), v = L({}), c = L(null), x = L(""), p = L(!0), b = L(!1), T = L({}), F = g(() => l.can(t.options.manage)), Q = g(() => JSON.stringify(v.value)), H = g(() => x.value !== "" && Q.value !== x.value), V = g(() => b.value ? "saving" : H.value ? "unsaved" : "saved"), k = g(
2719
+ const t = e, l = J(), n = ve(l, t.options.api), o = st(), i = _e(), s = it(), r = De(t.options.words), u = Oe(), d = g(() => Number(o.params.id)), h = g(() => t.options.path), f = L(null), v = L({}), c = L(null), x = L(""), p = L(!0), b = L(!1), T = L({}), F = g(() => l.can(t.options.manage)), Q = g(() => JSON.stringify(v.value)), H = g(() => x.value !== "" && Q.value !== x.value), V = g(() => b.value ? "saving" : H.value ? "unsaved" : "saved"), k = g(
2720
2720
  () => l.state.manifest?.modules.find((E) => E.id === t.options.module)?.title ?? ""
2721
2721
  ), C = g(() => {
2722
2722
  const E = v.value.title;
@@ -2912,7 +2912,7 @@ function Pn(e) {
2912
2912
  }
2913
2913
  ];
2914
2914
  }
2915
- const Fn = 76, Dn = /* @__PURE__ */ M({
2915
+ const Fn = 76, On = /* @__PURE__ */ M({
2916
2916
  __name: "FilterChips",
2917
2917
  props: {
2918
2918
  filters: {}
@@ -2943,7 +2943,7 @@ const Fn = 76, Dn = /* @__PURE__ */ M({
2943
2943
  },
2944
2944
  emits: ["rename"],
2945
2945
  setup(e, { emit: t }) {
2946
- const l = e, n = t, o = D("webx-admin"), i = L(!1), s = L(l.name), r = L(null), u = g(() => l.label ?? o("editor.rename"));
2946
+ const l = e, n = t, o = O("webx-admin"), i = L(!1), s = L(l.name), r = L(null), u = g(() => l.label ?? o("editor.rename"));
2947
2947
  te(i, async (h) => {
2948
2948
  h && (s.value = l.name, await Ie(), r.value?.focus(), r.value?.select());
2949
2949
  });
@@ -3003,7 +3003,7 @@ const Fn = 76, Dn = /* @__PURE__ */ M({
3003
3003
  _: 1
3004
3004
  }, 8, ["open", "title"]));
3005
3005
  }
3006
- }), On = /* @__PURE__ */ G(hn, [["__scopeId", "data-v-d879e8d3"]]), gn = ["innerHTML"], yn = /* @__PURE__ */ M({
3006
+ }), Dn = /* @__PURE__ */ G(hn, [["__scopeId", "data-v-d879e8d3"]]), gn = ["innerHTML"], yn = /* @__PURE__ */ M({
3007
3007
  __name: "HelpButton",
3008
3008
  props: {
3009
3009
  body: {},
@@ -3013,7 +3013,7 @@ const Fn = 76, Dn = /* @__PURE__ */ M({
3013
3013
  width: { default: 720 }
3014
3014
  },
3015
3015
  setup(e) {
3016
- const t = e, l = D("webx-admin"), n = L(!1), o = g(() => t.title ?? l("help.title")), i = g(() => Xa(t.body));
3016
+ const t = e, l = O("webx-admin"), n = L(!1), o = g(() => t.title ?? l("help.title")), i = g(() => Xa(t.body));
3017
3017
  return (s, r) => (m(), $(j, null, [
3018
3018
  w(a(ue), {
3019
3019
  type: "details",
@@ -3099,7 +3099,7 @@ const Fn = 76, Dn = /* @__PURE__ */ M({
3099
3099
  },
3100
3100
  emits: ["change"],
3101
3101
  setup(e, { emit: t }) {
3102
- const l = e, n = t, o = J(), i = D("webx-admin"), s = De(), r = L([]), u = L(!0), d = L(""), h = L(!1), f = L(null), v = L(""), c = g(() => tn(o, l.type, l.id)), x = g(() => l.title ?? i("notes.title"));
3102
+ const l = e, n = t, o = J(), i = O("webx-admin"), s = Oe(), r = L([]), u = L(!0), d = L(""), h = L(!1), f = L(null), v = L(""), c = g(() => tn(o, l.type, l.id)), x = g(() => l.title ?? i("notes.title"));
3103
3103
  async function p() {
3104
3104
  u.value = !0;
3105
3105
  try {
@@ -3283,7 +3283,7 @@ const Fn = 76, Dn = /* @__PURE__ */ M({
3283
3283
  name: "WxBackupNote",
3284
3284
  __name: "BackupNote",
3285
3285
  setup(e) {
3286
- const t = J(), l = kt(), n = D("webx-admin"), o = g(() => t.state.manifest?.backup ?? null), i = g(() => o.value !== null && t.can("settings.view")), s = g(() => {
3286
+ const t = J(), l = kt(), n = O("webx-admin"), o = g(() => t.state.manifest?.backup ?? null), i = g(() => o.value !== null && t.can("settings.view")), s = g(() => {
3287
3287
  const d = o.value?.at;
3288
3288
  if (d == null) return !0;
3289
3289
  const h = new Date(d).getTime();
@@ -3350,14 +3350,14 @@ export {
3350
3350
  Ge as WxCategorySlug,
3351
3351
  Xl as WxCollectionField,
3352
3352
  $t as WxDate,
3353
- Dn as WxFilterChips,
3353
+ On as WxFilterChips,
3354
3354
  Hn as WxHelpButton,
3355
3355
  sa as WxLinkField,
3356
3356
  oa as WxLinkPicker,
3357
3357
  ht as WxListScreen,
3358
3358
  jn as WxNotes,
3359
3359
  mt as WxRelationsField,
3360
- On as WxRenameButton,
3360
+ Dn as WxRenameButton,
3361
3361
  ga as WxRichTextField,
3362
3362
  Fe as WxRowMenu,
3363
3363
  dn as WxSaveState,
@@ -3400,14 +3400,14 @@ export {
3400
3400
  bt as themeKey,
3401
3401
  J as useAdmin,
3402
3402
  Bn as useCategoryEditor,
3403
- Oe as useCategoryWords,
3403
+ De as useCategoryWords,
3404
3404
  kt as useDates,
3405
- De as useErrorText,
3405
+ Oe as useErrorText,
3406
3406
  dl as useI18n,
3407
3407
  Mn as useItemOrder,
3408
3408
  ba as useRecordAddress,
3409
3409
  $l as useRelationOwner,
3410
3410
  In as useTheme,
3411
- D as useTranslate
3411
+ O as useTranslate
3412
3412
  };
3413
3413
  //# sourceMappingURL=index.js.map