@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
@@ -43,6 +43,8 @@ var builtInText = {
43
43
  "contentActions.copyLlms": "Copy llms.txt",
44
44
  "contentActions.copyLlmsDescription": "Copy the llms.txt link for this site",
45
45
  "contentActions.copiedLlms": "Copied llms.txt",
46
+ "contentActions.editPage": "Edit this page",
47
+ "contentActions.editPageDescription": "Open the source file for this page",
46
48
  "contentActions.copyOptions": "Choose copy option",
47
49
  "contentActions.copiedContent": "Copied page",
48
50
  "contentActions.copiedLink": "Copied link",
@@ -62,6 +64,10 @@ var builtInText = {
62
64
  "navbar.home": "Home",
63
65
  "navbar.openLinks": "Open navigation links",
64
66
  "navbar.sections": "Documentation sections",
67
+ "notFound.description": "The page may have moved, been renamed, or never existed. Check the address or return to the homepage.",
68
+ "notFound.home": "Back to homepage",
69
+ "notFound.label": "404",
70
+ "notFound.title": "Page not found",
65
71
  "openapi.apiDocumentation": "API Documentation",
66
72
  "openapi.bodyProperties": "Body properties",
67
73
  "openapi.collapse": "Collapse",
@@ -95,6 +101,16 @@ var builtInText = {
95
101
  "search.noResults": "Nothing found for {query}.",
96
102
  "search.placeholder": "Find something...",
97
103
  "search.shortcutCtrl": "Ctrl ",
104
+ "renderError.componentStack": "React component stack",
105
+ "renderError.description": "Clarify stopped rendering this route to keep the rest of the shell responsive. Review the diagnostics below, fix the page source, then reload the route.",
106
+ "renderError.details": "Runtime diagnostics",
107
+ "renderError.message": "Message",
108
+ "renderError.path": "Route",
109
+ "renderError.reload": "Reload route",
110
+ "renderError.stack": "JavaScript stack trace",
111
+ "renderError.timestamp": "Captured at",
112
+ "renderError.title": "Route render failed",
113
+ "renderError.type": "Error type",
98
114
  "theme.switchToDark": "Switch to dark theme",
99
115
  "theme.switchToLight": "Switch to light theme",
100
116
  "language.switch": "Switch language"
@@ -118,6 +134,8 @@ var builtInText = {
118
134
  "contentActions.copyLlms": "复制 llms.txt",
119
135
  "contentActions.copyLlmsDescription": "复制此站点的 llms.txt 链接",
120
136
  "contentActions.copiedLlms": "已复制 llms.txt",
137
+ "contentActions.editPage": "编辑此页面",
138
+ "contentActions.editPageDescription": "打开当前页面的源文件",
121
139
  "contentActions.copyOptions": "选择复制选项",
122
140
  "contentActions.copiedContent": "已复制页面",
123
141
  "contentActions.copiedLink": "已复制链接",
@@ -137,6 +155,10 @@ var builtInText = {
137
155
  "navbar.home": "首页",
138
156
  "navbar.openLinks": "打开导航链接",
139
157
  "navbar.sections": "文档栏目",
158
+ "notFound.description": "页面可能已移动、重命名或不存在。请检查地址,或返回首页继续浏览。",
159
+ "notFound.home": "返回首页",
160
+ "notFound.label": "404",
161
+ "notFound.title": "页面未找到",
140
162
  "openapi.apiDocumentation": "API 文档",
141
163
  "openapi.bodyProperties": "请求体属性",
142
164
  "openapi.collapse": "收起",
@@ -170,6 +192,16 @@ var builtInText = {
170
192
  "search.noResults": "没有找到与 {query} 相关的结果。",
171
193
  "search.placeholder": "搜索内容...",
172
194
  "search.shortcutCtrl": "Ctrl ",
195
+ "renderError.componentStack": "React 组件栈",
196
+ "renderError.description": "Clarify 已停止渲染此路由,以保证文档 Shell 仍可响应。请查看下方诊断信息,修复页面源码后重新加载路由。",
197
+ "renderError.details": "运行时诊断",
198
+ "renderError.message": "错误消息",
199
+ "renderError.path": "路由",
200
+ "renderError.reload": "重新加载路由",
201
+ "renderError.stack": "JavaScript 堆栈",
202
+ "renderError.timestamp": "捕获时间",
203
+ "renderError.title": "路由渲染失败",
204
+ "renderError.type": "错误类型",
173
205
  "theme.switchToDark": "切换到深色主题",
174
206
  "theme.switchToLight": "切换到浅色主题",
175
207
  "language.switch": "切换语言"
@@ -250,8 +282,8 @@ function ContentActions(arg0) {
250
282
  const { hasTabs = false, route, routePrefix } = arg0;
251
283
  const t = useBuiltInText();
252
284
  const [copied, setCopied] = (0, react.useState)("idle");
253
- if (!route?.contentArtifactUrl) return null;
254
- const contentArtifactUrl = resolveContentArtifactUrl(route.contentArtifactUrl, routePrefix);
285
+ if (!route?.contentArtifactUrl && !route?.sourceUrl) return null;
286
+ const contentArtifactUrl = route.contentArtifactUrl ? resolveContentArtifactUrl(route.contentArtifactUrl, routePrefix) : void 0;
255
287
  const isOpenApi = route.kind === "openapi";
256
288
  const replacements = { contentType: isOpenApi ? "OpenAPI" : "Markdown" };
257
289
  const viewLabel = isOpenApi ? t("contentActions.viewOpenApi") : t("contentActions.viewMarkdown");
@@ -261,16 +293,18 @@ function ContentActions(arg0) {
261
293
  window.setTimeout(() => setCopied("idle"), 1600);
262
294
  }
263
295
  async function handleCopyContent() {
296
+ if (!contentArtifactUrl) return;
264
297
  if (await copyTextToClipboard(await (await fetch(contentArtifactUrl)).text())) markCopied("content");
265
298
  }
266
299
  const llmsArtifactUrl = resolveContentArtifactUrl("/llms.txt", routePrefix);
267
300
  async function handleCopyLink() {
301
+ if (!contentArtifactUrl) return;
268
302
  if (await copyTextToClipboard(getAbsoluteUrl(contentArtifactUrl))) markCopied("link");
269
303
  }
270
304
  async function handleCopyLlms() {
271
305
  if (await copyTextToClipboard(getAbsoluteUrl(llmsArtifactUrl))) markCopied("llms");
272
306
  }
273
- const actions = [{
307
+ const actions = contentArtifactUrl ? [{
274
308
  key: "content",
275
309
  label: t("contentActions.copyContent"),
276
310
  description: t("contentActions.copyContentDescription", replacements),
@@ -284,7 +318,7 @@ function ContentActions(arg0) {
284
318
  icon: lucide_react.Link2,
285
319
  run: handleCopyLink,
286
320
  copiedLabel: t("contentActions.copiedLink")
287
- }];
321
+ }] : [];
288
322
  const llmsAction = {
289
323
  key: "llms",
290
324
  label: t("contentActions.copyLlms"),
@@ -294,28 +328,57 @@ function ContentActions(arg0) {
294
328
  copiedLabel: t("contentActions.copiedLlms")
295
329
  };
296
330
  const primaryAction = actions[0];
297
- const PrimaryIcon = copied === primaryAction.key ? lucide_react.Check : primaryAction.icon;
331
+ const PrimaryIcon = primaryAction && copied === primaryAction.key ? lucide_react.Check : primaryAction?.icon ?? lucide_react.PencilLine;
298
332
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
299
333
  className: `clarify-content-actions sticky z-20 flex justify-end py-4 ${hasTabs ? "top-16 lg:top-30" : "top-16"}`,
300
334
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.Menu, {
301
335
  as: "div",
302
336
  className: "clarify-content-actions-menu relative inline-flex text-sm font-medium",
303
337
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
304
- className: "clarify-content-actions-group inline-flex overflow-hidden rounded-full border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface)/90 shadow-sm shadow-zinc-900/5 backdrop-blur dark:border-white/10 dark:bg-zinc-900/80 dark:shadow-none",
305
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
338
+ className: "clarify-content-actions-group inline-flex overflow-hidden rounded-full border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface)/90 shadow-sm shadow-zinc-900/5 backdrop-blur",
339
+ children: [primaryAction ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
306
340
  type: "button",
307
341
  onClick: primaryAction.run,
308
342
  className: "clarify-content-actions-primary clarify-ui-control inline-flex h-8 items-center gap-1.5 px-3 transition",
309
343
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PrimaryIcon, { className: "h-3.5 w-3.5" }), copied === primaryAction.key ? t("actions.copied") : primaryAction.label]
344
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
345
+ href: route.sourceUrl,
346
+ target: "_blank",
347
+ rel: "noreferrer",
348
+ className: "clarify-content-actions-primary clarify-ui-control inline-flex h-8 items-center gap-1.5 px-3 no-underline transition",
349
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(PrimaryIcon, { className: "h-3.5 w-3.5" }), t("contentActions.editPage")]
310
350
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.MenuButton, {
311
- className: "clarify-content-actions-trigger clarify-ui-control inline-flex h-8 w-8 items-center justify-center border-l border-(--clarify-theme-tokens-colors-border) transition dark:border-white/10",
351
+ className: "clarify-content-actions-trigger clarify-ui-control inline-flex h-8 w-8 items-center justify-center border-l border-(--clarify-theme-tokens-colors-border) transition",
312
352
  "aria-label": t("contentActions.copyOptions"),
313
353
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, { className: "h-3.5 w-3.5" })
314
354
  })]
315
355
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.MenuItems, {
316
356
  anchor: "bottom end",
317
- className: "clarify-content-actions-list clarify-ui-menu z-30 mt-2 w-(--clarify-ui-action-menu-width) origin-top-right rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-1.5 shadow-xl shadow-zinc-900/5 transition [--anchor-gap:--spacing(2)] focus:outline-none data-closed:scale-95 data-closed:opacity-0 dark:border-white/10 dark:bg-zinc-900 dark:shadow-none",
357
+ className: "clarify-content-actions-list clarify-ui-menu z-30 mt-2 w-(--clarify-ui-action-menu-width) origin-top-right rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-1.5 shadow-xl shadow-zinc-900/5 transition [--anchor-gap:--spacing(2)] focus:outline-none data-closed:scale-95 data-closed:opacity-0",
318
358
  children: [
359
+ route.sourceUrl ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.MenuItem, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
360
+ href: route.sourceUrl,
361
+ target: "_blank",
362
+ rel: "noreferrer",
363
+ className: "clarify-content-actions-item clarify-ui-menu-item group flex w-full items-center gap-2 rounded-(--clarify-theme-tokens-radius-lg) px-1.5 py-1.5 text-left no-underline transition",
364
+ children: [
365
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
366
+ className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5",
367
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.PencilLine, { className: "h-4 w-4" })
368
+ }),
369
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
370
+ className: "flex min-w-0 flex-1 flex-col px-1",
371
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
372
+ className: "clarify-ui-menu-title flex items-center gap-1",
373
+ children: [t("contentActions.editPage"), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ExternalLink, { className: "clarify-ui-menu-icon h-3 w-3" })]
374
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
375
+ className: "clarify-ui-menu-description truncate",
376
+ children: t("contentActions.editPageDescription")
377
+ })]
378
+ }),
379
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Check, { className: "h-3.5 w-3.5 shrink-0 text-(--clarify-theme-tokens-colors-primary) opacity-0" })
380
+ ]
381
+ }) }) : null,
319
382
  actions.slice(0, 1).map((action) => {
320
383
  const Icon = action.icon;
321
384
  const isCopied = copied === action.key;
@@ -325,7 +388,7 @@ function ContentActions(arg0) {
325
388
  className: "clarify-content-actions-item clarify-ui-menu-item group flex w-full items-center gap-2 rounded-(--clarify-theme-tokens-radius-lg) px-1.5 py-1.5 text-left transition",
326
389
  children: [
327
390
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
328
- className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5 dark:border-white/10",
391
+ className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5",
329
392
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "h-4 w-4" })
330
393
  }),
331
394
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -342,14 +405,14 @@ function ContentActions(arg0) {
342
405
  ]
343
406
  }) }, action.key);
344
407
  }),
345
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.MenuItem, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
408
+ contentArtifactUrl ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.MenuItem, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
346
409
  href: contentArtifactUrl,
347
410
  target: "_blank",
348
411
  rel: "noreferrer",
349
412
  className: "clarify-content-actions-item clarify-ui-menu-item group flex w-full items-center gap-2 rounded-(--clarify-theme-tokens-radius-lg) px-1.5 py-1.5 text-left no-underline transition",
350
413
  children: [
351
414
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
352
- className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5 dark:border-white/10",
415
+ className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5",
353
416
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.FileText, { className: "h-4 w-4" })
354
417
  }),
355
418
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -364,7 +427,7 @@ function ContentActions(arg0) {
364
427
  }),
365
428
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Check, { className: "h-3.5 w-3.5 shrink-0 text-(--clarify-theme-tokens-colors-primary) opacity-0" })
366
429
  ]
367
- }) }),
430
+ }) }) : null,
368
431
  actions.slice(1).map((action) => {
369
432
  const Icon = action.icon;
370
433
  const isCopied = copied === action.key;
@@ -374,7 +437,7 @@ function ContentActions(arg0) {
374
437
  className: "clarify-content-actions-item clarify-ui-menu-item group flex w-full items-center gap-2 rounded-(--clarify-theme-tokens-radius-lg) px-1.5 py-1.5 text-left transition",
375
438
  children: [
376
439
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
377
- className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5 dark:border-white/10",
440
+ className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5",
378
441
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "h-4 w-4" })
379
442
  }),
380
443
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -397,7 +460,7 @@ function ContentActions(arg0) {
397
460
  className: "clarify-content-actions-item clarify-ui-menu-item group flex w-full items-center gap-2 rounded-(--clarify-theme-tokens-radius-lg) px-1.5 py-1.5 text-left transition",
398
461
  children: [
399
462
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
400
- className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5 dark:border-white/10",
463
+ className: "clarify-ui-menu-icon flex shrink-0 rounded-(--clarify-theme-tokens-radius-md) border border-(--clarify-theme-tokens-colors-border) p-1.5",
401
464
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.FileText, { className: "h-4 w-4" })
402
465
  }),
403
466
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
@@ -446,8 +509,8 @@ function applyTheme(resolvedTheme) {
446
509
  document.documentElement.classList.toggle("dark", resolvedTheme === "dark");
447
510
  document.documentElement.style.colorScheme = resolvedTheme;
448
511
  }
449
- function ThemeProvider(arg0) {
450
- const { children } = arg0;
512
+ function ThemeProvider(props) {
513
+ const { children } = props;
451
514
  const [theme, setThemeState] = (0, react.useState)(() => getStoredTheme());
452
515
  const [systemTheme, setSystemTheme] = (0, react.useState)(() => getSystemTheme());
453
516
  const resolvedTheme = theme === "system" ? systemTheme : theme;
@@ -484,40 +547,19 @@ function useTheme() {
484
547
  }
485
548
  //#endregion
486
549
  //#region source/theme/ThemeToggle.tsx
487
- function SunIcon(props) {
488
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
489
- viewBox: "0 0 20 20",
490
- fill: "none",
491
- "aria-hidden": "true",
492
- ...props,
493
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M12.5 10a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
494
- strokeLinecap: "round",
495
- d: "M10 5.5v-1M13.182 6.818l.707-.707M14.5 10h1M13.182 13.182l.707.707M10 15.5v-1M6.11 13.889l.708-.707M4.5 10h1M6.11 6.111l.708.707"
496
- })]
497
- });
498
- }
499
- function MoonIcon(props) {
500
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
501
- viewBox: "0 0 20 20",
502
- fill: "none",
503
- "aria-hidden": "true",
504
- ...props,
505
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M15.224 11.724a5.5 5.5 0 0 1-6.949-6.949 5.5 5.5 0 1 0 6.949 6.949Z" })
506
- });
507
- }
508
550
  function ThemeToggle() {
509
551
  const { resolvedTheme, setTheme } = useTheme();
510
552
  const t = useBuiltInText();
511
553
  const otherTheme = resolvedTheme === "dark" ? "light" : "dark";
512
554
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
513
555
  type: "button",
514
- className: "clarify-theme-toggle relative flex size-8 items-center justify-center rounded-(--clarify-theme-tokens-radius-md) transition hover:bg-[color-mix(in_srgb,var(--clarify-theme-tokens-colors-foreground)_5%,transparent)] dark:hover:bg-white/5",
556
+ className: "clarify-theme-toggle relative flex size-8 items-center justify-center rounded-(--clarify-theme-tokens-radius-md) transition hover:bg-(--clarify-ui-hover-background)",
515
557
  "aria-label": otherTheme === "dark" ? t("theme.switchToDark") : t("theme.switchToLight"),
516
558
  onClick: () => setTheme(otherTheme),
517
559
  children: [
518
560
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "absolute size-12 pointer-fine:hidden" }),
519
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SunIcon, { className: "h-5 w-5 stroke-(--clarify-theme-tokens-colors-foreground) dark:hidden" }),
520
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MoonIcon, { className: "hidden h-5 w-5 stroke-white dark:block" })
561
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Sun, { className: "h-5 w-5 stroke-(--clarify-theme-tokens-colors-foreground) dark:hidden" }),
562
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Moon, { className: "hidden h-5 w-5 stroke-white dark:block" })
521
563
  ]
522
564
  });
523
565
  }
@@ -648,787 +690,6 @@ function useSectionStore(selector) {
648
690
  return (0, zustand.useStore)(store, selector);
649
691
  }
650
692
  //#endregion
651
- //#region source/components/Button.tsx
652
- function ArrowIcon(props) {
653
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
654
- viewBox: "0 0 20 20",
655
- fill: "none",
656
- "aria-hidden": "true",
657
- ...props,
658
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
659
- stroke: "currentColor",
660
- strokeLinecap: "round",
661
- strokeLinejoin: "round",
662
- d: "m11.5 6.5 3 3.5m0 0-3 3.5m3-3.5h-9"
663
- })
664
- });
665
- }
666
- var buttonVariantStyles = {
667
- primary: "rounded-full bg-(--clarify-theme-tokens-colors-foreground) px-3 py-1 text-white 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",
668
- secondary: "rounded-full bg-(--clarify-theme-tokens-colors-code-background) px-3 py-1 text-(--clarify-theme-tokens-colors-foreground) hover:opacity-80 dark:bg-zinc-800/40 dark:text-zinc-400 dark:ring-1 dark:ring-inset dark:ring-zinc-800 dark:hover:bg-zinc-800 dark:hover:text-zinc-300",
669
- filled: "rounded-full bg-(--clarify-theme-tokens-colors-foreground) px-3 py-1 text-white hover:opacity-80 dark:bg-(--clarify-theme-tokens-colors-primary) dark:hover:opacity-80",
670
- outline: "rounded-full px-3 py-1 text-(--clarify-theme-tokens-colors-muted) ring-1 ring-inset ring-(--clarify-theme-tokens-colors-border) hover:bg-[color-mix(in_srgb,var(--clarify-theme-tokens-colors-foreground)_2.5%,transparent)] hover:text-(--clarify-theme-tokens-colors-foreground) dark:text-zinc-400 dark:ring-white/10 dark:hover:bg-white/5 dark:hover:text-white",
671
- text: "text-(--clarify-theme-tokens-colors-primary) hover:opacity-80 dark:text-(--clarify-theme-tokens-colors-primary) dark:hover:opacity-80"
672
- };
673
- function Button(arg0) {
674
- const { variant = "primary", className, children, arrow, ...props } = arg0;
675
- const classes = (0, clsx.default)("clarify-button inline-flex justify-center gap-0.5 overflow-hidden text-sm font-medium transition", buttonVariantStyles[variant], className);
676
- const arrowIcon = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ArrowIcon, { 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") });
677
- const inner = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
678
- arrow === "left" ? arrowIcon : null,
679
- children,
680
- arrow === "right" ? arrowIcon : null
681
- ] });
682
- if (typeof props.href === "undefined") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
683
- className: classes,
684
- ...props,
685
- children: inner
686
- });
687
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
688
- className: classes,
689
- ...props,
690
- children: inner
691
- });
692
- }
693
- //#endregion
694
- //#region source/components/Callout.tsx
695
- var calloutStyles = {
696
- info: {
697
- 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",
698
- icon: "text-sky-600 dark:text-sky-400",
699
- title: "text-sky-900 dark:text-sky-100",
700
- Icon: lucide_react.Info
701
- },
702
- note: {
703
- container: "border-zinc-500/20 bg-zinc-50 text-zinc-900 dark:border-white/10 dark:bg-white/5 dark:text-zinc-200",
704
- icon: "text-zinc-500 dark:text-zinc-400",
705
- title: "text-zinc-900 dark:text-white",
706
- Icon: lucide_react.Info
707
- },
708
- tip: {
709
- 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",
710
- icon: "text-emerald-600 dark:text-emerald-400",
711
- title: "text-emerald-900 dark:text-emerald-100",
712
- Icon: lucide_react.Lightbulb
713
- },
714
- warning: {
715
- 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",
716
- icon: "text-amber-600 dark:text-amber-400",
717
- title: "text-amber-900 dark:text-amber-100",
718
- Icon: lucide_react.AlertTriangle
719
- },
720
- danger: {
721
- 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",
722
- icon: "text-rose-600 dark:text-rose-400",
723
- title: "text-rose-900 dark:text-rose-100",
724
- Icon: lucide_react.XCircle
725
- },
726
- success: {
727
- 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",
728
- icon: "text-emerald-600 dark:text-emerald-400",
729
- title: "text-emerald-900 dark:text-emerald-100",
730
- Icon: lucide_react.CheckCircle2
731
- }
732
- };
733
- var defaultTitleKeys = {
734
- info: "callout.info",
735
- note: "callout.note",
736
- tip: "callout.tip",
737
- warning: "callout.warning",
738
- danger: "callout.danger",
739
- success: "callout.success"
740
- };
741
- function Callout(arg0) {
742
- const { children, type = "info", title, icon = true, className, ...props } = arg0;
743
- const t = useBuiltInText();
744
- const style = calloutStyles[type];
745
- const Icon = style.Icon;
746
- const resolvedTitle = title === void 0 ? t(defaultTitleKeys[type]) : title;
747
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
748
- 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),
749
- ...props,
750
- children: [icon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
751
- className: (0, clsx.default)("mt-1 size-4 flex-none", style.icon),
752
- "aria-hidden": "true"
753
- }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
754
- className: "min-w-0 flex-1 *:first:mt-0 *:last:mb-0",
755
- children: [resolvedTitle ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
756
- className: (0, clsx.default)("mb-1 font-semibold", style.title),
757
- children: resolvedTitle
758
- }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
759
- className: "*:first:mt-0 *:last:mb-0",
760
- children
761
- })]
762
- })]
763
- });
764
- }
765
- //#endregion
766
- //#region source/components/Card.tsx
767
- function CardIcon(arg0) {
768
- const { name } = arg0;
769
- if (!name) return null;
770
- const iconName = resolveLucideIconName(name);
771
- if (!iconName) return null;
772
- const Icon = lucideIconRegistry[iconName];
773
- if (!Icon) return null;
774
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
775
- 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)",
776
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
777
- className: "size-5",
778
- "aria-hidden": "true"
779
- })
780
- });
781
- }
782
- var cardGroupColumnStyles = {
783
- 1: "grid-cols-1",
784
- 2: "grid-cols-1 sm:grid-cols-2",
785
- 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
786
- 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
787
- };
788
- function CardGroup(arg0) {
789
- const { children, cols = 2, className } = arg0;
790
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
791
- className: (0, clsx.default)("not-prose my-10 grid gap-4", cardGroupColumnStyles[cols], className),
792
- children
793
- });
794
- }
795
- function Card(arg0) {
796
- const { title, icon, href, children, className, ...props } = arg0;
797
- const content = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
798
- className: "flex items-start gap-4",
799
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CardIcon, { name: icon }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
800
- className: "min-w-0 flex-1",
801
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
802
- className: "m-0 text-base font-semibold text-(--clarify-theme-tokens-colors-foreground) dark:text-white",
803
- children: title
804
- }), children ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
805
- className: "mt-2 text-sm/6 text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-400 *:m-0",
806
- children
807
- }) : null]
808
- })]
809
- }), href ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
810
- className: "absolute inset-0 rounded-(--clarify-theme-tokens-radius-xl)",
811
- "aria-hidden": "true"
812
- }) : null] });
813
- 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:border-(--clarify-ui-accent-border) hover:shadow-md dark:bg-zinc-900/50", className);
814
- if (!href) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
815
- className: classes,
816
- children: content
817
- });
818
- if (href.startsWith("/") && !href.startsWith("//")) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_router_dom.Link, {
819
- to: href,
820
- className: classes,
821
- ...props,
822
- children: content
823
- });
824
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
825
- href,
826
- className: classes,
827
- ...props,
828
- children: content
829
- });
830
- }
831
- //#endregion
832
- //#region source/components/Code.tsx
833
- var languageNames = {
834
- js: "JavaScript",
835
- ts: "TypeScript",
836
- jsx: "React JSX",
837
- tsx: "React TSX",
838
- javascript: "JavaScript",
839
- typescript: "TypeScript",
840
- php: "PHP",
841
- python: "Python",
842
- ruby: "Ruby",
843
- go: "Go",
844
- bash: "Shell",
845
- sh: "Shell",
846
- shell: "Shell",
847
- json: "JSON"
848
- };
849
- function getPanelTitle(arg0) {
850
- const { title, language, fallbackTitle = "Code" } = arg0;
851
- if (title) return title;
852
- if (language && language in languageNames) return languageNames[language];
853
- return fallbackTitle;
854
- }
855
- function getNodeText(node) {
856
- if (typeof node === "string" || typeof node === "number") return String(node);
857
- if (Array.isArray(node)) return node.map(getNodeText).join("");
858
- if ((0, react.isValidElement)(node)) return getNodeText(node.props.children);
859
- return "";
860
- }
861
- function ClipboardIcon(props) {
862
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
863
- viewBox: "0 0 20 20",
864
- "aria-hidden": "true",
865
- ...props,
866
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
867
- strokeWidth: "0",
868
- d: "M5.5 13.5v-5a2 2 0 0 1 2-2l.447-.894A2 2 0 0 1 9.737 4.5h.527a2 2 0 0 1 1.789 1.106l.447.894a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2Z"
869
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
870
- fill: "none",
871
- strokeLinejoin: "round",
872
- d: "M12.5 6.5a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-5a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2m5 0-.447-.894a2 2 0 0 0-1.79-1.106h-.527a2 2 0 0 0-1.789 1.106L7.5 6.5m5 0-1 1h-3l-1-1"
873
- })]
874
- });
875
- }
876
- function CopyButton(arg0) {
877
- const { code } = arg0;
878
- const t = useBuiltInText();
879
- const [copyCount, setCopyCount] = (0, react.useState)(0);
880
- const copied = copyCount > 0;
881
- (0, react.useEffect)(() => {
882
- if (copyCount === 0) return void 0;
883
- const timeout = window.setTimeout(() => setCopyCount(0), 1e3);
884
- return () => window.clearTimeout(timeout);
885
- }, [copyCount]);
886
- if (!code) return null;
887
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
888
- type: "button",
889
- 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 ? "bg-[color-mix(in_srgb,var(--clarify-theme-tokens-colors-primary)_12%,transparent)] ring-1 ring-[color-mix(in_srgb,var(--clarify-theme-tokens-colors-primary)_24%,transparent)] ring-inset" : "bg-white/5 hover:bg-white/7.5 dark:bg-white/2.5 dark:hover:bg-white/5"),
890
- onClick: () => {
891
- copyTextToClipboard(code).then((ok) => {
892
- if (ok) setCopyCount((count) => count + 1);
893
- });
894
- },
895
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
896
- "aria-hidden": copied,
897
- 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"),
898
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ClipboardIcon, { className: "h-5 w-5 fill-zinc-500/20 stroke-zinc-500 transition-colors group-hover/button:stroke-zinc-400" }), t("actions.copy")]
899
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
900
- "aria-hidden": !copied,
901
- 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"),
902
- children: t("actions.copied")
903
- })]
904
- });
905
- }
906
- function CodePanelHeader(arg0) {
907
- const { tag, label } = arg0;
908
- if (!tag && !label) return null;
909
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
910
- 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",
911
- children: [
912
- tag ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
913
- className: "clarify-code-panel-tag font-semibold text-(--clarify-theme-tokens-colors-primary)",
914
- children: tag
915
- }) : null,
916
- tag && label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "h-0.5 w-0.5 rounded-full bg-zinc-500" }) : null,
917
- label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
918
- className: "text-xs text-zinc-400",
919
- children: label
920
- }) : null
921
- ]
922
- });
923
- }
924
- function CodePanel(arg0) {
925
- const { children } = arg0;
926
- let { tag, label, code } = arg0;
927
- const child = react.Children.only(children);
928
- if ((0, react.isValidElement)(child)) {
929
- const props = child.props;
930
- tag = props.tag ?? tag;
931
- label = props.label ?? label;
932
- code = props.code ?? code ?? getNodeText(props.children);
933
- }
934
- const copyText = code ?? getNodeText(children);
935
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
936
- className: "clarify-code-panel group dark:bg-white/2.5",
937
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodePanelHeader, {
938
- tag,
939
- label
940
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
941
- className: "relative",
942
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
943
- className: "clarify-code-pre overflow-x-auto p-4 text-xs text-white",
944
- children
945
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CopyButton, { code: copyText })]
946
- })]
947
- });
948
- }
949
- function CodeGroupHeader(arg0) {
950
- const { title, children, selectedIndex } = arg0;
951
- const t = useBuiltInText();
952
- const hasTabs = react.Children.count(children) > 1;
953
- if (!title && !hasTabs) return null;
954
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
955
- className: "clarify-code-group-header flex min-h-[calc(--spacing(12)+1px)] flex-wrap items-start gap-x-4 border-b border-zinc-700 bg-zinc-800 px-4 dark:border-zinc-800 dark:bg-transparent",
956
- children: [title ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
957
- className: "mr-auto pt-3 text-xs font-semibold text-white",
958
- children: title
959
- }) : null, hasTabs ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.TabList, {
960
- className: "clarify-code-tabs -mb-px flex gap-4 text-xs font-medium",
961
- children: react.Children.map(children, (child, childIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.Tab, {
962
- 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"),
963
- children: getPanelTitle({
964
- ...(0, react.isValidElement)(child) ? child.props : {},
965
- fallbackTitle: t("actions.code")
966
- })
967
- }))
968
- }) : null]
969
- });
970
- }
971
- function CodeGroupPanels(arg0) {
972
- const { children, ...props } = arg0;
973
- 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, {
974
- ...props,
975
- children: child
976
- }) })) });
977
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodePanel, {
978
- ...props,
979
- children
980
- });
981
- }
982
- function usePreventLayoutShift() {
983
- const positionRef = (0, react.useRef)(null);
984
- const rafRef = (0, react.useRef)(void 0);
985
- (0, react.useEffect)(() => {
986
- return () => {
987
- if (typeof rafRef.current !== "undefined") window.cancelAnimationFrame(rafRef.current);
988
- };
989
- }, []);
990
- return {
991
- positionRef,
992
- preventLayoutShift(callback) {
993
- if (!positionRef.current) return;
994
- const initialTop = positionRef.current.getBoundingClientRect().top;
995
- callback();
996
- rafRef.current = window.requestAnimationFrame(() => {
997
- const newTop = positionRef.current?.getBoundingClientRect().top ?? initialTop;
998
- window.scrollBy(0, newTop - initialTop);
999
- });
1000
- }
1001
- };
1002
- }
1003
- var usePreferredLanguageStore = (0, zustand.create)()((set) => ({
1004
- preferredLanguages: [],
1005
- addPreferredLanguage: (language) => set((state) => ({ preferredLanguages: [...state.preferredLanguages.filter((preferredLanguage) => preferredLanguage !== language), language] }))
1006
- }));
1007
- function useTabGroupProps(availableLanguages) {
1008
- const { preferredLanguages, addPreferredLanguage } = usePreferredLanguageStore();
1009
- const [selectedIndex, setSelectedIndex] = (0, react.useState)(0);
1010
- if (new Set(availableLanguages).size === availableLanguages.length) {
1011
- const activeLanguage = [...availableLanguages].sort((a, z) => preferredLanguages.indexOf(z) - preferredLanguages.indexOf(a))[0];
1012
- const languageIndex = availableLanguages.indexOf(activeLanguage);
1013
- const newSelectedIndex = languageIndex === -1 ? selectedIndex : languageIndex;
1014
- if (newSelectedIndex !== selectedIndex) setSelectedIndex(newSelectedIndex);
1015
- }
1016
- const { positionRef, preventLayoutShift } = usePreventLayoutShift();
1017
- return {
1018
- as: "div",
1019
- ref: positionRef,
1020
- selectedIndex,
1021
- onChange: (nextSelectedIndex) => {
1022
- setSelectedIndex(nextSelectedIndex);
1023
- preventLayoutShift(() => addPreferredLanguage(availableLanguages[nextSelectedIndex]));
1024
- }
1025
- };
1026
- }
1027
- var CodeGroupContext = (0, react.createContext)(false);
1028
- function CodeGroup(arg0) {
1029
- const { children, title, ...props } = arg0;
1030
- const t = useBuiltInText();
1031
- const tabGroupProps = useTabGroupProps(react.Children.map(children, (child) => getPanelTitle({
1032
- ...(0, react.isValidElement)(child) ? child.props : {},
1033
- fallbackTitle: t("actions.code")
1034
- })) ?? []);
1035
- const hasTabs = react.Children.count(children) > 1;
1036
- const containerClassName = "clarify-code-group my-6 overflow-hidden rounded-2xl bg-zinc-900 shadow-md dark:ring-1 dark:ring-white/10";
1037
- const header = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroupHeader, {
1038
- title,
1039
- selectedIndex: tabGroupProps.selectedIndex,
1040
- children
1041
- });
1042
- const panels = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroupPanels, {
1043
- ...props,
1044
- children
1045
- });
1046
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroupContext.Provider, {
1047
- value: true,
1048
- children: hasTabs ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.TabGroup, {
1049
- ...tabGroupProps,
1050
- className: containerClassName,
1051
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1052
- className: "not-prose",
1053
- children: [header, panels]
1054
- })
1055
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1056
- className: containerClassName,
1057
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1058
- className: "not-prose",
1059
- children: [header, panels]
1060
- })
1061
- })
1062
- });
1063
- }
1064
- function Code(arg0) {
1065
- const { children, ...props } = arg0;
1066
- if ((0, react.useContext)(CodeGroupContext) && typeof children === "string") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
1067
- ...props,
1068
- dangerouslySetInnerHTML: { __html: children }
1069
- });
1070
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
1071
- ...props,
1072
- children
1073
- });
1074
- }
1075
- function Pre(arg0) {
1076
- const { children, ...props } = arg0;
1077
- if ((0, react.useContext)(CodeGroupContext)) return children;
1078
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeGroup, {
1079
- ...props,
1080
- children
1081
- });
1082
- }
1083
- //#endregion
1084
- //#region source/components/Collapse.tsx
1085
- function Collapse(arg0) {
1086
- const { children, title, summary, defaultOpen = false, className, ...props } = arg0;
1087
- const [open, setOpen] = (0, react.useState)(defaultOpen);
1088
- const contentRef = (0, react.useRef)(null);
1089
- const [maxHeight, setMaxHeight] = (0, react.useState)("0px");
1090
- const summaryLabel = title ?? summary ?? "Details";
1091
- const contentId = (0, react.useId)();
1092
- (0, react.useLayoutEffect)(() => {
1093
- if (!contentRef.current) return;
1094
- setMaxHeight(open ? `${contentRef.current.scrollHeight}px` : "0px");
1095
- }, [open, children]);
1096
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1097
- 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 dark:border-white/10 dark:bg-zinc-950", className),
1098
- ...props,
1099
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
1100
- type: "button",
1101
- 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) dark:text-white dark:hover:bg-white/5 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) dark:focus-visible:ring-offset-zinc-950",
1102
- "aria-expanded": open,
1103
- "aria-controls": contentId,
1104
- onClick: () => setOpen((value) => !value),
1105
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: summaryLabel }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, {
1106
- className: (0, clsx.default)("h-4 w-4 text-(--clarify-theme-tokens-colors-muted) transition-transform duration-200", open && "rotate-180"),
1107
- "aria-hidden": "true"
1108
- })]
1109
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1110
- id: contentId,
1111
- className: "overflow-hidden border-t border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-background) transition-[max-height,opacity,transform] duration-200 ease-out dark:border-white/10 dark:bg-zinc-950/95",
1112
- style: {
1113
- maxHeight,
1114
- willChange: "max-height, opacity, transform"
1115
- },
1116
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1117
- ref: contentRef,
1118
- 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"),
1119
- children
1120
- })
1121
- })]
1122
- });
1123
- }
1124
- //#endregion
1125
- //#region source/components/Feedback.tsx
1126
- function CheckIcon(props) {
1127
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
1128
- viewBox: "0 0 20 20",
1129
- "aria-hidden": "true",
1130
- ...props,
1131
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("circle", {
1132
- cx: "10",
1133
- cy: "10",
1134
- r: "10",
1135
- strokeWidth: "0"
1136
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1137
- fill: "none",
1138
- strokeLinecap: "round",
1139
- strokeLinejoin: "round",
1140
- strokeWidth: "1.5",
1141
- d: "m6.75 10.813 2.438 2.437c1.218-4.469 4.062-6.5 4.062-6.5"
1142
- })]
1143
- });
1144
- }
1145
- function FeedbackButton(props) {
1146
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
1147
- type: "submit",
1148
- className: "clarify-feedback-button px-3 text-sm font-medium text-zinc-600 transition hover:bg-zinc-900/2.5 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-white/5 dark:hover:text-white",
1149
- ...props
1150
- });
1151
- }
1152
- var FeedbackForm = (0, react.forwardRef)(function FeedbackForm(arg0, ref) {
1153
- const { onSubmit, className, ...props } = arg0;
1154
- const t = useBuiltInText();
1155
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("form", {
1156
- ...props,
1157
- ref,
1158
- onSubmit,
1159
- className: (0, clsx.default)(className, "clarify-feedback-form absolute inset-0 flex items-center justify-center gap-6 md:justify-start"),
1160
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
1161
- className: "text-sm text-zinc-600 dark:text-zinc-400",
1162
- children: t("feedback.prompt")
1163
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1164
- className: "clarify-feedback-actions group grid h-8 grid-cols-[1fr_1px_1fr] overflow-hidden rounded-full border border-zinc-900/10 dark:border-white/10",
1165
- children: [
1166
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackButton, {
1167
- "data-response": "yes",
1168
- children: t("feedback.yes")
1169
- }),
1170
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "bg-zinc-900/10 dark:bg-white/10" }),
1171
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackButton, {
1172
- "data-response": "no",
1173
- children: t("feedback.no")
1174
- })
1175
- ]
1176
- })]
1177
- });
1178
- });
1179
- var FeedbackThanks = (0, react.forwardRef)(function FeedbackThanks(arg0, ref) {
1180
- const { className, ...props } = arg0;
1181
- const t = useBuiltInText();
1182
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1183
- ...props,
1184
- ref,
1185
- className: (0, clsx.default)(className, "clarify-feedback-thanks absolute inset-0 flex justify-center md:justify-start"),
1186
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1187
- 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",
1188
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(CheckIcon, { className: "h-5 w-5 flex-none fill-(--clarify-ui-accent-text) stroke-white dark:fill-(--clarify-ui-accent-background) dark:stroke-(--clarify-ui-accent-text)" }), t("feedback.thanks")]
1189
- })
1190
- });
1191
- });
1192
- function Feedback() {
1193
- const [submitted, setSubmitted] = (0, react.useState)(false);
1194
- function onSubmit(event) {
1195
- event.preventDefault();
1196
- setSubmitted(true);
1197
- }
1198
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1199
- className: "clarify-feedback relative h-8",
1200
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.Transition, {
1201
- show: !submitted,
1202
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackForm, {
1203
- className: "duration-300 data-closed:opacity-0 data-leave:pointer-events-none",
1204
- onSubmit
1205
- })
1206
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.Transition, {
1207
- show: submitted,
1208
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FeedbackThanks, { className: "delay-150 duration-300 data-closed:opacity-0" })
1209
- })]
1210
- });
1211
- }
1212
- //#endregion
1213
- //#region source/components/Tag.tsx
1214
- var tagVariantStyles = {
1215
- small: "",
1216
- medium: "rounded-lg px-1.5 ring-1 ring-inset"
1217
- };
1218
- var tagColorStyles = {
1219
- emerald: {
1220
- small: "text-emerald-500 dark:text-emerald-400",
1221
- medium: "bg-emerald-400/10 text-emerald-500 ring-emerald-300 dark:text-emerald-400 dark:ring-emerald-400/30"
1222
- },
1223
- sky: {
1224
- small: "text-sky-500 dark:text-sky-400",
1225
- medium: "bg-sky-400/10 text-sky-500 ring-sky-300 dark:text-sky-400 dark:ring-sky-400/30"
1226
- },
1227
- amber: {
1228
- small: "text-amber-500 dark:text-amber-400",
1229
- medium: "bg-amber-400/10 text-amber-500 ring-amber-300 dark:text-amber-400 dark:ring-amber-400/30"
1230
- },
1231
- rose: {
1232
- small: "text-red-500 dark:text-rose-500",
1233
- medium: "bg-rose-50 text-red-500 ring-rose-200 dark:bg-rose-400/10 dark:text-rose-400 dark:ring-rose-500/20"
1234
- },
1235
- zinc: {
1236
- small: "text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-500",
1237
- medium: "bg-(--clarify-theme-tokens-colors-code-background) text-(--clarify-theme-tokens-colors-muted) ring-(--clarify-theme-tokens-colors-border) dark:bg-zinc-400/10 dark:text-zinc-400 dark:ring-zinc-500/20"
1238
- }
1239
- };
1240
- var tagValueColorMap = {
1241
- GET: "emerald",
1242
- POST: "sky",
1243
- PUT: "amber",
1244
- PATCH: "amber",
1245
- DELETE: "rose"
1246
- };
1247
- function Tag(arg0) {
1248
- const { children, variant = "medium", color } = arg0;
1249
- const value = typeof children === "string" ? children.toUpperCase() : "";
1250
- const resolvedColor = color ?? tagValueColorMap[value] ?? "emerald";
1251
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1252
- className: (0, clsx.default)("clarify-tag font-bold", tagVariantStyles[variant], tagColorStyles[resolvedColor][variant]),
1253
- children
1254
- });
1255
- }
1256
- //#endregion
1257
- //#region source/components/Heading.tsx
1258
- function AnchorIcon(props) {
1259
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1260
- viewBox: "0 0 20 20",
1261
- fill: "none",
1262
- strokeLinecap: "round",
1263
- "aria-hidden": "true",
1264
- ...props,
1265
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "m6.5 11.5-.964-.964a3.535 3.535 0 1 1 5-5l.964.964m2 2 .964.964a3.536 3.536 0 0 1-5 5L8.5 13.5m0-5 3 3" })
1266
- });
1267
- }
1268
- function Eyebrow(arg0) {
1269
- const { tag, label } = arg0;
1270
- if (!tag && !label) return null;
1271
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1272
- className: "flex items-center gap-x-3",
1273
- children: [
1274
- tag ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, { children: tag }) : null,
1275
- 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,
1276
- label ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1277
- className: "text-xs text-zinc-400",
1278
- children: label
1279
- }) : null
1280
- ]
1281
- });
1282
- }
1283
- function Anchor(arg0) {
1284
- const { id, inView, children } = arg0;
1285
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("a", {
1286
- href: `#${id}`,
1287
- className: "clarify-anchor group text-inherit no-underline hover:text-inherit",
1288
- children: [inView ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1289
- className: "absolute mt-1 -ml-(--width) hidden w-(--width) opacity-0 transition [--width:calc(2.625rem+0.5px+50%-min(50%,calc(var(--container-lg)+(--spacing(8)))))] group-hover:opacity-100 group-focus:opacity-100 md:block lg:z-50 2xl:[--width:--spacing(10)]",
1290
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1291
- 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",
1292
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(AnchorIcon, { className: "h-5 w-5 stroke-zinc-500 transition dark:stroke-zinc-400 dark:group-hover/anchor:stroke-white" })
1293
- })
1294
- }) : null, children]
1295
- });
1296
- }
1297
- function Heading(arg0) {
1298
- const { children, className, tag, label, level, anchor = true, ...props } = arg0;
1299
- const resolvedLevel = level ?? 2;
1300
- const Component = `h${resolvedLevel}`;
1301
- const ref = (0, react.useRef)(null);
1302
- const registerHeading = useSectionStore((state) => state.registerHeading);
1303
- const inView = (0, framer_motion.useInView)(ref, {
1304
- margin: `${remToPx(-3.5)}px 0px 0px 0px`,
1305
- amount: "all"
1306
- });
1307
- (0, react.useEffect)(() => {
1308
- if (resolvedLevel === 2) registerHeading({
1309
- id: props.id,
1310
- ref,
1311
- offsetRem: tag || label ? 8 : 6
1312
- });
1313
- }, [
1314
- label,
1315
- props.id,
1316
- registerHeading,
1317
- resolvedLevel,
1318
- tag
1319
- ]);
1320
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(Eyebrow, {
1321
- tag,
1322
- label
1323
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Component, {
1324
- ref,
1325
- className: (0, clsx.default)("clarify-heading", tag || label ? "mt-2 scroll-mt-32" : "scroll-mt-24", className),
1326
- ...props,
1327
- children: anchor ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Anchor, {
1328
- id: props.id,
1329
- inView,
1330
- children
1331
- }) : children
1332
- })] });
1333
- }
1334
- //#endregion
1335
- //#region source/components/Logo.tsx
1336
- function Logo(props) {
1337
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
1338
- viewBox: "0 0 99 24",
1339
- "aria-hidden": "true",
1340
- ...props,
1341
- className: (0, clsx.default)("clarify-logo", props.className),
1342
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1343
- className: "fill-(--clarify-theme-tokens-colors-primary)",
1344
- 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"
1345
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1346
- className: "fill-(--clarify-theme-tokens-colors-foreground) dark:fill-white",
1347
- 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"
1348
- })]
1349
- });
1350
- }
1351
- //#endregion
1352
- //#region source/components/patterns.tsx
1353
- function GridPattern(arg0) {
1354
- const { width, height, x, y, squares, ...props } = arg0;
1355
- const patternId = (0, react.useId)();
1356
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
1357
- "aria-hidden": "true",
1358
- ...props,
1359
- children: [
1360
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("defs", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pattern", {
1361
- id: patternId,
1362
- width,
1363
- height,
1364
- patternUnits: "userSpaceOnUse",
1365
- x,
1366
- y,
1367
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1368
- d: `M.5 ${height}V.5H${width}`,
1369
- fill: "none"
1370
- })
1371
- }) }),
1372
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
1373
- width: "100%",
1374
- height: "100%",
1375
- strokeWidth: 0,
1376
- fill: `url(#${patternId})`
1377
- }),
1378
- squares ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1379
- x,
1380
- y,
1381
- className: "overflow-visible",
1382
- children: squares.map(([squareX, squareY]) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("rect", {
1383
- width: width + 1,
1384
- height: height + 1,
1385
- x: squareX * width,
1386
- y: squareY * height,
1387
- strokeWidth: "0"
1388
- }, `${squareX}-${squareY}`))
1389
- }) : null
1390
- ]
1391
- });
1392
- }
1393
- function HeroPattern() {
1394
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1395
- className: "absolute inset-0 -z-10 mx-0 max-w-none overflow-hidden",
1396
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1397
- className: "absolute top-0 left-1/2 -ml-152 h-100 w-325 dark:mask-[linear-gradient(white,transparent)]",
1398
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
1399
- className: "absolute inset-0 bg-[linear-gradient(to_right,var(--clarify-theme-tokens-colors-primary),var(--clarify-theme-tokens-colors-accent))] opacity-35 mask-[radial-gradient(farthest-side_at_top,white,transparent)] dark:opacity-55",
1400
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(GridPattern, {
1401
- width: 72,
1402
- height: 56,
1403
- x: -12,
1404
- y: 4,
1405
- squares: [
1406
- [4, 3],
1407
- [2, 1],
1408
- [7, 3],
1409
- [10, 6]
1410
- ],
1411
- className: "absolute inset-x-0 inset-y-[-50%] h-[200%] w-full -skew-y-18 fill-black/40 stroke-black/50 mix-blend-overlay dark:fill-white/2.5 dark:stroke-white/5"
1412
- })
1413
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1414
- viewBox: "0 0 1113 440",
1415
- "aria-hidden": "true",
1416
- className: "absolute top-0 left-1/2 -ml-76 w-278.25 fill-white blur-[26px] dark:hidden",
1417
- 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" })
1418
- })]
1419
- })
1420
- });
1421
- }
1422
- //#endregion
1423
- //#region source/components/Prose.tsx
1424
- function Prose(arg0) {
1425
- const { as, className, ...props } = arg0;
1426
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(as ?? "div", {
1427
- 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"),
1428
- ...props
1429
- });
1430
- }
1431
- //#endregion
1432
693
  //#region source/utils/hash.ts
1433
694
  function safeDecodeURIComponent(value) {
1434
695
  try {
@@ -1478,7 +739,7 @@ function SectionBadge(arg0) {
1478
739
  });
1479
740
  }
1480
741
  function NavLink(arg0) {
1481
- const { href, children, badge, icon, tags, active = false, isAnchorLink = false } = arg0;
742
+ const { href, children, badge, icon, active = false, isAnchorLink = false } = arg0;
1482
743
  function handleClick() {
1483
744
  if (!isAnchorLink) return;
1484
745
  const hashIndex = href.indexOf("#");
@@ -1491,13 +752,13 @@ function NavLink(arg0) {
1491
752
  });
1492
753
  });
1493
754
  }
1494
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.CloseButton, {
755
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.CloseButton, {
1495
756
  as: react_router_dom.Link,
1496
757
  to: href,
1497
758
  "aria-current": active ? "page" : void 0,
1498
759
  onClick: handleClick,
1499
760
  className: (0, clsx.default)("clarify-navigation-link flex h-8 items-center justify-between gap-2 pr-3 transition", isAnchorLink ? "clarify-navigation-anchor-link pl-7" : "pl-4"),
1500
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
761
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
1501
762
  className: "flex min-w-0 flex-1 items-center gap-2",
1502
763
  children: [
1503
764
  icon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavigationIcon, {
@@ -1510,14 +771,7 @@ function NavLink(arg0) {
1510
771
  children
1511
772
  })
1512
773
  ]
1513
- }), tags?.length ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1514
- className: "flex shrink-0 gap-1",
1515
- children: tags.map((tag) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Tag, {
1516
- variant: "small",
1517
- color: "zinc",
1518
- children: tag
1519
- }, tag))
1520
- }) : null]
774
+ })
1521
775
  });
1522
776
  }
1523
777
  function VisibleSectionHighlight(arg0) {
@@ -1675,26 +929,6 @@ function Navigation(arg0) {
1675
929
  }
1676
930
  //#endregion
1677
931
  //#region source/shell/mobile.tsx
1678
- function MenuIcon(props) {
1679
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1680
- viewBox: "0 0 10 9",
1681
- fill: "none",
1682
- strokeLinecap: "round",
1683
- "aria-hidden": "true",
1684
- ...props,
1685
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M.5 1h9M.5 8h9M.5 4.5h9" })
1686
- });
1687
- }
1688
- function XIcon(props) {
1689
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1690
- viewBox: "0 0 10 9",
1691
- fill: "none",
1692
- strokeLinecap: "round",
1693
- "aria-hidden": "true",
1694
- ...props,
1695
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "m1.5 1 7 7M8.5 1l-7 7" })
1696
- });
1697
- }
1698
932
  var IsInsideMobileNavigationContext = (0, react.createContext)(false);
1699
933
  function hasPath$1(nodes, pathname) {
1700
934
  return nodes.some((node) => isSameRoutePath(node.path, pathname) || hasPath$1(node.children ?? [], pathname));
@@ -1722,20 +956,7 @@ function MobileTabsSelect(arg0) {
1722
956
  className: "truncate",
1723
957
  children: activeTab.title
1724
958
  })]
1725
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1726
- width: "8",
1727
- height: "24",
1728
- viewBox: "0 -9 3 24",
1729
- "aria-hidden": "true",
1730
- className: "shrink-0 overflow-visible text-(--clarify-theme-tokens-colors-muted) transition-transform group-aria-expanded:rotate-180",
1731
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1732
- d: "M0 0L3 3L0 6",
1733
- fill: "none",
1734
- stroke: "currentColor",
1735
- strokeWidth: "1.5",
1736
- strokeLinecap: "round"
1737
- })
1738
- })]
959
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, { className: "h-4 w-4 shrink-0 text-(--clarify-theme-tokens-colors-muted) transition-transform group-aria-expanded:rotate-180" })]
1739
960
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.MenuItems, {
1740
961
  className: "clarify-mobile-tabs-select-list clarify-ui-menu mt-2 flex flex-col gap-1 rounded-(--clarify-theme-tokens-radius-xl) border border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-surface) p-1 shadow-lg shadow-zinc-900/5 focus:outline-none dark:border-white/10 dark:bg-zinc-900 dark:shadow-none",
1741
962
  children: tabs.map((tab) => {
@@ -1754,19 +975,7 @@ function MobileTabsSelect(arg0) {
1754
975
  className: "min-w-0 whitespace-normal wrap-anywhere font-medium leading-5",
1755
976
  children: tab.title
1756
977
  })]
1757
- }), active ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1758
- viewBox: "0 0 20 20",
1759
- fill: "none",
1760
- "aria-hidden": "true",
1761
- className: "mt-0.5 h-4 w-4 shrink-0",
1762
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1763
- d: "m5 10 3 3 7-7",
1764
- stroke: "currentColor",
1765
- strokeWidth: "1.8",
1766
- strokeLinecap: "round",
1767
- strokeLinejoin: "round"
1768
- })
1769
- }) : null]
978
+ }), active ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Check, { className: "mt-0.5 h-4 w-4 shrink-0" }) : null]
1770
979
  }) }, `${tab.title}-${tab.path}`);
1771
980
  })
1772
981
  })]
@@ -1792,7 +1001,7 @@ function MobileNavigationDialog(arg0) {
1792
1001
  className: "data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in"
1793
1002
  }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_headlessui_react.TransitionChild, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(framer_motion.motion.div, {
1794
1003
  layoutScroll: true,
1795
- className: "clarify-mobile-navigation-panel fixed top-14 bottom-0 left-0 w-full overflow-y-auto bg-(--clarify-theme-tokens-colors-background) px-4 pt-6 pb-4 shadow-lg ring-1 shadow-zinc-900/10 ring-(--clarify-theme-tokens-colors-border) duration-500 ease-in-out data-closed:-translate-x-full min-[416px]:max-w-sm sm:px-6 sm:pb-10 dark:bg-zinc-950 dark:ring-zinc-800",
1004
+ className: "clarify-mobile-navigation-panel fixed top-14 bottom-0 left-0 w-full max-w-sm overflow-y-auto bg-(--clarify-theme-tokens-colors-background) px-4 pt-6 pb-4 shadow-lg ring-1 shadow-zinc-900/10 ring-(--clarify-theme-tokens-colors-border) duration-500 ease-in-out data-closed:-translate-x-full sm:px-6 sm:pb-10 dark:bg-zinc-950 dark:ring-zinc-800",
1796
1005
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(MobileTabsSelect, { tabs }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Navigation, { navigation })]
1797
1006
  }) })] })]
1798
1007
  });
@@ -1811,7 +1020,7 @@ function MobileNavigation(arg0) {
1811
1020
  const isInsideMobileNavigation = useIsInsideMobileNavigation();
1812
1021
  const { isOpen, toggle, close } = useMobileNavigationStore();
1813
1022
  const t = useBuiltInText();
1814
- const ToggleIcon = isOpen ? XIcon : MenuIcon;
1023
+ const ToggleIcon = isOpen ? lucide_react.X : lucide_react.Menu;
1815
1024
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(IsInsideMobileNavigationContext.Provider, {
1816
1025
  value: true,
1817
1026
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
@@ -1819,7 +1028,7 @@ function MobileNavigation(arg0) {
1819
1028
  className: "clarify-mobile-navigation-button clarify-ui-icon-button relative flex size-6 items-center justify-center rounded-(--clarify-theme-tokens-radius-md) transition",
1820
1029
  "aria-label": t("navigation.toggle"),
1821
1030
  onClick: toggle,
1822
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "absolute size-12 pointer-fine:hidden" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToggleIcon, { className: "w-2.5 stroke-(--clarify-theme-tokens-colors-foreground) dark:stroke-white" })]
1031
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "absolute size-12 pointer-fine:hidden" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ToggleIcon, { className: "h-4 w-4 stroke-(--clarify-theme-tokens-colors-foreground) dark:stroke-white" })]
1823
1032
  }), !isInsideMobileNavigation ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Suspense, {
1824
1033
  fallback: null,
1825
1034
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MobileNavigationDialog, {
@@ -1837,32 +1046,6 @@ function MobileNavigation(arg0) {
1837
1046
  }
1838
1047
  //#endregion
1839
1048
  //#region source/shell/Search.tsx
1840
- function SearchIcon(props) {
1841
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1842
- viewBox: "0 0 20 20",
1843
- fill: "none",
1844
- "aria-hidden": "true",
1845
- ...props,
1846
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1847
- strokeLinecap: "round",
1848
- strokeLinejoin: "round",
1849
- d: "M12.01 12a4.25 4.25 0 1 0-6.02-6 4.25 4.25 0 0 0 6.02 6Zm0 0 3.24 3.25"
1850
- })
1851
- });
1852
- }
1853
- function NoResultsIcon(props) {
1854
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
1855
- viewBox: "0 0 20 20",
1856
- fill: "none",
1857
- "aria-hidden": "true",
1858
- ...props,
1859
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
1860
- strokeLinecap: "round",
1861
- strokeLinejoin: "round",
1862
- d: "M12.01 12a4.237 4.237 0 0 0 1.24-3c0-.62-.132-1.207-.37-1.738M12.01 12A4.237 4.237 0 0 1 9 13.25c-.635 0-1.237-.14-1.777-.388M12.01 12l3.24 3.25m-3.715-9.661a4.25 4.25 0 0 0-5.975 5.908M4.5 15.5l11-11"
1863
- })
1864
- });
1865
- }
1866
1049
  function routeGroupTitles(navigation) {
1867
1050
  const titles = /* @__PURE__ */ new Map();
1868
1051
  for (const node of navigation) if (node.children?.length) for (const child of node.children) titles.set(child.path, node.title);
@@ -1945,7 +1128,7 @@ var SearchInput = (0, react.forwardRef)(function SearchInput(arg0, inputRef) {
1945
1128
  const t = useBuiltInText();
1946
1129
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
1947
1130
  className: "clarify-search-input group relative flex h-12",
1948
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SearchIcon, { className: "pointer-events-none absolute top-0 left-3 h-full w-5 stroke-(--clarify-theme-tokens-colors-muted)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1131
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Search, { className: "pointer-events-none absolute top-0 left-3 h-full w-5 stroke-(--clarify-theme-tokens-colors-muted)" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
1949
1132
  ref: inputRef,
1950
1133
  "data-autofocus": true,
1951
1134
  role: "combobox",
@@ -2022,7 +1205,7 @@ function SearchDialog(arg0) {
2022
1205
  transition: true,
2023
1206
  className: "clarify-search-backdrop clarify-ui-backdrop fixed inset-0 backdrop-blur-xs data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in"
2024
1207
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
2025
- className: "fixed inset-0 overflow-y-auto px-4 py-4 sm:px-6 sm:py-20 md:py-32 lg:px-8 lg:py-[15vh]",
1208
+ className: "fixed inset-0 overflow-y-auto px-4 py-4 sm:px-6 sm:py-20 md:py-32 lg:px-8 lg:py-(--clarify-search-dialog-padding-block-lg)",
2026
1209
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_headlessui_react.DialogPanel, {
2027
1210
  transition: true,
2028
1211
  className: "clarify-search-panel mx-auto transform-gpu overflow-hidden rounded-(--clarify-theme-tokens-radius-lg) bg-(--clarify-theme-tokens-colors-surface) shadow-xl ring-1 ring-(--clarify-theme-tokens-colors-border) data-closed:scale-95 data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in sm:max-w-xl dark:bg-zinc-900 dark:ring-zinc-800",
@@ -2046,7 +1229,7 @@ function SearchDialog(arg0) {
2046
1229
  className: "border-t border-(--clarify-theme-tokens-colors-border) bg-(--clarify-theme-tokens-colors-background) empty:hidden dark:border-zinc-100/5 dark:bg-white/2.5",
2047
1230
  children: [query && results.length === 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2048
1231
  className: "p-6 text-center",
2049
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(NoResultsIcon, { className: "mx-auto h-5 w-5 stroke-(--clarify-theme-tokens-colors-foreground) dark:stroke-zinc-600" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
1232
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.SearchX, { className: "mx-auto h-5 w-5 stroke-(--clarify-theme-tokens-colors-foreground) dark:stroke-zinc-600" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
2050
1233
  className: "mt-2 text-xs text-(--clarify-theme-tokens-colors-muted) dark:text-zinc-400",
2051
1234
  children: t("search.noResults", { query })
2052
1235
  })]
@@ -2092,13 +1275,13 @@ function Search(arg0) {
2092
1275
  const modifierKey = getModifierKey();
2093
1276
  const { buttonProps, dialogProps } = useSearchProps();
2094
1277
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
2095
- className: "clarify-search hidden w-80 max-w-[36vw] lg:block",
1278
+ className: "clarify-search hidden w-80 max-w-(--clarify-search-max-width) lg:block",
2096
1279
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
2097
1280
  type: "button",
2098
1281
  className: "clarify-search-button hidden h-9 w-full items-center gap-2 rounded-(--clarify-theme-tokens-radius-lg) bg-(--clarify-theme-tokens-colors-surface) pr-3 pl-2.5 font-medium ring-1 ring-(--clarify-theme-tokens-colors-border) transition hover:bg-(--clarify-theme-tokens-colors-background) lg:flex dark:bg-white/5 dark:ring-white/10 dark:ring-inset dark:hover:bg-white/10",
2099
1282
  ...buttonProps,
2100
1283
  children: [
2101
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SearchIcon, { className: "h-5 w-5 stroke-current" }),
1284
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Search, { className: "h-5 w-5 stroke-current" }),
2102
1285
  t("search.button"),
2103
1286
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("kbd", {
2104
1287
  className: "clarify-search-shortcut ml-auto rounded-(--clarify-theme-tokens-radius-sm) bg-(--clarify-theme-tokens-colors-background) px-1.5 py-0.5 ring-1 ring-(--clarify-theme-tokens-colors-border) dark:bg-white/5 dark:ring-white/10",
@@ -2133,7 +1316,7 @@ function MobileSearch(arg0) {
2133
1316
  className: "clarify-mobile-search-button clarify-ui-control relative flex size-6 items-center justify-center rounded-(--clarify-theme-tokens-radius-md) transition lg:hidden",
2134
1317
  "aria-label": t("search.placeholder"),
2135
1318
  ...buttonProps,
2136
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "absolute size-12 pointer-fine:hidden" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SearchIcon, { className: "h-5 w-5 stroke-(--clarify-theme-tokens-colors-foreground) dark:stroke-white" })]
1319
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "absolute size-12 pointer-fine:hidden" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Search, { className: "h-5 w-5 stroke-(--clarify-theme-tokens-colors-foreground) dark:stroke-white" })]
2137
1320
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Suspense, {
2138
1321
  fallback: null,
2139
1322
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SearchDialog, {
@@ -2186,15 +1369,6 @@ function localizedRoutePath(config, locale, route) {
2186
1369
  if (route?.alternates) return void 0;
2187
1370
  return localizeHref(route?.basePath ?? route?.path ?? "/", config, locale);
2188
1371
  }
2189
- function LanguageIcon(props) {
2190
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
2191
- viewBox: "0 0 20 20",
2192
- fill: "none",
2193
- "aria-hidden": "true",
2194
- ...props,
2195
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M10 17.5a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15Z" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d: "M2.5 10h15M10 2.5c2 2.05 3 4.55 3 7.5s-1 5.45-3 7.5c-2-2.05-3-4.55-3-7.5s1-5.45 3-7.5Z" })]
2196
- });
2197
- }
2198
1372
  function LanguageSwitcher(arg0) {
2199
1373
  const { config, currentLocale, currentRoute } = arg0;
2200
1374
  const t = useBuiltInText();
@@ -2212,7 +1386,7 @@ function LanguageSwitcher(arg0) {
2212
1386
  "aria-label": t("language.switch"),
2213
1387
  children: [
2214
1388
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "absolute size-12 pointer-fine:hidden" }),
2215
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LanguageIcon, { className: "h-5 w-5 stroke-current" }),
1389
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Globe2, { className: "h-5 w-5 stroke-current" }),
2216
1390
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
2217
1391
  className: "hidden sm:inline",
2218
1392
  children: selectedLocaleConfig?.label ?? selectedLocale
@@ -2424,30 +1598,6 @@ var Header = (0, react.forwardRef)(function Header(arg0, ref) {
2424
1598
  });
2425
1599
  });
2426
1600
  //#endregion
2427
- Object.defineProperty(exports, "Button", {
2428
- enumerable: true,
2429
- get: function() {
2430
- return Button;
2431
- }
2432
- });
2433
- Object.defineProperty(exports, "Callout", {
2434
- enumerable: true,
2435
- get: function() {
2436
- return Callout;
2437
- }
2438
- });
2439
- Object.defineProperty(exports, "Card", {
2440
- enumerable: true,
2441
- get: function() {
2442
- return Card;
2443
- }
2444
- });
2445
- Object.defineProperty(exports, "CardGroup", {
2446
- enumerable: true,
2447
- get: function() {
2448
- return CardGroup;
2449
- }
2450
- });
2451
1601
  Object.defineProperty(exports, "ClarifyConfigContext", {
2452
1602
  enumerable: true,
2453
1603
  get: function() {
@@ -2460,66 +1610,18 @@ Object.defineProperty(exports, "ClarifyLocaleContext", {
2460
1610
  return ClarifyLocaleContext;
2461
1611
  }
2462
1612
  });
2463
- Object.defineProperty(exports, "Code", {
2464
- enumerable: true,
2465
- get: function() {
2466
- return Code;
2467
- }
2468
- });
2469
- Object.defineProperty(exports, "CodeGroup", {
2470
- enumerable: true,
2471
- get: function() {
2472
- return CodeGroup;
2473
- }
2474
- });
2475
- Object.defineProperty(exports, "Collapse", {
2476
- enumerable: true,
2477
- get: function() {
2478
- return Collapse;
2479
- }
2480
- });
2481
1613
  Object.defineProperty(exports, "ContentActions", {
2482
1614
  enumerable: true,
2483
1615
  get: function() {
2484
1616
  return ContentActions;
2485
1617
  }
2486
1618
  });
2487
- Object.defineProperty(exports, "Feedback", {
2488
- enumerable: true,
2489
- get: function() {
2490
- return Feedback;
2491
- }
2492
- });
2493
- Object.defineProperty(exports, "GridPattern", {
2494
- enumerable: true,
2495
- get: function() {
2496
- return GridPattern;
2497
- }
2498
- });
2499
1619
  Object.defineProperty(exports, "Header", {
2500
1620
  enumerable: true,
2501
1621
  get: function() {
2502
1622
  return Header;
2503
1623
  }
2504
1624
  });
2505
- Object.defineProperty(exports, "Heading", {
2506
- enumerable: true,
2507
- get: function() {
2508
- return Heading;
2509
- }
2510
- });
2511
- Object.defineProperty(exports, "HeroPattern", {
2512
- enumerable: true,
2513
- get: function() {
2514
- return HeroPattern;
2515
- }
2516
- });
2517
- Object.defineProperty(exports, "Logo", {
2518
- enumerable: true,
2519
- get: function() {
2520
- return Logo;
2521
- }
2522
- });
2523
1625
  Object.defineProperty(exports, "Navigation", {
2524
1626
  enumerable: true,
2525
1627
  get: function() {
@@ -2532,30 +1634,12 @@ Object.defineProperty(exports, "OpenApisContext", {
2532
1634
  return OpenApisContext;
2533
1635
  }
2534
1636
  });
2535
- Object.defineProperty(exports, "Pre", {
2536
- enumerable: true,
2537
- get: function() {
2538
- return Pre;
2539
- }
2540
- });
2541
- Object.defineProperty(exports, "Prose", {
2542
- enumerable: true,
2543
- get: function() {
2544
- return Prose;
2545
- }
2546
- });
2547
1637
  Object.defineProperty(exports, "SectionProvider", {
2548
1638
  enumerable: true,
2549
1639
  get: function() {
2550
1640
  return SectionProvider;
2551
1641
  }
2552
1642
  });
2553
- Object.defineProperty(exports, "Tag", {
2554
- enumerable: true,
2555
- get: function() {
2556
- return Tag;
2557
- }
2558
- });
2559
1643
  Object.defineProperty(exports, "ThemeProvider", {
2560
1644
  enumerable: true,
2561
1645
  get: function() {
@@ -2592,6 +1676,12 @@ Object.defineProperty(exports, "localizeHref", {
2592
1676
  return localizeHref;
2593
1677
  }
2594
1678
  });
1679
+ Object.defineProperty(exports, "lucideIconRegistry", {
1680
+ enumerable: true,
1681
+ get: function() {
1682
+ return lucideIconRegistry;
1683
+ }
1684
+ });
2595
1685
  Object.defineProperty(exports, "normalizeRoutePath", {
2596
1686
  enumerable: true,
2597
1687
  get: function() {
@@ -2610,6 +1700,12 @@ Object.defineProperty(exports, "remToPx", {
2610
1700
  return remToPx;
2611
1701
  }
2612
1702
  });
1703
+ Object.defineProperty(exports, "resolveLucideIconName", {
1704
+ enumerable: true,
1705
+ get: function() {
1706
+ return resolveLucideIconName;
1707
+ }
1708
+ });
2613
1709
  Object.defineProperty(exports, "safeDecodeURIComponent", {
2614
1710
  enumerable: true,
2615
1711
  get: function() {
@@ -2647,4 +1743,4 @@ Object.defineProperty(exports, "useTheme", {
2647
1743
  }
2648
1744
  });
2649
1745
 
2650
- //# sourceMappingURL=shell-_MyLsMUI.cjs.map
1746
+ //# sourceMappingURL=shell-D4tS8Jts.cjs.map