@clarify-labs/renderer 0.6.4 → 0.6.5

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 (53) hide show
  1. package/output/{OpenApiOperation-BI41nyGy.cjs → OpenApiOperation-CsDX1s-6.cjs} +867 -80
  2. package/output/OpenApiOperation-CsDX1s-6.cjs.map +1 -0
  3. package/output/{OpenApiOperation-DcK7Ekkx.js → OpenApiOperation-WntXLbai.js} +770 -73
  4. package/output/OpenApiOperation-WntXLbai.js.map +1 -0
  5. package/output/ThemeRoot-DXoVzHSZ.cjs +1800 -0
  6. package/output/ThemeRoot-DXoVzHSZ.cjs.map +1 -0
  7. package/output/ThemeRoot-Dr8JC8Yc.js +1757 -0
  8. package/output/ThemeRoot-Dr8JC8Yc.js.map +1 -0
  9. package/output/app/ErrorBoundary.d.ts +29 -0
  10. package/output/client.cjs +5 -1
  11. package/output/client.d.ts +2 -0
  12. package/output/client.js +3 -2
  13. package/output/core/i18n.d.ts +1 -1
  14. package/output/core/types.d.ts +30 -9
  15. package/output/index.cjs +41 -31
  16. package/output/index.cjs.map +1 -1
  17. package/output/index.d.ts +3 -1
  18. package/output/index.js +18 -11
  19. package/output/index.js.map +1 -1
  20. package/output/openapi/entry.d.ts +1 -0
  21. package/output/preview.cjs +4 -3
  22. package/output/preview.cjs.map +1 -1
  23. package/output/preview.js +4 -3
  24. package/output/preview.js.map +1 -1
  25. package/output/{render-CjZt3edL.cjs → render-BfNmzJeJ.cjs} +12 -8
  26. package/output/render-BfNmzJeJ.cjs.map +1 -0
  27. package/output/{render-BpavVnAe.js → render-DS2wcTZJ.js} +12 -8
  28. package/output/render-DS2wcTZJ.js.map +1 -0
  29. package/output/renderer.css +450 -565
  30. package/output/server.cjs +11 -7
  31. package/output/server.cjs.map +1 -1
  32. package/output/server.js +11 -7
  33. package/output/server.js.map +1 -1
  34. package/output/{shell-_MyLsMUI.cjs → shell-D4tS8Jts.cjs} +112 -1016
  35. package/output/shell-D4tS8Jts.cjs.map +1 -0
  36. package/output/{shell-BlMMdTpZ.js → shell-DvTfFx6M.js} +107 -933
  37. package/output/shell-DvTfFx6M.js.map +1 -0
  38. package/output/theme/ThemeEditor.d.ts +67 -0
  39. package/output/theme/ThemeProvider.d.ts +1 -1
  40. package/output/theme/ThemeRoot.d.ts +9 -0
  41. package/output/theme/randomTheme.d.ts +2 -0
  42. package/output/theme/variables.d.ts +62 -0
  43. package/package.json +1 -1
  44. package/output/AppShell-D3FsVHQK.js +0 -390
  45. package/output/AppShell-D3FsVHQK.js.map +0 -1
  46. package/output/AppShell-DeaJ-rgo.cjs +0 -409
  47. package/output/AppShell-DeaJ-rgo.cjs.map +0 -1
  48. package/output/OpenApiOperation-BI41nyGy.cjs.map +0 -1
  49. package/output/OpenApiOperation-DcK7Ekkx.js.map +0 -1
  50. package/output/render-BpavVnAe.js.map +0 -1
  51. package/output/render-CjZt3edL.cjs.map +0 -1
  52. package/output/shell-BlMMdTpZ.js.map +0 -1
  53. package/output/shell-_MyLsMUI.cjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  const require_chunk = require("./chunk-DakpK96I.cjs");
2
- const require_shell = require("./shell-_MyLsMUI.cjs");
2
+ const require_shell = require("./shell-D4tS8Jts.cjs");
3
3
  const require_remark = require("./remark-DNOdJz5i.cjs");
4
4
  let clsx = require("clsx");
5
5
  clsx = require_chunk.__toESM(clsx, 1);
@@ -8,17 +8,742 @@ let react_router_dom = require("react-router-dom");
8
8
  let _headlessui_react = require("@headlessui/react");
9
9
  let lucide_react = require("lucide-react");
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
11
+ let framer_motion = require("framer-motion");
12
+ let zustand = require("zustand");
11
13
  let react_markdown = require("react-markdown");
12
14
  react_markdown = require_chunk.__toESM(react_markdown, 1);
13
15
  let github_slugger = require("github-slugger");
14
16
  let _scalar_snippetz = require("@scalar/snippetz");
17
+ //#region source/components/Button.tsx
18
+ var buttonVariantStyles = {
19
+ primary: "rounded-full bg-(--clarify-theme-tokens-colors-foreground) px-3 py-1 text-(--clarify-theme-tokens-colors-background) hover:opacity-80 dark:bg-(--clarify-theme-tokens-colors-primary)/10 dark:text-(--clarify-theme-tokens-colors-primary) dark:ring-1 dark:ring-inset dark:ring-(--clarify-theme-tokens-colors-primary)/20 dark:hover:opacity-80",
20
+ secondary: "rounded-full bg-(--clarify-theme-tokens-colors-code-background) px-3 py-1 text-(--clarify-ui-text-soft) ring-1 ring-inset ring-(--clarify-theme-tokens-colors-border) hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground)",
21
+ filled: "rounded-full bg-(--clarify-theme-tokens-colors-foreground) px-3 py-1 text-(--clarify-theme-tokens-colors-background) hover:opacity-80 dark:bg-(--clarify-theme-tokens-colors-primary) dark:hover:opacity-80",
22
+ outline: "rounded-full px-3 py-1 text-(--clarify-ui-text-soft) ring-1 ring-inset ring-(--clarify-theme-tokens-colors-border) hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground)",
23
+ text: "text-(--clarify-theme-tokens-colors-primary) hover:opacity-80 dark:text-(--clarify-theme-tokens-colors-primary) dark:hover:opacity-80"
24
+ };
25
+ function Button(arg0) {
26
+ const { variant = "primary", className, children, arrow, ...props } = arg0;
27
+ const classes = (0, clsx.default)("clarify-button inline-flex justify-center gap-0.5 overflow-hidden text-sm font-medium transition", buttonVariantStyles[variant], className);
28
+ const arrowIcon = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ArrowRight, { className: (0, clsx.default)("mt-0.5 h-5 w-5", variant === "text" && "relative top-px", arrow === "left" && "-ml-1 rotate-180", arrow === "right" && "-mr-1") });
29
+ const inner = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
30
+ arrow === "left" ? arrowIcon : null,
31
+ children,
32
+ arrow === "right" ? arrowIcon : null
33
+ ] });
34
+ if (typeof props.href === "undefined") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
35
+ className: classes,
36
+ ...props,
37
+ children: inner
38
+ });
39
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
40
+ className: classes,
41
+ ...props,
42
+ children: inner
43
+ });
44
+ }
45
+ //#endregion
46
+ //#region source/components/Callout.tsx
47
+ var calloutStyles = {
48
+ info: {
49
+ container: "border-sky-500/20 bg-sky-50/50 text-sky-950 dark:border-sky-400/30 dark:bg-sky-400/5 dark:text-sky-100",
50
+ icon: "text-sky-600 dark:text-sky-400",
51
+ title: "text-sky-900 dark:text-sky-100",
52
+ Icon: lucide_react.Info
53
+ },
54
+ note: {
55
+ container: "border-zinc-500/20 bg-zinc-50 text-zinc-900 dark:border-white/10 dark:bg-white/5 dark:text-zinc-200",
56
+ icon: "text-zinc-500 dark:text-zinc-400",
57
+ title: "text-zinc-900 dark:text-white",
58
+ Icon: lucide_react.Info
59
+ },
60
+ tip: {
61
+ container: "border-emerald-500/20 bg-emerald-50/50 text-emerald-950 dark:border-emerald-400/30 dark:bg-emerald-400/5 dark:text-emerald-100",
62
+ icon: "text-emerald-600 dark:text-emerald-400",
63
+ title: "text-emerald-900 dark:text-emerald-100",
64
+ Icon: lucide_react.Lightbulb
65
+ },
66
+ warning: {
67
+ container: "border-amber-500/20 bg-amber-50/70 text-amber-950 dark:border-amber-400/30 dark:bg-amber-400/5 dark:text-amber-100",
68
+ icon: "text-amber-600 dark:text-amber-400",
69
+ title: "text-amber-900 dark:text-amber-100",
70
+ Icon: lucide_react.AlertTriangle
71
+ },
72
+ danger: {
73
+ container: "border-rose-500/20 bg-rose-50/70 text-rose-950 dark:border-rose-400/30 dark:bg-rose-400/5 dark:text-rose-100",
74
+ icon: "text-rose-600 dark:text-rose-400",
75
+ title: "text-rose-900 dark:text-rose-100",
76
+ Icon: lucide_react.XCircle
77
+ },
78
+ success: {
79
+ container: "border-emerald-500/20 bg-emerald-50/50 text-emerald-950 dark:border-emerald-400/30 dark:bg-emerald-400/5 dark:text-emerald-100",
80
+ icon: "text-emerald-600 dark:text-emerald-400",
81
+ title: "text-emerald-900 dark:text-emerald-100",
82
+ Icon: lucide_react.CheckCircle2
83
+ }
84
+ };
85
+ var defaultTitleKeys = {
86
+ info: "callout.info",
87
+ note: "callout.note",
88
+ tip: "callout.tip",
89
+ warning: "callout.warning",
90
+ danger: "callout.danger",
91
+ success: "callout.success"
92
+ };
93
+ function Callout(arg0) {
94
+ const { children, type = "info", title, icon = true, className, ...props } = arg0;
95
+ const t = require_shell.useBuiltInText();
96
+ const style = calloutStyles[type];
97
+ const Icon = style.Icon;
98
+ const resolvedTitle = title === void 0 ? t(defaultTitleKeys[type]) : title;
99
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
100
+ className: (0, clsx.default)("clarify-callout my-6 flex gap-3 rounded-(--clarify-theme-tokens-radius-xl) border p-4 text-sm/6", style.container, className),
101
+ ...props,
102
+ children: [icon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
103
+ className: (0, clsx.default)("mt-1 size-4 flex-none", style.icon),
104
+ "aria-hidden": "true"
105
+ }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
106
+ className: "min-w-0 flex-1 *:first:mt-0 *:last:mb-0",
107
+ children: [resolvedTitle ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
108
+ className: (0, clsx.default)("mb-1 font-semibold", style.title),
109
+ children: resolvedTitle
110
+ }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
111
+ className: "*:first:mt-0 *:last:mb-0",
112
+ children
113
+ })]
114
+ })]
115
+ });
116
+ }
117
+ //#endregion
118
+ //#region source/components/Card.tsx
119
+ function CardIcon(arg0) {
120
+ const { name } = arg0;
121
+ if (!name) return null;
122
+ const iconName = require_shell.resolveLucideIconName(name);
123
+ if (!iconName) return null;
124
+ const Icon = require_shell.lucideIconRegistry[iconName];
125
+ if (!Icon) return null;
126
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
127
+ className: "flex size-9 flex-none items-center justify-center rounded-(--clarify-theme-tokens-radius-lg) bg-(--clarify-ui-accent-background) text-(--clarify-ui-accent-text) ring-1 ring-(--clarify-ui-accent-border)",
128
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
129
+ className: "size-5",
130
+ "aria-hidden": "true"
131
+ })
132
+ });
133
+ }
134
+ var cardGroupColumnStyles = {
135
+ 1: "grid-cols-1",
136
+ 2: "grid-cols-1 sm:grid-cols-2",
137
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
138
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
139
+ };
140
+ function CardGroup(arg0) {
141
+ const { children, cols = 2, className } = arg0;
142
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
143
+ className: (0, clsx.default)("not-prose my-10 grid gap-4", cardGroupColumnStyles[cols], className),
144
+ children
145
+ });
146
+ }
147
+ function Card(arg0) {
148
+ const { title, icon, href, children, className, ...props } = arg0;
149
+ const content = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
150
+ className: "flex items-start gap-4",
151
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardIcon, { name: icon }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
152
+ className: "min-w-0 flex-1",
153
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
154
+ className: "m-0 text-base font-semibold text-(--clarify-theme-tokens-colors-foreground)",
155
+ children: title
156
+ }), children ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
157
+ className: "mt-2 text-sm/6 text-(--clarify-ui-text-soft) *:m-0",
158
+ children
159
+ }) : null]
160
+ })]
161
+ }), href ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
162
+ className: "absolute inset-0 rounded-(--clarify-theme-tokens-radius-xl)",
163
+ "aria-hidden": "true"
164
+ }) : null] });
165
+ const classes = (0, clsx.default)("group relative block rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-5 shadow-(--clarify-ui-accent-glow) transition hover:shadow-xs", className);
166
+ if (!href) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
167
+ className: classes,
168
+ children: content
169
+ });
170
+ if (href.startsWith("/") && !href.startsWith("//")) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_router_dom.Link, {
171
+ to: href,
172
+ className: classes,
173
+ ...props,
174
+ children: content
175
+ });
176
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
177
+ href,
178
+ className: classes,
179
+ ...props,
180
+ children: content
181
+ });
182
+ }
183
+ //#endregion
184
+ //#region source/components/Code.tsx
185
+ var languageNames = {
186
+ js: "JavaScript",
187
+ ts: "TypeScript",
188
+ jsx: "React JSX",
189
+ tsx: "React TSX",
190
+ javascript: "JavaScript",
191
+ typescript: "TypeScript",
192
+ php: "PHP",
193
+ python: "Python",
194
+ ruby: "Ruby",
195
+ go: "Go",
196
+ bash: "Shell",
197
+ sh: "Shell",
198
+ shell: "Shell",
199
+ json: "JSON"
200
+ };
201
+ function getPanelTitle(arg0) {
202
+ const { title, language, fallbackTitle = "Code" } = arg0;
203
+ if (title) return title;
204
+ if (language && language in languageNames) return languageNames[language];
205
+ return fallbackTitle;
206
+ }
207
+ function getNodeText(node) {
208
+ if (typeof node === "string" || typeof node === "number") return String(node);
209
+ if (Array.isArray(node)) return node.map(getNodeText).join("");
210
+ if ((0, react.isValidElement)(node)) return getNodeText(node.props.children);
211
+ return "";
212
+ }
213
+ function CopyButton(arg0) {
214
+ const { code } = arg0;
215
+ const t = require_shell.useBuiltInText();
216
+ const [copyCount, setCopyCount] = (0, react.useState)(0);
217
+ const copied = copyCount > 0;
218
+ (0, react.useEffect)(() => {
219
+ if (copyCount === 0) return void 0;
220
+ const timeout = window.setTimeout(() => setCopyCount(0), 1e3);
221
+ return () => window.clearTimeout(timeout);
222
+ }, [copyCount]);
223
+ if (!code) return null;
224
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
225
+ type: "button",
226
+ className: (0, clsx.default)("clarify-code-copy group/button absolute top-3.5 right-4 overflow-hidden rounded-full py-1 pr-3 pl-2 text-2xs font-medium opacity-0 backdrop-blur-sm transition group-hover:opacity-100 focus:opacity-100", copied ? "clarify-code-copy-copied" : "bg-white/5 hover:bg-white/7.5 dark:bg-white/2.5 dark:hover:bg-white/5"),
227
+ onClick: () => {
228
+ require_shell.copyTextToClipboard(code).then((ok) => {
229
+ if (ok) setCopyCount((count) => count + 1);
230
+ });
231
+ },
232
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
233
+ "aria-hidden": copied,
234
+ className: (0, clsx.default)("pointer-events-none flex items-center gap-0.5 text-zinc-400 transition duration-300", copied && "-translate-y-1.5 opacity-0"),
235
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Clipboard, { className: "h-5 w-5 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400" }), t("actions.copy")]
236
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
237
+ "aria-hidden": !copied,
238
+ className: (0, clsx.default)("pointer-events-none absolute inset-0 flex items-center justify-center text-(--clarify-theme-tokens-colors-primary) transition duration-300", !copied && "translate-y-1.5 opacity-0"),
239
+ children: t("actions.copied")
240
+ })]
241
+ });
242
+ }
243
+ function CodePanelHeader(arg0) {
244
+ const { tag, label } = arg0;
245
+ if (!tag && !label) return null;
246
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
247
+ className: "clarify-code-panel-header flex h-9 items-center gap-2 border-y border-t-transparent border-b-white/7.5 bg-zinc-900 px-4 dark:border-b-white/5 dark:bg-white/1",
248
+ children: [
249
+ tag ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
250
+ className: "clarify-code-panel-tag font-semibold text-(--clarify-theme-tokens-colors-primary)",
251
+ children: tag
252
+ }) : null,
253
+ tag && label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-0.5 w-0.5 rounded-full bg-zinc-500" }) : null,
254
+ label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
255
+ className: "text-xs text-zinc-400",
256
+ children: label
257
+ }) : null
258
+ ]
259
+ });
260
+ }
261
+ function CodePanel(arg0) {
262
+ const { children } = arg0;
263
+ let { tag, label, code } = arg0;
264
+ const child = react.Children.only(children);
265
+ if ((0, react.isValidElement)(child)) {
266
+ const props = child.props;
267
+ tag = props.tag ?? tag;
268
+ label = props.label ?? label;
269
+ code = props.code ?? code ?? getNodeText(props.children);
270
+ }
271
+ const copyText = code ?? getNodeText(children);
272
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
273
+ className: "clarify-code-panel group dark:bg-white/2.5",
274
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodePanelHeader, {
275
+ tag,
276
+ label
277
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
278
+ className: "relative",
279
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
280
+ className: "clarify-code-pre overflow-x-auto p-4 text-xs text-white",
281
+ children
282
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CopyButton, { code: copyText })]
283
+ })]
284
+ });
285
+ }
286
+ function CodeGroupHeader(arg0) {
287
+ const { title, children, selectedIndex } = arg0;
288
+ const t = require_shell.useBuiltInText();
289
+ const hasTabs = react.Children.count(children) > 1;
290
+ if (!title && !hasTabs) return null;
291
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
292
+ className: "clarify-code-group-header flex min-h-(--clarify-code-header-min-height) flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent",
293
+ children: [title ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
294
+ className: "mr-auto pt-3 text-xs font-semibold text-white",
295
+ children: title
296
+ }) : null, hasTabs ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.TabList, {
297
+ className: "clarify-code-tabs -mb-px flex gap-4 text-xs font-medium",
298
+ children: react.Children.map(children, (child, childIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.Tab, {
299
+ className: (0, clsx.default)("clarify-code-tab border-b py-3 transition data-selected:not-data-focus:outline-hidden", childIndex === selectedIndex ? "border-(--clarify-theme-tokens-colors-primary) text-(--clarify-theme-tokens-colors-primary)" : "border-transparent text-zinc-400 hover:text-zinc-300"),
300
+ children: getPanelTitle({
301
+ ...(0, react.isValidElement)(child) ? child.props : {},
302
+ fallbackTitle: t("actions.code")
303
+ })
304
+ }))
305
+ }) : null]
306
+ });
307
+ }
308
+ function CodeGroupPanels(arg0) {
309
+ const { children, ...props } = arg0;
310
+ if (react.Children.count(children) > 1) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.TabPanels, { children: react.Children.map(children, (child) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.TabPanel, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodePanel, {
311
+ ...props,
312
+ children: child
313
+ }) })) });
314
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodePanel, {
315
+ ...props,
316
+ children
317
+ });
318
+ }
319
+ function usePreventLayoutShift() {
320
+ const positionRef = (0, react.useRef)(null);
321
+ const rafRef = (0, react.useRef)(void 0);
322
+ (0, react.useEffect)(() => {
323
+ return () => {
324
+ if (typeof rafRef.current !== "undefined") window.cancelAnimationFrame(rafRef.current);
325
+ };
326
+ }, []);
327
+ return {
328
+ positionRef,
329
+ preventLayoutShift(callback) {
330
+ if (!positionRef.current) return;
331
+ const initialTop = positionRef.current.getBoundingClientRect().top;
332
+ callback();
333
+ rafRef.current = window.requestAnimationFrame(() => {
334
+ const newTop = positionRef.current?.getBoundingClientRect().top ?? initialTop;
335
+ window.scrollBy(0, newTop - initialTop);
336
+ });
337
+ }
338
+ };
339
+ }
340
+ var usePreferredLanguageStore = (0, zustand.create)()((set) => ({
341
+ preferredLanguages: [],
342
+ addPreferredLanguage: (language) => set((state) => ({ preferredLanguages: [...state.preferredLanguages.filter((preferredLanguage) => preferredLanguage !== language), language] }))
343
+ }));
344
+ function useTabGroupProps(availableLanguages) {
345
+ const { preferredLanguages, addPreferredLanguage } = usePreferredLanguageStore();
346
+ const [selectedIndex, setSelectedIndex] = (0, react.useState)(0);
347
+ if (new Set(availableLanguages).size === availableLanguages.length) {
348
+ const activeLanguage = [...availableLanguages].sort((a, z) => preferredLanguages.indexOf(z) - preferredLanguages.indexOf(a))[0];
349
+ const languageIndex = availableLanguages.indexOf(activeLanguage);
350
+ const newSelectedIndex = languageIndex === -1 ? selectedIndex : languageIndex;
351
+ if (newSelectedIndex !== selectedIndex) setSelectedIndex(newSelectedIndex);
352
+ }
353
+ const { positionRef, preventLayoutShift } = usePreventLayoutShift();
354
+ return {
355
+ as: "div",
356
+ ref: positionRef,
357
+ selectedIndex,
358
+ onChange: (nextSelectedIndex) => {
359
+ setSelectedIndex(nextSelectedIndex);
360
+ preventLayoutShift(() => addPreferredLanguage(availableLanguages[nextSelectedIndex]));
361
+ }
362
+ };
363
+ }
364
+ var CodeGroupContext = (0, react.createContext)(false);
365
+ function CodeGroup(arg0) {
366
+ const { children, title, ...props } = arg0;
367
+ const t = require_shell.useBuiltInText();
368
+ const tabGroupProps = useTabGroupProps(react.Children.map(children, (child) => getPanelTitle({
369
+ ...(0, react.isValidElement)(child) ? child.props : {},
370
+ fallbackTitle: t("actions.code")
371
+ })) ?? []);
372
+ const hasTabs = react.Children.count(children) > 1;
373
+ const containerClassName = "clarify-code-group my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10";
374
+ const header = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroupHeader, {
375
+ title,
376
+ selectedIndex: tabGroupProps.selectedIndex,
377
+ children
378
+ });
379
+ const panels = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroupPanels, {
380
+ ...props,
381
+ children
382
+ });
383
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroupContext.Provider, {
384
+ value: true,
385
+ children: hasTabs ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.TabGroup, {
386
+ ...tabGroupProps,
387
+ className: containerClassName,
388
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
389
+ className: "not-prose",
390
+ children: [header, panels]
391
+ })
392
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
393
+ className: containerClassName,
394
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
395
+ className: "not-prose",
396
+ children: [header, panels]
397
+ })
398
+ })
399
+ });
400
+ }
401
+ function Code(arg0) {
402
+ const { children, ...props } = arg0;
403
+ if ((0, react.useContext)(CodeGroupContext) && typeof children === "string") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
404
+ ...props,
405
+ dangerouslySetInnerHTML: { __html: children }
406
+ });
407
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
408
+ ...props,
409
+ children
410
+ });
411
+ }
412
+ function Pre(arg0) {
413
+ const { children, ...props } = arg0;
414
+ if ((0, react.useContext)(CodeGroupContext)) return children;
415
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroup, {
416
+ ...props,
417
+ children
418
+ });
419
+ }
420
+ //#endregion
421
+ //#region source/components/Collapse.tsx
422
+ function Collapse(arg0) {
423
+ const { children, title, summary, defaultOpen = false, className, ...props } = arg0;
424
+ const [open, setOpen] = (0, react.useState)(defaultOpen);
425
+ const contentRef = (0, react.useRef)(null);
426
+ const [maxHeight, setMaxHeight] = (0, react.useState)("0px");
427
+ const summaryLabel = title ?? summary ?? "Details";
428
+ const contentId = (0, react.useId)();
429
+ (0, react.useLayoutEffect)(() => {
430
+ if (!contentRef.current) return;
431
+ setMaxHeight(open ? `${contentRef.current.scrollHeight}px` : "0px");
432
+ }, [open, children]);
433
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
434
+ className: (0, clsx.default)("clarify-collapse my-6 overflow-hidden rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) shadow-sm", className),
435
+ ...props,
436
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
437
+ type: "button",
438
+ className: "flex w-full cursor-pointer items-center justify-between gap-3 px-4 py-3 text-left text-sm font-semibold text-(--clarify-theme-tokens-colors-foreground) transition hover:bg-(--clarify-ui-hover-background) focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--clarify-theme-tokens-colors-primary) focus-visible:ring-offset-2 focus-visible:ring-offset-(--clarify-theme-tokens-colors-background)",
439
+ "aria-expanded": open,
440
+ "aria-controls": contentId,
441
+ onClick: () => setOpen((value) => !value),
442
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: summaryLabel }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, {
443
+ className: (0, clsx.default)("h-4 w-4 text-(--clarify-theme-tokens-colors-muted) transition-transform duration-200", open && "rotate-180"),
444
+ "aria-hidden": "true"
445
+ })]
446
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
447
+ id: contentId,
448
+ className: "clarify-collapse-content overflow-hidden border-t border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-background) duration-200 ease-out",
449
+ style: {
450
+ maxHeight,
451
+ willChange: "max-height, opacity, transform"
452
+ },
453
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
454
+ ref: contentRef,
455
+ className: (0, clsx.default)("px-4 py-4 text-sm/6 text-(--clarify-theme-tokens-colors-foreground) transition-opacity duration-200 ease-out", open ? "opacity-100 translate-y-0" : "opacity-0 -translate-y-1"),
456
+ children
457
+ })
458
+ })]
459
+ });
460
+ }
461
+ //#endregion
462
+ //#region source/components/Feedback.tsx
463
+ function FeedbackButton(props) {
464
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
465
+ type: "submit",
466
+ className: "clarify-feedback-button px-3 text-sm font-medium text-(--clarify-ui-text-soft) transition hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground)",
467
+ ...props
468
+ });
469
+ }
470
+ var FeedbackForm = (0, react.forwardRef)(function FeedbackForm(arg0, ref) {
471
+ const { onSubmit, className, ...props } = arg0;
472
+ const t = require_shell.useBuiltInText();
473
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("form", {
474
+ ...props,
475
+ ref,
476
+ onSubmit,
477
+ className: (0, clsx.default)(className, "clarify-feedback-form absolute inset-0 flex items-center justify-center gap-6 md:justify-start"),
478
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
479
+ className: "text-sm text-(--clarify-ui-text-soft)",
480
+ children: t("feedback.prompt")
481
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
482
+ className: "clarify-feedback-actions group grid h-8 grid-cols-(--clarify-feedback-actions-grid) overflow-hidden rounded-full border border-(--clarify-theme-tokens-colors-border)",
483
+ children: [
484
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackButton, {
485
+ "data-response": "yes",
486
+ children: t("feedback.yes")
487
+ }),
488
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "bg-(--clarify-theme-tokens-colors-border)" }),
489
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackButton, {
490
+ "data-response": "no",
491
+ children: t("feedback.no")
492
+ })
493
+ ]
494
+ })]
495
+ });
496
+ });
497
+ var FeedbackThanks = (0, react.forwardRef)(function FeedbackThanks(arg0, ref) {
498
+ const { className, ...props } = arg0;
499
+ const t = require_shell.useBuiltInText();
500
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
501
+ ...props,
502
+ ref,
503
+ className: (0, clsx.default)(className, "clarify-feedback-thanks absolute inset-0 flex justify-center md:justify-start"),
504
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
505
+ className: "flex items-center gap-3 rounded-full bg-(--clarify-ui-accent-background) py-1 pr-3 pl-1.5 text-sm text-(--clarify-ui-accent-text) ring-1 ring-(--clarify-ui-accent-border) ring-inset",
506
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.CircleCheck, { className: "h-5 w-5 flex-none stroke-(--clarify-ui-accent-text)" }), t("feedback.thanks")]
507
+ })
508
+ });
509
+ });
510
+ function Feedback() {
511
+ const [submitted, setSubmitted] = (0, react.useState)(false);
512
+ function onSubmit(event) {
513
+ event.preventDefault();
514
+ setSubmitted(true);
515
+ }
516
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
517
+ className: "clarify-feedback relative h-8",
518
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.Transition, {
519
+ show: !submitted,
520
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackForm, {
521
+ className: "duration-300 data-closed:opacity-0 data-leave:pointer-events-none",
522
+ onSubmit
523
+ })
524
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.Transition, {
525
+ show: submitted,
526
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackThanks, { className: "delay-150 duration-300 data-closed:opacity-0" })
527
+ })]
528
+ });
529
+ }
530
+ //#endregion
531
+ //#region source/components/Tag.tsx
532
+ var tagVariantStyles = {
533
+ small: "",
534
+ medium: "rounded-lg px-1.5 ring-1 ring-inset"
535
+ };
536
+ var tagColorStyles = {
537
+ emerald: {
538
+ small: "text-emerald-500 dark:text-emerald-400",
539
+ medium: "bg-emerald-400/10 text-emerald-500 ring-emerald-300 dark:text-emerald-400 dark:ring-emerald-400/30"
540
+ },
541
+ sky: {
542
+ small: "text-sky-500 dark:text-sky-400",
543
+ medium: "bg-sky-400/10 text-sky-500 ring-sky-300 dark:text-sky-400 dark:ring-sky-400/30"
544
+ },
545
+ amber: {
546
+ small: "text-amber-500 dark:text-amber-400",
547
+ medium: "bg-amber-400/10 text-amber-500 ring-amber-300 dark:text-amber-400 dark:ring-amber-400/30"
548
+ },
549
+ rose: {
550
+ small: "text-red-500 dark:text-rose-500",
551
+ medium: "bg-rose-50 text-red-500 ring-rose-200 dark:bg-rose-400/10 dark:text-rose-400 dark:ring-rose-500/20"
552
+ },
553
+ zinc: {
554
+ small: "text-(--clarify-theme-tokens-colors-muted)",
555
+ medium: "bg-(--clarify-theme-tokens-colors-code-background) text-(--clarify-theme-tokens-colors-muted) ring-(--clarify-theme-tokens-colors-border)"
556
+ }
557
+ };
558
+ var tagValueColorMap = {
559
+ GET: "emerald",
560
+ POST: "sky",
561
+ PUT: "amber",
562
+ PATCH: "amber",
563
+ DELETE: "rose"
564
+ };
565
+ function Tag(arg0) {
566
+ const { children, variant = "medium", color } = arg0;
567
+ const value = typeof children === "string" ? children.toUpperCase() : "";
568
+ const resolvedColor = color ?? tagValueColorMap[value] ?? "emerald";
569
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
570
+ className: (0, clsx.default)("clarify-tag font-bold", tagVariantStyles[variant], tagColorStyles[resolvedColor][variant]),
571
+ children
572
+ });
573
+ }
574
+ //#endregion
575
+ //#region source/components/Heading.tsx
576
+ function Eyebrow(arg0) {
577
+ const { tag, label } = arg0;
578
+ if (!tag && !label) return null;
579
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
580
+ className: "flex items-center gap-x-3",
581
+ children: [
582
+ tag ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, { children: tag }) : null,
583
+ tag && label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-0.5 w-0.5 rounded-full bg-zinc-300 dark:bg-zinc-600" }) : null,
584
+ label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
585
+ className: "text-xs text-zinc-400",
586
+ children: label
587
+ }) : null
588
+ ]
589
+ });
590
+ }
591
+ function Anchor(arg0) {
592
+ const { id, inView, children } = arg0;
593
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
594
+ href: `#${id}`,
595
+ className: "clarify-anchor group text-inherit no-underline hover:text-inherit",
596
+ children: [inView ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
597
+ className: "absolute mt-1 -ml-(--width) hidden w-(--width) opacity-0 transition [--width:var(--clarify-heading-anchor-width)] group-hover:opacity-100 group-focus:opacity-100 md:block lg:z-50 2xl:[--width:var(--clarify-heading-anchor-width-wide)]",
598
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
599
+ className: "group/anchor block h-5 w-5 rounded-lg bg-zinc-50 ring-1 ring-inset ring-zinc-300 transition hover:ring-zinc-500 dark:bg-zinc-800 dark:ring-zinc-700 dark:hover:bg-zinc-700 dark:hover:ring-zinc-600",
600
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.LinkIcon, { className: "h-5 w-5 stroke-zinc-500 transition dark:stroke-zinc-400 dark:group-hover/anchor:stroke-white" })
601
+ })
602
+ }) : null, children]
603
+ });
604
+ }
605
+ function Heading(arg0) {
606
+ const { children, className, tag, label, level, anchor = true, ...props } = arg0;
607
+ const resolvedLevel = level ?? 2;
608
+ const Component = `h${resolvedLevel}`;
609
+ const ref = (0, react.useRef)(null);
610
+ const registerHeading = require_shell.useSectionStore((state) => state.registerHeading);
611
+ const inView = (0, framer_motion.useInView)(ref, {
612
+ margin: `${require_shell.remToPx(-3.5)}px 0px 0px 0px`,
613
+ amount: "all"
614
+ });
615
+ (0, react.useEffect)(() => {
616
+ if (resolvedLevel === 2) registerHeading({
617
+ id: props.id,
618
+ ref,
619
+ offsetRem: tag || label ? 8 : 6
620
+ });
621
+ }, [
622
+ label,
623
+ props.id,
624
+ registerHeading,
625
+ resolvedLevel,
626
+ tag
627
+ ]);
628
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Eyebrow, {
629
+ tag,
630
+ label
631
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
632
+ ref,
633
+ className: (0, clsx.default)("clarify-heading", tag || label ? "mt-2 scroll-mt-32" : "scroll-mt-24", className),
634
+ ...props,
635
+ children: anchor ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Anchor, {
636
+ id: props.id,
637
+ inView,
638
+ children
639
+ }) : children
640
+ })] });
641
+ }
642
+ //#endregion
643
+ //#region source/components/Logo.tsx
644
+ function Logo(props) {
645
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
646
+ viewBox: "0 0 99 24",
647
+ "aria-hidden": "true",
648
+ ...props,
649
+ className: (0, clsx.default)("clarify-logo", props.className),
650
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
651
+ className: "fill-(--clarify-theme-tokens-colors-primary)",
652
+ d: "M16 8a5 5 0 0 0-5-5H5a5 5 0 0 0-5 5v13.927a1 1 0 0 0 1.623.782l3.684-2.93a4 4 0 0 1 2.49-.87H11a5 5 0 0 0 5-5V8Z"
653
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
654
+ className: "fill-(--clarify-theme-tokens-colors-foreground) dark:fill-white",
655
+ d: "M26.538 18h2.654v-3.999h2.576c2.672 0 4.456-1.723 4.456-4.333V9.65c0-2.61-1.784-4.333-4.456-4.333h-5.23V18Zm4.58-10.582c1.52 0 2.416.8 2.416 2.241v.018c0 1.441-.896 2.25-2.417 2.25h-1.925V7.418h1.925ZM38.051 18h2.566v-5.414c0-1.371.923-2.206 2.382-2.206.396 0 .791.061 1.178.15V8.287a3.843 3.843 0 0 0-.958-.123c-1.257 0-2.136.615-2.443 1.661h-.159V8.323h-2.566V18Zm11.55.202c2.979 0 4.772-1.88 4.772-5.036v-.018c0-3.128-1.82-5.036-4.773-5.036-2.953 0-4.772 1.916-4.772 5.036v.018c0 3.146 1.793 5.036 4.772 5.036Zm0-2.013c-1.372 0-2.145-1.116-2.145-3.023v-.018c0-1.89.782-3.023 2.144-3.023 1.354 0 2.145 1.134 2.145 3.023v.018c0 1.907-.782 3.023-2.145 3.023Zm10.52 1.846c.492 0 .967-.053 1.283-.114v-1.907a6.057 6.057 0 0 1-.755.044c-.87 0-1.24-.387-1.24-1.257v-4.544h1.995V8.323H59.41V6.012h-2.592v2.311h-1.495v1.934h1.495v5.133c0 1.88.949 2.645 3.304 2.645Zm7.287.167c2.98 0 4.772-1.88 4.772-5.036v-.018c0-3.128-1.82-5.036-4.772-5.036-2.954 0-4.773 1.916-4.773 5.036v.018c0 3.146 1.793 5.036 4.773 5.036Zm0-2.013c-1.372 0-2.145-1.116-2.145-3.023v-.018c0-1.89.782-3.023 2.145-3.023 1.353 0 2.144 1.134 2.144 3.023v.018c0 1.907-.782 3.023-2.144 3.023Zm10.767 2.013c2.522 0 4.034-1.353 4.297-3.463l.01-.053h-2.374l-.017.036c-.229.966-.853 1.467-1.908 1.467-1.37 0-2.135-1.08-2.135-3.04v-.018c0-1.934.755-3.006 2.135-3.006 1.099 0 1.74.615 1.908 1.556l.008.017h2.391v-.026c-.228-2.162-1.749-3.56-4.315-3.56-3.033 0-4.738 1.837-4.738 5.019v.017c0 3.217 1.714 5.054 4.738 5.054Zm10.257 0c2.98 0 4.772-1.88 4.772-5.036v-.018c0-3.128-1.82-5.036-4.772-5.036-2.953 0-4.773 1.916-4.773 5.036v.018c0 3.146 1.793 5.036 4.773 5.036Zm0-2.013c-1.371 0-2.145-1.116-2.145-3.023v-.018c0-1.89.782-3.023 2.145-3.023 1.353 0 2.144 1.134 2.144 3.023v.018c0 1.907-.782 3.023-2.144 3.023ZM95.025 18h2.566V4.623h-2.566V18Z"
656
+ })]
657
+ });
658
+ }
659
+ //#endregion
660
+ //#region source/components/patterns.tsx
661
+ function GridPattern(arg0) {
662
+ const { width, height, x, y, squares, ...props } = arg0;
663
+ const patternId = (0, react.useId)();
664
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
665
+ "aria-hidden": "true",
666
+ ...props,
667
+ children: [
668
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pattern", {
669
+ id: patternId,
670
+ width,
671
+ height,
672
+ patternUnits: "userSpaceOnUse",
673
+ x,
674
+ y,
675
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
676
+ d: `M.5 ${height}V.5H${width}`,
677
+ fill: "none"
678
+ })
679
+ }) }),
680
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
681
+ width: "100%",
682
+ height: "100%",
683
+ strokeWidth: 0,
684
+ fill: `url(#${patternId})`
685
+ }),
686
+ squares ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
687
+ x,
688
+ y,
689
+ className: "overflow-visible",
690
+ children: squares.map(([squareX, squareY]) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
691
+ width: width + 1,
692
+ height: height + 1,
693
+ x: squareX * width,
694
+ y: squareY * height,
695
+ strokeWidth: "0"
696
+ }, `${squareX}-${squareY}`))
697
+ }) : null
698
+ ]
699
+ });
700
+ }
701
+ function HeroPattern() {
702
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
703
+ className: "absolute inset-0 -z-10 mx-0 max-w-none overflow-hidden",
704
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
705
+ className: "clarify-hero-pattern-mask absolute top-0 left-1/2 -ml-152 h-100 w-325",
706
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
707
+ className: "clarify-hero-pattern-gradient absolute inset-0 opacity-35 dark:opacity-55",
708
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridPattern, {
709
+ width: 72,
710
+ height: 56,
711
+ x: -12,
712
+ y: 4,
713
+ squares: [
714
+ [4, 3],
715
+ [2, 1],
716
+ [7, 3],
717
+ [10, 6]
718
+ ],
719
+ className: "clarify-hero-pattern-grid absolute inset-x-0 w-full -skew-y-18 fill-black/40 stroke-black/50 mix-blend-overlay dark:fill-white/2.5 dark:stroke-white/5"
720
+ })
721
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
722
+ viewBox: "0 0 1113 440",
723
+ "aria-hidden": "true",
724
+ className: "absolute top-0 left-1/2 -ml-76 w-278.25 fill-white blur-xl dark:hidden",
725
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M.016 439.5s-9.5-300 434-300S882.516 20 882.516 20V0h230.004v439.5H.016Z" })
726
+ })]
727
+ })
728
+ });
729
+ }
730
+ //#endregion
731
+ //#region source/components/Prose.tsx
732
+ function Prose(arg0) {
733
+ const { as, className, ...props } = arg0;
734
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(as ?? "div", {
735
+ className: (0, clsx.default)(className, "clarify-prose prose max-w-none dark:prose-invert", "[html_:where(&>*)]:w-full [html_:where(&>*)]:min-w-0 [html_:where(&>*)]:max-w-full"),
736
+ ...props
737
+ });
738
+ }
739
+ //#endregion
15
740
  //#region source/mdx/primitives.tsx
16
741
  var primitives_exports = /* @__PURE__ */ require_chunk.__exportAll({
17
- Button: () => require_shell.Button,
18
- Callout: () => require_shell.Callout,
19
- Card: () => require_shell.Card,
20
- CardGroup: () => require_shell.CardGroup,
21
- CodeGroup: () => require_shell.CodeGroup,
742
+ Button: () => Button,
743
+ Callout: () => Callout,
744
+ Card: () => Card,
745
+ CardGroup: () => CardGroup,
746
+ CodeGroup: () => CodeGroup,
22
747
  Col: () => Col,
23
748
  Note: () => Note,
24
749
  Properties: () => Properties,
@@ -35,7 +760,7 @@ function wrapper(arg0) {
35
760
  const { children } = arg0;
36
761
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("article", {
37
762
  className: "clarify-mdx-page flex h-full flex-col pt-16 pb-10",
38
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_shell.Prose, {
763
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Prose, {
39
764
  className: "flex-auto",
40
765
  children
41
766
  })
@@ -52,53 +777,25 @@ function a(arg0) {
52
777
  ...props
53
778
  });
54
779
  }
55
- var code = require_shell.Code;
56
- var pre = require_shell.Pre;
780
+ var code = Code;
781
+ var pre = Pre;
57
782
  function h2(props) {
58
- return (0, react.createElement)(require_shell.Heading, {
783
+ return (0, react.createElement)(Heading, {
59
784
  level: 2,
60
785
  ...props
61
786
  });
62
787
  }
63
788
  function h3(props) {
64
- return (0, react.createElement)(require_shell.Heading, {
789
+ return (0, react.createElement)(Heading, {
65
790
  level: 3,
66
791
  ...props
67
792
  });
68
793
  }
69
- function InfoIcon(props) {
70
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
71
- viewBox: "0 0 16 16",
72
- "aria-hidden": "true",
73
- ...props,
74
- children: [
75
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
76
- cx: "8",
77
- cy: "8",
78
- r: "8",
79
- strokeWidth: "0"
80
- }),
81
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
82
- fill: "none",
83
- strokeLinecap: "round",
84
- strokeLinejoin: "round",
85
- strokeWidth: "1.5",
86
- d: "M6.75 7.75h1.5v3.5"
87
- }),
88
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
89
- cx: "8",
90
- cy: "4",
91
- r: ".5",
92
- fill: "none"
93
- })
94
- ]
95
- });
96
- }
97
794
  function Note(arg0) {
98
795
  const { children } = arg0;
99
796
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
100
- className: "clarify-note my-6 flex gap-2.5 rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-ui-accent-border) bg-(--clarify-ui-accent-background) p-4 text-sm/6 text-(--clarify-theme-tokens-colors-foreground) dark:text-zinc-100 dark:[--tw-prose-links-hover:var(--clarify-ui-accent-text)] dark:[--tw-prose-links:var(--color-white)]",
101
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(InfoIcon, { className: "mt-1 h-4 w-4 flex-none fill-(--clarify-ui-accent-text) stroke-(--clarify-theme-tokens-colors-surface) dark:fill-(--clarify-ui-accent-background) dark:stroke-(--clarify-ui-accent-text)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
797
+ className: "clarify-note my-6 flex gap-2.5 rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-ui-accent-border) bg-(--clarify-ui-accent-background) p-4 text-sm/6 text-(--clarify-theme-tokens-colors-foreground) [--tw-prose-links-hover:var(--clarify-ui-accent-text)] [--tw-prose-links:var(--clarify-theme-tokens-colors-foreground)]",
798
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Info, { className: "mt-1 h-4 w-4 flex-none stroke-(--clarify-ui-accent-text)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
102
799
  className: "*:first:mt-0 *:last:mb-0",
103
800
  children
104
801
  })]
@@ -124,7 +821,7 @@ function Properties(arg0) {
124
821
  className: "clarify-properties my-6",
125
822
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
126
823
  role: "list",
127
- className: "m-0 list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5",
824
+ className: "m-0 list-none divide-y divide-(--clarify-theme-tokens-colors-border) p-0",
128
825
  children
129
826
  })
130
827
  });
@@ -141,14 +838,14 @@ function Property(arg0) {
141
838
  children: "Name"
142
839
  }),
143
840
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dd", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
144
- className: "text-sm/5 font-semibold text-zinc-950 dark:text-white",
841
+ className: "text-sm/5 font-semibold text-(--clarify-theme-tokens-colors-foreground)",
145
842
  children: name
146
843
  }) }),
147
844
  type ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("dt", {
148
845
  className: "sr-only",
149
846
  children: "Type"
150
847
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dd", {
151
- className: "text-xs text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-500",
848
+ className: "text-xs text-(--clarify-theme-tokens-colors-muted)",
152
849
  children: type
153
850
  })] }) : null,
154
851
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dt", {
@@ -800,7 +1497,7 @@ function SelectControl(arg0) {
800
1497
  })]
801
1498
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.ListboxOptions, {
802
1499
  anchor: "bottom end",
803
- className: "clarify-api-select-options z-30 mt-1 max-h-64 w-max min-w-(--button-width) max-w-[min(32rem,calc(100vw-2rem))] overflow-auto rounded-xl bg-zinc-900 p-1 text-xs shadow-lg shadow-black/20 ring-1 ring-white/10 [--anchor-gap:--spacing(1)] focus:outline-none",
1500
+ className: "clarify-api-select-options z-30 mt-1 max-h-64 w-max min-w-(--button-width) max-w-(--clarify-popover-max-width) overflow-auto rounded-xl bg-zinc-900 p-1 text-xs shadow-lg shadow-black/20 ring-1 ring-white/10 [--anchor-gap:--spacing(1)] focus:outline-none",
804
1501
  children: normalizedOptions.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.ListboxOption, {
805
1502
  value: option.value,
806
1503
  className: "clarify-api-select-option group flex cursor-default items-center justify-between gap-3 rounded-lg px-2.5 py-2 text-xs whitespace-nowrap text-zinc-300 select-none data-focus:bg-white/10 data-focus:text-white data-selected:text-emerald-300",
@@ -951,7 +1648,7 @@ function ApiExampleCodeGroup(arg0) {
951
1648
  className: "not-prose",
952
1649
  children: [
953
1650
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
954
- className: "clarify-api-example-header flex min-h-[calc(--spacing(12)+1px)] items-center gap-3 border-b border-zinc-700 bg-zinc-800 px-4 py-2 dark:border-zinc-800 dark:bg-transparent",
1651
+ className: "clarify-api-example-header flex min-h-(--clarify-code-header-min-height) items-center gap-3 border-b border-zinc-700 bg-zinc-800 px-4 py-2 dark:border-zinc-800 dark:bg-transparent",
955
1652
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
956
1653
  className: "mr-auto min-w-16 truncate py-1 text-xs font-semibold text-white",
957
1654
  children: title
@@ -1006,7 +1703,7 @@ function ApiExampleCodeGroup(arg0) {
1006
1703
  selectedClientKey,
1007
1704
  onSelectClient
1008
1705
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
1009
- className: `overflow-x-auto p-4 text-xs text-white ${languageOptions && languageOptions.length > 1 ? "pt-14" : ""}`,
1706
+ className: `max-h-128 overflow-auto overscroll-contain p-4 text-xs text-white ${languageOptions && languageOptions.length > 1 ? "pt-14" : ""}`,
1010
1707
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
1011
1708
  className: `language-${language}`,
1012
1709
  children: code
@@ -1274,27 +1971,27 @@ function SchemaNode(arg0) {
1274
1971
  const hasChildren = node.children.length > 0;
1275
1972
  const type = [node.type, node.required ? t("openapi.requiredBadge") : void 0].filter(Boolean).join(", ") || void 0;
1276
1973
  const fallbackDescription = node.required ? t("openapi.required") : t("openapi.optional");
1277
- const rowClassName = (0, clsx.default)("flex min-w-0 items-start rounded py-0.5 text-left", depth > 0 ? "-mx-2 w-[calc(100%+1rem)] px-2" : "w-full px-1");
1974
+ const rowClassName = (0, clsx.default)("flex min-w-0 items-start rounded py-0.5 text-left", depth > 0 ? "-mx-2 w-(--clarify-schema-row-nested-width) px-2" : "w-full px-1");
1278
1975
  const content = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1279
1976
  className: "min-w-0 flex-1",
1280
1977
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1281
1978
  className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5",
1282
1979
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1283
- className: "text-sm/5 font-semibold text-zinc-950 dark:text-white",
1980
+ className: "text-sm/5 font-semibold text-(--clarify-theme-tokens-colors-foreground)",
1284
1981
  children: node.name
1285
1982
  }), type ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1286
- className: "text-xs text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-500",
1983
+ className: "text-xs text-(--clarify-theme-tokens-colors-muted)",
1287
1984
  children: type
1288
1985
  }) : null]
1289
1986
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1290
- className: "mt-0.5 text-sm/5 text-zinc-600 *:first:mt-0 *:last:mb-0 dark:text-zinc-400",
1987
+ className: "mt-0.5 text-sm/5 text-(--clarify-ui-text-soft) *:first:mt-0 *:last:mb-0",
1291
1988
  children: [node.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Markdown, { children: node.description }) : fallbackDescription, node.details ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
1292
- className: "text-xs text-zinc-500 dark:text-zinc-500",
1989
+ className: "text-xs text-(--clarify-ui-text-faint)",
1293
1990
  children: node.details
1294
1991
  }) : null]
1295
1992
  })]
1296
1993
  }), hasChildren ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1297
- className: "ml-2 flex h-5 w-5 flex-none items-center justify-center text-zinc-500 dark:text-zinc-400",
1994
+ className: "ml-2 flex h-5 w-5 flex-none items-center justify-center text-(--clarify-ui-text-faint)",
1298
1995
  "aria-hidden": "true",
1299
1996
  children: expanded ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRight, { className: "h-4 w-4" })
1300
1997
  }) : null] });
@@ -1321,7 +2018,7 @@ function SchemaTree(arg0) {
1321
2018
  if (nodes.length === 0) return null;
1322
2019
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
1323
2020
  role: "list",
1324
- className: (0, clsx.default)("m-0 list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5", depth > 0 && "mt-2 rounded-lg bg-zinc-950/2.5 px-2 py-1 dark:bg-white/4"),
2021
+ className: (0, clsx.default)("m-0 list-none divide-y divide-(--clarify-theme-tokens-colors-border) p-0", depth > 0 && "mt-2 rounded-lg bg-(--clarify-ui-subtle-background) px-2 py-1"),
1325
2022
  children: nodes.map((node) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SchemaNode, {
1326
2023
  node,
1327
2024
  depth
@@ -1407,27 +2104,27 @@ function InlineListbox(arg0) {
1407
2104
  className: "pointer-events-auto relative inline-flex min-w-0",
1408
2105
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.ListboxButton, {
1409
2106
  "aria-label": label,
1410
- className: (0, clsx.default)("inline-flex min-w-0 items-center gap-1 rounded-md border border-zinc-200 bg-white font-semibold text-zinc-900 shadow-xs outline-hidden transition hover:border-zinc-300 hover:bg-zinc-50 data-open:border-zinc-300 data-open:bg-zinc-50 dark:border-white/10 dark:bg-zinc-950 dark:text-zinc-100 dark:hover:border-white/15 dark:hover:bg-zinc-900 dark:data-open:border-white/15 dark:data-open:bg-zinc-900", compact ? "max-w-32 px-1.5 py-0.5 text-xs" : "w-full px-2.5 py-1.5 text-xs"),
2107
+ className: (0, clsx.default)("inline-flex min-w-0 items-center gap-1 rounded-md border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) font-semibold text-(--clarify-theme-tokens-colors-foreground) shadow-xs outline-hidden transition hover:border-(--clarify-ui-text-faint) hover:bg-(--clarify-ui-hover-background) data-open:border-(--clarify-ui-text-faint) data-open:bg-(--clarify-ui-hover-background)", compact ? "max-w-32 px-1.5 py-0.5 text-xs" : "w-full px-2.5 py-1.5 text-xs"),
1411
2108
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1412
2109
  className: "truncate",
1413
2110
  children: selected?.label ?? value
1414
2111
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, {
1415
- className: "h-3.5 w-3.5 shrink-0 text-zinc-500 dark:text-zinc-400",
2112
+ className: "h-3.5 w-3.5 shrink-0 text-(--clarify-ui-text-faint)",
1416
2113
  "aria-hidden": "true"
1417
2114
  })]
1418
2115
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.ListboxOptions, {
1419
2116
  anchor: "bottom start",
1420
- className: "z-30 mt-1 max-h-64 w-max min-w-(--button-width) max-w-[min(32rem,calc(100vw-2rem))] overflow-auto rounded-xl bg-white p-1 text-xs shadow-lg shadow-black/10 ring-1 ring-zinc-950/10 [--anchor-gap:--spacing(1)] focus:outline-none dark:bg-zinc-950 dark:ring-white/10",
2117
+ className: "z-30 mt-1 max-h-64 w-max min-w-(--button-width) max-w-(--clarify-popover-max-width) overflow-auto rounded-xl bg-(--clarify-theme-tokens-colors-surface) p-1 text-xs shadow-lg shadow-black/10 ring-1 ring-(--clarify-theme-tokens-colors-border) [--anchor-gap:--spacing(1)] focus:outline-none",
1421
2118
  children: options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.ListboxOption, {
1422
2119
  value: option.value,
1423
- className: "group flex cursor-default items-center justify-between gap-3 rounded-lg px-2.5 py-2 text-xs text-zinc-700 select-none data-focus:bg-zinc-100 data-selected:text-emerald-700 dark:text-zinc-200 dark:data-focus:bg-white/10 dark:data-selected:text-emerald-300",
2120
+ className: "group flex cursor-default items-center justify-between gap-3 rounded-lg px-2.5 py-2 text-xs text-(--clarify-ui-text) select-none data-focus:bg-(--clarify-ui-hover-background) data-selected:text-(--clarify-theme-tokens-colors-primary)",
1424
2121
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
1425
2122
  className: "min-w-0",
1426
2123
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1427
2124
  className: "block truncate",
1428
2125
  children: option.label
1429
2126
  }), option.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1430
- className: "mt-0.5 block truncate text-2xs text-zinc-500 dark:text-zinc-400",
2127
+ className: "mt-0.5 block truncate text-2xs text-(--clarify-ui-text-faint)",
1431
2128
  children: option.description
1432
2129
  }) : null]
1433
2130
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.CheckIcon, {
@@ -1450,7 +2147,7 @@ function ServerUrlValue(arg0) {
1450
2147
  "aria-expanded": open,
1451
2148
  "aria-label": "Server",
1452
2149
  onClick: onToggle,
1453
- className: (0, clsx.default)("flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-zinc-100/50 text-zinc-600 transition hover:bg-zinc-100 hover:text-zinc-950 dark:bg-white/5 dark:text-zinc-300 dark:hover:bg-white/10 dark:hover:text-white sm:w-auto sm:min-w-16 sm:max-w-[min(36%,16rem)] sm:px-1.5", open ? "bg-zinc-200 text-zinc-950 dark:bg-white/12 dark:text-white" : null),
2150
+ className: (0, clsx.default)("flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-(--clarify-ui-subtle-background) text-(--clarify-ui-text-soft) transition hover:bg-(--clarify-ui-hover-background) hover:text-(--clarify-theme-tokens-colors-foreground) sm:w-auto sm:min-w-16 sm:max-w-(--clarify-server-url-max-width) sm:px-1.5", open ? "bg-(--clarify-ui-active-background) text-(--clarify-theme-tokens-colors-foreground)" : null),
1454
2151
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1455
2152
  className: "sm:hidden",
1456
2153
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ServerIcon, {
@@ -1486,20 +2183,20 @@ function ServerVariableControl(arg0) {
1486
2183
  value,
1487
2184
  placeholder: variable?.default ?? name,
1488
2185
  onChange: (event) => onChange(event.target.value),
1489
- className: (0, clsx.default)("pointer-events-auto rounded-md border border-zinc-200 bg-white text-xs font-semibold text-zinc-900 shadow-xs outline-hidden transition placeholder:text-zinc-500 hover:border-zinc-300 hover:bg-zinc-50 focus:border-zinc-400 focus:bg-white dark:border-white/10 dark:bg-zinc-950 dark:text-zinc-100 dark:placeholder:text-zinc-500 dark:hover:border-white/15 dark:hover:bg-zinc-900 dark:focus:border-white/20 dark:focus:bg-zinc-950", compact ? "mx-0.5 w-24 px-1.5 py-0.5" : "w-full px-2.5 py-1.5")
2186
+ className: (0, clsx.default)("pointer-events-auto rounded-md border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) text-xs font-semibold text-(--clarify-theme-tokens-colors-foreground) shadow-xs outline-hidden transition placeholder:text-(--clarify-ui-text-faint) hover:border-(--clarify-ui-text-faint) hover:bg-(--clarify-ui-hover-background) focus:border-(--clarify-theme-tokens-colors-primary) focus:bg-(--clarify-theme-tokens-colors-surface)", compact ? "mx-0.5 w-24 px-1.5 py-0.5" : "w-full px-2.5 py-1.5")
1490
2187
  });
1491
2188
  }
1492
2189
  function ServerPanel(arg0) {
1493
2190
  const { servers, selectedKey, selectedServer, variables, onSelectServer, onChangeVariable } = arg0;
1494
2191
  const variableEntries = Object.entries(selectedServer.variables ?? {});
1495
2192
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1496
- className: "border-t border-zinc-200 bg-zinc-100/70 p-3 dark:border-white/10 dark:bg-zinc-900/60",
2193
+ className: "border-t border-(--clarify-theme-tokens-colors-border) bg-(--clarify-ui-subtle-background) p-3",
1497
2194
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1498
- className: "grid gap-3 sm:grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)]",
2195
+ className: "grid gap-3 sm:grid-cols-(--clarify-openapi-control-grid)",
1499
2196
  children: [servers.length > 1 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1500
2197
  className: "flex min-w-0 flex-col gap-1.5",
1501
2198
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1502
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2199
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1503
2200
  children: "Server"
1504
2201
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InlineListbox, {
1505
2202
  label: "Server",
@@ -1514,7 +2211,7 @@ function ServerPanel(arg0) {
1514
2211
  }) : null, variableEntries.map(([name, variable]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1515
2212
  className: "flex min-w-0 flex-col gap-1.5",
1516
2213
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1517
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2214
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1518
2215
  children: name
1519
2216
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ServerVariableControl, {
1520
2217
  name,
@@ -1530,13 +2227,13 @@ function AuthPanel(arg0) {
1530
2227
  const { authOptions, selectedAuthName, selectedAuth, authValues, onSelectAuth, onChangeAuthValue } = arg0;
1531
2228
  if (authOptions.length === 0) return null;
1532
2229
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1533
- className: "border-t border-zinc-200 bg-zinc-100/70 p-3 dark:border-white/10 dark:bg-zinc-900/60",
2230
+ className: "border-t border-(--clarify-theme-tokens-colors-border) bg-(--clarify-ui-subtle-background) p-3",
1534
2231
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1535
- className: "grid gap-3 sm:grid-cols-[minmax(0,1fr)_minmax(0,1.2fr)]",
2232
+ className: "grid gap-3 sm:grid-cols-(--clarify-openapi-control-grid)",
1536
2233
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1537
2234
  className: "flex min-w-0 flex-col gap-1.5",
1538
2235
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1539
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2236
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1540
2237
  children: "Auth"
1541
2238
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InlineListbox, {
1542
2239
  label: "Auth",
@@ -1551,17 +2248,17 @@ function AuthPanel(arg0) {
1551
2248
  }), selectedAuth ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1552
2249
  className: "flex min-w-0 flex-col gap-1.5",
1553
2250
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1554
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2251
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1555
2252
  children: "Credential"
1556
2253
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1557
- className: "flex min-w-0 items-center rounded-md border border-zinc-200 bg-white px-2.5 py-1.5 shadow-xs dark:border-white/10 dark:bg-zinc-950",
2254
+ className: "flex min-w-0 items-center rounded-md border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) px-2.5 py-1.5 shadow-xs",
1558
2255
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1559
- className: "mr-2 shrink-0 text-2xs font-semibold text-zinc-600 dark:text-zinc-400",
2256
+ className: "mr-2 shrink-0 text-2xs font-semibold text-(--clarify-ui-text-soft)",
1560
2257
  children: selectedAuth.scheme.type === "apiKey" ? selectedAuth.scheme.in ?? "apiKey" : selectedAuth.scheme.scheme ?? selectedAuth.scheme.type ?? "token"
1561
2258
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1562
2259
  value: authValues[selectedAuth.name] ?? authPlaceholder(selectedAuth),
1563
2260
  onChange: (event) => onChangeAuthValue(selectedAuth.name, event.target.value),
1564
- className: "min-w-0 flex-1 border-0 bg-transparent px-0 py-0 text-xs font-semibold text-zinc-900 outline-hidden placeholder:text-zinc-500 dark:text-zinc-100 dark:placeholder:text-zinc-500"
2261
+ className: "min-w-0 flex-1 border-0 bg-transparent px-0 py-0 text-xs font-semibold text-(--clarify-theme-tokens-colors-foreground) outline-hidden placeholder:text-(--clarify-ui-text-faint)"
1565
2262
  })]
1566
2263
  })]
1567
2264
  }) : null]
@@ -1572,7 +2269,7 @@ function EndpointIdentity(arg0) {
1572
2269
  const { method, path, servers, selectedServerKey, selectedServer, serverVariables, serverOpen, authOptions, selectedAuthName, selectedAuth, authValues, authOpen, onSelectServer, onChangeServerVariable, onToggleServer, onToggleAuth, onSelectAuth, onChangeAuthValue } = arg0;
1573
2270
  const segments = path.split("/").filter(Boolean);
1574
2271
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1575
- className: "not-prose flex w-full flex-col overflow-hidden rounded-xl border border-zinc-200 bg-white shadow-xs dark:border-white/10 dark:bg-zinc-950",
2272
+ className: "not-prose flex w-full flex-col overflow-hidden rounded-xl border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) shadow-xs",
1576
2273
  children: [
1577
2274
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1578
2275
  className: "flex min-w-0 items-center gap-1.5 overflow-hidden px-2.5 py-2",
@@ -1587,19 +2284,19 @@ function EndpointIdentity(arg0) {
1587
2284
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1588
2285
  className: "flex min-w-0 flex-1 items-center overflow-x-auto text-sm font-bold leading-6 whitespace-nowrap",
1589
2286
  children: segments.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1590
- className: "text-zinc-400",
2287
+ className: "text-(--clarify-ui-text-faint)",
1591
2288
  children: "/"
1592
2289
  }), segments.map((segment, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
1593
2290
  className: "flex items-center",
1594
2291
  children: [index > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1595
- className: "text-zinc-400",
2292
+ className: "text-(--clarify-ui-text-faint)",
1596
2293
  children: "/"
1597
2294
  }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1598
- className: "font-bold text-zinc-800 dark:text-white",
2295
+ className: "font-bold text-(--clarify-theme-tokens-colors-foreground)",
1599
2296
  children: segment
1600
2297
  })]
1601
2298
  }, `${segment}-${index}`))] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1602
- className: "font-bold text-zinc-800 dark:text-white",
2299
+ className: "font-bold text-(--clarify-theme-tokens-colors-foreground)",
1603
2300
  children: "/"
1604
2301
  })
1605
2302
  }),
@@ -1608,7 +2305,7 @@ function EndpointIdentity(arg0) {
1608
2305
  "aria-expanded": authOpen,
1609
2306
  "aria-label": "Auth",
1610
2307
  onClick: onToggleAuth,
1611
- className: (0, clsx.default)("ml-auto flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-zinc-600 transition hover:bg-zinc-100 hover:text-emerald-700 dark:text-zinc-300 dark:hover:bg-white/10 dark:hover:text-emerald-200", authOpen ? "bg-emerald-100 text-emerald-800 dark:bg-emerald-400/15 dark:text-emerald-100" : "bg-zinc-50 dark:bg-white/5"),
2308
+ className: (0, clsx.default)("ml-auto flex h-8 w-8 shrink-0 items-center justify-center rounded-lg text-(--clarify-ui-text-soft) transition hover:bg-(--clarify-ui-hover-background) hover:text-emerald-700 dark:hover:text-emerald-200", authOpen ? "bg-emerald-100 text-emerald-800 dark:bg-emerald-400/15 dark:text-emerald-100" : "bg-(--clarify-ui-subtle-background)"),
1612
2309
  children: authOpen ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.UnlockKeyholeIcon, {
1613
2310
  className: "h-4 w-4",
1614
2311
  "aria-hidden": "true"
@@ -1710,7 +2407,7 @@ function OpenApiOperation(arg0) {
1710
2407
  [name]: value
1711
2408
  }))
1712
2409
  }),
1713
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_shell.Heading, {
2410
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Heading, {
1714
2411
  id,
1715
2412
  className: "mt-6",
1716
2413
  children: summary
@@ -1765,12 +2462,84 @@ function OpenApiOperation(arg0) {
1765
2462
  });
1766
2463
  }
1767
2464
  //#endregion
2465
+ Object.defineProperty(exports, "Button", {
2466
+ enumerable: true,
2467
+ get: function() {
2468
+ return Button;
2469
+ }
2470
+ });
2471
+ Object.defineProperty(exports, "Callout", {
2472
+ enumerable: true,
2473
+ get: function() {
2474
+ return Callout;
2475
+ }
2476
+ });
2477
+ Object.defineProperty(exports, "Card", {
2478
+ enumerable: true,
2479
+ get: function() {
2480
+ return Card;
2481
+ }
2482
+ });
2483
+ Object.defineProperty(exports, "CardGroup", {
2484
+ enumerable: true,
2485
+ get: function() {
2486
+ return CardGroup;
2487
+ }
2488
+ });
2489
+ Object.defineProperty(exports, "Code", {
2490
+ enumerable: true,
2491
+ get: function() {
2492
+ return Code;
2493
+ }
2494
+ });
2495
+ Object.defineProperty(exports, "CodeGroup", {
2496
+ enumerable: true,
2497
+ get: function() {
2498
+ return CodeGroup;
2499
+ }
2500
+ });
2501
+ Object.defineProperty(exports, "Collapse", {
2502
+ enumerable: true,
2503
+ get: function() {
2504
+ return Collapse;
2505
+ }
2506
+ });
1768
2507
  Object.defineProperty(exports, "EndpointIdentity", {
1769
2508
  enumerable: true,
1770
2509
  get: function() {
1771
2510
  return EndpointIdentity;
1772
2511
  }
1773
2512
  });
2513
+ Object.defineProperty(exports, "Feedback", {
2514
+ enumerable: true,
2515
+ get: function() {
2516
+ return Feedback;
2517
+ }
2518
+ });
2519
+ Object.defineProperty(exports, "GridPattern", {
2520
+ enumerable: true,
2521
+ get: function() {
2522
+ return GridPattern;
2523
+ }
2524
+ });
2525
+ Object.defineProperty(exports, "Heading", {
2526
+ enumerable: true,
2527
+ get: function() {
2528
+ return Heading;
2529
+ }
2530
+ });
2531
+ Object.defineProperty(exports, "HeroPattern", {
2532
+ enumerable: true,
2533
+ get: function() {
2534
+ return HeroPattern;
2535
+ }
2536
+ });
2537
+ Object.defineProperty(exports, "Logo", {
2538
+ enumerable: true,
2539
+ get: function() {
2540
+ return Logo;
2541
+ }
2542
+ });
1774
2543
  Object.defineProperty(exports, "Markdown", {
1775
2544
  enumerable: true,
1776
2545
  get: function() {
@@ -1783,6 +2552,18 @@ Object.defineProperty(exports, "OpenApiOperation", {
1783
2552
  return OpenApiOperation;
1784
2553
  }
1785
2554
  });
2555
+ Object.defineProperty(exports, "Pre", {
2556
+ enumerable: true,
2557
+ get: function() {
2558
+ return Pre;
2559
+ }
2560
+ });
2561
+ Object.defineProperty(exports, "Prose", {
2562
+ enumerable: true,
2563
+ get: function() {
2564
+ return Prose;
2565
+ }
2566
+ });
1786
2567
  Object.defineProperty(exports, "RequestExamplesPanel", {
1787
2568
  enumerable: true,
1788
2569
  get: function() {
@@ -1795,6 +2576,12 @@ Object.defineProperty(exports, "ResponseExamplesPanel", {
1795
2576
  return ResponseExamplesPanel;
1796
2577
  }
1797
2578
  });
2579
+ Object.defineProperty(exports, "Tag", {
2580
+ enumerable: true,
2581
+ get: function() {
2582
+ return Tag;
2583
+ }
2584
+ });
1798
2585
  Object.defineProperty(exports, "authPlaceholder", {
1799
2586
  enumerable: true,
1800
2587
  get: function() {
@@ -1844,4 +2631,4 @@ Object.defineProperty(exports, "primitives_exports", {
1844
2631
  }
1845
2632
  });
1846
2633
 
1847
- //# sourceMappingURL=OpenApiOperation-BI41nyGy.cjs.map
2634
+ //# sourceMappingURL=OpenApiOperation-CsDX1s-6.cjs.map