@clarify-labs/renderer 0.6.3 → 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-mhoi-s4N.cjs → OpenApiOperation-CsDX1s-6.cjs} +875 -81
  2. package/output/OpenApiOperation-CsDX1s-6.cjs.map +1 -0
  3. package/output/{OpenApiOperation-DYXG-6Rw.js → OpenApiOperation-WntXLbai.js} +778 -74
  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-DYXG-6Rw.js.map +0 -1
  49. package/output/OpenApiOperation-mhoi-s4N.cjs.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", {
@@ -470,8 +1167,15 @@ function buildHarRequest(input) {
470
1167
  } : void 0
471
1168
  };
472
1169
  }
1170
+ function buildSnippetErrorMessage(error) {
1171
+ return `Request example unavailable.\n\nThe selected OpenAPI example could not be converted into a code snippet. Please check that the example value matches its media type, for example valid JSON for application/json.${error instanceof Error && error.message ? `\n\nDetails: ${error.message}` : ""}`;
1172
+ }
473
1173
  function buildSnippet(input, target) {
474
- return decodeUrlPlaceholders(snippetGenerator.print(target.target, target.client, buildHarRequest(input)) || "");
1174
+ try {
1175
+ return decodeUrlPlaceholders(snippetGenerator.print(target.target, target.client, buildHarRequest(input)) || "");
1176
+ } catch (error) {
1177
+ return buildSnippetErrorMessage(error);
1178
+ }
475
1179
  }
476
1180
  var requestSnippetOptions = [
477
1181
  {
@@ -793,7 +1497,7 @@ function SelectControl(arg0) {
793
1497
  })]
794
1498
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.ListboxOptions, {
795
1499
  anchor: "bottom end",
796
- 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",
797
1501
  children: normalizedOptions.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.ListboxOption, {
798
1502
  value: option.value,
799
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",
@@ -944,7 +1648,7 @@ function ApiExampleCodeGroup(arg0) {
944
1648
  className: "not-prose",
945
1649
  children: [
946
1650
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
947
- 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",
948
1652
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
949
1653
  className: "mr-auto min-w-16 truncate py-1 text-xs font-semibold text-white",
950
1654
  children: title
@@ -999,7 +1703,7 @@ function ApiExampleCodeGroup(arg0) {
999
1703
  selectedClientKey,
1000
1704
  onSelectClient
1001
1705
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
1002
- 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" : ""}`,
1003
1707
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
1004
1708
  className: `language-${language}`,
1005
1709
  children: code
@@ -1267,27 +1971,27 @@ function SchemaNode(arg0) {
1267
1971
  const hasChildren = node.children.length > 0;
1268
1972
  const type = [node.type, node.required ? t("openapi.requiredBadge") : void 0].filter(Boolean).join(", ") || void 0;
1269
1973
  const fallbackDescription = node.required ? t("openapi.required") : t("openapi.optional");
1270
- 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");
1271
1975
  const content = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1272
1976
  className: "min-w-0 flex-1",
1273
1977
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1274
1978
  className: "flex min-w-0 flex-wrap items-center gap-x-2 gap-y-0.5",
1275
1979
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1276
- 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)",
1277
1981
  children: node.name
1278
1982
  }), type ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1279
- className: "text-xs text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-500",
1983
+ className: "text-xs text-(--clarify-theme-tokens-colors-muted)",
1280
1984
  children: type
1281
1985
  }) : null]
1282
1986
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1283
- 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",
1284
1988
  children: [node.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Markdown, { children: node.description }) : fallbackDescription, node.details ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
1285
- className: "text-xs text-zinc-500 dark:text-zinc-500",
1989
+ className: "text-xs text-(--clarify-ui-text-faint)",
1286
1990
  children: node.details
1287
1991
  }) : null]
1288
1992
  })]
1289
1993
  }), hasChildren ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1290
- 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)",
1291
1995
  "aria-hidden": "true",
1292
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" })
1293
1997
  }) : null] });
@@ -1314,7 +2018,7 @@ function SchemaTree(arg0) {
1314
2018
  if (nodes.length === 0) return null;
1315
2019
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
1316
2020
  role: "list",
1317
- 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"),
1318
2022
  children: nodes.map((node) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SchemaNode, {
1319
2023
  node,
1320
2024
  depth
@@ -1400,27 +2104,27 @@ function InlineListbox(arg0) {
1400
2104
  className: "pointer-events-auto relative inline-flex min-w-0",
1401
2105
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.ListboxButton, {
1402
2106
  "aria-label": label,
1403
- 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"),
1404
2108
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1405
2109
  className: "truncate",
1406
2110
  children: selected?.label ?? value
1407
2111
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, {
1408
- 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)",
1409
2113
  "aria-hidden": "true"
1410
2114
  })]
1411
2115
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.ListboxOptions, {
1412
2116
  anchor: "bottom start",
1413
- 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",
1414
2118
  children: options.map((option) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.ListboxOption, {
1415
2119
  value: option.value,
1416
- 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)",
1417
2121
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
1418
2122
  className: "min-w-0",
1419
2123
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1420
2124
  className: "block truncate",
1421
2125
  children: option.label
1422
2126
  }), option.description ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1423
- 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)",
1424
2128
  children: option.description
1425
2129
  }) : null]
1426
2130
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.CheckIcon, {
@@ -1443,7 +2147,7 @@ function ServerUrlValue(arg0) {
1443
2147
  "aria-expanded": open,
1444
2148
  "aria-label": "Server",
1445
2149
  onClick: onToggle,
1446
- 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),
1447
2151
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1448
2152
  className: "sm:hidden",
1449
2153
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ServerIcon, {
@@ -1479,20 +2183,20 @@ function ServerVariableControl(arg0) {
1479
2183
  value,
1480
2184
  placeholder: variable?.default ?? name,
1481
2185
  onChange: (event) => onChange(event.target.value),
1482
- 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")
1483
2187
  });
1484
2188
  }
1485
2189
  function ServerPanel(arg0) {
1486
2190
  const { servers, selectedKey, selectedServer, variables, onSelectServer, onChangeVariable } = arg0;
1487
2191
  const variableEntries = Object.entries(selectedServer.variables ?? {});
1488
2192
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1489
- 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",
1490
2194
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1491
- 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)",
1492
2196
  children: [servers.length > 1 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1493
2197
  className: "flex min-w-0 flex-col gap-1.5",
1494
2198
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1495
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2199
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1496
2200
  children: "Server"
1497
2201
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InlineListbox, {
1498
2202
  label: "Server",
@@ -1507,7 +2211,7 @@ function ServerPanel(arg0) {
1507
2211
  }) : null, variableEntries.map(([name, variable]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1508
2212
  className: "flex min-w-0 flex-col gap-1.5",
1509
2213
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1510
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2214
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1511
2215
  children: name
1512
2216
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ServerVariableControl, {
1513
2217
  name,
@@ -1523,13 +2227,13 @@ function AuthPanel(arg0) {
1523
2227
  const { authOptions, selectedAuthName, selectedAuth, authValues, onSelectAuth, onChangeAuthValue } = arg0;
1524
2228
  if (authOptions.length === 0) return null;
1525
2229
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1526
- 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",
1527
2231
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1528
- 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)",
1529
2233
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1530
2234
  className: "flex min-w-0 flex-col gap-1.5",
1531
2235
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1532
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2236
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1533
2237
  children: "Auth"
1534
2238
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(InlineListbox, {
1535
2239
  label: "Auth",
@@ -1544,17 +2248,17 @@ function AuthPanel(arg0) {
1544
2248
  }), selectedAuth ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("label", {
1545
2249
  className: "flex min-w-0 flex-col gap-1.5",
1546
2250
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1547
- className: "text-2xs font-semibold text-zinc-700 dark:text-zinc-300",
2251
+ className: "text-2xs font-semibold text-(--clarify-ui-text-soft)",
1548
2252
  children: "Credential"
1549
2253
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1550
- 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",
1551
2255
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1552
- 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)",
1553
2257
  children: selectedAuth.scheme.type === "apiKey" ? selectedAuth.scheme.in ?? "apiKey" : selectedAuth.scheme.scheme ?? selectedAuth.scheme.type ?? "token"
1554
2258
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1555
2259
  value: authValues[selectedAuth.name] ?? authPlaceholder(selectedAuth),
1556
2260
  onChange: (event) => onChangeAuthValue(selectedAuth.name, event.target.value),
1557
- 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)"
1558
2262
  })]
1559
2263
  })]
1560
2264
  }) : null]
@@ -1565,7 +2269,7 @@ function EndpointIdentity(arg0) {
1565
2269
  const { method, path, servers, selectedServerKey, selectedServer, serverVariables, serverOpen, authOptions, selectedAuthName, selectedAuth, authValues, authOpen, onSelectServer, onChangeServerVariable, onToggleServer, onToggleAuth, onSelectAuth, onChangeAuthValue } = arg0;
1566
2270
  const segments = path.split("/").filter(Boolean);
1567
2271
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1568
- 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",
1569
2273
  children: [
1570
2274
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1571
2275
  className: "flex min-w-0 items-center gap-1.5 overflow-hidden px-2.5 py-2",
@@ -1580,19 +2284,19 @@ function EndpointIdentity(arg0) {
1580
2284
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1581
2285
  className: "flex min-w-0 flex-1 items-center overflow-x-auto text-sm font-bold leading-6 whitespace-nowrap",
1582
2286
  children: segments.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1583
- className: "text-zinc-400",
2287
+ className: "text-(--clarify-ui-text-faint)",
1584
2288
  children: "/"
1585
2289
  }), segments.map((segment, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
1586
2290
  className: "flex items-center",
1587
2291
  children: [index > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1588
- className: "text-zinc-400",
2292
+ className: "text-(--clarify-ui-text-faint)",
1589
2293
  children: "/"
1590
2294
  }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1591
- className: "font-bold text-zinc-800 dark:text-white",
2295
+ className: "font-bold text-(--clarify-theme-tokens-colors-foreground)",
1592
2296
  children: segment
1593
2297
  })]
1594
2298
  }, `${segment}-${index}`))] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1595
- className: "font-bold text-zinc-800 dark:text-white",
2299
+ className: "font-bold text-(--clarify-theme-tokens-colors-foreground)",
1596
2300
  children: "/"
1597
2301
  })
1598
2302
  }),
@@ -1601,7 +2305,7 @@ function EndpointIdentity(arg0) {
1601
2305
  "aria-expanded": authOpen,
1602
2306
  "aria-label": "Auth",
1603
2307
  onClick: onToggleAuth,
1604
- 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)"),
1605
2309
  children: authOpen ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.UnlockKeyholeIcon, {
1606
2310
  className: "h-4 w-4",
1607
2311
  "aria-hidden": "true"
@@ -1703,7 +2407,7 @@ function OpenApiOperation(arg0) {
1703
2407
  [name]: value
1704
2408
  }))
1705
2409
  }),
1706
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_shell.Heading, {
2410
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Heading, {
1707
2411
  id,
1708
2412
  className: "mt-6",
1709
2413
  children: summary
@@ -1758,12 +2462,84 @@ function OpenApiOperation(arg0) {
1758
2462
  });
1759
2463
  }
1760
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
+ });
1761
2507
  Object.defineProperty(exports, "EndpointIdentity", {
1762
2508
  enumerable: true,
1763
2509
  get: function() {
1764
2510
  return EndpointIdentity;
1765
2511
  }
1766
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
+ });
1767
2543
  Object.defineProperty(exports, "Markdown", {
1768
2544
  enumerable: true,
1769
2545
  get: function() {
@@ -1776,6 +2552,18 @@ Object.defineProperty(exports, "OpenApiOperation", {
1776
2552
  return OpenApiOperation;
1777
2553
  }
1778
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
+ });
1779
2567
  Object.defineProperty(exports, "RequestExamplesPanel", {
1780
2568
  enumerable: true,
1781
2569
  get: function() {
@@ -1788,6 +2576,12 @@ Object.defineProperty(exports, "ResponseExamplesPanel", {
1788
2576
  return ResponseExamplesPanel;
1789
2577
  }
1790
2578
  });
2579
+ Object.defineProperty(exports, "Tag", {
2580
+ enumerable: true,
2581
+ get: function() {
2582
+ return Tag;
2583
+ }
2584
+ });
1791
2585
  Object.defineProperty(exports, "authPlaceholder", {
1792
2586
  enumerable: true,
1793
2587
  get: function() {
@@ -1837,4 +2631,4 @@ Object.defineProperty(exports, "primitives_exports", {
1837
2631
  }
1838
2632
  });
1839
2633
 
1840
- //# sourceMappingURL=OpenApiOperation-mhoi-s4N.cjs.map
2634
+ //# sourceMappingURL=OpenApiOperation-CsDX1s-6.cjs.map