@viglet/viglet-design-system 2026.3.5 → 2026.3.9

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 (63) hide show
  1. package/README.md +33 -13
  2. package/dist/{badge-locale-BxI9TwkE.js → badge-locale-CoEEv7s5.js} +98 -96
  3. package/dist/badge-locale-hQyWhAKe.cjs +7 -0
  4. package/dist/bento/bento-back-to-top.d.ts.map +1 -1
  5. package/dist/bento.cjs +1 -1
  6. package/dist/bento.es.js +56 -56
  7. package/dist/{breadcrumb.context-CGqjI0-U.js → breadcrumb.context-KQut7j8U.js} +30 -27
  8. package/dist/breadcrumb.context-Vwc3lAlf.cjs +1 -0
  9. package/dist/components/login/login.d.ts.map +1 -1
  10. package/dist/components/router/grid.list.d.ts.map +1 -1
  11. package/dist/components/router/sticky.page.header.d.ts.map +1 -1
  12. package/dist/components/router/sub.page.header.d.ts.map +1 -1
  13. package/dist/components/startup-first/startup-first.d.ts.map +1 -1
  14. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  15. package/dist/components/ui/dialog.d.ts.map +1 -1
  16. package/dist/components/ui/pagination.d.ts.map +1 -1
  17. package/dist/components/ui/sheet.d.ts.map +1 -1
  18. package/dist/components/ui/sidebar.d.ts.map +1 -1
  19. package/dist/exports.json +1 -1
  20. package/dist/i18n/index.d.ts +28 -0
  21. package/dist/i18n/index.d.ts.map +1 -1
  22. package/dist/i18n/locales/en/bento.json.d.ts +2 -1
  23. package/dist/i18n/locales/en/common.json.d.ts +10 -1
  24. package/dist/i18n/locales/en/dialog.json.d.ts +2 -1
  25. package/dist/i18n/locales/en/sidebar.json.d.ts +4 -1
  26. package/dist/i18n/locales/pt/bento.json.d.ts +2 -1
  27. package/dist/i18n/locales/pt/common.json.d.ts +10 -1
  28. package/dist/i18n/locales/pt/dialog.json.d.ts +2 -1
  29. package/dist/i18n/locales/pt/sidebar.json.d.ts +4 -1
  30. package/dist/{i18n-DuNITbWa.js → i18n-DD3rQOWi.js} +36 -8
  31. package/dist/i18n-DrBq-qJJ.cjs +1 -0
  32. package/dist/i18n.cjs +1 -1
  33. package/dist/i18n.es.js +1 -1
  34. package/dist/index.cjs +1 -1
  35. package/dist/index.es.js +43 -34
  36. package/dist/{loading-provider-CMnOuvdR.js → loading-provider-BWWhhfEn.js} +12 -12
  37. package/dist/{loading-provider-1mgM91iY.cjs → loading-provider-CmeMqLGk.cjs} +1 -1
  38. package/dist/preset.css +41 -14
  39. package/dist/router.cjs +1 -1
  40. package/dist/router.es.js +134 -133
  41. package/dist/{user.context-r50nSWER.cjs → user.context-B9vIBzY5.cjs} +1 -1
  42. package/dist/{user.context-kPAqKN4o.js → user.context-D1PxP4D4.js} +16 -16
  43. package/dist/viglet-design-system.css +1 -1
  44. package/dist/vite/boot-loader.d.ts +4 -2
  45. package/dist/vite/boot-loader.d.ts.map +1 -1
  46. package/docs/BENTO-AUTHORING.md +225 -0
  47. package/docs/BENTO-BOUNDARY.md +114 -0
  48. package/docs/reference/README.md +46 -0
  49. package/docs/reference/canvas.json +108 -0
  50. package/docs/reference/detail.dc.html +167 -0
  51. package/docs/reference/form-hero.dc.html +135 -0
  52. package/docs/reference/grounds.dc.html +140 -0
  53. package/docs/reference/list.dc.html +147 -0
  54. package/docs/reference/page-anatomy.dc.html +173 -0
  55. package/docs/reference/panel.dc.html +119 -0
  56. package/docs/reference/primary.dc.html +132 -0
  57. package/docs/reference/reading-column.dc.html +116 -0
  58. package/docs/reference/shell.dc.html +133 -0
  59. package/package.json +9 -4
  60. package/scripts/page-reference.mjs +298 -0
  61. package/dist/badge-locale-sIsBdP_e.cjs +0 -7
  62. package/dist/breadcrumb.context-DYeZEC65.cjs +0 -1
  63. package/dist/i18n-DoNdMLEd.cjs +0 -1
@@ -0,0 +1,133 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <script src="./support.js"></script>
6
+ </head>
7
+ <body>
8
+ <x-dc>
9
+ <helmet>
10
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700&display=swap">
11
+ <style>
12
+ body { margin: 0; background: #ffffff; }
13
+ /* Opened straight from the file tree, `x-dc` is an unknown element and so
14
+ lays out inline, and `helmet` would render its own contents as text. The
15
+ canvas runtime replaces both; these two rules only matter for the raw
16
+ open, which is how a reader in this repository will look at it. */
17
+ x-dc { display: block; }
18
+ helmet { display: none; }
19
+ a { color: #1447e6; text-decoration: none; }
20
+ a:hover { color: #193cb8; }
21
+ .vg { font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; -webkit-font-smoothing: antialiased; }
22
+ .mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
23
+ .eyebrow { font-size: 10.5px; font-weight: 600; letter-spacing: 0.09em; color: #1447e6; }
24
+ .pin { display: inline-flex; align-items: center; justify-content: center; width: 17px; height: 17px; border-radius: 999px; background: #1447e6; color: #ffffff; font-size: 10.5px; font-weight: 700; flex: 0 0 auto; }
25
+ .req { display: inline-flex; align-items: center; height: 17px; padding: 0 6px; border-radius: 5px; background: #171717; color: #fafafa; font-size: 9.5px; font-weight: 600; letter-spacing: 0.04em; }
26
+ .opt { display: inline-flex; align-items: center; height: 17px; padding: 0 6px; border-radius: 5px; border: 1px solid #e5e5e5; color: #737373; font-size: 9.5px; font-weight: 600; letter-spacing: 0.04em; }
27
+ </style>
28
+ </helmet>
29
+
30
+ <div class="vg" style="position:relative;width:1280px;height:760px;background:#fafafa;color:#0a0a0a;overflow:hidden;display:flex;flex-direction:column">
31
+
32
+ <div style="padding:16px 24px 0">
33
+ <div class="eyebrow">REFERENCE</div>
34
+ <div style="display:flex;align-items:baseline;gap:12px;margin-top:4px">
35
+ <div style="font-size:21px;font-weight:600;letter-spacing:-0.015em">The shell</div>
36
+ <div style="font-size:12.5px;color:#737373">Adopt it before the pages. Three pieces, no provider, no context between them.</div>
37
+ </div>
38
+ </div>
39
+
40
+ <!-- the shell -->
41
+ <div style="margin:14px 24px 0;flex:1;min-height:0;position:relative;border-radius:14px;background:#ffffff;border:1px solid #e5e5e5;overflow:hidden;box-shadow:0 24px 50px -36px rgba(0,0,0,0.4)">
42
+
43
+ <!-- rail: w-16, hidden below md, items start below the header -->
44
+ <div style="position:absolute;left:0;top:0;bottom:0;width:64px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:4px;padding:80px 0 16px;background:rgba(255,255,255,0.55);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-right:1px solid rgba(229,229,229,0.4)">
45
+ <div style="display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;border:1px solid rgba(23,23,23,0.4);background:rgba(23,23,23,0.09);color:#171717" title="aria-current=page">
46
+ <svg width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 11.5 12 5l8 6.5"></path><path d="M6 10.5V19h12v-8.5"></path></svg>
47
+ </div>
48
+ <div style="display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;color:#737373"><svg width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="7" height="7" rx="2"></rect><rect x="13" y="4" width="7" height="7" rx="2"></rect><rect x="4" y="13" width="7" height="7" rx="2"></rect></svg></div>
49
+ <div style="display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;color:#737373"><svg width="19" height="19" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6h11M9 12h11M9 18h11"></path><path d="M4.5 6h.01M4.5 12h.01M4.5 18h.01"></path></svg></div>
50
+ <div style="flex:1"></div>
51
+ <div class="mono" style="font-size:9px;color:#a1a1a1;transform:rotate(180deg);writing-mode:vertical-rl">64px</div>
52
+ </div>
53
+
54
+ <!-- header -->
55
+ <div style="position:absolute;left:0;right:0;top:0;height:80px;z-index:4;display:flex;align-items:center;gap:10px;padding:0 20px 0 16px;background:rgba(255,255,255,0.55);backdrop-filter:blur(16px) saturate(150%);-webkit-backdrop-filter:blur(16px) saturate(150%);border-bottom:1px solid rgba(229,229,229,0.4)">
56
+ <span class="pin">1</span>
57
+ <div style="display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;background-image:linear-gradient(to bottom right,#155dfc,#4f39f6);color:#ffffff"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round"><path d="M5 12h14M12 5v14"></path></svg></div>
58
+ <div style="font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-size:16px;font-weight:600;letter-spacing:-0.015em">Product</div>
59
+
60
+ <span class="pin">2</span>
61
+ <div style="display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #e5e5e5;border-radius:8px;color:#525252"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 6l-6 6 6 6"></path></svg></div>
62
+
63
+ <span class="pin">3</span>
64
+ <div style="display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border:1px solid #e5e5e5;border-radius:10px;background:#ffffff;min-width:210px">
65
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#737373" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"></circle><path d="M21 21l-4.4-4.4"></path></svg>
66
+ <span style="font-size:12.5px;color:#737373;flex:1">Search</span>
67
+ <span class="mono" style="display:inline-flex;align-items:center;height:19px;padding:0 5px;border:1px solid #e5e5e5;border-radius:5px;font-size:10px;color:#737373">Ctrl K</span>
68
+ </div>
69
+
70
+ <div style="flex:1"></div>
71
+ <span class="pin">4</span>
72
+ <div style="display:inline-flex;align-items:center;height:28px;padding:0 9px;border:1px solid #e5e5e5;border-radius:8px;font-size:11.5px;color:#525252">EN</div>
73
+ <span class="pin">5</span>
74
+ <div style="display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #e5e5e5;border-radius:8px;color:#525252"><svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round"><circle cx="12" cy="12" r="4"></circle><path d="M12 3v2M12 19v2M3 12h2M19 12h2"></path></svg></div>
75
+ <span class="pin">6</span>
76
+ <div style="width:28px;height:28px;border-radius:999px;background:#f5f5f5;border:1px solid #e5e5e5"></div>
77
+ </div>
78
+ <div class="mono" style="position:absolute;left:74px;top:58px;z-index:5;font-size:9px;color:#a1a1a1">header 80px, so the rail's items start at 80</div>
79
+
80
+ <!-- routed page, in the gutter the rail reserves -->
81
+ <div style="position:absolute;left:64px;right:0;top:80px;bottom:0;overflow:hidden">
82
+ <div style="max-width:1120px;margin:0 auto;padding:28px 32px">
83
+ <div style="display:flex;align-items:center;gap:9px;margin-bottom:16px">
84
+ <span class="pin">7</span>
85
+ <span class="mono" style="font-size:10.5px;color:#737373">main: the shell's column, set once</span>
86
+ </div>
87
+ <div style="height:12px;width:150px;border-radius:999px;background:#ededed;margin-bottom:12px"></div>
88
+ <div style="height:26px;width:340px;border-radius:8px;background:#e6e6e6;margin-bottom:9px"></div>
89
+ <div style="height:11px;width:470px;border-radius:999px;background:#f0f0f0;margin-bottom:22px"></div>
90
+ <div style="display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:14px">
91
+ <div style="height:104px;border-radius:24px;background:rgba(255,255,255,0.72);border:1px solid rgba(229,229,229,0.7);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%)"></div>
92
+ <div style="height:104px;border-radius:24px;background:rgba(255,255,255,0.72);border:1px solid rgba(229,229,229,0.7);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%)"></div>
93
+ <div style="height:104px;border-radius:24px;background:rgba(255,255,255,0.72);border:1px solid rgba(229,229,229,0.7);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%)"></div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+
98
+ <!-- back to top -->
99
+ <div style="position:absolute;right:20px;bottom:20px;z-index:5;display:flex;align-items:center;gap:8px">
100
+ <span class="pin">8</span>
101
+ <div style="display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:999px;background:rgba(255,255,255,0.86);backdrop-filter:blur(18px);border:1px solid rgba(229,229,229,0.7);box-shadow:0 10px 22px -12px rgba(0,0,0,0.3);color:#404040"><svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 19V6M6 12l6-6 6 6"></path></svg></div>
102
+ </div>
103
+ </div>
104
+
105
+ <!-- the set -->
106
+ <div style="margin:14px 24px 18px;display:grid;grid-template-columns:1fr 1fr 300px;gap:18px;align-items:start">
107
+ <div>
108
+ <div class="eyebrow" style="color:#737373;margin-bottom:7px">THE HEADER, IN THIS ORDER</div>
109
+ <div style="display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:#404040">
110
+ <div style="display:flex;align-items:center;gap:7px"><span class="pin">1</span>Mark and wordmark <span class="req">REQUIRED</span></div>
111
+ <div style="display:flex;align-items:center;gap:7px"><span class="pin">2</span>Back, by route hierarchy <span class="opt">WHERE THERE IS A PARENT</span></div>
112
+ <div style="display:flex;align-items:center;gap:7px"><span class="pin">3</span>Palette trigger, with the platform's own hint <span class="req">REQUIRED</span></div>
113
+ </div>
114
+ </div>
115
+ <div>
116
+ <div class="eyebrow" style="color:#737373;margin-bottom:7px">AND ON THE TRAILING EDGE</div>
117
+ <div style="display:flex;flex-direction:column;gap:5px;font-size:11.5px;color:#404040">
118
+ <div style="display:flex;align-items:center;gap:7px"><span class="pin">4</span>Locale <span class="opt">WHERE A SECOND ONE SHIPS</span></div>
119
+ <div style="display:flex;align-items:center;gap:7px"><span class="pin">5</span>Ground <span class="req">REQUIRED</span></div>
120
+ <div style="display:flex;align-items:center;gap:7px"><span class="pin">6</span>User menu <span class="opt">WHERE THERE IS AN ACCOUNT</span></div>
121
+ <div style="display:flex;align-items:center;gap:7px"><span class="pin">8</span>Back to top <span class="req">REQUIRED</span></div>
122
+ </div>
123
+ </div>
124
+ <div style="border:1px solid rgba(251,44,54,0.3);background:rgba(251,44,54,0.05);border-radius:12px;padding:10px 12px">
125
+ <div class="eyebrow" style="color:#c10007;margin-bottom:5px">TWO THINGS THE HEADER IS NOT</div>
126
+ <div style="font-size:11px;color:#404040;line-height:1.45">A second always-visible nav: the rail is the nav and the palette is the mobile one. And a surface's own controls -- a switcher, a pending count -- which belong to the surface that owns them, not to every page that renders under it.</div>
127
+ </div>
128
+ </div>
129
+
130
+ </div>
131
+ </x-dc>
132
+ </body>
133
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viglet/viglet-design-system",
3
- "version": "2026.3.5",
3
+ "version": "2026.3.9",
4
4
  "type": "module",
5
5
  "description": "Viglet Design System - Shared components, hooks, utilities and design tokens for Viglet products",
6
6
  "license": "Apache-2.0",
@@ -61,11 +61,16 @@
61
61
  }
62
62
  },
63
63
  "bin": {
64
- "viglet-ds-check-duplicates": "./scripts/check-duplicates.mjs"
64
+ "viglet-ds-check-duplicates": "./scripts/check-duplicates.mjs",
65
+ "viglet-ds-page-reference": "./scripts/page-reference.mjs"
65
66
  },
66
67
  "files": [
67
68
  "dist",
68
- "scripts/check-duplicates.mjs"
69
+ "scripts/check-duplicates.mjs",
70
+ "scripts/page-reference.mjs",
71
+ "docs/BENTO-AUTHORING.md",
72
+ "docs/BENTO-BOUNDARY.md",
73
+ "docs/reference"
69
74
  ],
70
75
  "sideEffects": [
71
76
  "**/*.css"
@@ -129,7 +134,7 @@
129
134
  "@storybook/addon-a11y": "^10.3.5",
130
135
  "@storybook/addon-docs": "^10.3.5",
131
136
  "@storybook/addon-themes": "^10.3.5",
132
- "@storybook/addon-vitest": "10.5.10",
137
+ "@storybook/addon-vitest": "10.6.0",
133
138
  "@storybook/react-vite": "^10.3.5",
134
139
  "@tailwindcss/typography": "^0.5.19",
135
140
  "@tailwindcss/vite": "^4.2.2",
@@ -0,0 +1,298 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Vendor this package's page reference into a consuming repository.
4
+ *
5
+ * The catalogue answers "does this component exist". What it cannot answer is
6
+ * "does this page read as the same product", and the answer to that lives in
7
+ * two documents and nine artboards which are not in anybody's `node_modules`
8
+ * by reading them: a contract a product author has to browse a repository to
9
+ * find is one they read after the fifth screen, which is what BENTO-AUTHORING's
10
+ * own opening warns against.
11
+ *
12
+ * So the surfaces are written into the consumer, where an agent session and a
13
+ * person both trip over them. Two disciplines, borrowed rather than invented:
14
+ *
15
+ * copy rewritten on every run, and drift is a finding. Every byte is
16
+ * this package's statement; a vendored authority that has drifted
17
+ * is worse than none, because it is read with the same trust.
18
+ * declaration this project's entries re-derived inside a file the adopter
19
+ * also writes in. Compared as parsed JSON, never as bytes: their
20
+ * indentation is not drift, and a check that fails on whitespace
21
+ * is a check nobody leaves switched on.
22
+ *
23
+ * Usage:
24
+ * viglet-ds-page-reference [--root <dir>] [--canvas-dir <rel>]
25
+ * viglet-ds-page-reference --check # report, write nothing, exit 1 on drift
26
+ *
27
+ * --root <dir> the consuming repository (default: the working directory)
28
+ * --canvas-dir <rel> where the artboards go (default: docs/design)
29
+ * --check report what would change and write nothing
30
+ * --json machine-readable form
31
+ * --warn report drift and still exit 0
32
+ */
33
+
34
+ import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"
35
+ import { dirname, join, resolve } from "node:path"
36
+ import { fileURLToPath } from "node:url"
37
+
38
+ const here = dirname(fileURLToPath(import.meta.url))
39
+ /** The package root, whether that is this checkout or a `node_modules` copy. */
40
+ const payload = resolve(here, "..")
41
+
42
+ const argv = process.argv.slice(2)
43
+ function flag(name) {
44
+ return argv.includes(`--${name}`)
45
+ }
46
+ function value(name, fallback) {
47
+ const at = argv.indexOf(`--${name}`)
48
+ return at === -1 || at === argv.length - 1 ? fallback : argv[at + 1]
49
+ }
50
+
51
+ const root = resolve(value("root", process.cwd()))
52
+ const canvasDir = value("canvas-dir", "docs/design")
53
+ const checking = flag("check")
54
+ const asJson = flag("json")
55
+ const warnOnly = flag("warn")
56
+
57
+ const version = JSON.parse(readFileSync(join(payload, "package.json"), "utf8")).version
58
+
59
+ const SKILL_DIR = ".claude/skills/viglet-ds-pages"
60
+ const SKILL = `${SKILL_DIR}/SKILL.md`
61
+ const REFERENCE = join(payload, "docs", "reference")
62
+
63
+ /**
64
+ * The one file written new rather than copied, and it states no rule of its own
65
+ * -- it says which pages hold them and where the artboards landed in *this*
66
+ * repository, which is the one fact the package cannot know.
67
+ */
68
+ function orientation(dir, artboards) {
69
+ return `---
70
+ name: viglet-ds-pages
71
+ description: Building or changing a page with @viglet/viglet-design-system/bento -- the shell, the three page shapes, the panel, and which tokens a product claims. Load before the first screen, and before adding a region to one.
72
+ vds-version: ${version}
73
+ ---
74
+
75
+ # Pages in the Viglet design system
76
+
77
+ This is vendored from \`@viglet/viglet-design-system@${version}\` and refreshed by
78
+ \`viglet-ds-page-reference\`. Do not edit these files here: the next run rewrites them, and
79
+ a correction belongs in the package so every consumer gets it.
80
+
81
+ ## Read first
82
+
83
+ - **[authoring.md](authoring.md)** -- the contract. The shell and who owns each region, the
84
+ three page shapes, the panel, colour and the tokens a product claims, i18n, accessibility,
85
+ responsive, tests. Read it before the first screen, not after the fifth.
86
+ - **[boundary.md](boundary.md)** -- which components are the shared layer and which stay in
87
+ a product, and why.
88
+
89
+ ## And look at
90
+
91
+ \`${dir}/vds-*.dc.html\` -- ${artboards} artboards, the contract drawn: every region of a page
92
+ with an ownership key, the reading column owned two ways, what \`--primary\` reaches, the page
93
+ shapes, the panel, and both grounds with their ratios. They are laid out by
94
+ \`${dir}/canvas.json\`, whose \`vds-\` pages and artboards belong to the package; everything
95
+ else in that file is this repository's own and is preserved.
96
+
97
+ An artboard opens in a browser straight from the file tree.
98
+
99
+ ## Two rules that are easy to get wrong
100
+
101
+ - A page sets no max width, no gutters and no vertical rhythm. The shell sets them once.
102
+ - A product claims \`--primary\` through the four \`--vg-primary-*-base\` inputs at \`:root\`,
103
+ never by setting \`--vg-primary\` itself, which would key the dark ground to the light value.
104
+
105
+ ## Checking it is current
106
+
107
+ \`\`\`bash
108
+ viglet-ds-page-reference --check
109
+ \`\`\`
110
+ `
111
+ }
112
+
113
+ /** A verbatim copy, rewritten every run. Drift is the finding. */
114
+ function copied(to, text) {
115
+ const at = join(root, to)
116
+ const existed = existsSync(at)
117
+ const drifted = !existed || readFileSync(at, "utf8") !== text
118
+ return { to, kind: "copy", text, existed, drifted }
119
+ }
120
+
121
+ const artboards = existsSync(REFERENCE)
122
+ ? readdirSync(REFERENCE)
123
+ .filter((name) => name.endsWith(".dc.html"))
124
+ .sort()
125
+ : []
126
+
127
+ if (artboards.length === 0) {
128
+ console.error(`No artboards in ${REFERENCE}. This is not a copy of the package that ships them.`)
129
+ process.exit(1)
130
+ }
131
+
132
+ /**
133
+ * The consumer's own canvas, with this package's pages re-derived inside it.
134
+ *
135
+ * Their artboards, their pages, their notes and their launch view are carried
136
+ * through untouched. Ours are recognised by the `vds-` prefix and replaced, so
137
+ * an artboard the package drops stops being listed rather than lingering.
138
+ */
139
+ function declaration() {
140
+ const to = `${canvasDir}/canvas.json`
141
+ const at = join(root, to)
142
+ const ours = JSON.parse(readFileSync(join(REFERENCE, "canvas.json"), "utf8"))
143
+ const mine = (name) => name.startsWith("vds-")
144
+
145
+ let current = null
146
+ if (existsSync(at)) {
147
+ try {
148
+ current = JSON.parse(readFileSync(at, "utf8"))
149
+ } catch {
150
+ console.error(`${to} is not JSON this can merge into. Fix or move it; nothing was written.`)
151
+ process.exit(1)
152
+ }
153
+ if (current === null || typeof current !== "object" || Array.isArray(current)) {
154
+ console.error(`${to} is not a JSON object. Nothing was written.`)
155
+ process.exit(1)
156
+ }
157
+ }
158
+
159
+ const theirs = current ?? {}
160
+ const merged = {
161
+ ...theirs,
162
+ pages: [...(theirs.pages ?? []).filter((p) => !mine(p.id)), ...ours.pages],
163
+ artboards: [
164
+ ...(theirs.artboards ?? []).filter((a) => !mine(a.file)),
165
+ ...ours.artboards.map((a) => ({ ...a, file: `vds-${a.file}` })),
166
+ ],
167
+ annotations: [
168
+ ...(theirs.annotations ?? []).filter((n) => !mine(n.id)),
169
+ ...(ours.annotations ?? []),
170
+ ],
171
+ // Their opening view, or ours only where they have none.
172
+ launch: theirs.launch ?? ours.launch,
173
+ }
174
+
175
+ const text = `${JSON.stringify(merged, null, 2)}\n`
176
+ return {
177
+ to,
178
+ kind: "declaration",
179
+ text,
180
+ existed: current !== null,
181
+ // Parsed, not byte-compared: their formatter is not drift.
182
+ drifted: current === null || JSON.stringify(current) !== JSON.stringify(merged),
183
+ }
184
+ }
185
+
186
+ const surfaces = [
187
+ copied(SKILL, orientation(canvasDir, artboards.length)),
188
+ copied(`${SKILL_DIR}/authoring.md`, readFileSync(join(payload, "docs", "BENTO-AUTHORING.md"), "utf8")),
189
+ copied(`${SKILL_DIR}/boundary.md`, readFileSync(join(payload, "docs", "BENTO-BOUNDARY.md"), "utf8")),
190
+ ...artboards.map((name) =>
191
+ copied(`${canvasDir}/vds-${name}`, readFileSync(join(REFERENCE, name), "utf8")),
192
+ ),
193
+ declaration(),
194
+ ]
195
+
196
+ /**
197
+ * Which direction the surfaces are behind in.
198
+ *
199
+ * Where the vendored skill was written by a newer package than the one running,
200
+ * "refresh" means downgrade and every word of a drift report would be wrong. So
201
+ * it is named and refused instead.
202
+ */
203
+ const wired = existsSync(join(root, SKILL))
204
+ const stamped = wired
205
+ ? (/^vds-version:\s*(\S+)\s*$/m.exec(readFileSync(join(root, SKILL), "utf8"))?.[1] ?? null)
206
+ : null
207
+ const ahead =
208
+ stamped !== null &&
209
+ stamped !== version &&
210
+ stamped.localeCompare(version, undefined, { numeric: true }) > 0
211
+
212
+ const changing = surfaces.filter((s) => s.drifted)
213
+
214
+ /**
215
+ * A `vds-` artboard this package no longer ships.
216
+ *
217
+ * Part of the plan rather than a sweep at the end of a write: a reference that
218
+ * dropped an artboard and left it behind in every consumer is drift in the one
219
+ * direction a copy cannot fix, and it has to be reported by `--check` for the
220
+ * gate to mean what it says.
221
+ */
222
+ const shipped = new Set(artboards.map((name) => `vds-${name}`))
223
+ const orphans = existsSync(join(root, canvasDir))
224
+ ? readdirSync(join(root, canvasDir))
225
+ .filter((name) => name.startsWith("vds-") && name.endsWith(".dc.html") && !shipped.has(name))
226
+ .map((name) => `${canvasDir}/${name}`)
227
+ : []
228
+
229
+ /** created / updated, in the conditional under `--check` and the past tense after a write. */
230
+ function state(surface) {
231
+ if (!surface.drifted) return "unchanged"
232
+ if (!surface.existed) return checking ? "would create" : "created"
233
+ return checking ? "would update" : "updated"
234
+ }
235
+
236
+ function code() {
237
+ if (!wired) return "page-reference.absent"
238
+ return changing.length > 0 || orphans.length > 0 ? "page-reference.stale" : null
239
+ }
240
+
241
+ if (asJson) {
242
+ console.log(
243
+ JSON.stringify(
244
+ {
245
+ version,
246
+ root,
247
+ canvasDir,
248
+ wired,
249
+ stamped,
250
+ ahead,
251
+ code: code(),
252
+ surfaces: surfaces.map((s) => ({ to: s.to, kind: s.kind, state: state(s) })),
253
+ orphans,
254
+ },
255
+ null,
256
+ 2,
257
+ ),
258
+ )
259
+ } else if (ahead) {
260
+ console.error(
261
+ `\n${SKILL} was written by ${stamped} and this package is ${version}: the surfaces here are ` +
262
+ `ahead, not behind.\nRefreshing them would be a downgrade, so nothing was written. Upgrade ` +
263
+ `the package, or run this from the checkout that matches.`,
264
+ )
265
+ process.exit(1)
266
+ } else if (!wired && checking) {
267
+ // The vendored skill is the discriminator: an unwired project pays one stat
268
+ // and is told what it is missing, rather than reading nine lines of drift.
269
+ console.log(`\npage-reference.absent ${root}`)
270
+ console.log(` This repository has no vendored page reference.`)
271
+ console.log(` Without it a session has no contract for the shell, the page shapes or the`)
272
+ console.log(` tokens a product claims -- the four decisions that make two products built`)
273
+ console.log(` from this package stop looking like one.`)
274
+ console.log(`\n viglet-ds-page-reference writes ${surfaces.length} surface(s)`)
275
+ } else if (changing.length === 0 && orphans.length === 0) {
276
+ console.log(`\nThe page reference is current (${version}), ${surfaces.length} surface(s).`)
277
+ } else {
278
+ const heading = checking ? "page-reference.stale" : `Writing into ${root}`
279
+ console.log(`\n${heading} ${version}`)
280
+ for (const s of surfaces) {
281
+ console.log(` ${state(s).padEnd(13)} ${s.to}`)
282
+ }
283
+ for (const orphan of orphans) {
284
+ console.log(` ${(checking ? "would remove" : "removed").padEnd(13)} ${orphan}`)
285
+ }
286
+ if (!checking) {
287
+ for (const s of changing) {
288
+ const at = join(root, s.to)
289
+ mkdirSync(dirname(at), { recursive: true })
290
+ writeFileSync(at, s.text, "utf8")
291
+ }
292
+ for (const orphan of orphans) rmSync(join(root, orphan))
293
+ console.log(`\nDone. Wire \`viglet-ds-page-reference --check\` into this repository's lint.`)
294
+ }
295
+ }
296
+
297
+ const drifting = !wired || changing.length > 0 || orphans.length > 0
298
+ process.exit(checking && drifting && !warnOnly ? 1 : 0)
@@ -1,7 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs");let t=require("clsx"),n=require("tailwind-merge"),r=require("react");r=e.t(r,1);let i=require("react/jsx-runtime"),a=require("@radix-ui/react-slot"),o=require("class-variance-authority"),s=require("@radix-ui/react-dialog");s=e.t(s,1);let c=require("@radix-ui/react-dropdown-menu");c=e.t(c,1);let l=require("@radix-ui/react-tooltip");l=e.t(l,1);function u(...e){return(0,n.twMerge)((0,t.clsx)(e))}function d(e){let[t=``,n]=e.trim().replaceAll(`-`,`_`).toUpperCase().split(`_`);return{language:t,region:n?.length===2?n:null}}var f=(e,t=10)=>{if(!e||e.length<=t)return e??``;if(t<3)return`...`.slice(0,Math.max(t,0));let n=t-3,r=Math.ceil(n/2),i=Math.floor(n/2);return e.substring(0,r)+`...`+e.substring(e.length-i)},p=e=>{let{region:t}=d(e);return t?t.split(``).map(e=>String.fromCodePoint((e.codePointAt(0)??0)+127397)).join(``):`🌐`},m=e=>{let t=0;for(let n=0;n<e.length;n++)t=(e.codePointAt(n)??0)+((t<<5)-t);let n=Math.abs(t)%360;return{h:n,light:{bg:`hsl(${n}, 70%, 95%)`,text:`hsl(${n}, 70%, 20%)`,border:`hsl(${n}, 70%, 90%)`},dark:{bg:`hsl(${n}, 50%, 15%)`,text:`hsl(${n}, 80%, 80%)`,border:`hsl(${n}, 50%, 25%)`}}},h=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),g=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),ee=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),_=e=>{let t=ee(e);return t.charAt(0).toUpperCase()+t.slice(1)},v={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},y=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},b=(0,r.createContext)({}),te=()=>(0,r.useContext)(b),ne=(0,r.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:i,className:a=``,children:o,iconNode:s,...c},l)=>{let{size:u=24,strokeWidth:d=2,absoluteStrokeWidth:f=!1,color:p=`currentColor`,className:m=``}=te()??{},g=i??f?Number(n??d)*24/Number(t??u):n??d;return(0,r.createElement)(`svg`,{ref:l,...v,width:t??u??v.width,height:t??u??v.height,stroke:e??p,strokeWidth:g,className:h(`lucide`,m,a),...!o&&!y(c)&&{"aria-hidden":`true`},...c},[...s.map(([e,t])=>(0,r.createElement)(e,t)),...Array.isArray(o)?o:[o]])}),x=(e,t)=>{let n=(0,r.forwardRef)(({className:n,...i},a)=>(0,r.createElement)(ne,{ref:a,iconNode:t,className:h(`lucide-${g(_(e))}`,`lucide-${e}`,n),...i}));return n.displayName=_(e),n},S=x(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),C=x(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),re=x(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),ie=x(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),w=x(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),T=(0,o.cva)(`inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90`,destructive:`border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`}},defaultVariants:{variant:`default`}});function E({className:e,variant:t,asChild:n=!1,...r}){return(0,i.jsx)(n?a.Slot:`span`,{"data-slot":`badge`,className:u(T({variant:t}),e),...r})}function D({...e}){return(0,i.jsx)(s.Root,{"data-slot":`dialog`,...e})}function O({...e}){return(0,i.jsx)(s.Trigger,{"data-slot":`dialog-trigger`,...e})}function k({...e}){return(0,i.jsx)(s.Portal,{"data-slot":`dialog-portal`,...e})}function A({...e}){return(0,i.jsx)(s.Close,{"data-slot":`dialog-close`,...e})}function j({className:e,...t}){return(0,i.jsx)(s.Overlay,{"data-slot":`dialog-overlay`,className:u(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50`,e),...t})}function M({className:e,children:t,showCloseButton:n=!0,...r}){return(0,i.jsxs)(k,{"data-slot":`dialog-portal`,children:[(0,i.jsx)(j,{}),(0,i.jsxs)(s.Content,{"data-slot":`dialog-content`,className:u(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,e),...r,children:[t,n&&(0,i.jsxs)(s.Close,{"data-slot":`dialog-close`,className:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,children:[(0,i.jsx)(w,{}),(0,i.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function N({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`dialog-header`,className:u(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function P({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`dialog-footer`,className:u(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function F({className:e,...t}){return(0,i.jsx)(s.Title,{"data-slot":`dialog-title`,className:u(`text-lg leading-none font-semibold`,e),...t})}function I({className:e,...t}){return(0,i.jsx)(s.Description,{"data-slot":`dialog-description`,className:u(`text-muted-foreground text-sm`,e),...t})}function L({...e}){return(0,i.jsx)(c.Root,{"data-slot":`dropdown-menu`,...e})}function R({...e}){return(0,i.jsx)(c.Portal,{"data-slot":`dropdown-menu-portal`,...e})}function z({...e}){return(0,i.jsx)(c.Trigger,{"data-slot":`dropdown-menu-trigger`,...e})}function B({className:e,sideOffset:t=4,...n}){return(0,i.jsx)(c.Portal,{children:(0,i.jsx)(c.Content,{"data-slot":`dropdown-menu-content`,sideOffset:t,className:u(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md`,e),...n})})}function V({...e}){return(0,i.jsx)(c.Group,{"data-slot":`dropdown-menu-group`,...e})}function H({className:e,inset:t,variant:n=`default`,...r}){return(0,i.jsx)(c.Item,{"data-slot":`dropdown-menu-item`,"data-inset":t,"data-variant":n,className:u(`focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r})}function ae({className:e,children:t,checked:n,...r}){return(0,i.jsxs)(c.CheckboxItem,{"data-slot":`dropdown-menu-checkbox-item`,className:u(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),checked:n,...r,children:[(0,i.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,i.jsx)(c.ItemIndicator,{children:(0,i.jsx)(S,{className:`size-4`})})}),t]})}function U({...e}){return(0,i.jsx)(c.RadioGroup,{"data-slot":`dropdown-menu-radio-group`,...e})}function W({className:e,children:t,...n}){return(0,i.jsxs)(c.RadioItem,{"data-slot":`dropdown-menu-radio-item`,className:u(`focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...n,children:[(0,i.jsx)(`span`,{className:`pointer-events-none absolute left-2 flex size-3.5 items-center justify-center`,children:(0,i.jsx)(c.ItemIndicator,{children:(0,i.jsx)(re,{className:`size-2 fill-current`})})}),t]})}function G({className:e,inset:t,...n}){return(0,i.jsx)(c.Label,{"data-slot":`dropdown-menu-label`,"data-inset":t,className:u(`px-2 py-1.5 text-sm font-medium data-[inset]:pl-8`,e),...n})}function K({className:e,...t}){return(0,i.jsx)(c.Separator,{"data-slot":`dropdown-menu-separator`,className:u(`bg-border -mx-1 my-1 h-px`,e),...t})}function q({className:e,...t}){return(0,i.jsx)(`span`,{"data-slot":`dropdown-menu-shortcut`,className:u(`text-muted-foreground ml-auto text-xs tracking-widest`,e),...t})}function J({...e}){return(0,i.jsx)(c.Sub,{"data-slot":`dropdown-menu-sub`,...e})}function oe({className:e,inset:t,children:n,...r}){return(0,i.jsxs)(c.SubTrigger,{"data-slot":`dropdown-menu-sub-trigger`,"data-inset":t,className:u(`focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,i.jsx)(C,{className:`ml-auto size-4`})]})}function se({className:e,...t}){return(0,i.jsx)(c.SubContent,{"data-slot":`dropdown-menu-sub-content`,className:u(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg`,e),...t})}var Y=(0,o.cva)(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all duration-200 cursor-pointer disabled:cursor-not-allowed disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-[3px]`,{variants:{variant:{default:[`bg-gradient-to-r from-[var(--vg-accent-fill-from)] to-[var(--vg-accent-fill-to)] text-white`,`shadow-md shadow-[var(--vg-accent-shadow)]`,`hover:from-[var(--vg-accent-fill-from-hover)] hover:to-[var(--vg-accent-fill-to-hover)]`,`hover:shadow-lg hover:shadow-[var(--vg-accent-shadow-hover)]`,`focus-visible:ring-[var(--vg-accent-ring)]`].join(` `),secondary:[`bg-gradient-to-r from-slate-600 to-slate-700 text-white`,`shadow-md shadow-slate-500/25`,`hover:from-slate-700 hover:to-slate-800`,`hover:shadow-lg hover:shadow-slate-500/30`,`focus-visible:ring-slate-500/50`,`dark:from-slate-500 dark:to-slate-600`,`dark:shadow-slate-500/20`,`dark:hover:from-slate-600 dark:hover:to-slate-700`,`dark:hover:shadow-slate-500/25`,`dark:focus-visible:ring-slate-400/50`].join(` `),destructive:[`bg-gradient-to-r from-red-600 to-rose-600 text-white`,`shadow-md shadow-red-500/25`,`hover:from-red-700 hover:to-rose-700`,`hover:shadow-lg hover:shadow-red-500/30`,`focus-visible:ring-red-500/50`,`dark:from-red-500 dark:to-rose-500`,`dark:shadow-red-500/20`,`dark:hover:from-red-600 dark:hover:to-rose-600`,`dark:hover:shadow-red-500/25`,`dark:focus-visible:ring-red-400/50`].join(` `),success:[`bg-gradient-to-r from-emerald-600 to-teal-600 text-white`,`shadow-md shadow-emerald-500/25`,`hover:from-emerald-700 hover:to-teal-700`,`hover:shadow-lg hover:shadow-emerald-500/30`,`focus-visible:ring-emerald-500/50`,`dark:from-emerald-500 dark:to-teal-500`,`dark:shadow-emerald-500/20`,`dark:hover:from-emerald-600 dark:hover:to-teal-600`,`dark:hover:shadow-emerald-500/25`,`dark:focus-visible:ring-emerald-400/50`].join(` `),outline:[`border-2 border-[var(--vg-accent-fg)] text-[var(--vg-accent-fg)] bg-transparent`,`hover:bg-[var(--vg-accent-fill-from)] hover:text-white`,`shadow-sm hover:shadow-md hover:shadow-[var(--vg-accent-shadow)]`,`focus-visible:ring-[var(--vg-accent-ring)]`].join(` `),ghost:[`bg-transparent text-[var(--vg-accent-fg)]`,`hover:bg-[var(--vg-accent-surface)]`,`focus-visible:ring-[var(--vg-accent-ring)]`].join(` `)},size:{default:`h-11 px-5 py-2 has-[>svg]:px-4`,sm:`h-9 rounded-md gap-1.5 px-4 has-[>svg]:px-3 text-xs`,lg:`h-12 rounded-md px-8 has-[>svg]:px-6 text-base`,icon:`size-11`,"icon-sm":`size-9`,"icon-lg":`size-12`}},defaultVariants:{variant:`default`,size:`default`}});function ce({className:e,variant:t,size:n,asChild:r=!1,loading:o=!1,...s}){let c=u(Y({variant:t,size:n,className:e}));return(0,i.jsx)(r?a.Slot:`button`,{"data-slot":`gradient-button`,className:c,disabled:o||s.disabled,...s,children:o?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`svg`,{className:`size-4 animate-spin`,xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 24 24`,children:[(0,i.jsx)(`circle`,{className:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`4`}),(0,i.jsx)(`path`,{className:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})]}),s.children]}):s.children})}function le({className:e,type:t,...n}){return(0,i.jsx)(`input`,{type:t,"data-slot":`input`,className:u(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent pl-3 pr-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,e),...n})}function X({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`skeleton`,className:u(`bg-accent animate-pulse rounded-md`,e),...t})}function Z({delayDuration:e=0,...t}){return(0,i.jsx)(l.Provider,{"data-slot":`tooltip-provider`,delayDuration:e,...t})}function ue({...e}){return(0,i.jsx)(Z,{children:(0,i.jsx)(l.Root,{"data-slot":`tooltip`,...e})})}function de({...e}){return(0,i.jsx)(l.Trigger,{"data-slot":`tooltip-trigger`,...e})}function fe({className:e,sideOffset:t=0,children:n,...r}){return(0,i.jsx)(l.Portal,{children:(0,i.jsxs)(l.Content,{"data-slot":`tooltip-content`,sideOffset:t,className:u(`bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance`,e),...r,children:[n,(0,i.jsx)(l.Arrow,{className:`bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`})]})})}var pe=({text:e,href:t,onClick:n,className:r,prefix:a})=>{if(!e)return null;let o=m(e);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(E,{variant:`outline`,title:e,onClick:()=>t&&n?.(t),className:`text-xs font-medium px-2 py-0.5 gap-1.5 cursor-pointer transition-all hover:opacity-80 dynamic-badge-${e.length} ${r??``}`,style:{"--badge-bg":o.light.bg,"--badge-text":o.light.text,"--badge-border":o.light.border,"--badge-dark-bg":o.dark.bg,"--badge-dark-text":o.dark.text,"--badge-dark-border":o.dark.border,backgroundColor:`var(--badge-bg)`,color:`var(--badge-text)`,borderColor:`var(--badge-border)`},children:[a,(0,i.jsx)(`span`,{dangerouslySetInnerHTML:{__html:e}})]}),(0,i.jsx)(`style`,{suppressHydrationWarning:!0,children:`
2
- .dark [title="${e}"] {
3
- background-color: var(--badge-dark-bg) !important;
4
- color: var(--badge-dark-text) !important;
5
- border-color: var(--badge-dark-border) !important;
6
- }
7
- `})]})},me={AR:`SA`,BN:`BD`,CA:`ES`,CS:`CZ`,DA:`DK`,DE:`DE`,EL:`GR`,EN:`US`,EU:`ES`,FA:`IR`,FI:`FI`,FIL:`PH`,FR:`FR`,GA:`IE`,GL:`ES`,GU:`IN`,HE:`IL`,HI:`IN`,HU:`HU`,ID:`ID`,IT:`IT`,JA:`JP`,KN:`IN`,KO:`KR`,MR:`IN`,MSA:`MY`,NL:`NL`,NO:`NO`,PL:`PL`,PT:`BR`,RO:`RO`,RU:`RU`,ES:`ES`,SV:`SE`,TA:`IN`,TH:`TH`,TR:`TR`,UK:`UA`,UR:`PK`,VI:`VN`,ZH:`CN`},Q={UK:`GB`};function $(e){if(!e)return``;let{language:t,region:n}=d(e);if(n)return(Q[n]||n).toLowerCase();let r=me[t];return r?r.toLowerCase():(Q[t]||t).toLowerCase()}var he=({locale:e,className:t})=>{let n=$(e),[a,o]=(0,r.useState)(null),s=a===n;return(0,i.jsxs)(E,{variant:`secondary`,className:`font-mono gap-2 py-1 pl-1 pr-2 w-fit ${t}`,children:[!s&&n?(0,i.jsx)(`img`,{src:`https://flagcdn.com/w40/${n}.png`,alt:n,onError:()=>o(n),className:`w-5 h-3.5 object-cover rounded-sm shadow-sm`}):(0,i.jsx)(ie,{className:`w-3.5 h-3.5 text-muted-foreground`}),(0,i.jsx)(`span`,{className:`text-xs font-bold uppercase tracking-tight leading-none`,children:e})]})};Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"G",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"K",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return w}});
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./badge-locale-sIsBdP_e.cjs");let n=require("react");n=e.t(n,1);let r=require("react/jsx-runtime"),i=require("@radix-ui/react-avatar");i=e.t(i,1);let a=require("@radix-ui/react-slot"),o=require("class-variance-authority"),s=require("@radix-ui/react-dialog");s=e.t(s,1);let c=require("react-i18next"),l=require("@radix-ui/react-select");l=e.t(l,1);let u=require("@radix-ui/react-separator");u=e.t(u,1);let d=require("next-themes");var f=t.H(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),p=t.H(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),m=t.H(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),h=t.H(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),g=t.H(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),_=t.H(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),v=t.H(`panel-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}]]),y=t.H(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]);function ee({className:e,...n}){return(0,r.jsx)(i.Root,{"data-slot":`avatar`,className:t.U(`relative flex size-8 shrink-0 overflow-hidden rounded-full`,e),...n})}function te({className:e,...n}){return(0,r.jsx)(i.Image,{"data-slot":`avatar-image`,className:t.U(`aspect-square size-full`,e),...n})}function ne({className:e,...n}){return(0,r.jsx)(i.Fallback,{"data-slot":`avatar-fallback`,className:t.U(`bg-muted flex size-full items-center justify-center rounded-full`,e),...n})}function re({...e}){return(0,r.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,...e})}function ie({className:e,...n}){return(0,r.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:t.U(`text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5`,e),...n})}function ae({className:e,...n}){return(0,r.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:t.U(`inline-flex items-center gap-1.5`,e),...n})}function oe({asChild:e,className:n,...i}){return(0,r.jsx)(e?a.Slot:`a`,{"data-slot":`breadcrumb-link`,className:t.U(`hover:text-foreground transition-colors`,n),...i})}function se({className:e,...n}){return(0,r.jsx)(`span`,{"data-slot":`breadcrumb-page`,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:t.U(`text-foreground font-normal`,e),...n})}function b({children:e,className:n,...i}){return(0,r.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:t.U(`[&>svg]:size-3.5`,n),...i,children:e??(0,r.jsx)(t.B,{})})}function x({className:e,...n}){return(0,r.jsxs)(`span`,{"data-slot":`breadcrumb-ellipsis`,role:`presentation`,"aria-hidden":`true`,className:t.U(`flex size-9 items-center justify-center`,e),...n,children:[(0,r.jsx)(m,{className:`size-4`}),(0,r.jsx)(`span`,{className:`sr-only`,children:`More`})]})}function S({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card`,className:t.U(`bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm`,e),...n})}function C({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-header`,className:t.U(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,e),...n})}function w({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-title`,className:t.U(`leading-none font-semibold`,e),...n})}function T({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-description`,className:t.U(`text-muted-foreground text-sm`,e),...n})}function ce({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-action`,className:t.U(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...n})}function le({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-content`,className:t.U(`px-6`,e),...n})}function ue({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`card-footer`,className:t.U(`flex items-center px-6 [.border-t]:pt-6`,e),...n})}function de({...e}){return(0,r.jsx)(l.Root,{"data-slot":`select`,...e})}function E({...e}){return(0,r.jsx)(l.Group,{"data-slot":`select-group`,...e})}function D({...e}){return(0,r.jsx)(l.Value,{"data-slot":`select-value`,...e})}function O({className:e,size:n=`default`,children:i,...a}){return(0,r.jsxs)(l.Trigger,{"data-slot":`select-trigger`,"data-size":n,className:t.U(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...a,children:[i,(0,r.jsx)(l.Icon,{asChild:!0,children:(0,r.jsx)(f,{className:`size-4 opacity-50`})})]})}function k({className:e,children:n,position:i=`popper`,align:a=`center`,...o}){return(0,r.jsx)(l.Portal,{children:(0,r.jsxs)(l.Content,{"data-slot":`select-content`,className:t.U(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,i===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:i,align:a,...o,children:[(0,r.jsx)(N,{}),(0,r.jsx)(l.Viewport,{className:t.U(`p-1`,i===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:n}),(0,r.jsx)(P,{})]})})}function A({className:e,...n}){return(0,r.jsx)(l.Label,{"data-slot":`select-label`,className:t.U(`text-muted-foreground px-2 py-1.5 text-xs`,e),...n})}function j({className:e,children:n,...i}){return(0,r.jsxs)(l.Item,{"data-slot":`select-item`,className:t.U(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...i,children:[(0,r.jsx)(`span`,{className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,r.jsx)(l.ItemIndicator,{children:(0,r.jsx)(t.V,{className:`size-4`})})}),(0,r.jsx)(l.ItemText,{children:n})]})}function M({className:e,...n}){return(0,r.jsx)(l.Separator,{"data-slot":`select-separator`,className:t.U(`bg-border pointer-events-none -mx-1 my-1 h-px`,e),...n})}function N({className:e,...n}){return(0,r.jsx)(l.ScrollUpButton,{"data-slot":`select-scroll-up-button`,className:t.U(`flex cursor-default items-center justify-center py-1`,e),...n,children:(0,r.jsx)(p,{className:`size-4`})})}function P({className:e,...n}){return(0,r.jsx)(l.ScrollDownButton,{"data-slot":`select-scroll-down-button`,className:t.U(`flex cursor-default items-center justify-center py-1`,e),...n,children:(0,r.jsx)(f,{className:`size-4`})})}function F({className:e,orientation:n=`horizontal`,decorative:i=!0,...a}){return(0,r.jsx)(u.Root,{"data-slot":`separator`,decorative:i,orientation:n,className:t.U(`bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...a})}function I({...e}){return(0,r.jsx)(s.Root,{"data-slot":`sheet`,...e})}function L({...e}){return(0,r.jsx)(s.Trigger,{"data-slot":`sheet-trigger`,...e})}function R({...e}){return(0,r.jsx)(s.Close,{"data-slot":`sheet-close`,...e})}function z({...e}){return(0,r.jsx)(s.Portal,{"data-slot":`sheet-portal`,...e})}function B({className:e,...n}){return(0,r.jsx)(s.Overlay,{"data-slot":`sheet-overlay`,className:t.U(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50`,e),...n})}function V({className:e,children:n,side:i=`right`,...a}){return(0,r.jsxs)(z,{children:[(0,r.jsx)(B,{}),(0,r.jsxs)(s.Content,{"data-slot":`sheet-content`,className:t.U(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,i===`right`&&`data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm`,i===`left`&&`data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm`,i===`top`&&`data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b`,i===`bottom`&&`data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t`,e),...a,children:[n,(0,r.jsxs)(s.Close,{className:`ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none`,children:[(0,r.jsx)(t.z,{className:`size-4`}),(0,r.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]})}function H({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sheet-header`,className:t.U(`flex flex-col gap-1.5 p-4`,e),...n})}function fe({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sheet-footer`,className:t.U(`mt-auto flex flex-col gap-2 p-4`,e),...n})}function U({className:e,...n}){return(0,r.jsx)(s.Title,{"data-slot":`sheet-title`,className:t.U(`text-foreground font-semibold`,e),...n})}function W({className:e,...n}){return(0,r.jsx)(s.Description,{"data-slot":`sheet-description`,className:t.U(`text-muted-foreground text-sm`,e),...n})}var pe=`(max-width: 767px)`;function G(){return window.matchMedia(pe)}function me(e){let t=G();return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)}function K(){return n.useSyncExternalStore(me,()=>G().matches,()=>!1)}var he=`sidebar_state`,ge=604800,_e=`16rem`,ve=`18rem`,q=`3rem`,ye=`b`,J=n.createContext(null);function Y(){let e=n.useContext(J);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function X(){return n.useContext(J)}function be({defaultOpen:e=!0,open:i,onOpenChange:a,className:o,style:s,children:c,...l}){let u=K(),[d,f]=n.useState(!1),[p,m]=n.useState(e),h=i??p,g=n.useCallback(e=>{let t=typeof e==`function`?e(h):e;a?a(t):m(t),document.cookie=`${he}=${t}; path=/; max-age=${ge}`},[a,h]),_=n.useCallback(()=>u?f(e=>!e):g(e=>!e),[u,g,f]);n.useEffect(()=>{let e=e=>{e.key===ye&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),_())};return globalThis.addEventListener(`keydown`,e),()=>globalThis.removeEventListener(`keydown`,e)},[_]);let v=h?`expanded`:`collapsed`,y=n.useMemo(()=>({state:v,open:h,setOpen:g,isMobile:u,openMobile:d,setOpenMobile:f,toggleSidebar:_}),[v,h,g,u,d,f,_]);return(0,r.jsx)(J.Provider,{value:y,children:(0,r.jsx)(t.o,{delayDuration:0,children:(0,r.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":_e,"--sidebar-width-icon":q,...s},className:t.U(`group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full`,o),...l,children:c})})})}function xe({side:e=`left`,variant:n=`sidebar`,collapsible:i=`offcanvas`,position:a=`fixed`,className:o,children:s,...c}){let{isMobile:l,state:u,openMobile:d,setOpenMobile:f}=Y();return i===`none`?(0,r.jsx)(`div`,{"data-slot":`sidebar`,className:t.U(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,o),...c,children:s}):l?(0,r.jsx)(I,{open:d,onOpenChange:f,...c,children:(0,r.jsxs)(V,{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden`,style:{"--sidebar-width":ve},side:e,children:[(0,r.jsxs)(H,{className:`sr-only`,children:[(0,r.jsx)(U,{children:`Sidebar`}),(0,r.jsx)(W,{children:`Displays the mobile sidebar.`})]}),(0,r.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:s})]})}):(0,r.jsxs)(`div`,{className:t.U(`group peer text-sidebar-foreground hidden md:block`,a===`absolute`&&`relative`),"data-state":u,"data-collapsible":u===`collapsed`?i:``,"data-variant":n,"data-side":e,"data-slot":`sidebar`,children:[(0,r.jsx)(`div`,{"data-slot":`sidebar-gap`,className:t.U(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,n===`floating`||n===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,r.jsx)(`div`,{"data-slot":`sidebar-container`,className:t.U(`inset-y-0 z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,a===`absolute`?`h-full`:`h-svh`,a===`absolute`?`absolute`:`fixed`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,n===`floating`||n===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,o),...c,children:(0,r.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:`bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm`,children:s})})]})}function Se({className:e,onClick:n,...i}){let a=X();if(!a)return null;let{toggleSidebar:o,isMobile:s}=a;return(0,r.jsxs)(t.u,{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,size:`icon`,className:t.U(`size-7`,e),onClick:e=>{n?.(e),o()},...i,children:[s?(0,r.jsx)(h,{}):(0,r.jsx)(v,{}),(0,r.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})}function Ce({className:e,...n}){let{toggleSidebar:i}=Y();return(0,r.jsx)(`button`,{"data-sidebar":`rail`,"data-slot":`sidebar-rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:i,title:`Toggle Sidebar`,className:t.U(`hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex`,`in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...n})}function we({className:e,...n}){return(0,r.jsx)(`main`,{"data-slot":`sidebar-inset`,className:t.U(`bg-background relative flex w-full flex-1 flex-col`,`md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,e),...n})}function Te({className:e,...n}){return(0,r.jsx)(t.l,{"data-slot":`sidebar-input`,"data-sidebar":`input`,className:t.U(`bg-background h-8 w-full shadow-none`,e),...n})}function Ee({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:t.U(`flex flex-col gap-2 p-2`,e),...n})}function De({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,className:t.U(`flex flex-col gap-2 p-2`,e),...n})}function Oe({className:e,...n}){return(0,r.jsx)(F,{"data-slot":`sidebar-separator`,"data-sidebar":`separator`,className:t.U(`bg-sidebar-border mx-2 w-auto`,e),...n})}function ke({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:t.U(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...n})}function Ae({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:t.U(`relative flex w-full min-w-0 flex-col p-2`,e),...n})}function je({className:e,asChild:n=!1,...i}){return(0,r.jsx)(n?a.Slot:`div`,{"data-slot":`sidebar-group-label`,"data-sidebar":`group-label`,className:t.U(`text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0`,e),...i})}function Me({className:e,asChild:n=!1,...i}){return(0,r.jsx)(n?a.Slot:`button`,{"data-slot":`sidebar-group-action`,"data-sidebar":`group-action`,className:t.U(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`group-data-[collapsible=icon]:hidden`,e),...i})}function Ne({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:t.U(`w-full text-sm`,e),...n})}function Pe({className:e,...n}){return(0,r.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:t.U(`flex w-full min-w-0 flex-col gap-1`,e),...n})}function Fe({className:e,...n}){return(0,r.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:t.U(`group/menu-item relative`,e),...n})}var Ie=(0,o.cva)(`peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_var(--vg-sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--vg-sidebar-accent)]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function Le({asChild:e=!1,isActive:n=!1,variant:i=`default`,size:o=`default`,tooltip:s,className:c,...l}){let u=e?a.Slot:`button`,{isMobile:d,state:f}=Y(),p=(0,r.jsx)(u,{"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":o,"data-active":n,className:t.U(Ie({variant:i,size:o}),c),...l});return s?(typeof s==`string`&&(s={children:s}),(0,r.jsxs)(t.i,{children:[(0,r.jsx)(t.s,{asChild:!0,children:p}),(0,r.jsx)(t.a,{side:`right`,align:`center`,hidden:f!==`collapsed`||d,...s})]})):p}function Re({className:e,asChild:n=!1,showOnHover:i=!1,...o}){return(0,r.jsx)(n?a.Slot:`button`,{"data-slot":`sidebar-menu-action`,"data-sidebar":`menu-action`,className:t.U(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 md:after:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,i&&`peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0`,e),...o})}function ze({className:e,...n}){return(0,r.jsx)(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,className:t.U(`text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none`,`peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:hidden`,e),...n})}function Be(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)}function Ve({className:e,showIcon:i=!1,...a}){let o=`${50+Be(n.useId())%40}%`;return(0,r.jsxs)(`div`,{"data-slot":`sidebar-menu-skeleton`,"data-sidebar":`menu-skeleton`,className:t.U(`flex h-8 items-center gap-2 rounded-md px-2`,e),...a,children:[i&&(0,r.jsx)(t.c,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,r.jsx)(t.c,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":o}})]})}function He({className:e,...n}){return(0,r.jsx)(`ul`,{"data-slot":`sidebar-menu-sub`,"data-sidebar":`menu-sub`,className:t.U(`border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5`,`group-data-[collapsible=icon]:hidden`,e),...n})}function Ue({className:e,...n}){return(0,r.jsx)(`li`,{"data-slot":`sidebar-menu-sub-item`,"data-sidebar":`menu-sub-item`,className:t.U(`group/menu-sub-item relative`,e),...n})}function We({asChild:e=!1,size:n=`md`,isActive:i=!1,className:o,...s}){return(0,r.jsx)(e?a.Slot:`a`,{"data-slot":`sidebar-menu-sub-button`,"data-sidebar":`menu-sub-button`,"data-size":n,"data-active":i,className:t.U(`text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,`data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground`,n===`sm`&&`text-xs`,n===`md`&&`text-sm`,`group-data-[collapsible=icon]:hidden`,o),...s})}function Ge({children:e,defaultTheme:t=`system`,storageKey:n=`vite-ui-theme`,...i}){return(0,r.jsx)(d.ThemeProvider,{attribute:`class`,enableSystem:!0,defaultTheme:t,storageKey:n,...i,children:e})}var Z=()=>{let{theme:e,setTheme:t}=(0,d.useTheme)();return{theme:e??`system`,setTheme:t}};function Ke(){let{setTheme:e}=Z(),{t:n}=(0,c.useTranslation)();return(0,r.jsxs)(t.f,{children:[(0,r.jsx)(t.E,{asChild:!0,children:(0,r.jsxs)(t.u,{variant:`outline`,size:`sm`,children:[(0,r.jsx)(y,{className:`h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90`}),(0,r.jsx)(_,{className:`absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0`}),(0,r.jsx)(`span`,{className:`sr-only`,children:n(`theme.toggle`)})]})}),(0,r.jsxs)(t.m,{align:`end`,children:[(0,r.jsx)(t.g,{onClick:()=>e(`light`),children:n(`theme.light`)}),(0,r.jsx)(t.g,{onClick:()=>e(`dark`),children:n(`theme.dark`)}),(0,r.jsx)(t.g,{onClick:()=>e(`system`),children:n(`theme.system`)})]})]})}var Q=[{value:`light`,labelKey:`theme.light`,icon:y},{value:`dark`,labelKey:`theme.dark`,icon:_},{value:`system`,labelKey:`theme.system`,icon:g}];function qe(){let{theme:e,setTheme:t}=Z(),{t:n}=(0,c.useTranslation)(),i=Q.find(t=>t.value===e)??Q[2];function a(){let n=Q[(Q.findIndex(t=>t.value===e)+1)%Q.length];t(n.value)}let o=i.icon;return(0,r.jsxs)(`button`,{type:`button`,title:n(`theme.toggle`),onClick:a,className:`md:hidden flex items-center gap-3 rounded-lg px-3 py-2 text-sm text-sidebar-foreground hover:bg-sidebar-accent transition-colors w-full`,children:[(0,r.jsx)(o,{className:`size-4 shrink-0`}),(0,r.jsx)(`span`,{children:n(`theme.modeLabel`,{mode:n(i.labelKey)})})]})}var $=(0,n.createContext)(void 0);function Je({children:e}){let[t,i]=(0,n.useState)([]),a=(0,n.useCallback)(e=>{i(t=>t.length>0&&t[t.length-1].label===e.label?t:[...t,e])},[]),o=(0,n.useCallback)(()=>{i(e=>e.slice(0,-1))},[]),s=(0,n.useCallback)((e=[])=>{i(e)},[]),c=(0,n.useMemo)(()=>({items:t,setItems:i,pushItem:a,popItem:o,resetBreadcrumb:s}),[t,a,o,s]);return(0,r.jsx)($.Provider,{value:c,children:e})}var Ye=()=>{let e=(0,n.useContext)($);if(!e)throw Error(`useBreadcrumb must be used within Provider`);return e},Xe=()=>(0,n.useContext)($);Object.defineProperty(exports,"$",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"G",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"J",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"K",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return Ce}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"Q",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Fe}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"X",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"Y",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"Z",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"_t",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,"at",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,"ct",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,"dt",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"et",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"ft",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"gt",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"ht",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"it",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,"lt",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"mt",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,"nt",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"ot",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,"pt",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"q",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,"rt",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"st",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,"tt",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,"ut",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return H}});
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BocRIvOZ.cjs");let t=require("react-i18next"),n=require("i18next");n=e.t(n,1);let r=require("i18next-browser-languagedetector");r=e.t(r,1);var i={bento:{nav:{label:`Primary`},palette:{title:`Command palette`,description:`Search and jump to any area`,placeholder:`Search areas…`,search:`Search`,open:`Open command palette`,noResults:`No matches`,opensConsole:`Opens outside this shell`},saveBar:{unsaved:`Unsaved changes`,titleRequired:`Title required`},shortcuts:{title:`Keyboard shortcuts`,description:`Move around without leaving the keyboard.`,global:`Global`,palette:`Command palette`,openGuide:`Show keyboard shortcuts`,navigate:`Move between results`,openSelected:`Open the selected area`,dismiss:`Close the palette or a dialog`},layout:{customize:`Customize layout`,editHint:`Drag tiles to reorder · pick S / M / L to resize`,dragToReorder:`Drag to reorder`,sizeGroup:`Tile size`,size:{small:`Small`,medium:`Medium`,large:`Large`},save:`Save layout`,saveGlobal:`Set as default for everyone`,reset:`Reset to default`,saveFailed:`The layout could not be saved. Nothing has changed — try again.`},tour:{replay:`Take the tour`}}},a={common:{save:`Save`,cancel:`Cancel`,delete:`Delete`,new:`New`,loading:`Loading...`,actions:`Actions`,goBack:`Go back`,tryAgain:`Try again`,errorLoading:`Error while loading data`,openNavigation:`Open navigation`,connectionError:`Connection error or timeout while fetching {{resource}}.`,active:`Active`,idle:`Idle`,activeToggleHint:`Click to make idle`,idleToggleHint:`Click to activate`,docs:`Documentation`,apps:`Apps`},backendStatus:{offline:`Server unavailable. Retrying automatically...`,checking:`Reconnecting to the server...`,retry:`Retry now`},errorBoundary:{title:`Something went wrong`,description:`An unexpected error occurred. Try reloading the page.`,reload:`Reload page`}},o={dialog:{cannotDelete:`Cannot delete {{feature}}`,inUse:`{{name}} is currently in use and cannot be removed.`,dependingSites:`The following items depend on this {{feature}}:`,removeDependencies:`Remove this {{feature}} from those items before deleting it.`,understood:`Understood`,deleteFeature:`Delete {{feature}}`,permanentDelete:`This will permanently delete {{name}}. This action cannot be undone.`,typeToConfirm:`Type`,toConfirm:`to confirm`}},s={forms:{common:{saveChanges:`Save Changes`,formSubmitFailed:`Failed to submit the form. Please try again.`,title:`Title`,description:`Description`,name:`Name`,icon:`Icon`,enabled:`Enabled`,generalInfo:`General Information`,status:`Status`,advancedOptions:`Advanced Options`,vendor:`Vendor`,endpoint:`Endpoint`,actions:`Actions`,copy:`Copy`,copied:`Copied!`,copyFailed:`Failed to copy`,saved:`The {{name}} {{feature}} was saved`,notSaved:`The {{name}} {{feature}} was not saved`,updated:`The {{name}} {{feature}} was updated`,notUpdated:`The {{name}} {{feature}} was not updated`,deleted:`The {{name}} {{feature}} was deleted`,notDeleted:`The {{name}} {{feature}} was not deleted`,invalidJson:`Provider Options must be valid JSON.`,selectVendor:`Select vendor...`,endpointUrl:`Endpoint URL`,apiKey:`API Key`,createButton:`Create {{feature}}`,noResults:`No results found`,noDescription:`No description`,search:`Search...`,item:`item`,items:`items`,perPage:`Per page`,pageOf:`Page {{index}} of {{count}}`,previous:`Previous`,next:`Next`,rowsSelected:`{{count}} of {{total}} row(s) selected`,rowsPerPage:`Rows per page`,totalRecords:`{{count}} total records`,pageOfPages:`Page {{page}} of {{totalPages}}`,edit:`Edit`,remove:`Remove`,add:`Add`,reset:`Reset`,all:`All`,noResultsDot:`No results.`,filterFields:`Filter fields...`,columns:`Columns`,rows:`row(s)`,chooseLanguage:`Choose the language`,selected:`SELECTED`,value:`Value`,field:`Field`,condition:`Condition`,close:`Close`,nameRequired:`Name is required.`},formActions:{cancel:`Cancel`,saveChanges:`Save Changes`,delete:`Delete`,moreActions:`More actions`,edit:`Edit`,new:`New`},iconPicker:{chooseAnIcon:`Choose an icon`,searchIcons:`Search icons`,aiSuggest:`Suggest`,aiSuggestions:`Suggestions`,searching:`Searching...`,noIconsFound:`No icons found for “{{query}}”`,typeToSearch:`Type to search {{count}} icon collections`,orClickAi:`...or let the title and description suggest some`,done:`Done`}}},c={nav:{account:`Account`,logOut:`Log out`,organizations:`Organizations`,tenantAdmin:`Tenant administration`}},l={sidebar:{indexing:`Indexing`,new:`New {{feature}}`}},u={theme:{toggle:`Toggle theme`,light:`Light`,dark:`Dark`,system:`System`,modeLabel:`{{mode}} mode`}},d={bento:{nav:{label:`Navegação principal`},palette:{title:`Paleta de comandos`,description:`Busque e navegue para qualquer área`,placeholder:`Buscar áreas…`,search:`Buscar`,open:`Abrir paleta de comandos`,noResults:`Nenhum resultado`,opensConsole:`Abre fora deste shell`},saveBar:{unsaved:`Alterações não salvas`,titleRequired:`Título obrigatório`},shortcuts:{title:`Atalhos de teclado`,description:`Navegue sem tirar as mãos do teclado.`,global:`Global`,palette:`Paleta de comandos`,openGuide:`Mostrar atalhos de teclado`,navigate:`Mover entre os resultados`,openSelected:`Abrir a área selecionada`,dismiss:`Fechar a paleta ou um diálogo`},layout:{customize:`Personalizar layout`,editHint:`Arraste os blocos para reordenar · escolha P / M / G para redimensionar`,dragToReorder:`Arraste para reordenar`,sizeGroup:`Tamanho do bloco`,size:{small:`Pequeno`,medium:`Médio`,large:`Grande`},save:`Salvar layout`,saveGlobal:`Definir como padrão para todos`,reset:`Restaurar padrão`,saveFailed:`Não foi possível salvar o layout. Nada foi alterado — tente novamente.`},tour:{replay:`Fazer o tour`}}},f={common:{save:`Salvar`,cancel:`Cancelar`,delete:`Excluir`,new:`Novo`,loading:`Carregando...`,actions:`Ações`,goBack:`Voltar`,tryAgain:`Tentar novamente`,errorLoading:`Erro ao carregar dados`,openNavigation:`Abrir navegação`,connectionError:`Erro de conexão ou tempo esgotado ao buscar {{resource}}.`,active:`Ativo`,idle:`Inativo`,activeToggleHint:`Clique para desativar`,idleToggleHint:`Clique para ativar`,docs:`Documentação`,apps:`Aplicativos`},backendStatus:{offline:`Servidor indisponível. Tentando reconectar...`,checking:`Reconectando ao servidor...`,retry:`Tentar agora`},errorBoundary:{title:`Algo deu errado`,description:`Ocorreu um erro inesperado. Tente recarregar a página.`,reload:`Recarregar página`}},p={dialog:{cannotDelete:`Não é possível excluir {{feature}}`,inUse:`{{name}} está em uso e não pode ser removido.`,dependingSites:`Os seguintes itens dependem deste {{feature}}:`,removeDependencies:`Remova este {{feature}} desses itens antes de excluí-lo.`,understood:`Entendido`,deleteFeature:`Excluir {{feature}}`,permanentDelete:`Isso excluirá permanentemente {{name}}. Esta ação não pode ser desfeita.`,typeToConfirm:`Digite`,toConfirm:`para confirmar`}},m={forms:{common:{saveChanges:`Salvar Alterações`,formSubmitFailed:`Falha ao enviar o formulário. Tente novamente.`,title:`Título`,description:`Descrição`,name:`Nome`,icon:`Ícone`,enabled:`Ativado`,generalInfo:`Informações Gerais`,status:`Status`,advancedOptions:`Opções Avançadas`,vendor:`Fornecedor`,endpoint:`Endpoint`,actions:`Ações`,copy:`Copiar`,copied:`Copiado!`,copyFailed:`Falha ao copiar`,saved:`{{feature}} {{name}} foi salvo(a)`,notSaved:`{{feature}} {{name}} não foi salvo(a)`,updated:`{{feature}} {{name}} foi atualizado(a)`,notUpdated:`{{feature}} {{name}} não foi atualizado(a)`,deleted:`{{feature}} {{name}} foi excluído(a)`,notDeleted:`{{feature}} {{name}} não foi excluído(a)`,invalidJson:`Opções do Provider devem ser JSON válido.`,selectVendor:`Selecione o fornecedor...`,endpointUrl:`URL do Endpoint`,apiKey:`Chave da API`,createButton:`Criar {{feature}}`,noResults:`Nenhum resultado encontrado`,noDescription:`Sem descrição`,search:`Buscar...`,item:`item`,items:`itens`,perPage:`Por página`,pageOf:`Página {{index}} de {{count}}`,previous:`Anterior`,next:`Próximo`,rowsSelected:`{{count}} de {{total}} linha(s) selecionada(s)`,rowsPerPage:`Linhas por página`,totalRecords:`{{count}} registros no total`,pageOfPages:`Página {{page}} de {{totalPages}}`,edit:`Editar`,remove:`Remover`,add:`Adicionar`,reset:`Redefinir`,all:`Todos`,noResultsDot:`Sem resultados.`,filterFields:`Filtrar campos...`,columns:`Colunas`,rows:`linha(s)`,chooseLanguage:`Escolha o idioma`,selected:`SELECIONADO`,value:`Valor`,field:`Campo`,condition:`Condição`,close:`Fechar`,nameRequired:`Nome é obrigatório.`},formActions:{cancel:`Cancelar`,saveChanges:`Salvar Alterações`,delete:`Excluir`,moreActions:`Mais ações`,edit:`Editar`,new:`Novo`},iconPicker:{chooseAnIcon:`Escolha um ícone`,searchIcons:`Buscar ícones`,aiSuggest:`Sugerir`,aiSuggestions:`Sugestões`,searching:`Buscando...`,noIconsFound:`Nenhum ícone encontrado para “{{query}}”`,typeToSearch:`Digite para buscar em {{count}} coleções de ícones`,orClickAi:`...ou deixe o título e a descrição sugerirem alguns`,done:`Concluir`}}},h={nav:{account:`Conta`,logOut:`Sair`,organizations:`Organizações`,tenantAdmin:`Administração do tenant`}},g={sidebar:{indexing:`Indexação`,new:`Novo(a) {{feature}}`}},_={theme:{toggle:`Alternar tema`,light:`Claro`,dark:`Escuro`,system:`Sistema`,modeLabel:`Modo {{mode}}`}},v={en:{...i,...a,...o,...s,...c,...l,...u},pt:{...d,...f,...p,...m,...h,...g,..._}};function y(e){let i={};for(let t of[`en`,`pt`]){let n=v[t]||{},r=e?.[t]||{};i[t]={translation:{...n,...r}}}return n.default.use(r.default).use(t.initReactI18next).init({resources:i,fallbackLng:`en`,detection:{order:[`localStorage`,`navigator`,`htmlTag`,`cookie`],caches:[`localStorage`]},interpolation:{escapeValue:!1}}),n.default}function b(e){for(let[t,n]of Object.entries(v))for(let[r,i]of Object.entries(n))typeof i==`object`&&i&&((e.getResourceBundle(t,`translation`)||{})[r]||e.addResourceBundle(t,`translation`,{[r]:i},!0,!0))}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return y}});