@tailor-platform/app-shell 1.18.0 → 1.20.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 (55) hide show
  1. package/dist/app-shell-core.css +2 -2
  2. package/dist/app-shell.d.ts +1108 -190
  3. package/dist/app-shell.js +13090 -10783
  4. package/dist/{appshell-Y1AYCuVJ.js → appshell-B4QkQvXF.js} +519 -392
  5. package/dist/fonts/inter.css +7 -7
  6. package/dist/fonts/noto-sans-jp.css +116 -116
  7. package/dist/style-entry.d.ts +1 -656
  8. package/dist/testing.d.ts +132 -97
  9. package/dist/testing.js +1 -1
  10. package/dist/vite-plugin.d.ts +132 -97
  11. package/package.json +15 -10
  12. package/skills/app-shell-patterns/SKILL.md +38 -27
  13. package/skills/app-shell-patterns/references/api/aggregations.md +131 -0
  14. package/skills/app-shell-patterns/references/api/create-ai-gateway-client.md +32 -2
  15. package/skills/app-shell-patterns/references/api/define-module.md +5 -5
  16. package/skills/app-shell-patterns/references/api/router/use-params.md +2 -2
  17. package/skills/app-shell-patterns/references/api/use-ai-chat.md +46 -8
  18. package/skills/app-shell-patterns/references/api/use-app-shell-config.md +4 -4
  19. package/skills/app-shell-patterns/references/api/use-app-shell-data.md +5 -5
  20. package/skills/app-shell-patterns/references/api/use-app-shell.md +2 -2
  21. package/skills/app-shell-patterns/references/api/use-auth.md +3 -3
  22. package/skills/app-shell-patterns/references/api/use-route-error.md +12 -12
  23. package/skills/app-shell-patterns/references/components/action-panel.md +57 -23
  24. package/skills/app-shell-patterns/references/components/activity-card.md +3 -3
  25. package/skills/app-shell-patterns/references/components/ai-chat.md +37 -3
  26. package/skills/app-shell-patterns/references/components/app-shell.md +6 -5
  27. package/skills/app-shell-patterns/references/components/badge.md +7 -3
  28. package/skills/app-shell-patterns/references/components/card.md +2 -2
  29. package/skills/app-shell-patterns/references/components/data-table.md +514 -77
  30. package/skills/app-shell-patterns/references/components/date-picker.md +2 -2
  31. package/skills/app-shell-patterns/references/components/default-sidebar.md +2 -2
  32. package/skills/app-shell-patterns/references/components/dialog.md +8 -0
  33. package/skills/app-shell-patterns/references/components/filter-rail.md +10 -3
  34. package/skills/app-shell-patterns/references/components/form.md +19 -9
  35. package/skills/app-shell-patterns/references/components/global-header-layout.md +31 -8
  36. package/skills/app-shell-patterns/references/components/item-list.md +191 -0
  37. package/skills/app-shell-patterns/references/components/layout.md +24 -17
  38. package/skills/app-shell-patterns/references/components/select.md +18 -0
  39. package/skills/app-shell-patterns/references/components/sidebar-group.md +9 -7
  40. package/skills/app-shell-patterns/references/components/sidebar-layout.md +74 -11
  41. package/skills/app-shell-patterns/references/components/sidebar-section.md +8 -8
  42. package/skills/app-shell-patterns/references/components/tabs.md +32 -2
  43. package/skills/app-shell-patterns/references/components/text.md +75 -38
  44. package/skills/app-shell-patterns/references/components/tree.md +342 -0
  45. package/skills/app-shell-patterns/references/components/with-guard.md +5 -5
  46. package/skills/app-shell-patterns/references/concepts/authentication.md +1 -1
  47. package/skills/app-shell-patterns/references/concepts/routing-navigation.md +3 -3
  48. package/skills/app-shell-patterns/references/concepts/sidebar-navigation.md +16 -14
  49. package/skills/app-shell-patterns/references/concepts/styling-theming.md +28 -20
  50. package/skills/app-shell-patterns/references/migrations.md +22 -2
  51. package/skills/app-shell-patterns/references/pages/document-detail.md +32 -25
  52. package/skills/app-shell-patterns/references/patterns/form-modal.md +4 -1
  53. package/skills/app-shell-patterns/references/patterns/interaction-multi-select.md +1 -1
  54. package/dist/semantic-contrast.test.ts +0 -227
  55. package/dist/theme-bridge.test.ts +0 -182
@@ -10,11 +10,12 @@ 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";
12
12
  import { RouterProvider as le } from "react-router/dom";
13
- import { Toaster as ue } from "sonner";
13
+ import { createPortal as ue } from "react-dom";
14
+ import { Toaster as de } from "sonner";
14
15
  import { Dialog as F } from "@base-ui/react/dialog";
15
- import { parsePath as de } from "@tailor-platform/vite-plugin-app-shell/parser";
16
+ import { parsePath as fe } from "@tailor-platform/vite-plugin-app-shell/parser";
16
17
  //#region src/lib/utils.ts
17
- var fe = j({ extend: { classGroups: { "font-size": [{ text: [
18
+ var pe = j({ extend: { classGroups: { "font-size": [{ text: [
18
19
  "heading-lg",
19
20
  "heading-md",
20
21
  "heading-sm",
@@ -27,11 +28,11 @@ var fe = j({ extend: { classGroups: { "font-size": [{ text: [
27
28
  "body-sm-relaxed"
28
29
  ] }] } } });
29
30
  function I(...e) {
30
- return fe(A(e));
31
+ return pe(A(e));
31
32
  }
32
33
  //#endregion
33
34
  //#region src/components/internals/separator/separator.tsx
34
- function pe({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
35
+ function me({ className: e, orientation: t = "horizontal", decorative: n = !0, ...r }) {
35
36
  return /* @__PURE__ */ N("div", {
36
37
  "data-slot": "separator-root",
37
38
  role: n ? "none" : "separator",
@@ -43,18 +44,18 @@ function pe({ className: e, orientation: t = "horizontal", decorative: n = !0, .
43
44
  }
44
45
  //#endregion
45
46
  //#region src/components/toolbar/toolbar.tsx
46
- var me = g.createContext(null), he = typeof document > "u" ? g.useEffect : g.useLayoutEffect;
47
+ var he = g.createContext(null), ge = typeof document > "u" ? g.useEffect : g.useLayoutEffect;
47
48
  function L(...e) {
48
49
  return (t) => {
49
50
  for (let n of e) typeof n == "function" ? n(t) : n && (n.current = t);
50
51
  };
51
52
  }
52
- function ge(e, t = {}) {
53
- let n = g.useContext(me), { handlesDirectionalKeys: r = !1 } = t;
54
- he(() => {
53
+ function _e(e, t = {}) {
54
+ let n = g.useContext(he), { handlesDirectionalKeys: r = !1 } = t;
55
+ ge(() => {
55
56
  let t = e.current;
56
57
  if (!(!n || !t)) return n.registerItem(t, { handlesDirectionalKeys: r }), () => n.unregisterItem(t);
57
- }, [n, e]), he(() => {
58
+ }, [n, e]), ge(() => {
58
59
  let t = e.current;
59
60
  n && t && n.updateItem(t, { handlesDirectionalKeys: r });
60
61
  }, [
@@ -63,18 +64,18 @@ function ge(e, t = {}) {
63
64
  r
64
65
  ]);
65
66
  }
66
- function _e(e) {
67
+ function ve(e) {
67
68
  return e.isConnected && e.tabIndex >= 0 && !e.matches(":disabled") && e.getAttribute("aria-disabled") !== "true";
68
69
  }
69
- function ve({ className: e, ...t }) {
70
+ function ye({ className: e, ...t }) {
70
71
  return /* @__PURE__ */ N("div", {
71
72
  "data-slot": "toolbar",
72
73
  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),
73
74
  ...t
74
75
  });
75
76
  }
76
- ve.displayName = "Toolbar.Root";
77
- function ye({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i }) {
77
+ ye.displayName = "Toolbar.Root";
78
+ function be({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i }) {
78
79
  let a = g.useRef(null), o = g.useRef(/* @__PURE__ */ new Map()), s = g.useCallback((e, t) => {
79
80
  o.current.set(e, t);
80
81
  }, []), c = g.useCallback((e) => {
@@ -90,7 +91,7 @@ function ye({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i })
90
91
  c,
91
92
  l
92
93
  ]);
93
- return /* @__PURE__ */ N(me.Provider, {
94
+ return /* @__PURE__ */ N(he.Provider, {
94
95
  value: u,
95
96
  children: /* @__PURE__ */ N("div", {
96
97
  ref: L(a, r),
@@ -106,7 +107,7 @@ function ye({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i })
106
107
  "Home",
107
108
  "End"
108
109
  ].includes(e.key)) return;
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);
110
+ let t = Array.from(o.current).filter(([e]) => a.current?.contains(e) && ve(e)).toSorted(([e], [t]) => e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1), r = t.findIndex(([e]) => e === document.activeElement);
110
111
  if (r === -1 || t[r][1].handlesDirectionalKeys) return;
111
112
  let i = r;
112
113
  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();
@@ -115,17 +116,17 @@ function ye({ className: e, justify: t = "start", onKeyDown: n, ref: r, ...i })
115
116
  })
116
117
  });
117
118
  }
118
- ye.displayName = "Toolbar.Row";
119
- function be({ className: e, ...t }) {
119
+ be.displayName = "Toolbar.Row";
120
+ function xe({ className: e, ...t }) {
120
121
  return /* @__PURE__ */ N("div", {
121
122
  "data-slot": "toolbar-group",
122
123
  className: I("astw:flex astw:min-w-0 astw:flex-wrap astw:items-center astw:gap-1.5", e),
123
124
  ...t
124
125
  });
125
126
  }
126
- be.displayName = "Toolbar.Group";
127
- function xe({ className: e, ...t }) {
128
- return /* @__PURE__ */ N(pe, {
127
+ xe.displayName = "Toolbar.Group";
128
+ function Se({ className: e, ...t }) {
129
+ return /* @__PURE__ */ N(me, {
129
130
  "data-slot": "toolbar-separator",
130
131
  decorative: !1,
131
132
  orientation: "vertical",
@@ -133,13 +134,13 @@ function xe({ className: e, ...t }) {
133
134
  ...t
134
135
  });
135
136
  }
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", {
137
+ Se.displayName = "Toolbar.Separator";
138
+ var Ce = {
139
+ Root: ye,
140
+ Row: be,
141
+ Group: xe,
142
+ Separator: Se
143
+ }, we = O("astw:inline-flex astw:cursor-pointer astw:items-center astw:justify-center astw:gap-2 astw:whitespace-nowrap astw:rounded-md astw:text-label-md 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", {
143
144
  variants: {
144
145
  variant: {
145
146
  default: "astw:bg-primary astw:text-primary-foreground astw:shadow-xs astw:hover:bg-primary/90",
@@ -151,7 +152,7 @@ var Se = {
151
152
  },
152
153
  size: {
153
154
  default: "astw:h-9 astw:px-4 astw:py-2 astw:has-[>svg]:px-3",
154
- xs: "astw:h-7 astw:rounded-md astw:gap-1 astw:px-2.5 astw:text-xs astw:has-[>svg]:px-1.5",
155
+ xs: "astw:h-7 astw:rounded-md astw:gap-1 astw:px-2.5 astw:text-label-sm astw:has-[>svg]:px-1.5",
155
156
  sm: "astw:h-8 astw:rounded-md astw:gap-1.5 astw:px-3 astw:has-[>svg]:px-2.5",
156
157
  lg: "astw:h-10 astw:rounded-md astw:px-6 astw:has-[>svg]:px-4",
157
158
  icon: "astw:size-9"
@@ -164,13 +165,13 @@ var Se = {
164
165
  });
165
166
  function R({ className: e, variant: t, size: n, render: r, children: i, ref: a, ...o }) {
166
167
  let s = g.useRef(null);
167
- return ge(s), k({
168
+ return _e(s), k({
168
169
  defaultTagName: "button",
169
170
  render: r,
170
171
  ref: L(s, a),
171
172
  props: {
172
173
  "data-slot": "button",
173
- className: I(Ce({
174
+ className: I(we({
174
175
  variant: t,
175
176
  size: n,
176
177
  className: e
@@ -182,7 +183,7 @@ function R({ className: e, variant: t, size: n, render: r, children: i, ref: a,
182
183
  }
183
184
  //#endregion
184
185
  //#region src/lib/i18n.ts
185
- var we = Symbol("localized-label"), Te = () => {
186
+ var Te = Symbol("localized-label"), Ee = () => {
186
187
  try {
187
188
  if (typeof navigator > "u") return "en";
188
189
  let e = navigator.languages?.[0] ?? navigator.language;
@@ -190,57 +191,57 @@ var we = Symbol("localized-label"), Te = () => {
190
191
  } catch {
191
192
  return "en";
192
193
  }
193
- }, Ee = () => {
194
+ }, De = () => {
194
195
  try {
195
196
  return typeof navigator > "u" ? "en" : navigator.languages?.[0] ?? navigator.language ?? "en";
196
197
  } catch {
197
198
  return "en";
198
199
  }
199
- }, De = (e) => {
200
+ }, Oe = (e) => {
200
201
  try {
201
202
  return new Intl.Locale(e).language;
202
203
  } catch {
203
204
  return e;
204
205
  }
205
- }, z = (e) => (t, n) => t ? typeof t == "string" ? t : t(e) ?? n : n, Oe = (t) => {
206
+ }, z = (e) => (t, n) => t ? typeof t == "string" ? t : t(e) ?? n : n, ke = (t) => {
206
207
  let n = z(t);
207
208
  return (t, r) => n(t, typeof t == "string" ? t : e(r));
208
- }, ke = (e) => ({
209
+ }, Ae = (e) => ({
209
210
  modules: e.modules,
210
211
  settingsResources: e.settingsResources ?? [],
211
- errorBoundary: e.errorBoundary ?? /* @__PURE__ */ N(U, {}),
212
+ errorBoundary: e.errorBoundary ?? /* @__PURE__ */ N(G, {}),
212
213
  basePath: e.basePath,
213
- locale: e.locale ? De(e.locale) : Te(),
214
- resolvedLocale: e.locale ?? Ee(),
214
+ locale: e.locale ? Oe(e.locale) : Ee(),
215
+ resolvedLocale: e.locale ?? De(),
215
216
  timeZone: e.timeZone
216
217
  }), B = v({ configurations: {
217
218
  modules: [],
218
219
  settingsResources: [],
219
220
  locale: "en",
220
221
  errorBoundary: null
221
- } }), Ae = v({ contextData: {} }), V = () => b(B), je = () => b(Ae), Me = () => {
222
- let e = b(B), t = b(Ae);
222
+ } }), je = v({ contextData: {} }), V = () => b(B), Me = () => b(je), Ne = () => {
223
+ let e = b(B), t = b(je);
223
224
  return {
224
225
  ...e,
225
226
  ...t
226
227
  };
227
- }, Ne = () => {
228
+ }, Pe = () => {
228
229
  let { configurations: e } = b(B);
229
230
  return {
230
231
  locale: e.resolvedLocale ?? e.locale,
231
232
  language: e.locale
232
233
  };
233
- }, Pe = () => {
234
+ }, Fe = () => {
234
235
  let { configurations: e } = b(B), t = e.timeZone ?? oe();
235
236
  return {
236
237
  value: t,
237
238
  today: () => ce(t),
238
239
  now: () => se(t)
239
240
  };
240
- }, Fe = () => {
241
+ }, Ie = () => {
241
242
  let { configurations: e } = V(), t = z(e.locale);
242
243
  return (e, n) => t(e, n);
243
- }, Ie = (e) => {
244
+ }, Le = (e) => {
244
245
  let t = (t) => (n) => e[t]?.[n] ?? e.en[n];
245
246
  return {
246
247
  useT: () => {
@@ -256,9 +257,9 @@ var we = Symbol("localized-label"), Te = () => {
256
257
  t: (e, ...n) => Object.assign((r) => {
257
258
  let i = t(r)(e);
258
259
  return typeof i == "function" ? i(n[0]) : i;
259
- }, { [we]: !0 })
260
+ }, { [Te]: !0 })
260
261
  };
261
- }, Le = Ie({
262
+ }, Re = Le({
262
263
  en: {
263
264
  home: "Home",
264
265
  error404Title: "404 Not Found",
@@ -279,6 +280,7 @@ var we = Symbol("localized-label"), Te = () => {
279
280
  search: "Search",
280
281
  commandPaletteSearch: "Search pages...",
281
282
  commandPaletteNoResults: "No results found",
283
+ actionPanelNoActions: "No actions available",
282
284
  commandPaletteActions: "Actions",
283
285
  commandPalettePages: "Pages",
284
286
  commandPaletteSearchModes: "Search Modes",
@@ -300,6 +302,7 @@ var we = Symbol("localized-label"), Te = () => {
300
302
  aiChatThoughtFor: (e) => `Thought for ${e.seconds}s`,
301
303
  aiChatReasoning: "Reasoning",
302
304
  aiChatChainOfThought: "Chain of thought",
305
+ aiChatToolCall: (e) => `Tool call: ${e.name}`,
303
306
  aiChatToolPreparing: "Preparing",
304
307
  aiChatToolRunning: "Running",
305
308
  aiChatToolDone: "Done",
@@ -328,6 +331,7 @@ var we = Symbol("localized-label"), Te = () => {
328
331
  search: "検索",
329
332
  commandPaletteSearch: "ページを検索...",
330
333
  commandPaletteNoResults: "結果が見つかりません",
334
+ actionPanelNoActions: "利用可能なアクションはありません",
331
335
  commandPaletteActions: "アクション",
332
336
  commandPalettePages: "ページ",
333
337
  commandPaletteSearchModes: "検索モード",
@@ -349,6 +353,7 @@ var we = Symbol("localized-label"), Te = () => {
349
353
  aiChatThoughtFor: (e) => `${e.seconds}秒 思考しました`,
350
354
  aiChatReasoning: "思考",
351
355
  aiChatChainOfThought: "思考の流れ",
356
+ aiChatToolCall: (e) => `ツール呼び出し: ${e.name}`,
352
357
  aiChatToolPreparing: "準備中",
353
358
  aiChatToolRunning: "実行中",
354
359
  aiChatToolDone: "完了",
@@ -357,7 +362,86 @@ var we = Symbol("localized-label"), Te = () => {
357
362
  aiChatToolResult: "結果",
358
363
  aiChatSourcesUsed: (e) => `${e.count} 件の出典を使用`
359
364
  }
360
- }), H = Le.useT, U = () => {
365
+ }), H = Re.useT, ze = O("", {
366
+ variants: { variant: {
367
+ "heading-lg": "astw:text-heading-lg",
368
+ "heading-md": "astw:text-heading-md",
369
+ "heading-sm": "astw:text-heading-sm",
370
+ "body-md": "astw:text-body-md",
371
+ "body-sm": "astw:text-body-sm",
372
+ "label-md": "astw:text-label-md",
373
+ "label-sm": "astw:text-label-sm",
374
+ "code-sm": "astw:font-mono astw:text-code-sm",
375
+ "body-md-relaxed": "astw:text-body-md-relaxed",
376
+ "body-sm-relaxed": "astw:text-body-sm-relaxed"
377
+ } },
378
+ defaultVariants: { variant: "body-md" }
379
+ }), Be = {
380
+ "heading-lg": "h2",
381
+ "heading-md": "h2",
382
+ "heading-sm": "h2",
383
+ "body-md": "p",
384
+ "body-sm": "p",
385
+ "label-md": "span",
386
+ "label-sm": "span",
387
+ "code-sm": "span",
388
+ "body-md-relaxed": "p",
389
+ "body-sm-relaxed": "p"
390
+ };
391
+ function Ve({ className: e, variant: t, render: n, children: r, ref: i, ...a }) {
392
+ let o = t ?? "body-md";
393
+ return k({
394
+ defaultTagName: Be[o],
395
+ render: n,
396
+ ref: i,
397
+ props: {
398
+ "data-slot": "text",
399
+ className: I(ze({
400
+ variant: o,
401
+ className: e
402
+ })),
403
+ ...r !== void 0 && { children: r },
404
+ ...a
405
+ }
406
+ });
407
+ }
408
+ Ve.displayName = "Text";
409
+ var He = {
410
+ h1: "heading-lg",
411
+ h2: "heading-md",
412
+ h3: "heading-sm",
413
+ h4: "heading-sm",
414
+ h5: "heading-sm",
415
+ h6: "heading-sm",
416
+ p: "body-md",
417
+ span: "label-md",
418
+ div: "body-md"
419
+ };
420
+ function U(e) {
421
+ let t = He[e], n = e;
422
+ function r({ className: e, variant: r, ...i }) {
423
+ return /* @__PURE__ */ N(n, {
424
+ "data-slot": "text",
425
+ className: I(ze({
426
+ variant: r ?? t,
427
+ className: e
428
+ })),
429
+ ...i
430
+ });
431
+ }
432
+ return r.displayName = `Text.${e}`, r;
433
+ }
434
+ var W = Object.assign(Ve, {
435
+ h1: U("h1"),
436
+ h2: U("h2"),
437
+ h3: U("h3"),
438
+ h4: U("h4"),
439
+ h5: U("h5"),
440
+ h6: U("h6"),
441
+ p: U("p"),
442
+ span: U("span"),
443
+ div: U("div")
444
+ }), G = () => {
361
445
  let e = m(), t = H(), n = {
362
446
  role: "alert",
363
447
  "aria-label": "default-error-boundary"
@@ -368,12 +452,13 @@ var we = Symbol("localized-label"), Te = () => {
368
452
  children: /* @__PURE__ */ P("div", {
369
453
  className: "astw:flex astw:items-start astw:gap-4",
370
454
  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: [
371
- /* @__PURE__ */ N("h1", {
372
- className: "astw:font-semibold astw:text-lg",
455
+ /* @__PURE__ */ N(W.h1, {
456
+ variant: "heading-md",
373
457
  children: t("error404Title")
374
458
  }),
375
- /* @__PURE__ */ N("p", {
376
- className: "astw:text-sm astw:text-muted-foreground astw:mt-1",
459
+ /* @__PURE__ */ N(W, {
460
+ variant: "body-md",
461
+ className: "astw:text-muted-foreground astw:mt-1",
377
462
  children: t("error404Body")
378
463
  }),
379
464
  /* @__PURE__ */ N(R, {
@@ -393,12 +478,13 @@ var we = Symbol("localized-label"), Te = () => {
393
478
  children: /* @__PURE__ */ P("div", {
394
479
  className: "astw:flex astw:items-start astw:gap-4",
395
480
  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: [
396
- /* @__PURE__ */ N("h1", {
397
- className: "astw:font-semibold astw:text-lg",
481
+ /* @__PURE__ */ N(W.h1, {
482
+ variant: "heading-md",
398
483
  children: t("errorTitle")
399
484
  }),
400
- /* @__PURE__ */ N("p", {
401
- className: "astw:text-sm astw:text-muted-foreground astw:mt-1",
485
+ /* @__PURE__ */ N(W, {
486
+ variant: "body-md",
487
+ className: "astw:text-muted-foreground astw:mt-1",
402
488
  children: r
403
489
  }),
404
490
  /* @__PURE__ */ N(R, {
@@ -411,37 +497,37 @@ var we = Symbol("localized-label"), Te = () => {
411
497
  ] })]
412
498
  })
413
499
  });
414
- }, Re = {}, ze = (e) => {
415
- Re = e;
416
- }, Be = () => ({ type: "pass" }), Ve = () => ({ type: "hidden" }), He = (e) => ({
500
+ }, Ue = {}, We = (e) => {
501
+ Ue = e;
502
+ }, Ge = () => ({ type: "pass" }), Ke = () => ({ type: "hidden" }), qe = (e) => ({
417
503
  type: "redirect",
418
504
  to: e
419
- }), W = () => new Response("Not Found", { status: 404 }), G = async (e) => {
505
+ }), K = () => new Response("Not Found", { status: 404 }), q = async (e) => {
420
506
  if (!e || e.length === 0) return { type: "pass" };
421
- let t = { context: Re };
507
+ let t = { context: Ue };
422
508
  for (let n of e) {
423
509
  let e = await n(t);
424
510
  if (e.type !== "pass") return e;
425
511
  }
426
512
  return { type: "pass" };
427
- }, K = (e, t) => async (n) => {
428
- let r = await G(e);
513
+ }, J = (e, t) => async (n) => {
514
+ let r = await q(e);
429
515
  switch (r.type) {
430
- case "hidden": throw W();
516
+ case "hidden": throw K();
431
517
  case "redirect": return u(r.to);
432
518
  case "pass": return t ? t(n) : null;
433
519
  }
434
- }, Ue = (t) => t === "" || t === "/" ? Le.t("home") : e(t), We = (e, t) => () => {
520
+ }, Je = (t) => t === "" || t === "/" ? Re.t("home") : e(t), Ye = (e, t) => () => {
435
521
  let { configurations: n } = V(), { metaTitle: r, fallbackTitle: i } = e;
436
522
  return t(z(n.locale)(r, typeof i == "function" ? i(n.locale) : i));
437
523
  };
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;
524
+ function Xe(e) {
525
+ let { path: t, meta: n, component: r, resources: i, errorBoundary: a, guards: o } = e, s = n?.title ?? Je(t), c = Je(t), l = o && o.length > 0 ? J(o) : void 0;
440
526
  return {
441
527
  path: t,
442
528
  type: "component",
443
529
  _type: "module",
444
- component: r ? We({
530
+ component: r ? Ye({
445
531
  metaTitle: s,
446
532
  fallbackTitle: c
447
533
  }, (e) => r({
@@ -457,12 +543,12 @@ function Ge(e) {
457
543
  icon: e.meta?.icon
458
544
  },
459
545
  resources: i,
460
- errorBoundary: a || /* @__PURE__ */ N(U, {}),
546
+ errorBoundary: a || /* @__PURE__ */ N(G, {}),
461
547
  guards: o
462
548
  };
463
549
  }
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({
550
+ function Ze(t) {
551
+ 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 ? J(s) : void 0, d = r ? Ye({
466
552
  metaTitle: c,
467
553
  fallbackTitle: l
468
554
  }, (e) => r({
@@ -480,14 +566,14 @@ function Ke(t) {
480
566
  },
481
567
  component: d,
482
568
  subResources: i,
483
- errorBoundary: o ?? /* @__PURE__ */ N(U, {}),
569
+ errorBoundary: o ?? /* @__PURE__ */ N(G, {}),
484
570
  guards: s,
485
571
  loader: u
486
572
  };
487
573
  }
488
- var qe = {
574
+ var Qe = {
489
575
  name: "@tailor-platform/app-shell",
490
- version: "1.18.0",
576
+ version: "1.20.0",
491
577
  description: "An opinionated React application framework for building ERP applications on Tailor Platform",
492
578
  keywords: [
493
579
  "app-shell",
@@ -533,6 +619,7 @@ var qe = {
533
619
  "vendor:fonts": "node scripts/sync-noto-fonts.mjs",
534
620
  lint: "oxlint -c .oxlintrc.jsonc",
535
621
  test: "vitest run",
622
+ "test:browser": "pnpm build && vitest run --config vitest.browser.config.ts",
536
623
  "type-check": "tsc --incremental"
537
624
  },
538
625
  dependencies: {
@@ -554,19 +641,22 @@ var qe = {
554
641
  },
555
642
  devDependencies: {
556
643
  "@fontsource-variable/noto-sans-jp": "5.3.0",
557
- "@microsoft/api-extractor": "7.58.12",
644
+ "@microsoft/api-extractor": "7.60.1",
645
+ "@tailor-platform/eslint-plugin-app-shell": "workspace:*",
558
646
  "@tailwindcss/postcss": "catalog:",
559
647
  "@testing-library/react": "16.3.3",
560
- "@testing-library/user-event": "14.6.7",
648
+ "@testing-library/user-event": "14.6.8",
561
649
  "@types/encoding-japanese": "2.2.1",
562
650
  "@types/node": "catalog:",
563
651
  "@types/papaparse": "5.5.2",
564
652
  "@types/react": "catalog:",
565
653
  "@types/react-dom": "catalog:",
566
654
  "@vitejs/plugin-react": "catalog:",
567
- "@vitest/coverage-v8": "4.1.11",
568
- "happy-dom": "20.14.5",
569
- postcss: "8.5.30",
655
+ "@vitest/browser-playwright": "4.1.12",
656
+ "@vitest/coverage-v8": "4.1.12",
657
+ "happy-dom": "21.0.4",
658
+ playwright: "1.63.0",
659
+ postcss: "8.5.32",
570
660
  react: "catalog:",
571
661
  "react-dom": "catalog:",
572
662
  "react-hook-form": "7.71.2",
@@ -574,8 +664,9 @@ var qe = {
574
664
  "tw-animate-css": "1.4.0",
575
665
  typescript: "5.9.3",
576
666
  vite: "catalog:",
577
- "vite-plugin-dts": "5.0.3",
578
- vitest: "catalog:"
667
+ "vite-plugin-dts": "5.1.2",
668
+ vitest: "catalog:",
669
+ zod: "4.6.7"
579
670
  },
580
671
  peerDependencies: {
581
672
  react: ">=19.2.7",
@@ -584,50 +675,51 @@ var qe = {
584
675
  };
585
676
  //#endregion
586
677
  //#region src/components/card/card.tsx
587
- function Je({ className: e, ...t }) {
678
+ function $e({ className: e, ...t }) {
588
679
  return /* @__PURE__ */ N("div", {
589
680
  "data-slot": "card",
590
681
  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),
591
682
  ...t
592
683
  });
593
684
  }
594
- Je.displayName = "Card.Root";
595
- function Ye({ className: e, title: t, description: n, children: r, ...i }) {
685
+ $e.displayName = "Card.Root";
686
+ function et({ className: e, title: t, description: n, children: r, ...i }) {
596
687
  return /* @__PURE__ */ P("div", {
597
688
  "data-slot": "card-header",
598
689
  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),
599
690
  ...i,
600
691
  children: [
601
- t && /* @__PURE__ */ N("h3", {
692
+ t && /* @__PURE__ */ N(W.h3, {
693
+ variant: "heading-md",
694
+ className: "astw:leading-none astw:text-card-foreground",
602
695
  "data-slot": "card-title",
603
- className: "astw:text-lg astw:font-semibold astw:leading-none astw:text-card-foreground",
604
696
  children: t
605
697
  }),
606
- n && /* @__PURE__ */ N("div", {
698
+ n && /* @__PURE__ */ N(W.div, {
699
+ className: "astw:text-muted-foreground",
607
700
  "data-slot": "card-description",
608
- className: "astw:text-muted-foreground astw:text-sm",
609
701
  children: n
610
702
  }),
611
703
  r
612
704
  ]
613
705
  });
614
706
  }
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 }) {
707
+ et.displayName = "Card.Header";
708
+ var tt = 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");
709
+ function nt({ className: e, padding: t = "default", ...n }) {
618
710
  return /* @__PURE__ */ N("div", {
619
711
  "data-slot": "card-content",
620
712
  "data-padding": t,
621
- className: I(t === "none" ? Xe : "astw:px-6 astw:pb-6 astw:first:pt-6", e),
713
+ className: I(t === "none" ? tt : "astw:px-6 astw:pb-6 astw:first:pt-6", e),
622
714
  ...n
623
715
  });
624
716
  }
625
- Ze.displayName = "Card.Content";
626
- var Qe = {
627
- Root: Je,
628
- Header: Ye,
629
- Content: Ze
630
- }, $e = v(null), et = ({ children: e }) => {
717
+ nt.displayName = "Card.Content";
718
+ var rt = {
719
+ Root: $e,
720
+ Header: et,
721
+ Content: nt
722
+ }, it = v(null), at = ({ children: e }) => {
631
723
  let [t, n] = E(() => /* @__PURE__ */ new Map()), r = y((e, t) => {
632
724
  n((n) => {
633
725
  let r = new Map(n);
@@ -640,7 +732,7 @@ var Qe = {
640
732
  return n.delete(e), n;
641
733
  });
642
734
  }, []);
643
- return /* @__PURE__ */ N($e.Provider, {
735
+ return /* @__PURE__ */ N(it.Provider, {
644
736
  value: {
645
737
  overrides: t,
646
738
  register: r,
@@ -648,15 +740,15 @@ var Qe = {
648
740
  },
649
741
  children: e
650
742
  });
651
- }, tt = () => {
652
- let e = b($e);
743
+ }, ot = () => {
744
+ let e = b(it);
653
745
  if (!e) throw Error("useBreadcrumbOverride must be used within BreadcrumbOverrideProvider");
654
746
  return e;
655
- }, nt = () => b($e);
747
+ }, st = () => b(it);
656
748
  //#endregion
657
749
  //#region src/hooks/use-override-breadcrumb.ts
658
- function rt(e) {
659
- let t = d(), { register: n, unregister: r } = tt(), i = t.pathname;
750
+ function ct(e) {
751
+ let t = d(), { register: n, unregister: r } = ot(), i = t.pathname;
660
752
  x(() => (e ? n(i, e) : r(i), () => r(i)), [
661
753
  i,
662
754
  e,
@@ -666,25 +758,29 @@ function rt(e) {
666
758
  }
667
759
  //#endregion
668
760
  //#region src/components/internals/app-info/app-info.tsx
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", {
761
+ var lt = "__appinfo", ut = `/${lt}`, dt = Qe.version, ft = (e) => e == null ? "-" : String(e), pt = (e) => e.map((e) => `${e.label}: ${ft(e.value)}`).join("\n"), mt = ({ label: e, value: t }) => /* @__PURE__ */ P("div", {
670
762
  className: "astw:grid astw:gap-1 astw:py-3 astw:sm:grid-cols-[12rem_minmax(0,1fr)] astw:sm:gap-4",
671
- children: [/* @__PURE__ */ N("dt", {
672
- className: "astw:text-sm astw:text-muted-foreground",
763
+ children: [/* @__PURE__ */ N(W, {
764
+ variant: "label-md",
765
+ className: "astw:text-muted-foreground",
766
+ render: /* @__PURE__ */ N("dt", {}),
673
767
  children: e
674
- }), /* @__PURE__ */ N("dd", {
675
- className: "astw:min-w-0 astw:text-sm astw:break-all",
676
- children: st(t)
768
+ }), /* @__PURE__ */ N(W, {
769
+ variant: "body-md",
770
+ className: "astw:min-w-0 astw:break-all",
771
+ render: /* @__PURE__ */ N("dd", {}),
772
+ children: ft(t)
677
773
  })]
678
- }), ut = () => {
774
+ }), ht = () => {
679
775
  let e = H();
680
776
  return {
681
- path: at,
777
+ path: ut,
682
778
  title: e("appInfoTitle"),
683
779
  breadcrumb: [e("appInfoTitle")]
684
780
  };
685
- }, dt = () => {
781
+ }, gt = () => {
686
782
  let e = H(), { title: t, appInfo: n } = V();
687
- rt(e("appInfoTitle"));
783
+ ct(e("appInfoTitle"));
688
784
  let r = [
689
785
  ...t ? [{
690
786
  label: e("appInfoAppName"),
@@ -692,37 +788,38 @@ var it = "__appinfo", at = `/${it}`, ot = qe.version, st = (e) => e == null ? "-
692
788
  }] : [],
693
789
  {
694
790
  label: e("appInfoAppShellVersion"),
695
- value: ot
791
+ value: dt
696
792
  },
697
793
  ...n?.metadata ?? []
698
794
  ];
699
795
  return /* @__PURE__ */ N("div", {
700
796
  className: "astw:w-full astw:max-w-xl",
701
- children: /* @__PURE__ */ P(Qe.Root, { children: [/* @__PURE__ */ P("div", {
797
+ children: /* @__PURE__ */ P(rt.Root, { children: [/* @__PURE__ */ P("div", {
702
798
  className: "astw:flex astw:items-center astw:justify-between astw:px-6 astw:pt-6 astw:pb-4",
703
- children: [/* @__PURE__ */ N("h1", {
704
- className: "astw:text-lg astw:font-semibold astw:leading-none",
799
+ children: [/* @__PURE__ */ N(W.h1, {
800
+ variant: "heading-md",
801
+ className: "astw:leading-none",
705
802
  children: e("appInfoTitle")
706
803
  }), /* @__PURE__ */ N(R, {
707
804
  variant: "outline",
708
805
  size: "sm",
709
806
  onClick: async () => {
710
807
  try {
711
- await navigator.clipboard.writeText(ct(r));
808
+ await navigator.clipboard.writeText(pt(r));
712
809
  } catch {}
713
810
  },
714
811
  children: e("appInfoCopy")
715
812
  })]
716
- }), /* @__PURE__ */ N(Qe.Content, { children: /* @__PURE__ */ N("dl", { children: r.map((e, t) => /* @__PURE__ */ N("div", {
813
+ }), /* @__PURE__ */ N(rt.Content, { children: /* @__PURE__ */ N("dl", { children: r.map((e, t) => /* @__PURE__ */ N("div", {
717
814
  className: t > 0 ? "astw:border-t astw:border-border" : void 0,
718
- children: /* @__PURE__ */ N(lt, { ...e })
815
+ children: /* @__PURE__ */ N(mt, { ...e })
719
816
  }, `${e.label}-${t}`)) }) })] })
720
817
  });
721
- }, ft = [
818
+ }, _t = [
722
819
  "light",
723
820
  "dark",
724
821
  "system"
725
- ], pt = [
822
+ ], vt = [
726
823
  {
727
824
  value: "light",
728
825
  label: "Light"
@@ -735,8 +832,8 @@ var it = "__appinfo", at = `/${it}`, ot = qe.version, st = (e) => e == null ? "-
735
832
  value: "system",
736
833
  label: "System"
737
834
  }
738
- ], mt = "appshell-ui-theme";
739
- function ht(e, t, n) {
835
+ ], yt = "appshell-ui-theme";
836
+ function bt(e, t, n) {
740
837
  if (typeof window > "u") return n;
741
838
  try {
742
839
  let r = localStorage.getItem(e);
@@ -745,22 +842,22 @@ function ht(e, t, n) {
745
842
  return n;
746
843
  }
747
844
  }
748
- function gt(e, t) {
845
+ function xt(e, t) {
749
846
  return e === "system" ? t ? "dark" : "light" : e;
750
847
  }
751
- function _t() {
848
+ function St() {
752
849
  return typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches;
753
850
  }
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) => {
851
+ var Ct = v(void 0);
852
+ function wt({ children: e, defaultColorTheme: t = "system" }) {
853
+ let [n, r] = E(() => bt(yt, _t, t)), [i, a] = E(() => xt(bt(yt, _t, t), St())), o = y((e) => {
757
854
  let t = window.document.documentElement;
758
855
  t.classList.remove("light", "dark"), t.classList.add(e);
759
856
  }, []);
760
857
  x(() => {
761
858
  o(i);
762
859
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => {
763
- let t = gt(n, e.matches);
860
+ let t = xt(n, e.matches);
764
861
  a(t);
765
862
  };
766
863
  return e.addEventListener("change", t), () => e.removeEventListener("change", t);
@@ -771,10 +868,10 @@ function yt({ children: e, defaultColorTheme: t = "system" }) {
771
868
  ]);
772
869
  let s = y((e) => {
773
870
  try {
774
- localStorage.setItem(mt, e);
871
+ localStorage.setItem(yt, e);
775
872
  } catch {}
776
873
  r(e);
777
- let t = gt(e, _t());
874
+ let t = xt(e, St());
778
875
  a(t), o(t);
779
876
  }, [o]), c = C(() => ({
780
877
  colorTheme: n,
@@ -785,13 +882,13 @@ function yt({ children: e, defaultColorTheme: t = "system" }) {
785
882
  i,
786
883
  s
787
884
  ]);
788
- return /* @__PURE__ */ N(vt.Provider, {
885
+ return /* @__PURE__ */ N(Ct.Provider, {
789
886
  value: c,
790
887
  children: e
791
888
  });
792
889
  }
793
- var bt = () => {
794
- let e = b(vt);
890
+ var Tt = () => {
891
+ let e = b(Ct);
795
892
  if (e === void 0) throw Error("useTheme must be used within a ThemeProvider");
796
893
  let { colorTheme: t, resolvedColorTheme: n, setColorTheme: r } = e;
797
894
  return C(() => ({
@@ -803,29 +900,30 @@ var bt = () => {
803
900
  n,
804
901
  r
805
902
  ]);
806
- }, xt = ({ ...e }) => {
807
- let { resolvedTheme: t } = bt();
808
- return /* @__PURE__ */ N(ue, {
809
- theme: t,
903
+ }, Et = ({ style: e, ...t }) => {
904
+ let { resolvedTheme: n } = Tt(), [r, i] = E(null);
905
+ return x(() => {
906
+ i(document.body);
907
+ }, []), r ? ue(/* @__PURE__ */ N(de, {
908
+ theme: n,
810
909
  className: "astw:toaster astw:group",
811
910
  style: {
812
911
  "--normal-bg": "var(--popover)",
813
912
  "--normal-text": "var(--popover-foreground)",
814
- "--normal-border": "var(--border)"
913
+ "--normal-border": "var(--border)",
914
+ zIndex: "var(--z-toast)",
915
+ ...e
815
916
  },
816
- ...e
817
- });
818
- }, St = () => {
917
+ ...t
918
+ }), r) : null;
919
+ }, Dt = () => {
819
920
  let e = H();
820
921
  return /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("p", {
821
922
  className: "astw:font-semibold astw:leading-none astw:tracking-tight",
822
923
  children: e("welcomeTitle")
823
- }), /* @__PURE__ */ N("p", {
824
- className: "pt-4",
825
- children: e("welcomeBody")
826
- })] });
827
- }, Ct = () => /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(a, {}), /* @__PURE__ */ N(xt, {})] }), wt = () => {
828
- let { configurations: e } = Me(), t = H(), n = Fe();
924
+ }), /* @__PURE__ */ N("p", { children: e("welcomeBody") })] });
925
+ }, Ot = () => /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(a, {}), /* @__PURE__ */ N(Et, {})] }), kt = () => {
926
+ let { configurations: e } = Ne(), t = H(), n = Ie();
829
927
  return /* @__PURE__ */ P("div", {
830
928
  className: "astw:mx-auto astw:flex-col astw:flex astw:md:flex-row astw:max-w-5xl astw:gap-[10px] astw:w-full",
831
929
  children: [/* @__PURE__ */ N("div", { children: /* @__PURE__ */ P("nav", {
@@ -849,7 +947,7 @@ var bt = () => {
849
947
  children: /* @__PURE__ */ N(a, {})
850
948
  })]
851
949
  });
852
- }, Tt = (e) => () => /* @__PURE__ */ N(M, { children: e }), Et = (e) => e.component ? {
950
+ }, At = (e) => () => /* @__PURE__ */ N(M, { children: e }), jt = (e) => e.component ? {
853
951
  index: !0,
854
952
  Component: e.component,
855
953
  ...e.loader && { loader: e.loader }
@@ -859,26 +957,26 @@ var bt = () => {
859
957
  loader: async (t) => {
860
958
  let n = await e.loader(t);
861
959
  if (n instanceof Response) return n;
862
- throw W();
960
+ throw K();
863
961
  }
864
962
  } : {
865
963
  index: !0,
866
964
  Component: () => null,
867
965
  loader: () => {
868
- throw W();
966
+ throw K();
869
967
  }
870
- }, Dt = (e, t, n) => {
871
- let r = e.errorBoundary || n, i = (t ?? []).map((e) => Dt(e, e.subResources, r)), a = [Et(e), ...i];
968
+ }, Mt = (e, t, n) => {
969
+ let r = e.errorBoundary || n, i = (t ?? []).map((e) => Mt(e, e.subResources, r)), a = [jt(e), ...i];
872
970
  return {
873
971
  path: e.path,
874
972
  handle: { node: e },
875
- ...e.errorBoundary && { ErrorBoundary: Tt(e.errorBoundary) },
973
+ ...e.errorBoundary && { ErrorBoundary: At(e.errorBoundary) },
876
974
  ...a.length > 0 ? { children: a } : {}
877
975
  };
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({
976
+ }, Nt = (e) => e.map((e) => Mt(e, e.resources, e.errorBoundary)), Pt = ({ modules: e, settingsResources: t }) => {
977
+ let n = e.some((e) => e.path === "") ? null : jt({
880
978
  path: "",
881
- component: St
979
+ component: Dt
882
980
  }), r = t.length > 0 ? [{
883
981
  path: "settings",
884
982
  index: !0,
@@ -889,44 +987,44 @@ var bt = () => {
889
987
  })
890
988
  }, {
891
989
  path: "settings",
892
- Component: wt,
990
+ Component: kt,
893
991
  children: t.map((e) => {
894
992
  if (!e.component) throw Error(`Settings resource "${e.path}" must have a component.`);
895
993
  return {
896
994
  path: e.path,
897
995
  Component: e.component,
898
- ...e.errorBoundary && { ErrorBoundary: Tt(e.errorBoundary) }
996
+ ...e.errorBoundary && { ErrorBoundary: At(e.errorBoundary) }
899
997
  };
900
998
  })
901
999
  }] : [];
902
1000
  return [
903
1001
  ...n ? [n] : [],
904
- { children: Ot(e) },
1002
+ { children: Nt(e) },
905
1003
  {
906
- path: it,
907
- Component: dt
1004
+ path: lt,
1005
+ Component: gt
908
1006
  },
909
1007
  ...r,
910
1008
  {
911
1009
  path: "*",
912
1010
  loader: () => {
913
- throw W();
1011
+ throw K();
914
1012
  },
915
1013
  Component: () => null,
916
- ErrorBoundary: U
1014
+ ErrorBoundary: G
917
1015
  }
918
1016
  ];
919
- }, q = (e) => e.startsWith(":") ? e.slice(1) : null, At = (e) => e.split("/").some((e) => q(e) !== null);
920
- function jt(e, t) {
1017
+ }, Y = (e) => e.startsWith(":") ? e.slice(1) : null, Ft = (e) => e.split("/").some((e) => Y(e) !== null);
1018
+ function It(e, t) {
921
1019
  if (!t.trim()) return e;
922
1020
  let n = t.toLowerCase();
923
1021
  return e.filter((e) => e.title.toLowerCase().includes(n) || e.path.toLowerCase().includes(n));
924
1022
  }
925
- var Mt = (e, t, n) => {
926
- let r = typeof e.breadcrumbTitle == "function" ? e.breadcrumbTitle(we in e.breadcrumbTitle ? n : t) : e.breadcrumbTitle;
1023
+ var Lt = (e, t, n) => {
1024
+ let r = typeof e.breadcrumbTitle == "function" ? e.breadcrumbTitle(Te in e.breadcrumbTitle ? n : t) : e.breadcrumbTitle;
927
1025
  return typeof r == "function" ? z(n)(r, e.title) : r ?? e.title;
928
- }, Nt = (e, t) => {
929
- let n = Oe(t);
1026
+ }, Rt = (e, t) => {
1027
+ let n = ke(t);
930
1028
  return e.reduce((e, t) => {
931
1029
  let r = n(t.meta.title, t.path);
932
1030
  e[t.path] = {
@@ -947,8 +1045,8 @@ var Mt = (e, t, n) => {
947
1045
  return t.resources && t.resources.length > 0 && i(t.resources, t.path), e;
948
1046
  }, {});
949
1047
  };
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);
1048
+ function zt(e, t, n, r) {
1049
+ let i = e.split("/").filter((e) => e !== ""), a = t && i[0] === t ? i.slice(1) : i, o = Rt(n, r);
952
1050
  if (a.length === 0) {
953
1051
  let e = o[""];
954
1052
  if (e) return {
@@ -956,7 +1054,7 @@ function Pt(e, t, n, r) {
956
1054
  segments: [{
957
1055
  segment: "",
958
1056
  path: "",
959
- title: Mt(e, "", r),
1057
+ title: Lt(e, "", r),
960
1058
  clickable: e.clickable
961
1059
  }]
962
1060
  };
@@ -965,13 +1063,13 @@ function Pt(e, t, n, r) {
965
1063
  let n = a.slice(0, t + 1).join("/"), i = o[n];
966
1064
  if (!i) {
967
1065
  let e = Object.entries(o).find(([e]) => {
968
- let t = e.split("/").map((e) => q(e) === null ? e : "[^/]+").join("/");
1066
+ let t = e.split("/").map((e) => Y(e) === null ? e : "[^/]+").join("/");
969
1067
  return RegExp(`^${t}$`).test(n);
970
1068
  })?.[1];
971
1069
  e && (i = e);
972
1070
  }
973
1071
  let s;
974
- return s = i ? Mt(i, e, r) : decodeURIComponent(e), {
1072
+ return s = i ? Lt(i, e, r) : decodeURIComponent(e), {
975
1073
  segment: e,
976
1074
  path: n,
977
1075
  title: s,
@@ -985,14 +1083,14 @@ function Pt(e, t, n, r) {
985
1083
  }
986
1084
  //#endregion
987
1085
  //#region src/routing/navigation.tsx
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);
1086
+ var Bt = "appshell-root-nav", Vt = (e) => ({
1087
+ loaderID: Bt,
1088
+ loader: async () => ({ navItems: Ut(e) })
1089
+ }), Ht = () => h(Bt)?.navItems, Ut = async (e) => {
1090
+ let t = ke(e.locale);
993
1091
  return (await Promise.all(e.modules.map(async (e) => {
994
- if (q(e.path) !== null || (await G(e.guards)).type !== "pass") return null;
995
- let n = await zt(e.resources, e.path, t);
1092
+ if (Y(e.path) !== null || (await q(e.guards)).type !== "pass") return null;
1093
+ let n = await Wt(e.resources, e.path, t);
996
1094
  return n.length === 0 && !e.meta.menuItemClickable ? null : {
997
1095
  module: e,
998
1096
  resources: n
@@ -1003,70 +1101,70 @@ var Ft = "appshell-root-nav", It = (e) => ({
1003
1101
  icon: e.meta.icon || /* @__PURE__ */ N(ie, {}),
1004
1102
  items: n
1005
1103
  }));
1006
- }, zt = async (e, t, n) => (await Promise.all(e.map(async (e) => {
1007
- if (q(e.path) !== null || (await G(e.guards)).type !== "pass") return null;
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;
1104
+ }, Wt = async (e, t, n) => (await Promise.all(e.map(async (e) => {
1105
+ if (Y(e.path) !== null || (await q(e.guards)).type !== "pass") return null;
1106
+ let r = `${t}/${e.path}`, i = n(e.meta.title, e.path), a = e.component !== void 0, o = e.subResources ? await Wt(e.subResources, r, n) : void 0, s = o && o.length > 0;
1009
1107
  return !a && !s ? null : {
1010
1108
  title: i,
1011
1109
  url: a ? r : void 0,
1012
1110
  items: s ? o : void 0
1013
1111
  };
1014
- }))).filter((e) => e !== null), J = (e) => e.split("/").filter((e) => e !== ""), Bt = (e, t) => {
1015
- let n = J(e), r = t && n[0] === t ? n.slice(1) : n;
1112
+ }))).filter((e) => e !== null), X = (e) => e.split("/").filter((e) => e !== ""), Gt = (e, t) => {
1113
+ let n = X(e), r = t && n[0] === t ? n.slice(1) : n;
1016
1114
  return r.length > 0 ? `/${r.join("/")}` : "/";
1017
- }, Vt = (e) => e.join("/") || "/", Ht = 8, Ut = (e, t) => J(e).map((e) => {
1018
- let n = q(e);
1115
+ }, Kt = (e) => e.join("/") || "/", qt = 8, Jt = (e, t) => X(e).map((e) => {
1116
+ let n = Y(e);
1019
1117
  if (n === null) return e;
1020
1118
  let r = t[n] ?? "";
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({
1119
+ return r.length > qt ? `${r.slice(0, qt)}...` : r;
1120
+ }), Yt = async ({ modules: e, locale: t, basePath: n, pathname: r }) => {
1121
+ let i = ke(t), a = l(Pt({
1024
1122
  modules: e,
1025
1123
  settingsResources: []
1026
- }), Bt(r, n));
1124
+ }), Gt(r, n));
1027
1125
  if (!a) return [];
1028
1126
  let o = /* @__PURE__ */ new Map(), s = a.map((e) => {
1029
1127
  let t = e.route.handle;
1030
1128
  return t?.node ? {
1031
1129
  node: t.node,
1032
1130
  params: e.params,
1033
- pathnameBase: Vt(J(e.pathnameBase))
1131
+ pathnameBase: Kt(X(e.pathnameBase))
1034
1132
  } : null;
1035
1133
  }).filter((e) => e !== null);
1036
1134
  for (let [e, t] of s.entries()) {
1037
- if (!At(t.node.path)) continue;
1135
+ if (!Ft(t.node.path)) continue;
1038
1136
  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, {});
1039
- await Gt({
1137
+ await Xt({
1040
1138
  node: t.node,
1041
1139
  params: t.params,
1042
1140
  icon: a,
1043
- baseSegments: J(t.pathnameBase),
1044
- baseDisplaySegments: s.slice(0, e + 1).flatMap(({ node: e, params: t }) => Ut(e.path, t)),
1141
+ baseSegments: X(t.pathnameBase),
1142
+ baseDisplaySegments: s.slice(0, e + 1).flatMap(({ node: e, params: t }) => Jt(e.path, t)),
1045
1143
  breadcrumb: n,
1046
1144
  resolveTitle: i,
1047
1145
  routeMap: o
1048
1146
  });
1049
1147
  }
1050
1148
  return [...o.values()];
1051
- }, Gt = async ({ node: e, params: t, icon: n, baseSegments: r, baseDisplaySegments: i, breadcrumb: a, resolveTitle: o, routeMap: s }) => {
1052
- if ((await G(e.guards)).type !== "pass") return;
1149
+ }, Xt = async ({ node: e, params: t, icon: n, baseSegments: r, baseDisplaySegments: i, breadcrumb: a, resolveTitle: o, routeMap: s }) => {
1150
+ if ((await q(e.guards)).type !== "pass") return;
1053
1151
  if ("resources" in e ? e.meta.menuItemClickable : e.component !== void 0) {
1054
- let t = Vt(r);
1152
+ let t = Kt(r);
1055
1153
  s.set(t, {
1056
1154
  path: t,
1057
- displayPath: Vt(i),
1155
+ displayPath: Kt(i),
1058
1156
  title: o(e.meta.title, e.path),
1059
1157
  icon: n,
1060
1158
  breadcrumb: a
1061
1159
  });
1062
1160
  }
1063
1161
  let c = "resources" in e ? e.resources : e.subResources;
1064
- if (!(!c || c.length === 0)) for (let e of c) At(e.path) || await Gt({
1162
+ if (!(!c || c.length === 0)) for (let e of c) Ft(e.path) || await Xt({
1065
1163
  node: e,
1066
1164
  params: t,
1067
1165
  icon: n,
1068
- baseSegments: [...r, ...J(e.path)],
1069
- baseDisplaySegments: [...i, ...Ut(e.path, t)],
1166
+ baseSegments: [...r, ...X(e.path)],
1167
+ baseDisplaySegments: [...i, ...Jt(e.path, t)],
1070
1168
  breadcrumb: [...a, o(e.meta.title, e.path)],
1071
1169
  resolveTitle: o,
1072
1170
  routeMap: s
@@ -1074,28 +1172,28 @@ var Ft = "appshell-root-nav", It = (e) => ({
1074
1172
  };
1075
1173
  //#endregion
1076
1174
  //#region src/components/internals/breadcrumb/breadcrumb.tsx
1077
- function Kt({ ...e }) {
1175
+ function Zt({ ...e }) {
1078
1176
  return /* @__PURE__ */ N("nav", {
1079
1177
  "aria-label": "breadcrumb",
1080
1178
  "data-slot": "breadcrumb",
1081
1179
  ...e
1082
1180
  });
1083
1181
  }
1084
- function qt({ className: e, ...t }) {
1182
+ function Qt({ className: e, ...t }) {
1085
1183
  return /* @__PURE__ */ N("ol", {
1086
1184
  "data-slot": "breadcrumb-list",
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),
1185
+ className: I("astw:text-muted-foreground astw:flex astw:flex-wrap astw:items-center astw:gap-1.5 astw:text-body-md astw:break-words astw:sm:gap-2.5", e),
1088
1186
  ...t
1089
1187
  });
1090
1188
  }
1091
- function Jt({ className: e, ...t }) {
1189
+ function $t({ className: e, ...t }) {
1092
1190
  return /* @__PURE__ */ N("li", {
1093
1191
  "data-slot": "breadcrumb-item",
1094
1192
  className: I("astw:inline-flex astw:items-center astw:gap-1.5", e),
1095
1193
  ...t
1096
1194
  });
1097
1195
  }
1098
- function Yt({ render: e, className: t, children: r, to: i, ...a }) {
1196
+ function en({ render: e, className: t, children: r, to: i, ...a }) {
1099
1197
  let o = I("astw:hover:text-foreground astw:transition-colors", t);
1100
1198
  return k({
1101
1199
  defaultTagName: "a",
@@ -1111,7 +1209,7 @@ function Yt({ render: e, className: t, children: r, to: i, ...a }) {
1111
1209
  }
1112
1210
  });
1113
1211
  }
1114
- function Xt({ className: e, ariaCurrent: t = "location", ...n }) {
1212
+ function tn({ className: e, ariaCurrent: t = "location", ...n }) {
1115
1213
  return /* @__PURE__ */ N("span", {
1116
1214
  "data-slot": "breadcrumb-page",
1117
1215
  "aria-disabled": "true",
@@ -1120,7 +1218,7 @@ function Xt({ className: e, ariaCurrent: t = "location", ...n }) {
1120
1218
  ...n
1121
1219
  });
1122
1220
  }
1123
- function Zt({ children: e, className: t, ...n }) {
1221
+ function nn({ children: e, className: t, ...n }) {
1124
1222
  return /* @__PURE__ */ N("li", {
1125
1223
  "data-slot": "breadcrumb-separator",
1126
1224
  role: "presentation",
@@ -1132,31 +1230,31 @@ function Zt({ children: e, className: t, ...n }) {
1132
1230
  }
1133
1231
  //#endregion
1134
1232
  //#region src/components/sidebar/dynamic-breadcrumb.tsx
1135
- var Qt = () => {
1233
+ var rn = () => {
1136
1234
  let { configurations: e } = V();
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", {
1235
+ return zt(d().pathname, e.basePath, e.modules, e.locale);
1236
+ }, an = () => {
1237
+ let { basePath: e, segments: t } = rn(), { overrides: n } = ot(), r = f("/:prefix/settings/:suffix"), i = H();
1238
+ return r ? /* @__PURE__ */ N(Zt, { children: /* @__PURE__ */ N(Qt, { children: /* @__PURE__ */ N("div", {
1141
1239
  className: "astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",
1142
- children: /* @__PURE__ */ N(Jt, { children: /* @__PURE__ */ N(Yt, {
1240
+ children: /* @__PURE__ */ N($t, { children: /* @__PURE__ */ N(en, {
1143
1241
  to: `/${r.params.prefix}/settings`,
1144
1242
  children: i("settings")
1145
1243
  }) })
1146
- }) }) }) : /* @__PURE__ */ N(Kt, { children: /* @__PURE__ */ N(qt, { children: t.map((r, i) => {
1244
+ }) }) }) : /* @__PURE__ */ N(Zt, { children: /* @__PURE__ */ N(Qt, { children: t.map((r, i) => {
1147
1245
  let a = e ? `/${e}/${r.path}` : `/${r.path}`, o = n.get(a) ?? r.title;
1148
1246
  return /* @__PURE__ */ P("div", {
1149
1247
  className: "astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",
1150
- children: [/* @__PURE__ */ N(Jt, { children: r.clickable ? /* @__PURE__ */ N(Yt, {
1248
+ children: [/* @__PURE__ */ N($t, { children: r.clickable ? /* @__PURE__ */ N(en, {
1151
1249
  to: r.path,
1152
1250
  children: o
1153
- }) : /* @__PURE__ */ N(Xt, {
1251
+ }) : /* @__PURE__ */ N(tn, {
1154
1252
  ariaCurrent: i === t.length - 1 && "location",
1155
1253
  children: o
1156
- }) }), i < t.length - 1 && /* @__PURE__ */ N(Zt, {})]
1254
+ }) }), i < t.length - 1 && /* @__PURE__ */ N(nn, {})]
1157
1255
  }, i);
1158
1256
  }) }) });
1159
- }, en = [
1257
+ }, on = [
1160
1258
  {
1161
1259
  rel: "icon",
1162
1260
  type: "image/png",
@@ -1174,54 +1272,54 @@ var Qt = () => {
1174
1272
  sizes: "180x180",
1175
1273
  href: "data:image/png;base64,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"
1176
1274
  }
1177
- ], tn = " · ", nn = "data-app-shell-favicon", rn = (e) => {
1275
+ ], sn = " · ", cn = "data-app-shell-favicon", ln = (e) => {
1178
1276
  if (e.startsWith("data:")) return e.match(/^data:([^;,]+)/)?.[1];
1179
1277
  if (e.endsWith(".svg")) return "image/svg+xml";
1180
1278
  if (e.endsWith(".png")) return "image/png";
1181
1279
  if (e.endsWith(".ico")) return "image/x-icon";
1182
- }, an = () => {
1183
- let { title: e, favicon: t } = V(), { basePath: n, segments: r } = Qt(), i = nt()?.overrides, a = r.at(-1), o;
1280
+ }, un = () => {
1281
+ let { title: e, favicon: t } = V(), { basePath: n, segments: r } = rn(), i = st()?.overrides, a = r.at(-1), o;
1184
1282
  if (a) {
1185
1283
  let e = n ? `/${n}/${a.path}` : `/${a.path}`;
1186
1284
  o = i?.get(e) ?? a.title;
1187
1285
  }
1188
- let s = [o, e].filter(Boolean).join(tn), c = typeof document < "u" && document.head.querySelector(`link[rel~="icon"]:not([${nn}])`), l;
1286
+ let s = [o, e].filter(Boolean).join(sn), c = typeof document < "u" && document.head.querySelector(`link[rel~="icon"]:not([${cn}])`), l;
1189
1287
  return l = t ? [{
1190
1288
  rel: "icon",
1191
1289
  href: t,
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", {
1290
+ type: ln(t)
1291
+ }] : c ? [] : on, /* @__PURE__ */ P(M, { children: [s ? /* @__PURE__ */ N("title", { children: s }) : null, l.map(({ rel: e, href: t, type: n, sizes: r }) => /* @__PURE__ */ N("link", {
1194
1292
  rel: e,
1195
1293
  href: t,
1196
1294
  "data-app-shell-favicon": "",
1197
1295
  ...n ? { type: n } : {},
1198
1296
  ...r ? { sizes: r } : {}
1199
1297
  }, `${e}-${r ?? "any"}`))] });
1200
- }, on = (e) => {
1201
- let { configurations: t, contentRoutes: n, children: r } = e, { loaderID: i, loader: o } = It({
1298
+ }, dn = (e) => {
1299
+ let { configurations: t, contentRoutes: n, children: r } = e, { loaderID: i, loader: o } = Vt({
1202
1300
  modules: t.modules,
1203
1301
  locale: t.locale,
1204
1302
  basePath: t.basePath
1205
1303
  }), s = t.errorBoundary, c = s ? [{
1206
1304
  element: /* @__PURE__ */ N(a, {}),
1207
- ErrorBoundary: Tt(s),
1305
+ ErrorBoundary: At(s),
1208
1306
  children: n
1209
1307
  }] : n;
1210
1308
  return {
1211
1309
  id: i,
1212
1310
  loader: o,
1213
- element: /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(an, {}), r] }),
1311
+ element: /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(un, {}), r] }),
1214
1312
  children: c,
1215
1313
  HydrateFallback: () => null
1216
1314
  };
1217
- }, sn = {
1315
+ }, fn = {
1218
1316
  createBrowserRouter: o,
1219
1317
  createMemoryRouter: s
1220
- }, cn = (e) => {
1221
- let { children: t } = e, { configurations: n } = V(), r = C(() => kt({
1318
+ }, pn = (e) => {
1319
+ let { children: t } = e, { configurations: n } = V(), r = C(() => Pt({
1222
1320
  modules: n.modules,
1223
1321
  settingsResources: n.settingsResources
1224
- }), [n.modules, n.settingsResources]), i = C(() => [on({
1322
+ }), [n.modules, n.settingsResources]), i = C(() => [dn({
1225
1323
  configurations: n,
1226
1324
  contentRoutes: r,
1227
1325
  children: t
@@ -1229,18 +1327,18 @@ var Qt = () => {
1229
1327
  n,
1230
1328
  r,
1231
1329
  t
1232
- ]), a = n.basePath ? "/" + n.basePath : void 0, o = e.memory ? e.initialEntries : void 0, s = C(() => e.memory ? sn.createMemoryRouter(i, {
1330
+ ]), a = n.basePath ? "/" + n.basePath : void 0, o = e.memory ? e.initialEntries : void 0, s = C(() => e.memory ? fn.createMemoryRouter(i, {
1233
1331
  basename: a,
1234
1332
  ...o ? { initialEntries: o } : {}
1235
- }) : sn.createBrowserRouter(i, { basename: a }), [
1333
+ }) : fn.createBrowserRouter(i, { basename: a }), [
1236
1334
  a,
1237
1335
  o,
1238
1336
  e.memory,
1239
1337
  i
1240
1338
  ]);
1241
1339
  return /* @__PURE__ */ N(le, { router: s });
1242
- }, ln = v(null), Y = v(null);
1243
- function un({ children: e, searchSources: t = [] }) {
1340
+ }, mn = v(null), Z = v(null);
1341
+ function hn({ children: e, searchSources: t = [] }) {
1244
1342
  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(() => {
1245
1343
  c(Array.from(i.current.values()).flat());
1246
1344
  }, []), w = y((e, t) => (i.current.set(e, t), S(), () => {
@@ -1251,7 +1349,7 @@ function un({ children: e, searchSources: t = [] }) {
1251
1349
  a.current += 1, u(!1), h([]), _(null), b(!1);
1252
1350
  }, []), k = y(() => {
1253
1351
  let e = a.current + 1;
1254
- a.current = e, h([]), _(n), b(!0), Wt({
1352
+ a.current = e, h([]), _(n), b(!0), Yt({
1255
1353
  modules: r.modules,
1256
1354
  locale: r.locale,
1257
1355
  basePath: r.basePath,
@@ -1311,21 +1409,21 @@ function un({ children: e, searchSources: t = [] }) {
1311
1409
  n,
1312
1410
  j
1313
1411
  ]);
1314
- return /* @__PURE__ */ N(ln.Provider, {
1412
+ return /* @__PURE__ */ N(mn.Provider, {
1315
1413
  value: M,
1316
- children: /* @__PURE__ */ N(Y.Provider, {
1414
+ children: /* @__PURE__ */ N(Z.Provider, {
1317
1415
  value: P,
1318
1416
  children: e
1319
1417
  })
1320
1418
  });
1321
1419
  }
1322
- function dn() {
1323
- let e = b(ln);
1420
+ function gn() {
1421
+ let e = b(mn);
1324
1422
  if (!e) throw Error("useCommandPaletteDispatch must be used within CommandPaletteProvider");
1325
1423
  return e;
1326
1424
  }
1327
- function fn(e, t) {
1328
- let n = S(), { register: r } = dn(), i = T(t);
1425
+ function _n(e, t) {
1426
+ let n = S(), { register: r } = gn(), i = T(t);
1329
1427
  i.current = t;
1330
1428
  let a = t.map((e) => `${e.key}\0${e.label}`).join("\n");
1331
1429
  x(() => r(n, i.current.map((t) => ({
@@ -1339,68 +1437,84 @@ function fn(e, t) {
1339
1437
  e
1340
1438
  ]);
1341
1439
  }
1342
- function pn() {
1343
- let e = b(Y);
1440
+ function vn() {
1441
+ let e = b(Z);
1344
1442
  if (!e) throw Error("useCommandPaletteState must be used within CommandPaletteProvider");
1345
1443
  return e;
1346
1444
  }
1347
- function mn() {
1348
- let e = b(Y);
1445
+ function yn() {
1446
+ let e = b(Z);
1349
1447
  if (!e) throw Error("useOpenCommandPalette must be used within CommandPaletteProvider");
1350
1448
  return e.openCommandPalette;
1351
1449
  }
1352
- function hn() {
1353
- let e = b(Y);
1450
+ function bn() {
1451
+ let e = b(Z);
1354
1452
  if (!e) throw Error("useCommandPaletteActions must be used within CommandPaletteProvider");
1355
1453
  return e.actions;
1356
1454
  }
1357
1455
  //#endregion
1358
1456
  //#region src/components/dialog/dialog.tsx
1359
- function gn({ ...e }) {
1457
+ function xn({ ...e }) {
1360
1458
  return /* @__PURE__ */ N(F.Root, {
1361
1459
  "data-slot": "dialog",
1362
1460
  ...e
1363
1461
  });
1364
1462
  }
1365
- gn.displayName = "Dialog.Root";
1366
- function _n({ ...e }) {
1463
+ xn.displayName = "Dialog.Root";
1464
+ function Sn({ ...e }) {
1367
1465
  return /* @__PURE__ */ N(F.Trigger, {
1368
1466
  "data-slot": "dialog-trigger",
1369
1467
  ...e
1370
1468
  });
1371
1469
  }
1372
- _n.displayName = "Dialog.Trigger";
1373
- function vn({ ...e }) {
1470
+ Sn.displayName = "Dialog.Trigger";
1471
+ function Cn({ ...e }) {
1374
1472
  return /* @__PURE__ */ N(F.Portal, {
1375
1473
  "data-slot": "dialog-portal",
1376
1474
  ...e
1377
1475
  });
1378
1476
  }
1379
- vn.displayName = "Dialog.Portal";
1380
- function yn({ ...e }) {
1477
+ Cn.displayName = "Dialog.Portal";
1478
+ function wn({ ...e }) {
1381
1479
  return /* @__PURE__ */ N(F.Close, {
1382
1480
  "data-slot": "dialog-close",
1383
1481
  ...e
1384
1482
  });
1385
1483
  }
1386
- yn.displayName = "Dialog.Close";
1387
- function bn({ className: e, ...t }) {
1484
+ wn.displayName = "Dialog.Close";
1485
+ function Tn({ className: e, ...t }) {
1388
1486
  return /* @__PURE__ */ N(F.Backdrop, {
1389
1487
  "data-slot": "dialog-overlay",
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),
1488
+ 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-portal) astw:bg-backdrop", e),
1391
1489
  ...t
1392
1490
  });
1393
1491
  }
1394
- bn.displayName = "Dialog.Overlay";
1395
- function xn({ className: e, children: t, ...n }) {
1396
- return /* @__PURE__ */ P(vn, {
1492
+ Tn.displayName = "Dialog.Overlay";
1493
+ var En = "a[href], button, input, select, textarea, [tabindex]:not([tabindex=\"-1\"]), [contenteditable=\"\"], [contenteditable=\"true\"]";
1494
+ function Dn(e) {
1495
+ return Array.from(e.querySelectorAll(En)).find((e) => e.tabIndex >= 0 && !e.disabled && e.getClientRects().length > 0) ?? null;
1496
+ }
1497
+ function On({ className: e, children: t, ref: n, initialFocus: r, ...i }) {
1498
+ let a = g.useRef(null);
1499
+ return /* @__PURE__ */ P(Cn, {
1397
1500
  "data-slot": "dialog-portal",
1398
- children: [/* @__PURE__ */ N(bn, {}), /* @__PURE__ */ P(F.Popup, {
1501
+ children: [/* @__PURE__ */ N(Tn, {}), /* @__PURE__ */ P(F.Popup, {
1399
1502
  "data-slot": "dialog-content",
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),
1401
- ...n,
1503
+ ref: L(a, n),
1504
+ initialFocus: r ?? ((e) => {
1505
+ let t = a.current;
1506
+ if (!t) return !0;
1507
+ if (e === "touch") return t;
1508
+ if (t.scrollHeight <= t.clientHeight) return !0;
1509
+ let n = Dn(t);
1510
+ if (!n) return t;
1511
+ let r = t.getBoundingClientRect(), i = n.getBoundingClientRect();
1512
+ return i.top >= r.top && i.bottom <= r.bottom ? n : t;
1513
+ }),
1514
+ 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-portal) astw:grid astw:w-full astw:max-w-[calc(100%-2rem)] astw:max-h-[calc(100dvh-2rem)] astw:overflow-y-auto 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),
1515
+ ...i,
1402
1516
  children: [t, /* @__PURE__ */ P(F.Close, {
1403
- className: "astw:ring-offset-bg astw:focus:ring-ring astw:data-open:bg-accent astw:data-open:text-muted-foreground astw:absolute astw:top-4 astw:right-4 astw:rounded-xs astw:opacity-70 astw:transition-opacity astw:hover:opacity-100 astw:focus:ring-2 astw:focus:ring-offset-2 astw:focus:outline-hidden astw:disabled:pointer-events-none astw:[&_svg]:pointer-events-none astw:[&_svg]:shrink-0 astw:[&_svg:not([class*='size-'])]:size-4",
1517
+ className: "astw:ring-offset-card astw:focus:ring-ring astw:data-open:bg-accent astw:data-open:text-muted-foreground astw:absolute astw:top-4 astw:right-4 astw:rounded-xs astw:opacity-70 astw:transition-opacity astw:hover:opacity-100 astw:focus:ring-2 astw:focus:ring-offset-2 astw:focus:outline-hidden astw:disabled:pointer-events-none astw:[&_svg]:pointer-events-none astw:[&_svg]:shrink-0 astw:[&_svg:not([class*='size-'])]:size-4",
1404
1518
  children: [/* @__PURE__ */ N(ae, {}), /* @__PURE__ */ N("span", {
1405
1519
  className: "astw:sr-only",
1406
1520
  children: "Close"
@@ -1409,78 +1523,84 @@ function xn({ className: e, children: t, ...n }) {
1409
1523
  })]
1410
1524
  });
1411
1525
  }
1412
- xn.displayName = "Dialog.Content";
1413
- function Sn({ className: e, ...t }) {
1526
+ On.displayName = "Dialog.Content";
1527
+ function kn({ className: e, ...t }) {
1414
1528
  return /* @__PURE__ */ N("div", {
1415
1529
  "data-slot": "dialog-header",
1416
1530
  className: I("astw:flex astw:flex-col astw:gap-2 astw:text-center astw:sm:text-left", e),
1417
1531
  ...t
1418
1532
  });
1419
1533
  }
1420
- Sn.displayName = "Dialog.Header";
1421
- function Cn({ className: e, ...t }) {
1534
+ kn.displayName = "Dialog.Header";
1535
+ function An({ className: e, ...t }) {
1422
1536
  return /* @__PURE__ */ N("div", {
1423
1537
  "data-slot": "dialog-footer",
1424
1538
  className: I("astw:flex astw:flex-col-reverse astw:gap-2 astw:sm:flex-row astw:sm:justify-end", e),
1425
1539
  ...t
1426
1540
  });
1427
1541
  }
1428
- Cn.displayName = "Dialog.Footer";
1429
- function wn({ className: e, ...t }) {
1430
- return /* @__PURE__ */ N(F.Title, {
1431
- "data-slot": "dialog-title",
1432
- className: I("astw:text-lg astw:leading-none astw:font-semibold", e),
1433
- ...t
1542
+ An.displayName = "Dialog.Footer";
1543
+ function jn({ className: e, ...t }) {
1544
+ return /* @__PURE__ */ N(W, {
1545
+ variant: "heading-md",
1546
+ className: I("astw:leading-none", e),
1547
+ render: /* @__PURE__ */ N(F.Title, {
1548
+ "data-slot": "dialog-title",
1549
+ ...t
1550
+ })
1434
1551
  });
1435
1552
  }
1436
- wn.displayName = "Dialog.Title";
1437
- function Tn({ className: e, ...t }) {
1438
- return /* @__PURE__ */ N(F.Description, {
1439
- "data-slot": "dialog-description",
1440
- className: I("astw:text-muted-foreground astw:text-sm", e),
1441
- ...t
1553
+ jn.displayName = "Dialog.Title";
1554
+ function Mn({ className: e, ...t }) {
1555
+ return /* @__PURE__ */ N(W, {
1556
+ variant: "body-md",
1557
+ className: I("astw:text-muted-foreground", e),
1558
+ render: /* @__PURE__ */ N(F.Description, {
1559
+ "data-slot": "dialog-description",
1560
+ ...t
1561
+ })
1442
1562
  });
1443
1563
  }
1444
- Tn.displayName = "Dialog.Description";
1445
- var X = {
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 = [
1564
+ Mn.displayName = "Dialog.Description";
1565
+ var Q = {
1566
+ Root: xn,
1567
+ Close: wn,
1568
+ Content: On,
1569
+ Description: Mn,
1570
+ Footer: An,
1571
+ Header: kn,
1572
+ Title: jn,
1573
+ Trigger: Sn
1574
+ }, Nn = [
1455
1575
  "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",
1456
1576
  "astw:dark:bg-input/30 astw:transition-[color,box-shadow]",
1457
1577
  "astw:selection:bg-primary astw:selection:text-primary-foreground",
1458
1578
  "astw:placeholder:text-muted-foreground",
1459
1579
  "astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px]",
1460
1580
  "astw:disabled:pointer-events-none astw:disabled:cursor-not-allowed astw:disabled:opacity-50"
1461
- ], Dn = [...En, "astw:h-9 astw:py-1"], On = [...En, "astw:min-h-16 astw:py-2 astw:resize-y"];
1581
+ ], Pn = [...Nn, "astw:h-9 astw:py-1"], Fn = [...Nn, "astw:min-h-16 astw:py-2 astw:resize-y"];
1462
1582
  //#endregion
1463
1583
  //#region src/components/input/input.tsx
1464
- function kn({ className: e, type: t, ref: n, ...r }) {
1584
+ function In({ className: e, type: t, ref: n, ...r }) {
1465
1585
  let i = g.useRef(null);
1466
- return ge(i, { handlesDirectionalKeys: !0 }), /* @__PURE__ */ N("input", {
1586
+ return _e(i, { handlesDirectionalKeys: !0 }), /* @__PURE__ */ N("input", {
1467
1587
  ref: L(i, n),
1468
1588
  type: t,
1469
1589
  "data-slot": "input",
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),
1590
+ className: I(Pn, "astw:file:text-foreground astw:file:inline-flex astw:file:h-7 astw:file:border-0 astw:file:bg-transparent astw:file:text-label-md", "astw:aria-invalid:ring-danger-solid/20 astw:dark:aria-invalid:ring-danger-solid/40 astw:aria-invalid:border-danger-solid", e),
1471
1591
  ...r
1472
1592
  });
1473
1593
  }
1474
1594
  //#endregion
1475
1595
  //#region src/components/spinner/spinner.tsx
1476
- var An = {
1596
+ var Ln = {
1477
1597
  xs: 12,
1478
1598
  sm: 14,
1479
1599
  default: 16,
1480
1600
  lg: 20
1481
1601
  };
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];
1602
+ function Rn({ className: e, size: t = "default", width: n, height: r, ...i }) {
1603
+ let a = i["aria-label"] != null || i["aria-labelledby"] != null, o = i["aria-hidden"] === !0 || i["aria-hidden"] == null && i.role == null && !a, s = Ln[t];
1484
1604
  return /* @__PURE__ */ N("svg", {
1485
1605
  "data-slot": "spinner",
1486
1606
  viewBox: "0 0 16 16",
@@ -1505,9 +1625,14 @@ function jn({ className: e, size: t = "default", width: n, height: r, ...i }) {
1505
1625
  });
1506
1626
  }
1507
1627
  //#endregion
1628
+ //#region src/lib/is-composing.ts
1629
+ function zn(e, t = !1) {
1630
+ return e.isComposing || t || e.keyCode === 229;
1631
+ }
1632
+ //#endregion
1508
1633
  //#region src/components/command-palette/command-palette.tsx
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";
1510
- function Mn(e) {
1634
+ var Bn = "astw:relative astw:flex astw:w-full astw:cursor-pointer astw:select-none astw:rounded-sm astw:px-2 astw:py-2 astw:text-body-md astw:outline-none astw:text-left", Vn = (e) => e ? "astw:bg-accent astw:text-accent-foreground" : "astw:hover:bg-accent astw:hover:text-accent-foreground";
1635
+ function Hn(e) {
1511
1636
  let t = [], n = (e, r, i) => {
1512
1637
  e.forEach((e) => {
1513
1638
  let a = [...i, e.title];
@@ -1528,17 +1653,17 @@ function Mn(e) {
1528
1653
  }), n(e.items, e.icon, [e.title]);
1529
1654
  }), t;
1530
1655
  }
1531
- function Nn(e, t) {
1656
+ function Un(e, t) {
1532
1657
  if (!t.trim()) return e;
1533
1658
  let n = t.toLowerCase();
1534
1659
  return e.filter((e) => e.label.toLowerCase().includes(n));
1535
1660
  }
1536
- var Pn = 300, Fn = (e) => e === "/" || e.startsWith("/_"), In = {
1661
+ var Wn = 300, Gn = (e) => e === "/" || e.startsWith("/_"), Kn = {
1537
1662
  mode: "browse",
1538
1663
  search: "",
1539
1664
  selectedIndex: 0
1540
- }, Ln = [];
1541
- function Rn(e, t) {
1665
+ }, qn = [];
1666
+ function Jn(e, t) {
1542
1667
  switch (t.type) {
1543
1668
  case "SET_SEARCH": return e.mode === "search" ? {
1544
1669
  ...e,
@@ -1576,7 +1701,7 @@ function Rn(e, t) {
1576
1701
  results: [],
1577
1702
  isSearching: !1
1578
1703
  };
1579
- case "EXIT_SEARCH_MODE": return In;
1704
+ case "EXIT_SEARCH_MODE": return Kn;
1580
1705
  case "SEARCH_START": return e.mode === "search" ? {
1581
1706
  ...e,
1582
1707
  isSearching: !0,
@@ -1600,10 +1725,10 @@ function Rn(e, t) {
1600
1725
  ...e,
1601
1726
  selectedIndex: Math.max(e.selectedIndex - 1, 0)
1602
1727
  };
1603
- case "RESET": return In;
1728
+ case "RESET": return Kn;
1604
1729
  }
1605
1730
  }
1606
- function zn(e, t) {
1731
+ function Yn(e, t) {
1607
1732
  let n = e.indexOf(":");
1608
1733
  if (n < 1) return {
1609
1734
  activeSource: null,
@@ -1618,13 +1743,13 @@ function zn(e, t) {
1618
1743
  searchQuery: e
1619
1744
  };
1620
1745
  }
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), [
1746
+ function Xn({ routes: e, contextualActions: t = [], searchSources: n = [], open: r, setOpen: i }) {
1747
+ let a = p(), o = T(null), [s, c] = w(Jn, Kn), 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 : qn, h = s.mode === "search" && s.isSearching, g = C(() => f ? [] : Un(t, u), [
1623
1748
  t,
1624
1749
  u,
1625
1750
  f
1626
- ]), _ = C(() => f ? [] : jt(e, u).toSorted((e, t) => {
1627
- let n = Fn(e.path), r = Fn(t.path);
1751
+ ]), _ = C(() => f ? [] : It(e, u).toSorted((e, t) => {
1752
+ let n = Gn(e.path), r = Gn(t.path);
1628
1753
  return Number(n) - Number(r) || e.path.localeCompare(t.path);
1629
1754
  }), [
1630
1755
  e,
@@ -1647,7 +1772,7 @@ function Bn({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1647
1772
  }).catch(() => {
1648
1773
  e.signal.aborted || c({ type: "SEARCH_FAIL" });
1649
1774
  });
1650
- }, Pn);
1775
+ }, Wn);
1651
1776
  return () => {
1652
1777
  clearTimeout(e), l.current?.abort(), l.current = null;
1653
1778
  };
@@ -1688,7 +1813,7 @@ function Bn({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1688
1813
  });
1689
1814
  return;
1690
1815
  }
1691
- let t = zn(e, n);
1816
+ let t = Yn(e, n);
1692
1817
  c({
1693
1818
  type: "SET_SEARCH",
1694
1819
  value: e,
@@ -1696,7 +1821,7 @@ function Bn({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1696
1821
  detectedQuery: t.activeSource ? t.searchQuery : void 0
1697
1822
  });
1698
1823
  }, [s.mode, n]), S = y((e) => {
1699
- let t = zn(e, n);
1824
+ let t = Yn(e, n);
1700
1825
  c({
1701
1826
  type: "INITIALIZE_SEARCH",
1702
1827
  value: e,
@@ -1740,7 +1865,7 @@ function Bn({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1740
1865
  selectableItems: v,
1741
1866
  handleSelectItem: D,
1742
1867
  handleKeyDown: y((e) => {
1743
- if (!e.nativeEvent.isComposing) switch (e.key) {
1868
+ if (!zn(e.nativeEvent)) switch (e.key) {
1744
1869
  case "ArrowDown":
1745
1870
  e.preventDefault(), c({
1746
1871
  type: "ARROW_DOWN",
@@ -1765,10 +1890,10 @@ function Bn({ routes: e, contextualActions: t = [], searchSources: n = [], open:
1765
1890
  listRef: o
1766
1891
  };
1767
1892
  }
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({
1893
+ function Zn({ navItems: e, extraRoutes: t = [] }) {
1894
+ let n = H(), r = bn(), { searchSources: i, open: a, setOpen: o, openRequest: s, clearOpenRequest: c, dynamicRoutes: l, isLoadingDynamicRoutes: u } = vn(), { 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 } = Xn({
1770
1895
  routes: C(() => [
1771
- ...Mn(e),
1896
+ ...Hn(e),
1772
1897
  ...t,
1773
1898
  ...l
1774
1899
  ], [
@@ -1789,15 +1914,15 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1789
1914
  c
1790
1915
  ]);
1791
1916
  let O = b ? [] : w.filter((e) => e.type === "search-mode"), k = O.length, A = k, j = A + _.length;
1792
- return /* @__PURE__ */ N(X.Root, {
1917
+ return /* @__PURE__ */ N(Q.Root, {
1793
1918
  open: d,
1794
1919
  onOpenChange: f,
1795
- children: /* @__PURE__ */ P(X.Content, {
1920
+ children: /* @__PURE__ */ P(Q.Content, {
1796
1921
  className: "astw:p-0 astw:gap-0 astw:sm:max-w-2xl astw:lg:max-w-4xl astw:overflow-hidden astw:top-[30%] astw:translate-y-[-30%]",
1797
1922
  onKeyDown: E,
1798
1923
  "aria-describedby": void 0,
1799
1924
  children: [
1800
- /* @__PURE__ */ N(X.Title, {
1925
+ /* @__PURE__ */ N(Q.Title, {
1801
1926
  className: "astw:sr-only",
1802
1927
  children: n("commandPaletteSearch")
1803
1928
  }),
@@ -1806,14 +1931,14 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1806
1931
  children: [
1807
1932
  /* @__PURE__ */ N(re, { className: "astw:mr-2 astw:h-4 astw:w-4 astw:shrink-0 astw:opacity-50" }),
1808
1933
  b && /* @__PURE__ */ N("span", {
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",
1934
+ 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-label-sm astw:text-muted-foreground",
1810
1935
  children: b.prefix
1811
1936
  }),
1812
- /* @__PURE__ */ N(kn, {
1937
+ /* @__PURE__ */ N(In, {
1813
1938
  value: p,
1814
1939
  onChange: (e) => m(e.target.value),
1815
1940
  placeholder: n("commandPaletteSearch"),
1816
- className: "astw:flex astw:h-10 astw:w-full astw:rounded-md astw:bg-transparent astw:py-3 astw:text-sm astw:outline-none astw:border-0 astw:shadow-none astw:focus-visible:ring-0 astw:placeholder:text-muted-foreground astw:disabled:cursor-not-allowed astw:disabled:opacity-50",
1941
+ className: "astw:flex astw:h-10 astw:w-full astw:rounded-md astw:bg-transparent astw:py-3 astw:text-body-md astw:outline-none astw:border-0 astw:shadow-none astw:focus-visible:ring-0 astw:placeholder:text-muted-foreground astw:disabled:cursor-not-allowed astw:disabled:opacity-50",
1817
1942
  autoFocus: !0
1818
1943
  })
1819
1944
  ]
@@ -1822,17 +1947,17 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1822
1947
  ref: D,
1823
1948
  className: "astw:max-h-[50vh] astw:overflow-y-auto astw:overflow-x-hidden",
1824
1949
  children: [w.length === 0 && !S && !u ? /* @__PURE__ */ N("div", {
1825
- className: "astw:py-6 astw:text-center astw:text-sm astw:text-muted-foreground",
1950
+ className: "astw:py-6 astw:text-center astw:text-body-md astw:text-muted-foreground",
1826
1951
  children: n("commandPaletteNoResults")
1827
1952
  }) : /* @__PURE__ */ P("div", {
1828
1953
  className: "astw:p-1",
1829
1954
  children: [
1830
1955
  u && /* @__PURE__ */ P("output", {
1831
- className: "astw:flex astw:items-center astw:justify-center astw:gap-2 astw:py-4 astw:text-sm astw:text-muted-foreground",
1832
- children: [/* @__PURE__ */ N(jn, { "aria-label": n("commandPaletteLoadingRoutes") }), n("commandPaletteLoadingRoutes")]
1956
+ className: "astw:flex astw:items-center astw:justify-center astw:gap-2 astw:py-4 astw:text-body-md astw:text-muted-foreground",
1957
+ children: [/* @__PURE__ */ N(Rn, { "aria-label": n("commandPaletteLoadingRoutes") }), n("commandPaletteLoadingRoutes")]
1833
1958
  }),
1834
1959
  k > 0 && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("div", {
1835
- className: "astw:px-2 astw:py-1.5 astw:text-xs astw:font-medium astw:text-muted-foreground",
1960
+ className: "astw:px-2 astw:py-1.5 astw:text-label-sm astw:text-muted-foreground",
1836
1961
  children: n("commandPaletteSearchModes")
1837
1962
  }), O.map((e, t) => {
1838
1963
  let n = e.type === "search-mode" ? e.source : null;
@@ -1842,14 +1967,14 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1842
1967
  type: "search-mode",
1843
1968
  source: n
1844
1969
  }),
1845
- className: I(Z, "astw:items-center astw:gap-2", Q(t === g)),
1970
+ className: I(Bn, "astw:items-center astw:gap-2", Vn(t === g)),
1846
1971
  children: [
1847
1972
  n.icon && /* @__PURE__ */ N("span", {
1848
1973
  className: "astw:flex astw:size-4 astw:items-center astw:justify-center astw:shrink-0",
1849
1974
  children: n.icon
1850
1975
  }),
1851
1976
  /* @__PURE__ */ P("span", {
1852
- className: "astw:font-mono astw:text-xs astw:text-muted-foreground astw:shrink-0",
1977
+ className: "astw:font-mono astw:text-code-sm astw:text-muted-foreground astw:shrink-0",
1853
1978
  children: [n.prefix, ":"]
1854
1979
  }),
1855
1980
  /* @__PURE__ */ N("span", {
@@ -1860,7 +1985,7 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1860
1985
  }, `search-mode-${n.prefix}`) : null;
1861
1986
  })] }),
1862
1987
  _.length > 0 && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("div", {
1863
- className: "astw:px-2 astw:py-1.5 astw:text-xs astw:font-medium astw:text-muted-foreground",
1988
+ className: "astw:px-2 astw:py-1.5 astw:text-label-sm astw:text-muted-foreground",
1864
1989
  children: n("commandPaletteActions")
1865
1990
  }), _.map((e, t) => {
1866
1991
  let n = A + t;
@@ -1870,7 +1995,7 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1870
1995
  type: "action",
1871
1996
  action: e
1872
1997
  }),
1873
- className: I(Z, "astw:items-center astw:gap-2", Q(n === g)),
1998
+ className: I(Bn, "astw:items-center astw:gap-2", Vn(n === g)),
1874
1999
  children: [
1875
2000
  e.icon && /* @__PURE__ */ N("span", {
1876
2001
  className: "astw:flex astw:size-4 astw:items-center astw:justify-center astw:shrink-0",
@@ -1881,14 +2006,14 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1881
2006
  children: e.label
1882
2007
  }),
1883
2008
  e.group && /* @__PURE__ */ N("span", {
1884
- className: "astw:ml-auto astw:text-xs astw:text-muted-foreground astw:shrink-0",
2009
+ className: "astw:ml-auto astw:text-body-sm astw:text-muted-foreground astw:shrink-0",
1885
2010
  children: e.group
1886
2011
  })
1887
2012
  ]
1888
2013
  }, `action-${e.key}`);
1889
2014
  })] }),
1890
2015
  v.length > 0 && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("div", {
1891
- className: "astw:px-2 astw:py-1.5 astw:text-xs astw:font-medium astw:text-muted-foreground",
2016
+ className: "astw:px-2 astw:py-1.5 astw:text-label-sm astw:text-muted-foreground",
1892
2017
  children: n("commandPalettePages")
1893
2018
  }), v.map((e, t) => {
1894
2019
  let n = j + t, r = e.displayPath ?? e.path;
@@ -1898,18 +2023,18 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1898
2023
  type: "route",
1899
2024
  route: e
1900
2025
  }),
1901
- className: I(Z, "astw:flex-col astw:items-start", Q(n === g)),
2026
+ className: I(Bn, "astw:flex-col astw:items-start", Vn(n === g)),
1902
2027
  children: [/* @__PURE__ */ N("span", {
1903
2028
  className: "astw:truncate astw:w-full astw:text-left",
1904
2029
  children: e.breadcrumb.join(" > ")
1905
2030
  }), /* @__PURE__ */ N("span", {
1906
- className: "astw:text-[11px] astw:text-muted-foreground astw:truncate astw:w-full astw:text-left",
2031
+ className: "astw:text-body-sm astw:text-muted-foreground astw:truncate astw:w-full astw:text-left",
1907
2032
  children: r.startsWith("/") ? r : `/${r}`
1908
2033
  })]
1909
2034
  }, e.path);
1910
2035
  })] }),
1911
2036
  b && y.length > 0 && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("div", {
1912
- className: "astw:px-2 astw:py-1.5 astw:text-xs astw:font-medium astw:text-muted-foreground",
2037
+ className: "astw:px-2 astw:py-1.5 astw:text-label-sm astw:text-muted-foreground",
1913
2038
  children: b.title
1914
2039
  }), y.map((e, t) => /* @__PURE__ */ P("button", {
1915
2040
  "data-index": t,
@@ -1918,7 +2043,7 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1918
2043
  result: e,
1919
2044
  source: b
1920
2045
  }),
1921
- className: I(Z, "astw:flex-col astw:items-start", Q(t === g)),
2046
+ className: I(Bn, "astw:flex-col astw:items-start", Vn(t === g)),
1922
2047
  children: [/* @__PURE__ */ P("span", {
1923
2048
  className: "astw:flex astw:items-center astw:gap-2 astw:w-full",
1924
2049
  children: [(e.icon || b.icon) && /* @__PURE__ */ N("span", {
@@ -1929,30 +2054,30 @@ function Vn({ navItems: e, extraRoutes: t = [] }) {
1929
2054
  children: e.label
1930
2055
  })]
1931
2056
  }), e.description && /* @__PURE__ */ N("span", {
1932
- className: "astw:text-[11px] astw:text-muted-foreground astw:truncate astw:w-full astw:text-left",
2057
+ className: "astw:text-body-sm astw:text-muted-foreground astw:truncate astw:w-full astw:text-left",
1933
2058
  children: e.description
1934
2059
  })]
1935
2060
  }, `search-result-${e.key}`))] })
1936
2061
  ]
1937
2062
  }), S && /* @__PURE__ */ P("div", {
1938
- className: "astw:flex astw:items-center astw:justify-center astw:gap-2 astw:py-4 astw:text-sm astw:text-muted-foreground",
1939
- children: [/* @__PURE__ */ N(jn, {}), n("commandPaletteSearching")]
2063
+ className: "astw:flex astw:items-center astw:justify-center astw:gap-2 astw:py-4 astw:text-body-md astw:text-muted-foreground",
2064
+ children: [/* @__PURE__ */ N(Rn, {}), n("commandPaletteSearching")]
1940
2065
  })]
1941
2066
  })
1942
2067
  ]
1943
2068
  })
1944
2069
  });
1945
2070
  }
1946
- function Hn() {
2071
+ function Qn() {
1947
2072
  return null;
1948
2073
  }
1949
- function Un() {
1950
- let e = Lt(), n = ut();
2074
+ function $n() {
2075
+ let e = Ht(), n = ht();
1951
2076
  return /* @__PURE__ */ N(_, {
1952
2077
  fallback: null,
1953
2078
  children: /* @__PURE__ */ N(t, {
1954
2079
  resolve: e,
1955
- children: (e) => /* @__PURE__ */ N(Vn, {
2080
+ children: (e) => /* @__PURE__ */ N(Zn, {
1956
2081
  navItems: e ?? [],
1957
2082
  extraRoutes: [n]
1958
2083
  })
@@ -1961,13 +2086,13 @@ function Un() {
1961
2086
  }
1962
2087
  //#endregion
1963
2088
  //#region src/hooks/use-is-client.ts
1964
- var Wn = () => () => {}, Gn = () => !0, Kn = () => !1;
1965
- function qn() {
1966
- return D(Wn, Gn, Kn);
2089
+ var er = () => () => {}, tr = () => !0, nr = () => !1;
2090
+ function rr() {
2091
+ return D(er, tr, nr);
1967
2092
  }
1968
2093
  //#endregion
1969
2094
  //#region src/fs-routes/converter.tsx
1970
- function Jn(e) {
2095
+ function ir(e) {
1971
2096
  let t = {
1972
2097
  path: "",
1973
2098
  fullPath: "",
@@ -1975,7 +2100,7 @@ function Jn(e) {
1975
2100
  children: /* @__PURE__ */ new Map()
1976
2101
  };
1977
2102
  for (let n of e) {
1978
- let e = de(n.path), r = t, i = "";
2103
+ let e = fe(n.path), r = t, i = "";
1979
2104
  for (let t of e) t.type !== "group" && (i = i ? `${i}/${t.converted}` : t.converted, r.children.has(t.converted) || r.children.set(t.converted, {
1980
2105
  path: t.converted,
1981
2106
  fullPath: i,
@@ -1986,12 +2111,12 @@ function Jn(e) {
1986
2111
  }
1987
2112
  return t;
1988
2113
  }
1989
- function Yn(e, t) {
1990
- return e?.appShellPageProps?.meta?.title ?? Ue(t);
2114
+ function ar(e, t) {
2115
+ return e?.appShellPageProps?.meta?.title ?? Je(t);
1991
2116
  }
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));
2117
+ function or(e) {
2118
+ let t = e.component, n = ar(t, e.path), r = t?.appShellPageProps?.meta?.icon, i = t?.appShellPageProps?.meta?.breadcrumbTitle, a = e.guards && e.guards.length > 0 ? J(e.guards) : void 0, o = [];
2119
+ for (let t of e.children.values()) o.push(or(t));
1995
2120
  return {
1996
2121
  _type: "resource",
1997
2122
  type: "component",
@@ -2003,14 +2128,14 @@ function Xn(e) {
2003
2128
  },
2004
2129
  component: t ? () => /* @__PURE__ */ N(t, {}) : void 0,
2005
2130
  subResources: o.length > 0 ? o : void 0,
2006
- errorBoundary: /* @__PURE__ */ N(U, {}),
2131
+ errorBoundary: /* @__PURE__ */ N(G, {}),
2007
2132
  guards: e.guards,
2008
2133
  loader: a
2009
2134
  };
2010
2135
  }
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));
2136
+ function sr(e) {
2137
+ let t = e.component, n = ar(t, e.path), r = t?.appShellPageProps?.meta?.icon, i = t?.appShellPageProps?.meta?.breadcrumbTitle, a = e.guards && e.guards.length > 0 ? J(e.guards) : void 0, o = [];
2138
+ for (let t of e.children.values()) o.push(or(t));
2014
2139
  return {
2015
2140
  _type: "module",
2016
2141
  type: "component",
@@ -2023,38 +2148,38 @@ function Zn(e) {
2023
2148
  },
2024
2149
  component: t ? () => /* @__PURE__ */ N(t, {}) : void 0,
2025
2150
  resources: o,
2026
- errorBoundary: /* @__PURE__ */ N(U, {}),
2151
+ errorBoundary: /* @__PURE__ */ N(G, {}),
2027
2152
  guards: e.guards,
2028
2153
  loader: a
2029
2154
  };
2030
2155
  }
2031
- function Qn(e) {
2156
+ function cr(e) {
2032
2157
  if (e.length === 0) return [];
2033
- let t = Jn(e), n = [];
2158
+ let t = ir(e), n = [];
2034
2159
  if (t.component) {
2035
- let e = Zn({
2160
+ let e = sr({
2036
2161
  ...t,
2037
2162
  path: "",
2038
2163
  children: /* @__PURE__ */ new Map()
2039
2164
  });
2040
2165
  n.push(e);
2041
2166
  }
2042
- for (let e of t.children.values()) n.push(Zn(e));
2167
+ for (let e of t.children.values()) n.push(sr(e));
2043
2168
  return n;
2044
2169
  }
2045
2170
  //#endregion
2046
2171
  //#region src/components/appshell/appshell.tsx
2047
2172
  var $ = (e) => {
2048
- let t = qn();
2049
- ze(e.contextData ?? {});
2173
+ let t = rr();
2174
+ We(e.contextData ?? {});
2050
2175
  let { modules: n, rootComponent: r, rootGuards: i } = e, a = e.memory ? {
2051
2176
  memory: !0,
2052
2177
  initialEntries: e.initialEntries
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({
2178
+ } : { 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 ? [Xe({
2054
2179
  path: "",
2055
2180
  ...r ? {
2056
2181
  meta: {
2057
- title: Le.t("home"),
2182
+ title: Re.t("home"),
2058
2183
  icon: /* @__PURE__ */ N(ne, {})
2059
2184
  },
2060
2185
  component: () => r()
@@ -2065,7 +2190,7 @@ var $ = (e) => {
2065
2190
  n,
2066
2191
  r,
2067
2192
  i
2068
- ]), s = C(() => o ? ke({
2193
+ ]), s = C(() => o ? Ae({
2069
2194
  modules: o,
2070
2195
  settingsResources: e.settingsResources,
2071
2196
  basePath: e.basePath,
@@ -2098,11 +2223,13 @@ var $ = (e) => {
2098
2223
  className: "astw:flex astw:min-h-screen astw:items-center astw:justify-center astw:bg-background astw:p-4",
2099
2224
  children: /* @__PURE__ */ P("div", {
2100
2225
  className: "astw:max-w-md astw:rounded-lg astw:border astw:border-danger-border astw:bg-danger-surface astw:p-6 astw:text-center",
2101
- children: [/* @__PURE__ */ N("h1", {
2102
- className: "astw:mb-2 astw:text-lg astw:font-semibold astw:text-danger-text",
2226
+ children: [/* @__PURE__ */ N(W.h1, {
2227
+ variant: "heading-md",
2228
+ className: "astw:mb-2 astw:text-danger-text",
2103
2229
  children: "Configuration Error"
2104
- }), /* @__PURE__ */ N("p", {
2105
- className: "astw:text-sm astw:text-muted-foreground",
2230
+ }), /* @__PURE__ */ N(W, {
2231
+ variant: "body-md",
2232
+ className: "astw:text-muted-foreground",
2106
2233
  children: e
2107
2234
  })]
2108
2235
  })
@@ -2110,15 +2237,15 @@ var $ = (e) => {
2110
2237
  }
2111
2238
  return t ? /* @__PURE__ */ N(B.Provider, {
2112
2239
  value: c,
2113
- children: /* @__PURE__ */ N(Ae.Provider, {
2240
+ children: /* @__PURE__ */ N(je.Provider, {
2114
2241
  value: l,
2115
- children: /* @__PURE__ */ N(et, { children: /* @__PURE__ */ N(yt, {
2242
+ children: /* @__PURE__ */ N(at, { children: /* @__PURE__ */ N(wt, {
2116
2243
  defaultColorTheme: e.defaultColorTheme,
2117
- children: /* @__PURE__ */ N(cn, {
2244
+ children: /* @__PURE__ */ N(pn, {
2118
2245
  ...a,
2119
- children: /* @__PURE__ */ P(un, {
2246
+ children: /* @__PURE__ */ P(hn, {
2120
2247
  searchSources: e.searchSources,
2121
- children: [e.children, /* @__PURE__ */ N(Un, {})]
2248
+ children: [e.children, /* @__PURE__ */ N($n, {})]
2122
2249
  })
2123
2250
  })
2124
2251
  }) })
@@ -2126,18 +2253,18 @@ var $ = (e) => {
2126
2253
  }) : null;
2127
2254
  };
2128
2255
  $.WithPages = (e) => {
2129
- let t = Qn(e);
2256
+ let t = cr(e);
2130
2257
  return (e) => /* @__PURE__ */ N($, {
2131
2258
  ...e,
2132
2259
  modules: t,
2133
2260
  memory: !1
2134
2261
  });
2135
2262
  };
2136
- var $n = (e) => /* @__PURE__ */ N($, {
2263
+ var lr = (e) => /* @__PURE__ */ N($, {
2137
2264
  ...e,
2138
2265
  memory: !1
2139
2266
  });
2140
- $n.WithPages = $.WithPages;
2141
- var er = $n;
2267
+ lr.WithPages = $.WithPages;
2268
+ var ur = lr;
2142
2269
  //#endregion
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 };
2270
+ export { Ne as A, _e as B, Ze as C, W as D, qe as E, z as F, I as H, R as I, we as L, Me as M, Pe as N, H as O, Fe as P, Ce as R, Xe as S, Ge as T, me as V, Ot as _, Rn as a, ct as b, Fn as c, yn as d, _n as f, Y as g, Ht as h, zn as i, V as j, Le as k, Q as l, rn as m, $ as n, In as o, an as p, Qn as r, Pn as s, ur as t, vn as u, vt as v, Ke as w, rt as x, Tt as y, L as z };