@tailor-platform/app-shell 1.16.0 → 1.18.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.
Files changed (45) hide show
  1. package/dist/app-shell-core.css +1 -1
  2. package/dist/app-shell.d.ts +762 -51
  3. package/dist/app-shell.js +7642 -5636
  4. package/dist/{appshell-B0wh5Lq0.js → appshell-Y1AYCuVJ.js} +323 -304
  5. package/dist/semantic-contrast.test.ts +227 -0
  6. package/dist/style-entry.d.ts +61 -26
  7. package/dist/testing.d.ts +66 -29
  8. package/dist/testing.js +1 -1
  9. package/dist/theme-bridge.test.ts +124 -1
  10. package/dist/theme.bridge.css +178 -0
  11. package/dist/theme.css +8 -2
  12. package/dist/themes/_template.css +8 -3
  13. package/dist/themes/bloom.css +0 -8
  14. package/dist/themes/cream.css +0 -8
  15. package/dist/themes/default.css +458 -103
  16. package/dist/vite-plugin.d.ts +61 -26
  17. package/package.json +2 -2
  18. package/skills/app-shell-patterns/SKILL.md +48 -37
  19. package/skills/app-shell-patterns/references/api/define-i18n-labels.md +123 -91
  20. package/skills/app-shell-patterns/references/api/define-module.md +4 -6
  21. package/skills/app-shell-patterns/references/api/define-resource.md +2 -2
  22. package/skills/app-shell-patterns/references/api/use-app-shell-config.md +53 -47
  23. package/skills/app-shell-patterns/references/api/use-app-shell-data.md +30 -26
  24. package/skills/app-shell-patterns/references/api/use-app-shell.md +37 -30
  25. package/skills/app-shell-patterns/references/api/use-toast.md +28 -31
  26. package/skills/app-shell-patterns/references/components/app-shell.md +4 -4
  27. package/skills/app-shell-patterns/references/components/card.md +79 -7
  28. package/skills/app-shell-patterns/references/components/data-table.md +599 -77
  29. package/skills/app-shell-patterns/references/components/date-picker.md +32 -21
  30. package/skills/app-shell-patterns/references/components/filter-rail.md +165 -0
  31. package/skills/app-shell-patterns/references/components/sidebar-group.md +12 -6
  32. package/skills/app-shell-patterns/references/components/sidebar-section.md +114 -0
  33. package/skills/app-shell-patterns/references/components/text.md +198 -0
  34. package/skills/app-shell-patterns/references/concepts/custom-components.md +1 -1
  35. package/skills/app-shell-patterns/references/concepts/file-based-routing.md +7 -1
  36. package/skills/app-shell-patterns/references/concepts/graphql.md +20 -14
  37. package/skills/app-shell-patterns/references/concepts/routing-navigation.md +41 -3
  38. package/skills/app-shell-patterns/references/concepts/sidebar-navigation.md +32 -0
  39. package/skills/app-shell-patterns/references/concepts/styling-theming.md +278 -65
  40. package/skills/app-shell-patterns/references/migrations.md +43 -1
  41. package/skills/app-shell-patterns/references/pages/document-detail.md +6 -6
  42. package/skills/app-shell-patterns/references/patterns/form-modal.md +26 -20
  43. package/skills/app-shell-patterns/references/patterns/i18n-labels.md +139 -0
  44. package/skills/app-shell-patterns/references/patterns/interaction-multi-select.md +129 -118
  45. package/skills/app-shell-patterns/references/patterns/list-dense-scan.md +5 -4
@@ -5,7 +5,7 @@ import { Suspense as _, createContext as v, useCallback as y, useContext as b, u
5
5
  import { cva as O } from "class-variance-authority";
6
6
  import { useRender as k } from "@base-ui/react/use-render";
7
7
  import { clsx as A } from "clsx";
8
- import { twMerge as j } from "tailwind-merge";
8
+ import { extendTailwindMerge as j } from "tailwind-merge";
9
9
  import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
10
10
  import { AlertCircle as ee, ChevronRight as te, HouseIcon as ne, SearchIcon as re, Table as ie, XIcon as ae } from "lucide-react";
11
11
  import { getLocalTimeZone as oe, now as se, today as ce } from "@internationalized/date";
@@ -14,12 +14,24 @@ import { Toaster as ue } from "sonner";
14
14
  import { Dialog as F } from "@base-ui/react/dialog";
15
15
  import { parsePath as de } from "@tailor-platform/vite-plugin-app-shell/parser";
16
16
  //#region src/lib/utils.ts
17
+ var fe = j({ extend: { classGroups: { "font-size": [{ text: [
18
+ "heading-lg",
19
+ "heading-md",
20
+ "heading-sm",
21
+ "body-md",
22
+ "body-sm",
23
+ "label-md",
24
+ "label-sm",
25
+ "code-sm",
26
+ "body-md-relaxed",
27
+ "body-sm-relaxed"
28
+ ] }] } } });
17
29
  function I(...e) {
18
- return j(A(e));
30
+ return fe(A(e));
19
31
  }
20
32
  //#endregion
21
33
  //#region src/components/internals/separator/separator.tsx
22
- function fe({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
34
+ function pe({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
23
35
  return /* @__PURE__ */ N("div", {
24
36
  "data-slot": "separator-root",
25
37
  role: n ? "none" : "separator",
@@ -31,18 +43,18 @@ function fe({ className: e, orientation: t = "horizontal", decorative: n = !0, .
31
43
  }
32
44
  //#endregion
33
45
  //#region src/components/toolbar/toolbar.tsx
34
- var pe = g.createContext(null), me = typeof document > "u" ? g.useEffect : g.useLayoutEffect;
46
+ var me = g.createContext(null), he = typeof document > "u" ? g.useEffect : g.useLayoutEffect;
35
47
  function L(...e) {
36
48
  return (t) => {
37
49
  for (let n of e) typeof n == "function" ? n(t) : n && (n.current = t);
38
50
  };
39
51
  }
40
- function he(e, t = {}) {
41
- let n = g.useContext(pe), { handlesDirectionalKeys: r = !1 } = t;
42
- me(() => {
52
+ function ge(e, t = {}) {
53
+ let n = g.useContext(me), { handlesDirectionalKeys: r = !1 } = t;
54
+ he(() => {
43
55
  let t = e.current;
44
56
  if (!(!n || !t)) return n.registerItem(t, { handlesDirectionalKeys: r }), () => n.unregisterItem(t);
45
- }, [n, e]), me(() => {
57
+ }, [n, e]), he(() => {
46
58
  let t = e.current;
47
59
  n && t && n.updateItem(t, { handlesDirectionalKeys: r });
48
60
  }, [
@@ -51,18 +63,18 @@ function he(e, t = {}) {
51
63
  r
52
64
  ]);
53
65
  }
54
- function ge(e) {
66
+ function _e(e) {
55
67
  return e.isConnected && e.tabIndex >= 0 && !e.matches(":disabled") && e.getAttribute("aria-disabled") !== "true";
56
68
  }
57
- function _e({ className: e, ...t }) {
69
+ function ve({ className: e, ...t }) {
58
70
  return /* @__PURE__ */ N("div", {
59
71
  "data-slot": "toolbar",
60
72
  className: I("astw:flex astw:w-full astw:flex-col astw:gap-2 astw:rounded-md astw:border astw:border-border astw:bg-card astw:p-2", e),
61
73
  ...t
62
74
  });
63
75
  }
64
- _e.displayName = "Toolbar.Root";
65
- function ve({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i }) {
76
+ ve.displayName = "Toolbar.Root";
77
+ function ye({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i }) {
66
78
  let a = g.useRef(null), o = g.useRef(/* @__PURE__ */ new Map()), s = g.useCallback((e, t) => {
67
79
  o.current.set(e, t);
68
80
  }, []), c = g.useCallback((e) => {
@@ -78,7 +90,7 @@ function ve({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i })
78
90
  c,
79
91
  l
80
92
  ]);
81
- return /* @__PURE__ */ N(pe.Provider, {
93
+ return /* @__PURE__ */ N(me.Provider, {
82
94
  value: u,
83
95
  children: /* @__PURE__ */ N("div", {
84
96
  ref: L(a, r),
@@ -94,7 +106,7 @@ function ve({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i })
94
106
  "Home",
95
107
  "End"
96
108
  ].includes(e.key)) return;
97
- let t = Array.from(o.current).filter(([e]) => a.current?.contains(e) && ge(e)).toSorted(([e], [t]) => e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1), r = t.findIndex(([e]) => e === document.activeElement);
109
+ let t = Array.from(o.current).filter(([e]) => a.current?.contains(e) && _e(e)).toSorted(([e], [t]) => e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1), r = t.findIndex(([e]) => e === document.activeElement);
98
110
  if (r === -1 || t[r][1].handlesDirectionalKeys) return;
99
111
  let i = r;
100
112
  e.key === "Home" && (i = 0), e.key === "End" && (i = t.length - 1), e.key === "ArrowLeft" && (i = (r - 1 + t.length) % t.length), e.key === "ArrowRight" && (i = (r + 1) % t.length), e.preventDefault(), t[i]?.[0].focus();
@@ -103,17 +115,17 @@ function ve({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i })
103
115
  })
104
116
  });
105
117
  }
106
- ve.displayName = "Toolbar.Row";
107
- function ye({ className: e, ...t }) {
118
+ ye.displayName = "Toolbar.Row";
119
+ function be({ className: e, ...t }) {
108
120
  return /* @__PURE__ */ N("div", {
109
121
  "data-slot": "toolbar-group",
110
122
  className: I("astw:flex astw:min-w-0 astw:flex-wrap astw:items-center astw:gap-1.5", e),
111
123
  ...t
112
124
  });
113
125
  }
114
- ye.displayName = "Toolbar.Group";
115
- function be({ className: e, ...t }) {
116
- return /* @__PURE__ */ N(fe, {
126
+ be.displayName = "Toolbar.Group";
127
+ function xe({ className: e, ...t }) {
128
+ return /* @__PURE__ */ N(pe, {
117
129
  "data-slot": "toolbar-separator",
118
130
  decorative: !1,
119
131
  orientation: "vertical",
@@ -121,19 +133,19 @@ function be({ className: e, ...t }) {
121
133
  ...t
122
134
  });
123
135
  }
124
- be.displayName = "Toolbar.Separator";
125
- var xe = {
126
- Root: _e,
127
- Row: ve,
128
- Group: ye,
129
- Separator: be
130
- }, Se = O("astw:inline-flex astw:cursor-pointer astw:items-center astw:justify-center astw:gap-2 astw:whitespace-nowrap astw:rounded-md astw:text-sm astw:font-medium astw:transition-all astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:[&_svg]:pointer-events-none astw:[&_svg:not([class*='size-'])]:size-4 astw:shrink-0 astw:[&_svg]:shrink-0 astw:outline-none astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px] astw:aria-invalid:ring-destructive/20 astw:dark:aria-invalid:ring-destructive/40 astw:aria-invalid:border-destructive", {
136
+ xe.displayName = "Toolbar.Separator";
137
+ var Se = {
138
+ Root: ve,
139
+ Row: ye,
140
+ Group: be,
141
+ Separator: xe
142
+ }, Ce = O("astw:inline-flex astw:cursor-pointer astw:items-center astw:justify-center astw:gap-2 astw:whitespace-nowrap astw:rounded-md astw:text-sm astw:font-medium astw:transition-all astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:[&_svg]:pointer-events-none astw:[&_svg:not([class*='size-'])]:size-4 astw:shrink-0 astw:[&_svg]:shrink-0 astw:outline-none astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px] astw:aria-invalid:ring-danger-solid/20 astw:dark:aria-invalid:ring-danger-solid/40 astw:aria-invalid:border-danger-solid", {
131
143
  variants: {
132
144
  variant: {
133
145
  default: "astw:bg-primary astw:text-primary-foreground astw:shadow-xs astw:hover:bg-primary/90",
134
- destructive: "astw:bg-destructive astw:text-white astw:shadow-xs astw:hover:bg-destructive/90 astw:focus-visible:ring-destructive/20 astw:dark:focus-visible:ring-destructive/40 astw:dark:bg-destructive/60",
135
- outline: "astw:border astw:border-border astw:bg-background astw:shadow-xs astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:bg-input/30 astw:dark:border-input astw:dark:hover:bg-input/50",
136
- secondary: "astw:bg-secondary astw:text-secondary-foreground astw:shadow-xs astw:hover:bg-secondary/80",
146
+ destructive: "astw:bg-danger-solid astw:text-danger-contrast astw:shadow-xs astw:hover:bg-danger-solid-hover astw:focus-visible:ring-danger-solid/20 astw:dark:focus-visible:ring-danger-solid/40",
147
+ outline: "astw:border astw:border-border astw:bg-transparent astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:bg-input/30 astw:dark:border-input astw:dark:hover:bg-input/50",
148
+ secondary: "astw:bg-secondary astw:text-secondary-foreground astw:hover:bg-secondary/80",
137
149
  ghost: "astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:hover:bg-accent/50",
138
150
  link: "astw:text-primary astw:underline-offset-4 astw:hover:underline"
139
151
  },
@@ -152,13 +164,13 @@ var xe = {
152
164
  });
153
165
  function R({ className: e, variant: t, size: n, render: r, children: i, ref: a, ...o }) {
154
166
  let s = g.useRef(null);
155
- return he(s), k({
167
+ return ge(s), k({
156
168
  defaultTagName: "button",
157
169
  render: r,
158
170
  ref: L(s, a),
159
171
  props: {
160
172
  "data-slot": "button",
161
- className: I(Se({
173
+ className: I(Ce({
162
174
  variant: t,
163
175
  size: n,
164
176
  className: e
@@ -168,7 +180,9 @@ function R({ className: e, variant: t, size: n, render: r, children: i, ref: a,
168
180
  }
169
181
  });
170
182
  }
171
- var Ce = () => {
183
+ //#endregion
184
+ //#region src/lib/i18n.ts
185
+ var we = Symbol("localized-label"), Te = () => {
172
186
  try {
173
187
  if (typeof navigator > "u") return "en";
174
188
  let e = navigator.languages?.[0] ?? navigator.language;
@@ -176,57 +190,57 @@ var Ce = () => {
176
190
  } catch {
177
191
  return "en";
178
192
  }
179
- }, we = () => {
193
+ }, Ee = () => {
180
194
  try {
181
195
  return typeof navigator > "u" ? "en" : navigator.languages?.[0] ?? navigator.language ?? "en";
182
196
  } catch {
183
197
  return "en";
184
198
  }
185
- }, Te = (e) => {
199
+ }, De = (e) => {
186
200
  try {
187
201
  return new Intl.Locale(e).language;
188
202
  } catch {
189
203
  return e;
190
204
  }
191
- }, z = (e) => (t, n) => t ? typeof t == "string" ? t : t(e) ?? n : n, Ee = (t) => {
205
+ }, z = (e) => (t, n) => t ? typeof t == "string" ? t : t(e) ?? n : n, Oe = (t) => {
192
206
  let n = z(t);
193
207
  return (t, r) => n(t, typeof t == "string" ? t : e(r));
194
- }, De = (e) => ({
208
+ }, ke = (e) => ({
195
209
  modules: e.modules,
196
210
  settingsResources: e.settingsResources ?? [],
197
211
  errorBoundary: e.errorBoundary ?? /* @__PURE__ */ N(U, {}),
198
212
  basePath: e.basePath,
199
- locale: e.locale ? Te(e.locale) : Ce(),
200
- resolvedLocale: e.locale ?? we(),
213
+ locale: e.locale ? De(e.locale) : Te(),
214
+ resolvedLocale: e.locale ?? Ee(),
201
215
  timeZone: e.timeZone
202
216
  }), B = v({ configurations: {
203
217
  modules: [],
204
218
  settingsResources: [],
205
219
  locale: "en",
206
220
  errorBoundary: null
207
- } }), Oe = v({ contextData: {} }), V = () => b(B), ke = () => b(Oe), Ae = () => {
208
- let e = b(B), t = b(Oe);
221
+ } }), Ae = v({ contextData: {} }), V = () => b(B), je = () => b(Ae), Me = () => {
222
+ let e = b(B), t = b(Ae);
209
223
  return {
210
224
  ...e,
211
225
  ...t
212
226
  };
213
- }, je = () => {
227
+ }, Ne = () => {
214
228
  let { configurations: e } = b(B);
215
229
  return {
216
230
  locale: e.resolvedLocale ?? e.locale,
217
231
  language: e.locale
218
232
  };
219
- }, Me = () => {
233
+ }, Pe = () => {
220
234
  let { configurations: e } = b(B), t = e.timeZone ?? oe();
221
235
  return {
222
236
  value: t,
223
237
  today: () => ce(t),
224
238
  now: () => se(t)
225
239
  };
226
- }, Ne = () => {
240
+ }, Fe = () => {
227
241
  let { configurations: e } = V(), t = z(e.locale);
228
242
  return (e, n) => t(e, n);
229
- }, Pe = (e) => {
243
+ }, Ie = (e) => {
230
244
  let t = (t) => (n) => e[t]?.[n] ?? e.en[n];
231
245
  return {
232
246
  useT: () => {
@@ -239,12 +253,12 @@ var Ce = () => {
239
253
  return i === void 0 || typeof i == "function" ? r : i;
240
254
  }, i;
241
255
  },
242
- t: (e, ...n) => (r) => {
256
+ t: (e, ...n) => Object.assign((r) => {
243
257
  let i = t(r)(e);
244
258
  return typeof i == "function" ? i(n[0]) : i;
245
- }
259
+ }, { [we]: !0 })
246
260
  };
247
- }, Fe = Pe({
261
+ }, Le = Ie({
248
262
  en: {
249
263
  home: "Home",
250
264
  error404Title: "404 Not Found",
@@ -343,7 +357,7 @@ var Ce = () => {
343
357
  aiChatToolResult: "結果",
344
358
  aiChatSourcesUsed: (e) => `${e.count} 件の出典を使用`
345
359
  }
346
- }), H = Fe.useT, U = () => {
360
+ }), H = Le.useT, U = () => {
347
361
  let e = m(), t = H(), n = {
348
362
  role: "alert",
349
363
  "aria-label": "default-error-boundary"
@@ -353,7 +367,7 @@ var Ce = () => {
353
367
  className: "astw:p-6",
354
368
  children: /* @__PURE__ */ P("div", {
355
369
  className: "astw:flex astw:items-start astw:gap-4",
356
- children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
370
+ children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-danger-text astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
357
371
  /* @__PURE__ */ N("h1", {
358
372
  className: "astw:font-semibold astw:text-lg",
359
373
  children: t("error404Title")
@@ -378,7 +392,7 @@ var Ce = () => {
378
392
  className: "astw:p-6",
379
393
  children: /* @__PURE__ */ P("div", {
380
394
  className: "astw:flex astw:items-start astw:gap-4",
381
- children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
395
+ children: [/* @__PURE__ */ N(ee, { className: "astw:h-5 astw:w-5 astw:text-danger-text astw:flex-shrink-0 astw:mt-0.5" }), /* @__PURE__ */ P("div", { children: [
382
396
  /* @__PURE__ */ N("h1", {
383
397
  className: "astw:font-semibold astw:text-lg",
384
398
  children: t("errorTitle")
@@ -397,14 +411,14 @@ var Ce = () => {
397
411
  ] })]
398
412
  })
399
413
  });
400
- }, Ie = {}, Le = (e) => {
401
- Ie = e;
402
- }, Re = () => ({ type: "pass" }), ze = () => ({ type: "hidden" }), Be = (e) => ({
414
+ }, Re = {}, ze = (e) => {
415
+ Re = e;
416
+ }, Be = () => ({ type: "pass" }), Ve = () => ({ type: "hidden" }), He = (e) => ({
403
417
  type: "redirect",
404
418
  to: e
405
419
  }), W = () => new Response("Not Found", { status: 404 }), G = async (e) => {
406
420
  if (!e || e.length === 0) return { type: "pass" };
407
- let t = { context: Ie };
421
+ let t = { context: Re };
408
422
  for (let n of e) {
409
423
  let e = await n(t);
410
424
  if (e.type !== "pass") return e;
@@ -417,17 +431,17 @@ var Ce = () => {
417
431
  case "redirect": return u(r.to);
418
432
  case "pass": return t ? t(n) : null;
419
433
  }
420
- }, Ve = (t) => t === "" || t === "/" ? Fe.t("home") : e(t), He = (e, t) => () => {
434
+ }, Ue = (t) => t === "" || t === "/" ? Le.t("home") : e(t), We = (e, t) => () => {
421
435
  let { configurations: n } = V(), { metaTitle: r, fallbackTitle: i } = e;
422
436
  return t(z(n.locale)(r, typeof i == "function" ? i(n.locale) : i));
423
437
  };
424
- function Ue(e) {
425
- let { path: t, meta: n, component: r, resources: i, errorBoundary: a, guards: o } = e, s = n?.title ?? Ve(t), c = Ve(t), l = o && o.length > 0 ? K(o) : void 0;
438
+ function Ge(e) {
439
+ let { path: t, meta: n, component: r, resources: i, errorBoundary: a, guards: o } = e, s = n?.title ?? Ue(t), c = Ue(t), l = o && o.length > 0 ? K(o) : void 0;
426
440
  return {
427
441
  path: t,
428
442
  type: "component",
429
443
  _type: "module",
430
- component: r ? He({
444
+ component: r ? We({
431
445
  metaTitle: s,
432
446
  fallbackTitle: c
433
447
  }, (e) => r({
@@ -447,8 +461,8 @@ function Ue(e) {
447
461
  guards: o
448
462
  };
449
463
  }
450
- function We(t) {
451
- let { path: n, component: r, subResources: i, meta: a, errorBoundary: o, guards: s } = t, c = a?.title ?? e(n), l = e(n), u = s && s.length > 0 ? K(s) : void 0, d = r ? He({
464
+ function Ke(t) {
465
+ let { path: n, component: r, subResources: i, meta: a, errorBoundary: o, guards: s } = t, c = a?.title ?? e(n), l = e(n), u = s && s.length > 0 ? K(s) : void 0, d = r ? We({
452
466
  metaTitle: c,
453
467
  fallbackTitle: l
454
468
  }, (e) => r({
@@ -471,9 +485,9 @@ function We(t) {
471
485
  loader: u
472
486
  };
473
487
  }
474
- var Ge = {
488
+ var qe = {
475
489
  name: "@tailor-platform/app-shell",
476
- version: "1.16.0",
490
+ version: "1.18.0",
477
491
  description: "An opinionated React application framework for building ERP applications on Tailor Platform",
478
492
  keywords: [
479
493
  "app-shell",
@@ -552,7 +566,7 @@ var Ge = {
552
566
  "@vitejs/plugin-react": "catalog:",
553
567
  "@vitest/coverage-v8": "4.1.11",
554
568
  "happy-dom": "20.14.5",
555
- postcss: "8.5.28",
569
+ postcss: "8.5.30",
556
570
  react: "catalog:",
557
571
  "react-dom": "catalog:",
558
572
  "react-hook-form": "7.71.2",
@@ -570,15 +584,15 @@ var Ge = {
570
584
  };
571
585
  //#endregion
572
586
  //#region src/components/card/card.tsx
573
- function Ke({ className: e, ...t }) {
587
+ function Je({ className: e, ...t }) {
574
588
  return /* @__PURE__ */ N("div", {
575
589
  "data-slot": "card",
576
590
  className: I("astw:bg-card astw:text-card-foreground astw:flex astw:flex-col astw:rounded-xl astw:border astw:border-border astw:shadow-xs", e),
577
591
  ...t
578
592
  });
579
593
  }
580
- Ke.displayName = "Card.Root";
581
- function qe({ className: e, title: t, description: n, children: r, ...i }) {
594
+ Je.displayName = "Card.Root";
595
+ function Ye({ className: e, title: t, description: n, children: r, ...i }) {
582
596
  return /* @__PURE__ */ P("div", {
583
597
  "data-slot": "card-header",
584
598
  className: I("astw:@container/card-header astw:grid astw:auto-rows-min astw:grid-rows-[auto_auto] astw:items-start astw:gap-2 astw:px-6 astw:pt-6 astw:pb-4 astw:[.border-b]:pb-6", e),
@@ -598,20 +612,22 @@ function qe({ className: e, title: t, description: n, children: r, ...i }) {
598
612
  ]
599
613
  });
600
614
  }
601
- qe.displayName = "Card.Header";
602
- function Je({ className: e, ...t }) {
615
+ Ye.displayName = "Card.Header";
616
+ var Xe = I("astw:first:rounded-t-[inherit] astw:last:rounded-b-[inherit]", "astw:[&>[data-slot=table-container]]:rounded-[inherit]", "astw:[&>[data-slot=data-table]]:rounded-[inherit] astw:[&>[data-slot=data-table]]:border-0");
617
+ function Ze({ className: e, padding: t = "default", ...n }) {
603
618
  return /* @__PURE__ */ N("div", {
604
619
  "data-slot": "card-content",
605
- className: I("astw:px-6 astw:pb-6 astw:first:pt-6", e),
606
- ...t
620
+ "data-padding": t,
621
+ className: I(t === "none" ? Xe : "astw:px-6 astw:pb-6 astw:first:pt-6", e),
622
+ ...n
607
623
  });
608
624
  }
609
- Je.displayName = "Card.Content";
610
- var Ye = {
611
- Root: Ke,
612
- Header: qe,
613
- Content: Je
614
- }, Xe = v(null), Ze = ({ children: e }) => {
625
+ Ze.displayName = "Card.Content";
626
+ var Qe = {
627
+ Root: Je,
628
+ Header: Ye,
629
+ Content: Ze
630
+ }, $e = v(null), et = ({ children: e }) => {
615
631
  let [t, n] = E(() => /* @__PURE__ */ new Map()), r = y((e, t) => {
616
632
  n((n) => {
617
633
  let r = new Map(n);
@@ -624,7 +640,7 @@ var Ye = {
624
640
  return n.delete(e), n;
625
641
  });
626
642
  }, []);
627
- return /* @__PURE__ */ N(Xe.Provider, {
643
+ return /* @__PURE__ */ N($e.Provider, {
628
644
  value: {
629
645
  overrides: t,
630
646
  register: r,
@@ -632,15 +648,15 @@ var Ye = {
632
648
  },
633
649
  children: e
634
650
  });
635
- }, Qe = () => {
636
- let e = b(Xe);
651
+ }, tt = () => {
652
+ let e = b($e);
637
653
  if (!e) throw Error("useBreadcrumbOverride must be used within BreadcrumbOverrideProvider");
638
654
  return e;
639
- }, $e = () => b(Xe);
655
+ }, nt = () => b($e);
640
656
  //#endregion
641
657
  //#region src/hooks/use-override-breadcrumb.ts
642
- function et(e) {
643
- let t = d(), { register: n, unregister: r } = Qe(), i = t.pathname;
658
+ function rt(e) {
659
+ let t = d(), { register: n, unregister: r } = tt(), i = t.pathname;
644
660
  x(() => (e ? n(i, e) : r(i), () => r(i)), [
645
661
  i,
646
662
  e,
@@ -650,25 +666,25 @@ function et(e) {
650
666
  }
651
667
  //#endregion
652
668
  //#region src/components/internals/app-info/app-info.tsx
653
- var tt = "__appinfo", nt = `/${tt}`, rt = Ge.version, it = (e) => e == null ? "-" : String(e), at = (e) => e.map((e) => `${e.label}: ${it(e.value)}`).join("\n"), ot = ({ label: e, value: t }) => /* @__PURE__ */ P("div", {
669
+ var it = "__appinfo", at = `/${it}`, ot = qe.version, st = (e) => e == null ? "-" : String(e), ct = (e) => e.map((e) => `${e.label}: ${st(e.value)}`).join("\n"), lt = ({ label: e, value: t }) => /* @__PURE__ */ P("div", {
654
670
  className: "astw:grid astw:gap-1 astw:py-3 astw:sm:grid-cols-[12rem_minmax(0,1fr)] astw:sm:gap-4",
655
671
  children: [/* @__PURE__ */ N("dt", {
656
672
  className: "astw:text-sm astw:text-muted-foreground",
657
673
  children: e
658
674
  }), /* @__PURE__ */ N("dd", {
659
675
  className: "astw:min-w-0 astw:text-sm astw:break-all",
660
- children: it(t)
676
+ children: st(t)
661
677
  })]
662
- }), st = () => {
678
+ }), ut = () => {
663
679
  let e = H();
664
680
  return {
665
- path: nt,
681
+ path: at,
666
682
  title: e("appInfoTitle"),
667
683
  breadcrumb: [e("appInfoTitle")]
668
684
  };
669
- }, ct = () => {
685
+ }, dt = () => {
670
686
  let e = H(), { title: t, appInfo: n } = V();
671
- et(e("appInfoTitle"));
687
+ rt(e("appInfoTitle"));
672
688
  let r = [
673
689
  ...t ? [{
674
690
  label: e("appInfoAppName"),
@@ -676,13 +692,13 @@ var tt = "__appinfo", nt = `/${tt}`, rt = Ge.version, it = (e) => e == null ? "-
676
692
  }] : [],
677
693
  {
678
694
  label: e("appInfoAppShellVersion"),
679
- value: rt
695
+ value: ot
680
696
  },
681
697
  ...n?.metadata ?? []
682
698
  ];
683
699
  return /* @__PURE__ */ N("div", {
684
700
  className: "astw:w-full astw:max-w-xl",
685
- children: /* @__PURE__ */ P(Ye.Root, { children: [/* @__PURE__ */ P("div", {
701
+ children: /* @__PURE__ */ P(Qe.Root, { children: [/* @__PURE__ */ P("div", {
686
702
  className: "astw:flex astw:items-center astw:justify-between astw:px-6 astw:pt-6 astw:pb-4",
687
703
  children: [/* @__PURE__ */ N("h1", {
688
704
  className: "astw:text-lg astw:font-semibold astw:leading-none",
@@ -692,21 +708,21 @@ var tt = "__appinfo", nt = `/${tt}`, rt = Ge.version, it = (e) => e == null ? "-
692
708
  size: "sm",
693
709
  onClick: async () => {
694
710
  try {
695
- await navigator.clipboard.writeText(at(r));
711
+ await navigator.clipboard.writeText(ct(r));
696
712
  } catch {}
697
713
  },
698
714
  children: e("appInfoCopy")
699
715
  })]
700
- }), /* @__PURE__ */ N(Ye.Content, { children: /* @__PURE__ */ N("dl", { children: r.map((e, t) => /* @__PURE__ */ N("div", {
716
+ }), /* @__PURE__ */ N(Qe.Content, { children: /* @__PURE__ */ N("dl", { children: r.map((e, t) => /* @__PURE__ */ N("div", {
701
717
  className: t > 0 ? "astw:border-t astw:border-border" : void 0,
702
- children: /* @__PURE__ */ N(ot, { ...e })
718
+ children: /* @__PURE__ */ N(lt, { ...e })
703
719
  }, `${e.label}-${t}`)) }) })] })
704
720
  });
705
- }, lt = [
721
+ }, ft = [
706
722
  "light",
707
723
  "dark",
708
724
  "system"
709
- ], ut = [
725
+ ], pt = [
710
726
  {
711
727
  value: "light",
712
728
  label: "Light"
@@ -719,8 +735,8 @@ var tt = "__appinfo", nt = `/${tt}`, rt = Ge.version, it = (e) => e == null ? "-
719
735
  value: "system",
720
736
  label: "System"
721
737
  }
722
- ], dt = "appshell-ui-theme";
723
- function ft(e, t, n) {
738
+ ], mt = "appshell-ui-theme";
739
+ function ht(e, t, n) {
724
740
  if (typeof window > "u") return n;
725
741
  try {
726
742
  let r = localStorage.getItem(e);
@@ -729,22 +745,22 @@ function ft(e, t, n) {
729
745
  return n;
730
746
  }
731
747
  }
732
- function pt(e, t) {
748
+ function gt(e, t) {
733
749
  return e === "system" ? t ? "dark" : "light" : e;
734
750
  }
735
- function mt() {
751
+ function _t() {
736
752
  return typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches;
737
753
  }
738
- var ht = v(void 0);
739
- function gt({ children: e, defaultColorTheme: t = "system" }) {
740
- let [n, r] = E(() => ft(dt, lt, t)), [i, a] = E(() => pt(ft(dt, lt, t), mt())), o = y((e) => {
754
+ var vt = v(void 0);
755
+ function yt({ children: e, defaultColorTheme: t = "system" }) {
756
+ let [n, r] = E(() => ht(mt, ft, t)), [i, a] = E(() => gt(ht(mt, ft, t), _t())), o = y((e) => {
741
757
  let t = window.document.documentElement;
742
758
  t.classList.remove("light", "dark"), t.classList.add(e);
743
759
  }, []);
744
760
  x(() => {
745
761
  o(i);
746
762
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => {
747
- let t = pt(n, e.matches);
763
+ let t = gt(n, e.matches);
748
764
  a(t);
749
765
  };
750
766
  return e.addEventListener("change", t), () => e.removeEventListener("change", t);
@@ -755,10 +771,10 @@ function gt({ children: e, defaultColorTheme: t = "system" }) {
755
771
  ]);
756
772
  let s = y((e) => {
757
773
  try {
758
- localStorage.setItem(dt, e);
774
+ localStorage.setItem(mt, e);
759
775
  } catch {}
760
776
  r(e);
761
- let t = pt(e, mt());
777
+ let t = gt(e, _t());
762
778
  a(t), o(t);
763
779
  }, [o]), c = C(() => ({
764
780
  colorTheme: n,
@@ -769,13 +785,13 @@ function gt({ children: e, defaultColorTheme: t = "system" }) {
769
785
  i,
770
786
  s
771
787
  ]);
772
- return /* @__PURE__ */ N(ht.Provider, {
788
+ return /* @__PURE__ */ N(vt.Provider, {
773
789
  value: c,
774
790
  children: e
775
791
  });
776
792
  }
777
- var _t = () => {
778
- let e = b(ht);
793
+ var bt = () => {
794
+ let e = b(vt);
779
795
  if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
780
796
  let { colorTheme: t, resolvedColorTheme: n, setColorTheme: r } = e;
781
797
  return C(() => ({
@@ -787,8 +803,8 @@ var _t = () => {
787
803
  n,
788
804
  r
789
805
  ]);
790
- }, vt = ({ ...e }) => {
791
- let { resolvedTheme: t } = _t();
806
+ }, xt = ({ ...e }) => {
807
+ let { resolvedTheme: t } = bt();
792
808
  return /* @__PURE__ */ N(ue, {
793
809
  theme: t,
794
810
  className: "astw:toaster astw:group",
@@ -799,7 +815,7 @@ var _t = () => {
799
815
  },
800
816
  ...e
801
817
  });
802
- }, yt = () => {
818
+ }, St = () => {
803
819
  let e = H();
804
820
  return /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("p", {
805
821
  className: "astw:font-semibold astw:leading-none astw:tracking-tight",
@@ -808,8 +824,8 @@ var _t = () => {
808
824
  className: "pt-4",
809
825
  children: e("welcomeBody")
810
826
  })] });
811
- }, bt = () => /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(a, {}), /* @__PURE__ */ N(vt, {})] }), xt = () => {
812
- let { configurations: e } = Ae(), t = H(), n = Ne();
827
+ }, Ct = () => /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(a, {}), /* @__PURE__ */ N(xt, {})] }), wt = () => {
828
+ let { configurations: e } = Me(), t = H(), n = Fe();
813
829
  return /* @__PURE__ */ P("div", {
814
830
  className: "astw:mx-auto astw:flex-col astw:flex astw:md:flex-row astw:max-w-5xl astw:gap-[10px] astw:w-full",
815
831
  children: [/* @__PURE__ */ N("div", { children: /* @__PURE__ */ P("nav", {
@@ -833,7 +849,7 @@ var _t = () => {
833
849
  children: /* @__PURE__ */ N(a, {})
834
850
  })]
835
851
  });
836
- }, St = (e) => () => /* @__PURE__ */ N(M, { children: e }), Ct = (e) => e.component ? {
852
+ }, Tt = (e) => () => /* @__PURE__ */ N(M, { children: e }), Et = (e) => e.component ? {
837
853
  index: !0,
838
854
  Component: e.component,
839
855
  ...e.loader && { loader: e.loader }
@@ -851,18 +867,18 @@ var _t = () => {
851
867
  loader: () => {
852
868
  throw W();
853
869
  }
854
- }, wt = (e, t, n) => {
855
- let r = e.errorBoundary || n, i = (t ?? []).map((e) => wt(e, e.subResources, r)), a = [Ct(e), ...i];
870
+ }, Dt = (e, t, n) => {
871
+ let r = e.errorBoundary || n, i = (t ?? []).map((e) => Dt(e, e.subResources, r)), a = [Et(e), ...i];
856
872
  return {
857
873
  path: e.path,
858
874
  handle: { node: e },
859
- ...e.errorBoundary && { ErrorBoundary: St(e.errorBoundary) },
875
+ ...e.errorBoundary && { ErrorBoundary: Tt(e.errorBoundary) },
860
876
  ...a.length > 0 ? { children: a } : {}
861
877
  };
862
- }, Tt = (e) => e.map((e) => wt(e, e.resources, e.errorBoundary)), Et = ({ modules: e, settingsResources: t }) => {
863
- let n = e.some((e) => e.path === "") ? null : Ct({
878
+ }, Ot = (e) => e.map((e) => Dt(e, e.resources, e.errorBoundary)), kt = ({ modules: e, settingsResources: t }) => {
879
+ let n = e.some((e) => e.path === "") ? null : Et({
864
880
  path: "",
865
- component: yt
881
+ component: St
866
882
  }), r = t.length > 0 ? [{
867
883
  path: "settings",
868
884
  index: !0,
@@ -873,22 +889,22 @@ var _t = () => {
873
889
  })
874
890
  }, {
875
891
  path: "settings",
876
- Component: xt,
892
+ Component: wt,
877
893
  children: t.map((e) => {
878
894
  if (!e.component) throw Error(`Settings resource "${e.path}" must have a component.`);
879
895
  return {
880
896
  path: e.path,
881
897
  Component: e.component,
882
- ...e.errorBoundary && { ErrorBoundary: St(e.errorBoundary) }
898
+ ...e.errorBoundary && { ErrorBoundary: Tt(e.errorBoundary) }
883
899
  };
884
900
  })
885
901
  }] : [];
886
902
  return [
887
903
  ...n ? [n] : [],
888
- { children: Tt(e) },
904
+ { children: Ot(e) },
889
905
  {
890
- path: tt,
891
- Component: ct
906
+ path: it,
907
+ Component: dt
892
908
  },
893
909
  ...r,
894
910
  {
@@ -900,14 +916,17 @@ var _t = () => {
900
916
  ErrorBoundary: U
901
917
  }
902
918
  ];
903
- }, q = (e) => e.startsWith(":") ? e.slice(1) : null, Dt = (e) => e.split("/").some((e) => q(e) !== null);
904
- function Ot(e, t) {
919
+ }, q = (e) => e.startsWith(":") ? e.slice(1) : null, At = (e) => e.split("/").some((e) => q(e) !== null);
920
+ function jt(e, t) {
905
921
  if (!t.trim()) return e;
906
922
  let n = t.toLowerCase();
907
923
  return e.filter((e) => e.title.toLowerCase().includes(n) || e.path.toLowerCase().includes(n));
908
924
  }
909
- var kt = (e, t) => typeof e.breadcrumbTitle == "function" ? e.breadcrumbTitle(t) : typeof e.breadcrumbTitle == "string" ? e.breadcrumbTitle : e.title, At = (e, t) => {
910
- let n = Ee(t);
925
+ var Mt = (e, t, n) => {
926
+ let r = typeof e.breadcrumbTitle == "function" ? e.breadcrumbTitle(we in e.breadcrumbTitle ? n : t) : e.breadcrumbTitle;
927
+ return typeof r == "function" ? z(n)(r, e.title) : r ?? e.title;
928
+ }, Nt = (e, t) => {
929
+ let n = Oe(t);
911
930
  return e.reduce((e, t) => {
912
931
  let r = n(t.meta.title, t.path);
913
932
  e[t.path] = {
@@ -928,8 +947,8 @@ var kt = (e, t) => typeof e.breadcrumbTitle == "function" ? e.breadcrumbTitle(t)
928
947
  return t.resources && t.resources.length > 0 && i(t.resources, t.path), e;
929
948
  }, {});
930
949
  };
931
- function jt(e, t, n, r) {
932
- let i = e.split("/").filter((e) => e !== ""), a = t && i[0] === t ? i.slice(1) : i, o = At(n, r);
950
+ function Pt(e, t, n, r) {
951
+ let i = e.split("/").filter((e) => e !== ""), a = t && i[0] === t ? i.slice(1) : i, o = Nt(n, r);
933
952
  if (a.length === 0) {
934
953
  let e = o[""];
935
954
  if (e) return {
@@ -937,26 +956,26 @@ function jt(e, t, n, r) {
937
956
  segments: [{
938
957
  segment: "",
939
958
  path: "",
940
- title: kt(e, ""),
959
+ title: Mt(e, "", r),
941
960
  clickable: e.clickable
942
961
  }]
943
962
  };
944
963
  }
945
964
  let s = a.map((e, t) => {
946
- let n = a.slice(0, t + 1).join("/"), r = o[n];
947
- if (!r) {
965
+ let n = a.slice(0, t + 1).join("/"), i = o[n];
966
+ if (!i) {
948
967
  let e = Object.entries(o).find(([e]) => {
949
968
  let t = e.split("/").map((e) => q(e) === null ? e : "[^/]+").join("/");
950
969
  return RegExp(`^${t}$`).test(n);
951
970
  })?.[1];
952
- e && (r = e);
971
+ e && (i = e);
953
972
  }
954
- let i;
955
- return i = r ? kt(r, e) : decodeURIComponent(e), {
973
+ let s;
974
+ return s = i ? Mt(i, e, r) : decodeURIComponent(e), {
956
975
  segment: e,
957
976
  path: n,
958
- title: i,
959
- clickable: r?.clickable ?? !0
977
+ title: s,
978
+ clickable: i?.clickable ?? !0
960
979
  };
961
980
  });
962
981
  return {
@@ -966,14 +985,14 @@ function jt(e, t, n, r) {
966
985
  }
967
986
  //#endregion
968
987
  //#region src/routing/navigation.tsx
969
- var Mt = "appshell-root-nav", Nt = (e) => ({
970
- loaderID: Mt,
971
- loader: async () => ({ navItems: Ft(e) })
972
- }), Pt = () => h(Mt)?.navItems, Ft = async (e) => {
973
- let t = Ee(e.locale);
988
+ var Ft = "appshell-root-nav", It = (e) => ({
989
+ loaderID: Ft,
990
+ loader: async () => ({ navItems: Rt(e) })
991
+ }), Lt = () => h(Ft)?.navItems, Rt = async (e) => {
992
+ let t = Oe(e.locale);
974
993
  return (await Promise.all(e.modules.map(async (e) => {
975
994
  if (q(e.path) !== null || (await G(e.guards)).type !== "pass") return null;
976
- let n = await It(e.resources, e.path, t);
995
+ let n = await zt(e.resources, e.path, t);
977
996
  return n.length === 0 && !e.meta.menuItemClickable ? null : {
978
997
  module: e,
979
998
  resources: n
@@ -984,70 +1003,70 @@ var Mt = "appshell-root-nav", Nt = (e) => ({
984
1003
  icon: e.meta.icon || /* @__PURE__ */ N(ie, {}),
985
1004
  items: n
986
1005
  }));
987
- }, It = async (e, t, n) => (await Promise.all(e.map(async (e) => {
1006
+ }, zt = async (e, t, n) => (await Promise.all(e.map(async (e) => {
988
1007
  if (q(e.path) !== null || (await G(e.guards)).type !== "pass") return null;
989
- let r = `${t}/${e.path}`, i = n(e.meta.title, e.path), a = e.component !== void 0, o = e.subResources ? await It(e.subResources, r, n) : void 0, s = o && o.length > 0;
1008
+ let r = `${t}/${e.path}`, i = n(e.meta.title, e.path), a = e.component !== void 0, o = e.subResources ? await zt(e.subResources, r, n) : void 0, s = o && o.length > 0;
990
1009
  return !a && !s ? null : {
991
1010
  title: i,
992
1011
  url: a ? r : void 0,
993
1012
  items: s ? o : void 0
994
1013
  };
995
- }))).filter((e) => e !== null), J = (e) => e.split("/").filter((e) => e !== ""), Lt = (e, t) => {
1014
+ }))).filter((e) => e !== null), J = (e) => e.split("/").filter((e) => e !== ""), Bt = (e, t) => {
996
1015
  let n = J(e), r = t && n[0] === t ? n.slice(1) : n;
997
1016
  return r.length > 0 ? `/${r.join("/")}` : "/";
998
- }, Rt = (e) => e.join("/") || "/", zt = 8, Bt = (e, t) => J(e).map((e) => {
1017
+ }, Vt = (e) => e.join("/") || "/", Ht = 8, Ut = (e, t) => J(e).map((e) => {
999
1018
  let n = q(e);
1000
1019
  if (n === null) return e;
1001
1020
  let r = t[n] ?? "";
1002
- return r.length > zt ? `${r.slice(0, zt)}...` : r;
1003
- }), Vt = async ({ modules: e, locale: t, basePath: n, pathname: r }) => {
1004
- let i = Ee(t), a = l(Et({
1021
+ return r.length > Ht ? `${r.slice(0, Ht)}...` : r;
1022
+ }), Wt = async ({ modules: e, locale: t, basePath: n, pathname: r }) => {
1023
+ let i = Oe(t), a = l(kt({
1005
1024
  modules: e,
1006
1025
  settingsResources: []
1007
- }), Lt(r, n));
1026
+ }), Bt(r, n));
1008
1027
  if (!a) return [];
1009
1028
  let o = /* @__PURE__ */ new Map(), s = a.map((e) => {
1010
1029
  let t = e.route.handle;
1011
1030
  return t?.node ? {
1012
1031
  node: t.node,
1013
1032
  params: e.params,
1014
- pathnameBase: Rt(J(e.pathnameBase))
1033
+ pathnameBase: Vt(J(e.pathnameBase))
1015
1034
  } : null;
1016
1035
  }).filter((e) => e !== null);
1017
1036
  for (let [e, t] of s.entries()) {
1018
- if (!Dt(t.node.path)) continue;
1037
+ if (!At(t.node.path)) continue;
1019
1038
  let n = s.slice(0, e + 1).map(({ node: e }) => i(e.meta.title, e.path)), r = s.slice(0, e + 1).toReversed().find(({ node: e }) => "resources" in e), a = r && "resources" in r.node && r.node.meta.icon || /* @__PURE__ */ N(ie, {});
1020
- await Ht({
1039
+ await Gt({
1021
1040
  node: t.node,
1022
1041
  params: t.params,
1023
1042
  icon: a,
1024
1043
  baseSegments: J(t.pathnameBase),
1025
- baseDisplaySegments: s.slice(0, e + 1).flatMap(({ node: e, params: t }) => Bt(e.path, t)),
1044
+ baseDisplaySegments: s.slice(0, e + 1).flatMap(({ node: e, params: t }) => Ut(e.path, t)),
1026
1045
  breadcrumb: n,
1027
1046
  resolveTitle: i,
1028
1047
  routeMap: o
1029
1048
  });
1030
1049
  }
1031
1050
  return [...o.values()];
1032
- }, Ht = async ({ node: e, params: t, icon: n, baseSegments: r, baseDisplaySegments: i, breadcrumb: a, resolveTitle: o, routeMap: s }) => {
1051
+ }, Gt = async ({ node: e, params: t, icon: n, baseSegments: r, baseDisplaySegments: i, breadcrumb: a, resolveTitle: o, routeMap: s }) => {
1033
1052
  if ((await G(e.guards)).type !== "pass") return;
1034
1053
  if ("resources" in e ? e.meta.menuItemClickable : e.component !== void 0) {
1035
- let t = Rt(r);
1054
+ let t = Vt(r);
1036
1055
  s.set(t, {
1037
1056
  path: t,
1038
- displayPath: Rt(i),
1057
+ displayPath: Vt(i),
1039
1058
  title: o(e.meta.title, e.path),
1040
1059
  icon: n,
1041
1060
  breadcrumb: a
1042
1061
  });
1043
1062
  }
1044
1063
  let c = "resources" in e ? e.resources : e.subResources;
1045
- if (!(!c || c.length === 0)) for (let e of c) Dt(e.path) || await Ht({
1064
+ if (!(!c || c.length === 0)) for (let e of c) At(e.path) || await Gt({
1046
1065
  node: e,
1047
1066
  params: t,
1048
1067
  icon: n,
1049
1068
  baseSegments: [...r, ...J(e.path)],
1050
- baseDisplaySegments: [...i, ...Bt(e.path, t)],
1069
+ baseDisplaySegments: [...i, ...Ut(e.path, t)],
1051
1070
  breadcrumb: [...a, o(e.meta.title, e.path)],
1052
1071
  resolveTitle: o,
1053
1072
  routeMap: s
@@ -1055,28 +1074,28 @@ var Mt = "appshell-root-nav", Nt = (e) => ({
1055
1074
  };
1056
1075
  //#endregion
1057
1076
  //#region src/components/internals/breadcrumb/breadcrumb.tsx
1058
- function Ut({ ...e }) {
1077
+ function Kt({ ...e }) {
1059
1078
  return /* @__PURE__ */ N("nav", {
1060
1079
  "aria-label": "breadcrumb",
1061
1080
  "data-slot": "breadcrumb",
1062
1081
  ...e
1063
1082
  });
1064
1083
  }
1065
- function Wt({ className: e, ...t }) {
1084
+ function qt({ className: e, ...t }) {
1066
1085
  return /* @__PURE__ */ N("ol", {
1067
1086
  "data-slot": "breadcrumb-list",
1068
1087
  className: I("astw:text-muted-foreground astw:flex astw:flex-wrap astw:items-center astw:gap-1.5 astw:text-sm astw:break-words astw:sm:gap-2.5", e),
1069
1088
  ...t
1070
1089
  });
1071
1090
  }
1072
- function Gt({ className: e, ...t }) {
1091
+ function Jt({ className: e, ...t }) {
1073
1092
  return /* @__PURE__ */ N("li", {
1074
1093
  "data-slot": "breadcrumb-item",
1075
1094
  className: I("astw:inline-flex astw:items-center astw:gap-1.5", e),
1076
1095
  ...t
1077
1096
  });
1078
1097
  }
1079
- function Kt({ render: e, className: t, children: r, to: i, ...a }) {
1098
+ function Yt({ render: e, className: t, children: r, to: i, ...a }) {
1080
1099
  let o = I("astw:hover:text-foreground astw:transition-colors", t);
1081
1100
  return k({
1082
1101
  defaultTagName: "a",
@@ -1092,7 +1111,7 @@ function Kt({ render: e, className: t, children: r, to: i, ...a }) {
1092
1111
  }
1093
1112
  });
1094
1113
  }
1095
- function qt({ className: e, ariaCurrent: t = "location", ...n }) {
1114
+ function Xt({ className: e, ariaCurrent: t = "location", ...n }) {
1096
1115
  return /* @__PURE__ */ N("span", {
1097
1116
  "data-slot": "breadcrumb-page",
1098
1117
  "aria-disabled": "true",
@@ -1101,7 +1120,7 @@ function qt({ className: e, ariaCurrent: t = "location", ...n }) {
1101
1120
  ...n
1102
1121
  });
1103
1122
  }
1104
- function Jt({ children: e, className: t, ...n }) {
1123
+ function Zt({ children: e, className: t, ...n }) {
1105
1124
  return /* @__PURE__ */ N("li", {
1106
1125
  "data-slot": "breadcrumb-separator",
1107
1126
  role: "presentation",
@@ -1113,31 +1132,31 @@ function Jt({ children: e, className: t, ...n }) {
1113
1132
  }
1114
1133
  //#endregion
1115
1134
  //#region src/components/sidebar/dynamic-breadcrumb.tsx
1116
- var Yt = () => {
1135
+ var Qt = () => {
1117
1136
  let { configurations: e } = V();
1118
- return jt(d().pathname, e.basePath, e.modules, e.locale);
1119
- }, Xt = () => {
1120
- let { basePath: e, segments: t } = Yt(), { overrides: n } = Qe(), r = f("/:prefix/settings/:suffix"), i = H();
1121
- return r ? /* @__PURE__ */ N(Ut, { children: /* @__PURE__ */ N(Wt, { children: /* @__PURE__ */ N("div", {
1137
+ return Pt(d().pathname, e.basePath, e.modules, e.locale);
1138
+ }, $t = () => {
1139
+ let { basePath: e, segments: t } = Qt(), { overrides: n } = tt(), r = f("/:prefix/settings/:suffix"), i = H();
1140
+ return r ? /* @__PURE__ */ N(Kt, { children: /* @__PURE__ */ N(qt, { children: /* @__PURE__ */ N("div", {
1122
1141
  className: "astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",
1123
- children: /* @__PURE__ */ N(Gt, { children: /* @__PURE__ */ N(Kt, {
1142
+ children: /* @__PURE__ */ N(Jt, { children: /* @__PURE__ */ N(Yt, {
1124
1143
  to: `/${r.params.prefix}/settings`,
1125
1144
  children: i("settings")
1126
1145
  }) })
1127
- }) }) }) : /* @__PURE__ */ N(Ut, { children: /* @__PURE__ */ N(Wt, { children: t.map((r, i) => {
1146
+ }) }) }) : /* @__PURE__ */ N(Kt, { children: /* @__PURE__ */ N(qt, { children: t.map((r, i) => {
1128
1147
  let a = e ? `/${e}/${r.path}` : `/${r.path}`, o = n.get(a) ?? r.title;
1129
1148
  return /* @__PURE__ */ P("div", {
1130
1149
  className: "astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",
1131
- children: [/* @__PURE__ */ N(Gt, { children: r.clickable ? /* @__PURE__ */ N(Kt, {
1150
+ children: [/* @__PURE__ */ N(Jt, { children: r.clickable ? /* @__PURE__ */ N(Yt, {
1132
1151
  to: r.path,
1133
1152
  children: o
1134
- }) : /* @__PURE__ */ N(qt, {
1153
+ }) : /* @__PURE__ */ N(Xt, {
1135
1154
  ariaCurrent: i === t.length - 1 && "location",
1136
1155
  children: o
1137
- }) }), i < t.length - 1 && /* @__PURE__ */ N(Jt, {})]
1156
+ }) }), i < t.length - 1 && /* @__PURE__ */ N(Zt, {})]
1138
1157
  }, i);
1139
1158
  }) }) });
1140
- }, Zt = [
1159
+ }, en = [
1141
1160
  {
1142
1161
  rel: "icon",
1143
1162
  type: "image/png",
@@ -1155,54 +1174,54 @@ var Yt = () => {
1155
1174
  sizes: "180x180",
1156
1175
  href: "data:image/png;base64,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"
1157
1176
  }
1158
- ], Qt = " · ", $t = "data-app-shell-favicon", en = (e) => {
1177
+ ], tn = " · ", nn = "data-app-shell-favicon", rn = (e) => {
1159
1178
  if (e.startsWith("data:")) return e.match(/^data:([^;,]+)/)?.[1];
1160
1179
  if (e.endsWith(".svg")) return "image/svg+xml";
1161
1180
  if (e.endsWith(".png")) return "image/png";
1162
1181
  if (e.endsWith(".ico")) return "image/x-icon";
1163
- }, tn = () => {
1164
- let { title: e, favicon: t } = V(), { basePath: n, segments: r } = Yt(), i = $e()?.overrides, a = r.at(-1), o;
1182
+ }, an = () => {
1183
+ let { title: e, favicon: t } = V(), { basePath: n, segments: r } = Qt(), i = nt()?.overrides, a = r.at(-1), o;
1165
1184
  if (a) {
1166
1185
  let e = n ? `/${n}/${a.path}` : `/${a.path}`;
1167
1186
  o = i?.get(e) ?? a.title;
1168
1187
  }
1169
- let s = [o, e].filter(Boolean).join(Qt), c = typeof document < "u" && document.head.querySelector(`link[rel~="icon"]:not([${$t}])`), l;
1188
+ let s = [o, e].filter(Boolean).join(tn), c = typeof document < "u" && document.head.querySelector(`link[rel~="icon"]:not([${nn}])`), l;
1170
1189
  return l = t ? [{
1171
1190
  rel: "icon",
1172
1191
  href: t,
1173
- type: en(t)
1174
- }] : c ? [] : Zt, /* @__PURE__ */ P(M, { children: [s ? /* @__PURE__ */ N("title", { children: s }) : null, l.map(({ rel: e, href: t, type: n, sizes: r }) => /* @__PURE__ */ N("link", {
1192
+ type: rn(t)
1193
+ }] : c ? [] : en, /* @__PURE__ */ P(M, { children: [s ? /* @__PURE__ */ N("title", { children: s }) : null, l.map(({ rel: e, href: t, type: n, sizes: r }) => /* @__PURE__ */ N("link", {
1175
1194
  rel: e,
1176
1195
  href: t,
1177
1196
  "data-app-shell-favicon": "",
1178
1197
  ...n ? { type: n } : {},
1179
1198
  ...r ? { sizes: r } : {}
1180
1199
  }, `${e}-${r ?? "any"}`))] });
1181
- }, nn = (e) => {
1182
- let { configurations: t, contentRoutes: n, children: r } = e, { loaderID: i, loader: o } = Nt({
1200
+ }, on = (e) => {
1201
+ let { configurations: t, contentRoutes: n, children: r } = e, { loaderID: i, loader: o } = It({
1183
1202
  modules: t.modules,
1184
1203
  locale: t.locale,
1185
1204
  basePath: t.basePath
1186
1205
  }), s = t.errorBoundary, c = s ? [{
1187
1206
  element: /* @__PURE__ */ N(a, {}),
1188
- ErrorBoundary: St(s),
1207
+ ErrorBoundary: Tt(s),
1189
1208
  children: n
1190
1209
  }] : n;
1191
1210
  return {
1192
1211
  id: i,
1193
1212
  loader: o,
1194
- element: /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(tn, {}), r] }),
1213
+ element: /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(an, {}), r] }),
1195
1214
  children: c,
1196
1215
  HydrateFallback: () => null
1197
1216
  };
1198
- }, rn = {
1217
+ }, sn = {
1199
1218
  createBrowserRouter: o,
1200
1219
  createMemoryRouter: s
1201
- }, an = (e) => {
1202
- let { children: t } = e, { configurations: n } = V(), r = C(() => Et({
1220
+ }, cn = (e) => {
1221
+ let { children: t } = e, { configurations: n } = V(), r = C(() => kt({
1203
1222
  modules: n.modules,
1204
1223
  settingsResources: n.settingsResources
1205
- }), [n.modules, n.settingsResources]), i = C(() => [nn({
1224
+ }), [n.modules, n.settingsResources]), i = C(() => [on({
1206
1225
  configurations: n,
1207
1226
  contentRoutes: r,
1208
1227
  children: t
@@ -1210,18 +1229,18 @@ var Yt = () => {
1210
1229
  n,
1211
1230
  r,
1212
1231
  t
1213
- ]), a = n.basePath ? "/" + n.basePath : void 0, o = e.memory ? e.initialEntries : void 0, s = C(() => e.memory ? rn.createMemoryRouter(i, {
1232
+ ]), a = n.basePath ? "/" + n.basePath : void 0, o = e.memory ? e.initialEntries : void 0, s = C(() => e.memory ? sn.createMemoryRouter(i, {
1214
1233
  basename: a,
1215
1234
  ...o ? { initialEntries: o } : {}
1216
- }) : rn.createBrowserRouter(i, { basename: a }), [
1235
+ }) : sn.createBrowserRouter(i, { basename: a }), [
1217
1236
  a,
1218
1237
  o,
1219
1238
  e.memory,
1220
1239
  i
1221
1240
  ]);
1222
1241
  return /* @__PURE__ */ N(le, { router: s });
1223
- }, on = v(null), Y = v(null);
1224
- function sn({ children: e, searchSources: t = [] }) {
1242
+ }, ln = v(null), Y = v(null);
1243
+ function un({ children: e, searchSources: t = [] }) {
1225
1244
  let { pathname: n } = d(), { configurations: r } = V(), i = T(/* @__PURE__ */ new Map()), a = T(0), o = T(n), [s, c] = E([]), [l, u] = E(!1), [f, p] = E(null), [m, h] = E([]), [g, _] = E(null), [v, b] = E(!1), S = y(() => {
1226
1245
  c(Array.from(i.current.values()).flat());
1227
1246
  }, []), w = y((e, t) => (i.current.set(e, t), S(), () => {
@@ -1232,7 +1251,7 @@ function sn({ children: e, searchSources: t = [] }) {
1232
1251
  a.current += 1, u(!1), h([]), _(null), b(!1);
1233
1252
  }, []), k = y(() => {
1234
1253
  let e = a.current + 1;
1235
- a.current = e, h([]), _(n), b(!0), Vt({
1254
+ a.current = e, h([]), _(n), b(!0), Wt({
1236
1255
  modules: r.modules,
1237
1256
  locale: r.locale,
1238
1257
  basePath: r.basePath,
@@ -1292,7 +1311,7 @@ function sn({ children: e, searchSources: t = [] }) {
1292
1311
  n,
1293
1312
  j
1294
1313
  ]);
1295
- return /* @__PURE__ */ N(on.Provider, {
1314
+ return /* @__PURE__ */ N(ln.Provider, {
1296
1315
  value: M,
1297
1316
  children: /* @__PURE__ */ N(Y.Provider, {
1298
1317
  value: P,
@@ -1300,13 +1319,13 @@ function sn({ children: e, searchSources: t = [] }) {
1300
1319
  })
1301
1320
  });
1302
1321
  }
1303
- function cn() {
1304
- let e = b(on);
1322
+ function dn() {
1323
+ let e = b(ln);
1305
1324
  if (!e) throw Error("useCommandPaletteDispatch must be used within CommandPaletteProvider");
1306
1325
  return e;
1307
1326
  }
1308
- function ln(e, t) {
1309
- let n = S(), { register: r } = cn(), i = T(t);
1327
+ function fn(e, t) {
1328
+ let n = S(), { register: r } = dn(), i = T(t);
1310
1329
  i.current = t;
1311
1330
  let a = t.map((e) => `${e.key}\0${e.label}`).join("\n");
1312
1331
  x(() => r(n, i.current.map((t) => ({
@@ -1320,63 +1339,63 @@ function ln(e, t) {
1320
1339
  e
1321
1340
  ]);
1322
1341
  }
1323
- function un() {
1342
+ function pn() {
1324
1343
  let e = b(Y);
1325
1344
  if (!e) throw Error("useCommandPaletteState must be used within CommandPaletteProvider");
1326
1345
  return e;
1327
1346
  }
1328
- function dn() {
1347
+ function mn() {
1329
1348
  let e = b(Y);
1330
1349
  if (!e) throw Error("useOpenCommandPalette must be used within CommandPaletteProvider");
1331
1350
  return e.openCommandPalette;
1332
1351
  }
1333
- function fn() {
1352
+ function hn() {
1334
1353
  let e = b(Y);
1335
1354
  if (!e) throw Error("useCommandPaletteActions must be used within CommandPaletteProvider");
1336
1355
  return e.actions;
1337
1356
  }
1338
1357
  //#endregion
1339
1358
  //#region src/components/dialog/dialog.tsx
1340
- function pn({ ...e }) {
1359
+ function gn({ ...e }) {
1341
1360
  return /* @__PURE__ */ N(F.Root, {
1342
1361
  "data-slot": "dialog",
1343
1362
  ...e
1344
1363
  });
1345
1364
  }
1346
- pn.displayName = "Dialog.Root";
1347
- function mn({ ...e }) {
1365
+ gn.displayName = "Dialog.Root";
1366
+ function _n({ ...e }) {
1348
1367
  return /* @__PURE__ */ N(F.Trigger, {
1349
1368
  "data-slot": "dialog-trigger",
1350
1369
  ...e
1351
1370
  });
1352
1371
  }
1353
- mn.displayName = "Dialog.Trigger";
1354
- function hn({ ...e }) {
1372
+ _n.displayName = "Dialog.Trigger";
1373
+ function vn({ ...e }) {
1355
1374
  return /* @__PURE__ */ N(F.Portal, {
1356
1375
  "data-slot": "dialog-portal",
1357
1376
  ...e
1358
1377
  });
1359
1378
  }
1360
- hn.displayName = "Dialog.Portal";
1361
- function gn({ ...e }) {
1379
+ vn.displayName = "Dialog.Portal";
1380
+ function yn({ ...e }) {
1362
1381
  return /* @__PURE__ */ N(F.Close, {
1363
1382
  "data-slot": "dialog-close",
1364
1383
  ...e
1365
1384
  });
1366
1385
  }
1367
- gn.displayName = "Dialog.Close";
1368
- function _n({ className: e, ...t }) {
1386
+ yn.displayName = "Dialog.Close";
1387
+ function bn({ className: e, ...t }) {
1369
1388
  return /* @__PURE__ */ N(F.Backdrop, {
1370
1389
  "data-slot": "dialog-overlay",
1371
- className: I("astw:data-open:animate-in astw:data-ending-style:animate-out astw:data-ending-style:fade-out-0 astw:data-open:fade-in-0 astw:fill-mode-forwards astw:fixed astw:inset-0 astw:z-(--z-overlay) astw:bg-black/50", e),
1390
+ className: I("astw:data-open:animate-in astw:data-ending-style:animate-out astw:data-ending-style:fade-out-0 astw:data-open:fade-in-0 astw:fill-mode-forwards astw:fixed astw:inset-0 astw:z-(--z-overlay) astw:bg-backdrop", e),
1372
1391
  ...t
1373
1392
  });
1374
1393
  }
1375
- _n.displayName = "Dialog.Overlay";
1376
- function vn({ className: e, children: t, ...n }) {
1377
- return /* @__PURE__ */ P(hn, {
1394
+ bn.displayName = "Dialog.Overlay";
1395
+ function xn({ className: e, children: t, ...n }) {
1396
+ return /* @__PURE__ */ P(vn, {
1378
1397
  "data-slot": "dialog-portal",
1379
- children: [/* @__PURE__ */ N(_n, {}), /* @__PURE__ */ P(F.Popup, {
1398
+ children: [/* @__PURE__ */ N(bn, {}), /* @__PURE__ */ P(F.Popup, {
1380
1399
  "data-slot": "dialog-content",
1381
1400
  className: I("astw:bg-card astw:data-open:animate-in astw:data-ending-style:animate-out astw:data-ending-style:fade-out-0 astw:data-open:fade-in-0 astw:data-ending-style:zoom-out-95 astw:data-open:zoom-in-95 astw:fill-mode-forwards astw:fixed astw:top-[50%] astw:left-[50%] astw:z-(--z-overlay) astw:grid astw:w-full astw:max-w-[calc(100%-2rem)] astw:translate-x-[-50%] astw:translate-y-[-50%] astw:gap-4 astw:rounded-lg astw:border astw:border-border astw:p-6 astw:shadow-lg astw:duration-200 astw:sm:max-w-lg", e),
1382
1401
  ...n,
@@ -1390,78 +1409,78 @@ function vn({ className: e, children: t, ...n }) {
1390
1409
  })]
1391
1410
  });
1392
1411
  }
1393
- vn.displayName = "Dialog.Content";
1394
- function yn({ className: e, ...t }) {
1412
+ xn.displayName = "Dialog.Content";
1413
+ function Sn({ className: e, ...t }) {
1395
1414
  return /* @__PURE__ */ N("div", {
1396
1415
  "data-slot": "dialog-header",
1397
1416
  className: I("astw:flex astw:flex-col astw:gap-2 astw:text-center astw:sm:text-left", e),
1398
1417
  ...t
1399
1418
  });
1400
1419
  }
1401
- yn.displayName = "Dialog.Header";
1402
- function bn({ className: e, ...t }) {
1420
+ Sn.displayName = "Dialog.Header";
1421
+ function Cn({ className: e, ...t }) {
1403
1422
  return /* @__PURE__ */ N("div", {
1404
1423
  "data-slot": "dialog-footer",
1405
1424
  className: I("astw:flex astw:flex-col-reverse astw:gap-2 astw:sm:flex-row astw:sm:justify-end", e),
1406
1425
  ...t
1407
1426
  });
1408
1427
  }
1409
- bn.displayName = "Dialog.Footer";
1410
- function xn({ className: e, ...t }) {
1428
+ Cn.displayName = "Dialog.Footer";
1429
+ function wn({ className: e, ...t }) {
1411
1430
  return /* @__PURE__ */ N(F.Title, {
1412
1431
  "data-slot": "dialog-title",
1413
1432
  className: I("astw:text-lg astw:leading-none astw:font-semibold", e),
1414
1433
  ...t
1415
1434
  });
1416
1435
  }
1417
- xn.displayName = "Dialog.Title";
1418
- function Sn({ className: e, ...t }) {
1436
+ wn.displayName = "Dialog.Title";
1437
+ function Tn({ className: e, ...t }) {
1419
1438
  return /* @__PURE__ */ N(F.Description, {
1420
1439
  "data-slot": "dialog-description",
1421
1440
  className: I("astw:text-muted-foreground astw:text-sm", e),
1422
1441
  ...t
1423
1442
  });
1424
1443
  }
1425
- Sn.displayName = "Dialog.Description";
1444
+ Tn.displayName = "Dialog.Description";
1426
1445
  var X = {
1427
- Root: pn,
1428
- Close: gn,
1429
- Content: vn,
1430
- Description: Sn,
1431
- Footer: bn,
1432
- Header: yn,
1433
- Title: xn,
1434
- Trigger: mn
1435
- }, Cn = [
1436
- "astw:border-input astw:flex astw:w-full astw:min-w-0 astw:rounded-md astw:border astw:bg-transparent astw:px-3 astw:text-base astw:shadow-xs astw:outline-none astw:md:text-sm",
1446
+ Root: gn,
1447
+ Close: yn,
1448
+ Content: xn,
1449
+ Description: Tn,
1450
+ Footer: Cn,
1451
+ Header: Sn,
1452
+ Title: wn,
1453
+ Trigger: _n
1454
+ }, En = [
1455
+ "astw:border-input astw:flex astw:w-full astw:min-w-0 astw:rounded-md astw:border astw:bg-transparent astw:px-3 astw:text-base astw:outline-none astw:md:text-sm",
1437
1456
  "astw:dark:bg-input/30 astw:transition-[color,box-shadow]",
1438
1457
  "astw:selection:bg-primary astw:selection:text-primary-foreground",
1439
1458
  "astw:placeholder:text-muted-foreground",
1440
1459
  "astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px]",
1441
1460
  "astw:disabled:pointer-events-none astw:disabled:cursor-not-allowed astw:disabled:opacity-50"
1442
- ], wn = [...Cn, "astw:h-9 astw:py-1"], Tn = [...Cn, "astw:min-h-16 astw:py-2 astw:resize-y"];
1461
+ ], Dn = [...En, "astw:h-9 astw:py-1"], On = [...En, "astw:min-h-16 astw:py-2 astw:resize-y"];
1443
1462
  //#endregion
1444
1463
  //#region src/components/input/input.tsx
1445
- function En({ className: e, type: t, ref: n, ...r }) {
1464
+ function kn({ className: e, type: t, ref: n, ...r }) {
1446
1465
  let i = g.useRef(null);
1447
- return he(i, { handlesDirectionalKeys: !0 }), /* @__PURE__ */ N("input", {
1466
+ return ge(i, { handlesDirectionalKeys: !0 }), /* @__PURE__ */ N("input", {
1448
1467
  ref: L(i, n),
1449
1468
  type: t,
1450
1469
  "data-slot": "input",
1451
- className: I(wn, "astw:file:text-foreground astw:file:inline-flex astw:file:h-7 astw:file:border-0 astw:file:bg-transparent astw:file:text-sm astw:file:font-medium", "astw:aria-invalid:ring-destructive/20 astw:dark:aria-invalid:ring-destructive/40 astw:aria-invalid:border-destructive", e),
1470
+ className: I(Dn, "astw:file:text-foreground astw:file:inline-flex astw:file:h-7 astw:file:border-0 astw:file:bg-transparent astw:file:text-sm astw:file:font-medium", "astw:aria-invalid:ring-danger-solid/20 astw:dark:aria-invalid:ring-danger-solid/40 astw:aria-invalid:border-danger-solid", e),
1452
1471
  ...r
1453
1472
  });
1454
1473
  }
1455
1474
  //#endregion
1456
1475
  //#region src/components/spinner/spinner.tsx
1457
- var Dn = {
1476
+ var An = {
1458
1477
  xs: 12,
1459
1478
  sm: 14,
1460
1479
  default: 16,
1461
1480
  lg: 20
1462
1481
  };
1463
- function On({ className: e, size: t = "default", width: n, height: r, ...i }) {
1464
- let a = i["aria-label"] != null || i["aria-labelledby"] != null, o = i["aria-hidden"] === !0 || i["aria-hidden"] == null && i.role == null && !a, s = Dn[t];
1482
+ function jn({ className: e, size: t = "default", width: n, height: r, ...i }) {
1483
+ let a = i["aria-label"] != null || i["aria-labelledby"] != null, o = i["aria-hidden"] === !0 || i["aria-hidden"] == null && i.role == null && !a, s = An[t];
1465
1484
  return /* @__PURE__ */ N("svg", {
1466
1485
  "data-slot": "spinner",
1467
1486
  viewBox: "0 0 16 16",
@@ -1488,7 +1507,7 @@ function On({ className: e, size: t = "default", width: n, height: r, ...i }) {
1488
1507
  //#endregion
1489
1508
  //#region src/components/command-palette/command-palette.tsx
1490
1509
  var Z = "astw:relative astw:flex astw:w-full astw:cursor-pointer astw:select-none astw:rounded-sm astw:px-2 astw:py-2 astw:text-sm astw:outline-none astw:text-left", Q = (e) => e ? "astw:bg-accent astw:text-accent-foreground" : "astw:hover:bg-accent astw:hover:text-accent-foreground";
1491
- function kn(e) {
1510
+ function Mn(e) {
1492
1511
  let t = [], n = (e, r, i) => {
1493
1512
  e.forEach((e) => {
1494
1513
  let a = [...i, e.title];
@@ -1509,17 +1528,17 @@ function kn(e) {
1509
1528
  }), n(e.items, e.icon, [e.title]);
1510
1529
  }), t;
1511
1530
  }
1512
- function An(e, t) {
1531
+ function Nn(e, t) {
1513
1532
  if (!t.trim()) return e;
1514
1533
  let n = t.toLowerCase();
1515
1534
  return e.filter((e) => e.label.toLowerCase().includes(n));
1516
1535
  }
1517
- var jn = 300, Mn = (e) => e === "/" || e.startsWith("/_"), Nn = {
1536
+ var Pn = 300, Fn = (e) => e === "/" || e.startsWith("/_"), In = {
1518
1537
  mode: "browse",
1519
1538
  search: "",
1520
1539
  selectedIndex: 0
1521
- }, Pn = [];
1522
- function Fn(e, t) {
1540
+ }, Ln = [];
1541
+ function Rn(e, t) {
1523
1542
  switch (t.type) {
1524
1543
  case "SET_SEARCH": return e.mode === "search" ? {
1525
1544
  ...e,
@@ -1557,7 +1576,7 @@ function Fn(e, t) {
1557
1576
  results: [],
1558
1577
  isSearching: !1
1559
1578
  };
1560
- case "EXIT_SEARCH_MODE": return Nn;
1579
+ case "EXIT_SEARCH_MODE": return In;
1561
1580
  case "SEARCH_START": return e.mode === "search" ? {
1562
1581
  ...e,
1563
1582
  isSearching: !0,
@@ -1581,10 +1600,10 @@ function Fn(e, t) {
1581
1600
  ...e,
1582
1601
  selectedIndex: Math.max(e.selectedIndex - 1, 0)
1583
1602
  };
1584
- case "RESET": return Nn;
1603
+ case "RESET": return In;
1585
1604
  }
1586
1605
  }
1587
- function In(e, t) {
1606
+ function zn(e, t) {
1588
1607
  let n = e.indexOf(":");
1589
1608
  if (n < 1) return {
1590
1609
  activeSource: null,
@@ -1599,13 +1618,13 @@ function In(e, t) {
1599
1618
  searchQuery: e
1600
1619
  };
1601
1620
  }
1602
- function Ln({ routes: e, contextualActions: t = [], searchSources: n = [], open: r, setOpen: i }) {
1603
- let a = p(), o = T(null), [s, c] = w(Fn, Nn), l = T(null), u = s.mode === "search" ? s.query : s.search, d = s.selectedIndex, f = s.mode === "search" ? s.source : null, m = s.mode === "search" ? s.results : Pn, h = s.mode === "search" && s.isSearching, g = C(() => f ? [] : An(t, u), [
1621
+ function Bn({ routes: e, contextualActions: t = [], searchSources: n = [], open: r, setOpen: i }) {
1622
+ let a = p(), o = T(null), [s, c] = w(Rn, In), l = T(null), u = s.mode === "search" ? s.query : s.search, d = s.selectedIndex, f = s.mode === "search" ? s.source : null, m = s.mode === "search" ? s.results : Ln, h = s.mode === "search" && s.isSearching, g = C(() => f ? [] : Nn(t, u), [
1604
1623
  t,
1605
1624
  u,
1606
1625
  f
1607
- ]), _ = C(() => f ? [] : Ot(e, u).toSorted((e, t) => {
1608
- let n = Mn(e.path), r = Mn(t.path);
1626
+ ]), _ = C(() => f ? [] : jt(e, u).toSorted((e, t) => {
1627
+ let n = Fn(e.path), r = Fn(t.path);
1609
1628
  return Number(n) - Number(r) || e.path.localeCompare(t.path);
1610
1629
  }), [
1611
1630
  e,
@@ -1628,7 +1647,7 @@ function Ln({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1628
1647
  }).catch(() => {
1629
1648
  e.signal.aborted || c({ type: "SEARCH_FAIL" });
1630
1649
  });
1631
- }, jn);
1650
+ }, Pn);
1632
1651
  return () => {
1633
1652
  clearTimeout(e), l.current?.abort(), l.current = null;
1634
1653
  };
@@ -1669,7 +1688,7 @@ function Ln({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1669
1688
  });
1670
1689
  return;
1671
1690
  }
1672
- let t = In(e, n);
1691
+ let t = zn(e, n);
1673
1692
  c({
1674
1693
  type: "SET_SEARCH",
1675
1694
  value: e,
@@ -1677,7 +1696,7 @@ function Ln({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1677
1696
  detectedQuery: t.activeSource ? t.searchQuery : void 0
1678
1697
  });
1679
1698
  }, [s.mode, n]), S = y((e) => {
1680
- let t = In(e, n);
1699
+ let t = zn(e, n);
1681
1700
  c({
1682
1701
  type: "INITIALIZE_SEARCH",
1683
1702
  value: e,
@@ -1746,10 +1765,10 @@ function Ln({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1746
1765
  listRef: o
1747
1766
  };
1748
1767
  }
1749
- function Rn({ navItems: e, extraRoutes: t = [] }) {
1750
- let n = H(), r = fn(), { searchSources: i, open: a, setOpen: o, openRequest: s, clearOpenRequest: c, dynamicRoutes: l, isLoadingDynamicRoutes: u } = un(), { open: d, handleOpenChange: f, search: p, setSearch: m, initializeSearch: h, selectedIndex: g, filteredActions: _, filteredRoutes: v, searchResults: y, activeSearchSource: b, isSearching: S, selectableItems: w, handleSelectItem: T, handleKeyDown: E, listRef: D } = Ln({
1768
+ function Vn({ navItems: e, extraRoutes: t = [] }) {
1769
+ let n = H(), r = hn(), { searchSources: i, open: a, setOpen: o, openRequest: s, clearOpenRequest: c, dynamicRoutes: l, isLoadingDynamicRoutes: u } = pn(), { open: d, handleOpenChange: f, search: p, setSearch: m, initializeSearch: h, selectedIndex: g, filteredActions: _, filteredRoutes: v, searchResults: y, activeSearchSource: b, isSearching: S, selectableItems: w, handleSelectItem: T, handleKeyDown: E, listRef: D } = Bn({
1751
1770
  routes: C(() => [
1752
- ...kn(e),
1771
+ ...Mn(e),
1753
1772
  ...t,
1754
1773
  ...l
1755
1774
  ], [
@@ -1790,7 +1809,7 @@ function Rn({ navItems: e, extraRoutes: t = [] }) {
1790
1809
  className: "astw:inline-flex astw:items-center astw:shrink-0 astw:rounded astw:bg-muted astw:px-1.5 astw:py-0.5 astw:mr-1.5 astw:text-xs astw:font-medium astw:text-muted-foreground",
1791
1810
  children: b.prefix
1792
1811
  }),
1793
- /* @__PURE__ */ N(En, {
1812
+ /* @__PURE__ */ N(kn, {
1794
1813
  value: p,
1795
1814
  onChange: (e) => m(e.target.value),
1796
1815
  placeholder: n("commandPaletteSearch"),
@@ -1810,7 +1829,7 @@ function Rn({ navItems: e, extraRoutes: t = [] }) {
1810
1829
  children: [
1811
1830
  u && /* @__PURE__ */ P("output", {
1812
1831
  className: "astw:flex astw:items-center astw:justify-center astw:gap-2 astw:py-4 astw:text-sm astw:text-muted-foreground",
1813
- children: [/* @__PURE__ */ N(On, { "aria-label": n("commandPaletteLoadingRoutes") }), n("commandPaletteLoadingRoutes")]
1832
+ children: [/* @__PURE__ */ N(jn, { "aria-label": n("commandPaletteLoadingRoutes") }), n("commandPaletteLoadingRoutes")]
1814
1833
  }),
1815
1834
  k > 0 && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("div", {
1816
1835
  className: "astw:px-2 astw:py-1.5 astw:text-xs astw:font-medium astw:text-muted-foreground",
@@ -1917,23 +1936,23 @@ function Rn({ navItems: e, extraRoutes: t = [] }) {
1917
1936
  ]
1918
1937
  }), S && /* @__PURE__ */ P("div", {
1919
1938
  className: "astw:flex astw:items-center astw:justify-center astw:gap-2 astw:py-4 astw:text-sm astw:text-muted-foreground",
1920
- children: [/* @__PURE__ */ N(On, {}), n("commandPaletteSearching")]
1939
+ children: [/* @__PURE__ */ N(jn, {}), n("commandPaletteSearching")]
1921
1940
  })]
1922
1941
  })
1923
1942
  ]
1924
1943
  })
1925
1944
  });
1926
1945
  }
1927
- function zn() {
1946
+ function Hn() {
1928
1947
  return null;
1929
1948
  }
1930
- function Bn() {
1931
- let e = Pt(), n = st();
1949
+ function Un() {
1950
+ let e = Lt(), n = ut();
1932
1951
  return /* @__PURE__ */ N(_, {
1933
1952
  fallback: null,
1934
1953
  children: /* @__PURE__ */ N(t, {
1935
1954
  resolve: e,
1936
- children: (e) => /* @__PURE__ */ N(Rn, {
1955
+ children: (e) => /* @__PURE__ */ N(Vn, {
1937
1956
  navItems: e ?? [],
1938
1957
  extraRoutes: [n]
1939
1958
  })
@@ -1942,13 +1961,13 @@ function Bn() {
1942
1961
  }
1943
1962
  //#endregion
1944
1963
  //#region src/hooks/use-is-client.ts
1945
- var Vn = () => () => {}, Hn = () => !0, Un = () => !1;
1946
- function Wn() {
1947
- return D(Vn, Hn, Un);
1964
+ var Wn = () => () => {}, Gn = () => !0, Kn = () => !1;
1965
+ function qn() {
1966
+ return D(Wn, Gn, Kn);
1948
1967
  }
1949
1968
  //#endregion
1950
1969
  //#region src/fs-routes/converter.tsx
1951
- function Gn(e) {
1970
+ function Jn(e) {
1952
1971
  let t = {
1953
1972
  path: "",
1954
1973
  fullPath: "",
@@ -1967,12 +1986,12 @@ function Gn(e) {
1967
1986
  }
1968
1987
  return t;
1969
1988
  }
1970
- function Kn(e, t) {
1971
- return e?.appShellPageProps?.meta?.title ?? Ve(t);
1989
+ function Yn(e, t) {
1990
+ return e?.appShellPageProps?.meta?.title ?? Ue(t);
1972
1991
  }
1973
- function qn(e) {
1974
- let t = e.component, n = Kn(t, e.path), r = t?.appShellPageProps?.meta?.icon, i = t?.appShellPageProps?.meta?.breadcrumbTitle, a = e.guards && e.guards.length > 0 ? K(e.guards) : void 0, o = [];
1975
- for (let t of e.children.values()) o.push(qn(t));
1992
+ function Xn(e) {
1993
+ let t = e.component, n = Yn(t, e.path), r = t?.appShellPageProps?.meta?.icon, i = t?.appShellPageProps?.meta?.breadcrumbTitle, a = e.guards && e.guards.length > 0 ? K(e.guards) : void 0, o = [];
1994
+ for (let t of e.children.values()) o.push(Xn(t));
1976
1995
  return {
1977
1996
  _type: "resource",
1978
1997
  type: "component",
@@ -1989,9 +2008,9 @@ function qn(e) {
1989
2008
  loader: a
1990
2009
  };
1991
2010
  }
1992
- function Jn(e) {
1993
- let t = e.component, n = Kn(t, e.path), r = t?.appShellPageProps?.meta?.icon, i = t?.appShellPageProps?.meta?.breadcrumbTitle, a = e.guards && e.guards.length > 0 ? K(e.guards) : void 0, o = [];
1994
- for (let t of e.children.values()) o.push(qn(t));
2011
+ function Zn(e) {
2012
+ let t = e.component, n = Yn(t, e.path), r = t?.appShellPageProps?.meta?.icon, i = t?.appShellPageProps?.meta?.breadcrumbTitle, a = e.guards && e.guards.length > 0 ? K(e.guards) : void 0, o = [];
2013
+ for (let t of e.children.values()) o.push(Xn(t));
1995
2014
  return {
1996
2015
  _type: "module",
1997
2016
  type: "component",
@@ -2009,33 +2028,33 @@ function Jn(e) {
2009
2028
  loader: a
2010
2029
  };
2011
2030
  }
2012
- function Yn(e) {
2031
+ function Qn(e) {
2013
2032
  if (e.length === 0) return [];
2014
- let t = Gn(e), n = [];
2033
+ let t = Jn(e), n = [];
2015
2034
  if (t.component) {
2016
- let e = Jn({
2035
+ let e = Zn({
2017
2036
  ...t,
2018
2037
  path: "",
2019
2038
  children: /* @__PURE__ */ new Map()
2020
2039
  });
2021
2040
  n.push(e);
2022
2041
  }
2023
- for (let e of t.children.values()) n.push(Jn(e));
2042
+ for (let e of t.children.values()) n.push(Zn(e));
2024
2043
  return n;
2025
2044
  }
2026
2045
  //#endregion
2027
2046
  //#region src/components/appshell/appshell.tsx
2028
2047
  var $ = (e) => {
2029
- let t = Wn();
2030
- Le(e.contextData ?? {});
2048
+ let t = qn();
2049
+ ze(e.contextData ?? {});
2031
2050
  let { modules: n, rootComponent: r, rootGuards: i } = e, a = e.memory ? {
2032
2051
  memory: !0,
2033
2052
  initialEntries: e.initialEntries
2034
- } : { memory: !1 }, o = C(() => n && (n.some((e) => e.path === "") ? ((r || i?.length) && console.warn("[AppShell] Both a root module (path=\"\") and rootComponent/rootGuards are provided. The root module takes precedence; rootComponent and rootGuards will be ignored. Define guards directly on the root module instead."), n) : r || i?.length ? [Ue({
2053
+ } : { memory: !1 }, o = C(() => n && (n.some((e) => e.path === "") ? ((r || i?.length) && console.warn("[AppShell] Both a root module (path=\"\") and rootComponent/rootGuards are provided. The root module takes precedence; rootComponent and rootGuards will be ignored. Define guards directly on the root module instead."), n) : r || i?.length ? [Ge({
2035
2054
  path: "",
2036
2055
  ...r ? {
2037
2056
  meta: {
2038
- title: Fe.t("home"),
2057
+ title: Le.t("home"),
2039
2058
  icon: /* @__PURE__ */ N(ne, {})
2040
2059
  },
2041
2060
  component: () => r()
@@ -2046,7 +2065,7 @@ var $ = (e) => {
2046
2065
  n,
2047
2066
  r,
2048
2067
  i
2049
- ]), s = C(() => o ? De({
2068
+ ]), s = C(() => o ? ke({
2050
2069
  modules: o,
2051
2070
  settingsResources: e.settingsResources,
2052
2071
  basePath: e.basePath,
@@ -2078,9 +2097,9 @@ var $ = (e) => {
2078
2097
  return console.error(e), /* @__PURE__ */ N("div", {
2079
2098
  className: "astw:flex astw:min-h-screen astw:items-center astw:justify-center astw:bg-background astw:p-4",
2080
2099
  children: /* @__PURE__ */ P("div", {
2081
- className: "astw:max-w-md astw:rounded-lg astw:border astw:border-destructive/50 astw:bg-destructive/10 astw:p-6 astw:text-center",
2100
+ className: "astw:max-w-md astw:rounded-lg astw:border astw:border-danger-border astw:bg-danger-surface astw:p-6 astw:text-center",
2082
2101
  children: [/* @__PURE__ */ N("h1", {
2083
- className: "astw:mb-2 astw:text-lg astw:font-semibold astw:text-destructive",
2102
+ className: "astw:mb-2 astw:text-lg astw:font-semibold astw:text-danger-text",
2084
2103
  children: "Configuration Error"
2085
2104
  }), /* @__PURE__ */ N("p", {
2086
2105
  className: "astw:text-sm astw:text-muted-foreground",
@@ -2091,15 +2110,15 @@ var $ = (e) => {
2091
2110
  }
2092
2111
  return t ? /* @__PURE__ */ N(B.Provider, {
2093
2112
  value: c,
2094
- children: /* @__PURE__ */ N(Oe.Provider, {
2113
+ children: /* @__PURE__ */ N(Ae.Provider, {
2095
2114
  value: l,
2096
- children: /* @__PURE__ */ N(Ze, { children: /* @__PURE__ */ N(gt, {
2115
+ children: /* @__PURE__ */ N(et, { children: /* @__PURE__ */ N(yt, {
2097
2116
  defaultColorTheme: e.defaultColorTheme,
2098
- children: /* @__PURE__ */ N(an, {
2117
+ children: /* @__PURE__ */ N(cn, {
2099
2118
  ...a,
2100
- children: /* @__PURE__ */ P(sn, {
2119
+ children: /* @__PURE__ */ P(un, {
2101
2120
  searchSources: e.searchSources,
2102
- children: [e.children, /* @__PURE__ */ N(Bn, {})]
2121
+ children: [e.children, /* @__PURE__ */ N(Un, {})]
2103
2122
  })
2104
2123
  })
2105
2124
  }) })
@@ -2107,18 +2126,18 @@ var $ = (e) => {
2107
2126
  }) : null;
2108
2127
  };
2109
2128
  $.WithPages = (e) => {
2110
- let t = Yn(e);
2129
+ let t = Qn(e);
2111
2130
  return (e) => /* @__PURE__ */ N($, {
2112
2131
  ...e,
2113
2132
  modules: t,
2114
2133
  memory: !1
2115
2134
  });
2116
2135
  };
2117
- var Xn = (e) => /* @__PURE__ */ N($, {
2136
+ var $n = (e) => /* @__PURE__ */ N($, {
2118
2137
  ...e,
2119
2138
  memory: !1
2120
2139
  });
2121
- Xn.WithPages = $.WithPages;
2122
- var Zn = Xn;
2140
+ $n.WithPages = $.WithPages;
2141
+ var er = $n;
2123
2142
  //#endregion
2124
- export { ke as A, I as B, ze as C, Pe as D, H as E, Se as F, xe as I, L, Me as M, z as N, Ae as O, R as P, he as R, We as S, Be as T, ut as _, En as a, Ye as b, X as c, ln as d, Xt as f, bt as g, q as h, On as i, je as j, V as k, un as l, Pt as m, $ as n, wn as o, Yt as p, zn as r, Tn as s, Zn as t, dn as u, _t as v, Re as w, Ue as x, et as y, fe as z };
2143
+ export { je as A, I as B, Ve as C, Ie as D, H as E, Ce as F, Se as I, L, Pe as M, z as N, Me as O, R as P, ge as R, Ke as S, He as T, pt as _, kn as a, Qe as b, X as c, fn as d, $t as f, Ct as g, q as h, jn as i, Ne as j, V as k, pn as l, Lt as m, $ as n, Dn as o, Qt as p, Hn as r, On as s, er as t, mn as u, bt as v, Be as w, Ge as x, rt as y, pe as z };