@blaaiz/docs-core 0.8.0 → 0.9.1

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.
@@ -97,6 +97,53 @@ var GLYPHS = {
97
97
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9" }),
98
98
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 7v5l3 2" })
99
99
  ] }),
100
+ /** A clock with a counter-clockwise arrow — a changelog, a history. */
101
+ history: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }),
103
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 3v5h5" }),
104
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 7v5l4 2" })
105
+ ] }),
106
+ bell: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
107
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" }),
108
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.3 21a1.94 1.94 0 0 0 3.4 0" })
109
+ ] }),
110
+ /** A paper plane — send, deliver. */
111
+ send: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
112
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m22 2-7 20-4-9-9-4Z" }),
113
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 2 11 13" })
114
+ ] }),
115
+ idCard: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
116
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2" }),
117
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "11", r: "2" }),
118
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.17 15a3 3 0 0 1 5.66 0" }),
119
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 10h2M16 14h2" })
120
+ ] }),
121
+ coins: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
122
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8", cy: "8", r: "6" }),
123
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18.09 10.37A6 6 0 1 1 10.34 18" }),
124
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 6h1v4" }),
125
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m16.71 13.88.7.71-2.82 2.82" })
126
+ ] }),
127
+ handshake: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
128
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m11 17 2 2a1 1 0 1 0 3-3" }),
129
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" }),
130
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m21 3 1 11h-2" }),
131
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" }),
132
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 4h8" })
133
+ ] }),
134
+ shieldCheck: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
135
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1 1 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }),
136
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 12 2 2 4-4" })
137
+ ] }),
138
+ banknote: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
139
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "6", width: "20", height: "12", rx: "2" }),
140
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "2" }),
141
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12h.01M18 12h.01" })
142
+ ] }),
143
+ circlePlay: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
144
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
145
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m10 8 6 4-6 4z" })
146
+ ] }),
100
147
  /** A circled `i` — an informational note, and the generic error state. */
101
148
  info: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
149
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/ui/clipboard.ts","../../src/ui/icons.tsx","../../src/ui/copy-page.tsx"],"names":["jsxs","Fragment","jsx","useState","useRef","useEffect"],"mappings":"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","file":"copy-page.cjs","sourcesContent":["/**\n * Clipboard copying for the framework's client components — internal.\n *\n * The Clipboard API is the right way to copy, and it is not always available:\n * an insecure origin, an embedded frame with no permission, or an older browser\n * leaves `navigator.clipboard` missing or its promise rejected. Every copy\n * control in the framework therefore needs the same two-step attempt, so the\n * attempt lives here once instead of in each control.\n *\n * @packageDocumentation\n */\n\n/**\n * Copy through a hidden textarea and `document.execCommand`. The fallback, for\n * the contexts the Clipboard API refuses.\n */\nfunction legacyCopy(text: string): boolean {\n try {\n const area = document.createElement('textarea');\n area.value = text;\n area.style.position = 'fixed';\n area.style.opacity = '0';\n document.body.appendChild(area);\n area.select();\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- clipboard fallback\n const ok = document.execCommand('copy');\n document.body.removeChild(area);\n return ok;\n } catch {\n return false;\n }\n}\n\n/**\n * Copy text to the clipboard.\n *\n * Tries the Clipboard API, then the hidden-textarea fallback. It never throws:\n * a caller flashes \"Copied\" on `true` and leaves its label alone on `false`.\n *\n * @param text - the text to copy\n * @returns whether the text reached the clipboard\n */\nexport async function copyToClipboard(text: string): Promise<boolean> {\n // TypeScript types `navigator.clipboard` as always present; a browser on an\n // insecure origin disagrees, so treat it as optional.\n const clip = navigator.clipboard as Clipboard | undefined;\n if (typeof clip?.writeText === 'function') {\n try {\n await clip.writeText(text);\n return true;\n } catch {\n // Denied or unavailable; fall through to the legacy path.\n }\n }\n return legacyCopy(text);\n}\n","import type { ReactNode } from 'react';\n\n/**\n * The framework's inline-SVG glyph set — internal.\n *\n * Five UI modules drew their own icons, and four glyphs were drawn twice: the\n * house on the error screen and in the sidebar icon map, the padlock on the\n * sign-in and the `403` screen, the info circle on both of those, the key in\n * both places again, and the check mark in the copy-page button and the\n * playground. One drawing per glyph now lives here.\n *\n * Nothing is exported from the package: the modules below compose these paths,\n * and `docsIcon` remains the only public icon surface. Zero dependencies — the\n * paths are Lucide-shaped, on the same 24×24 grid, so any glyph works at any\n * size.\n *\n * @packageDocumentation\n */\n\n/**\n * The glyph paths, keyed by name. Each value is the *inside* of an `<svg>`, so\n * a caller decides the size, the stroke, and the class.\n */\nconst GLYPHS = {\n house: (\n <>\n <path d=\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\n <path d=\"M9 22V12h6v10\" />\n </>\n ),\n book: <path d=\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\" />,\n code: (\n <>\n <path d=\"m16 18 6-6-6-6\" />\n <path d=\"m8 6-6 6 6 6\" />\n </>\n ),\n rocket: (\n <>\n <path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91 0z\" />\n <path d=\"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\" />\n <path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\" />\n <path d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\" />\n </>\n ),\n terminal: (\n <>\n <path d=\"m4 17 6-6-6-6\" />\n <path d=\"M12 19h8\" />\n </>\n ),\n wallet: (\n <>\n <path d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\" />\n <path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\" />\n </>\n ),\n key: (\n <>\n <path d=\"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4\" />\n <path d=\"m21 2-9.6 9.6\" />\n <circle cx=\"7.5\" cy=\"15.5\" r=\"5.5\" />\n </>\n ),\n webhook: (\n <>\n <path d=\"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2\" />\n <path d=\"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06\" />\n <path d=\"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8\" />\n </>\n ),\n globe: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\" />\n <path d=\"M2 12h20\" />\n </>\n ),\n mail: (\n <>\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n </>\n ),\n user: (\n <>\n <circle cx=\"12\" cy=\"8\" r=\"4\" />\n <path d=\"M4 21a8 8 0 0 1 16 0\" />\n </>\n ),\n lock: (\n <>\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </>\n ),\n users: (\n <>\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <path d=\"M2 21a7 7 0 0 1 14 0\" />\n <path d=\"M16 3.5a4 4 0 0 1 0 7\" />\n <path d=\"M17.5 14.5a7 7 0 0 1 4.5 6.5\" />\n </>\n ),\n building: (\n <>\n <rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" />\n <path d=\"M9 22v-4h6v4\" />\n <path d=\"M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01\" />\n </>\n ),\n clock: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path d=\"M12 7v5l3 2\" />\n </>\n ),\n /** A circled `i` — an informational note, and the generic error state. */\n info: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 8v4M12 16h.01\" strokeLinecap=\"round\" />\n </>\n ),\n /** A warning triangle — a caution, and the `500` screen. */\n alert: (\n <>\n <path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <path d=\"M12 9v4M12 17h.01\" strokeLinecap=\"round\" />\n </>\n ),\n /** A light bulb — a tip. */\n bulb: (\n <path d=\"M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.3 1 2.1V17h6v-.2c0-.8.4-1.6 1-2.1A7 7 0 0 0 12 2Z\" />\n ),\n /** A circle with a cross — the `404` screen. */\n crossCircle: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m14.31 8-1.31 2.4M9.69 8l4.62 8M14.31 16 9.69 8\" strokeLinecap=\"round\" />\n </>\n ),\n /** Struck-through signal bars — the offline screen. */\n offline: (\n <>\n <path d=\"M5 12.55a11 11 0 0 1 14 0M8.5 16.11a6 6 0 0 1 7 0M12 20h.01\" strokeLinecap=\"round\" />\n <path d=\"m2 2 20 20\" strokeLinecap=\"round\" />\n </>\n ),\n copy: (\n <path d=\"M9 9h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2ZM5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n ),\n check: <path d=\"M20 6 9 17l-5-5\" />,\n chevronDown: <path d=\"m6 9 6 6 6-6\" />,\n /** Stacked chevrons — a value this control switches between. */\n chevronUpDown: <path d=\"m7 15 5 5 5-5M7 9l5-5 5 5\" />,\n /** An open arc — one turn of a loading spinner. */\n spinner: <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" strokeLinecap=\"round\" />,\n markdown: (\n <>\n <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\" />\n <path d=\"M6 15V9l3 3 3-3v6M17 9v4m0 0 2-2m-2 2-2-2\" />\n </>\n ),\n} satisfies Record<string, ReactNode>;\n\n/** A glyph in {@link GLYPHS}. */\nexport type GlyphName = keyof typeof GLYPHS;\n\n/**\n * How one icon is drawn. Every field is optional, and the defaults match the\n * house style: 24×24 grid, current colour, hidden from assistive technology.\n */\nexport interface IconOptions {\n /**\n * React key for the `<svg>`. Set it when a host may place the icon in an\n * array of children — fumadocs renders a sidebar link as `[icon, text]`, and\n * an unkeyed element there raises React's \"unique key\" warning in the\n * consuming site's console.\n */\n readonly key?: string;\n /** Pixel size for `width` and `height`. Omit to let CSS size the icon. */\n readonly size?: number;\n /** Stroke width. Default 2. */\n readonly strokeWidth?: number;\n /** Round the stroke's ends and joins. Default `false`. */\n readonly rounded?: boolean;\n /** Class for the `<svg>`, e.g. a spin animation. */\n readonly className?: string;\n}\n\n/**\n * Draw a stroked glyph.\n *\n * @param name - the glyph\n * @param options - size, stroke, and class\n * @returns the `<svg>` element\n */\nexport function strokeIcon(name: GlyphName, options: IconOptions = {}): ReactNode {\n return (\n <svg\n key={options.key}\n {...(options.className === undefined ? {} : { className: options.className })}\n {...(options.size === undefined ? {} : { width: options.size, height: options.size })}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={options.strokeWidth ?? 2}\n {...(options.rounded ? { strokeLinecap: 'round', strokeLinejoin: 'round' } : {})}\n aria-hidden=\"true\"\n >\n {GLYPHS[name]}\n </svg>\n );\n}\n\n/**\n * Draw a filled glyph. Used by the solid play triangle, where a stroke would\n * read as an outline.\n *\n * @param path - the path data\n * @param options - size and class\n * @returns the `<svg>` element\n */\nexport function filledIcon(path: string, options: IconOptions = {}): ReactNode {\n return (\n <svg\n key={options.key}\n {...(options.className === undefined ? {} : { className: options.className })}\n {...(options.size === undefined ? {} : { width: options.size, height: options.size })}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d={path} />\n </svg>\n );\n}\n\n/** A solid right-pointing triangle: run this request. */\nexport const PLAY_PATH = 'M8 5v14l11-7z';\n","'use client';\n\nimport { useEffect, useRef, useState, type CSSProperties } from 'react';\n\nimport { copyToClipboard } from './clipboard.js';\nimport { strokeIcon } from './icons.js';\n\n/**\n * The \"Copy page\" control — a split button with a dropdown, matching Mintlify's\n * LLM-friendly page action. The primary button copies the page's Markdown to\n * the clipboard; the dropdown adds a \"View as Markdown\" link.\n *\n * Self-contained: it styles itself with inline styles keyed to the framework's\n * `--color-fd-*` theme variables, so it inherits the site's palette with no\n * extra stylesheet. This is the framework's one client component.\n *\n * @packageDocumentation\n */\n\n/**\n * Props for {@link CopyPageButton}.\n *\n * @public\n */\nexport interface CopyPageButtonProps {\n /** The page rendered as Markdown, copied to the clipboard on click. */\n readonly markdown: string;\n /** URL that serves the same page as plain Markdown (opened in a new tab). */\n readonly viewUrl: string;\n}\n\n/** The four glyphs this control draws, from the framework's shared set. */\ntype IconName = 'copy' | 'check' | 'chevronDown' | 'markdown';\n\nfunction Icon({ name, size = 15 }: { name: IconName; size?: number }) {\n // The check mark is drawn heavier so it reads at 15px.\n return strokeIcon(name, { size, strokeWidth: name === 'check' ? 2.5 : 1.9, rounded: true });\n}\n\nconst styles = {\n root: { position: 'relative', flexShrink: 0, fontSize: 13, lineHeight: 1.2 } as CSSProperties,\n split: {\n display: 'inline-flex',\n alignItems: 'stretch',\n border: '1px solid var(--color-fd-border)',\n borderRadius: 8,\n background: 'var(--color-fd-card)',\n overflow: 'hidden',\n } as CSSProperties,\n main: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 8,\n padding: '9px 15px',\n background: 'transparent',\n color: 'var(--color-fd-foreground)',\n font: 'inherit',\n fontWeight: 500,\n cursor: 'pointer',\n border: 'none',\n } as CSSProperties,\n caret: {\n display: 'inline-flex',\n alignItems: 'center',\n padding: '9px 11px',\n background: 'transparent',\n color: 'var(--color-fd-muted-foreground)',\n borderLeft: '1px solid var(--color-fd-border)',\n cursor: 'pointer',\n } as CSSProperties,\n menu: {\n position: 'absolute',\n top: 'calc(100% + 6px)',\n right: 0,\n zIndex: 40,\n width: 268,\n padding: 6,\n border: '1px solid var(--color-fd-border)',\n borderRadius: 12,\n background: 'var(--color-fd-popover, var(--color-fd-card))',\n boxShadow: '0 4px 6px -2px rgba(0,0,0,0.05), 0 12px 28px -6px rgba(0,0,0,0.18)',\n } as CSSProperties,\n item: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: 10,\n width: '100%',\n padding: '9px 10px',\n borderRadius: 8,\n background: 'transparent',\n border: 'none',\n textAlign: 'left',\n textDecoration: 'none',\n color: 'var(--color-fd-foreground)',\n font: 'inherit',\n cursor: 'pointer',\n } as CSSProperties,\n muted: { color: 'var(--color-fd-muted-foreground)' } as CSSProperties,\n itemText: { display: 'flex', flexDirection: 'column', gap: 2, minWidth: 0 } as CSSProperties,\n itemSub: { fontSize: 12, color: 'var(--color-fd-muted-foreground)' } as CSSProperties,\n};\n\nconst HOVER_BG = 'color-mix(in oklab, var(--color-fd-primary) 9%, transparent)';\n\nfunction hoverProps(base: CSSProperties) {\n return {\n onMouseEnter: (event: { currentTarget: HTMLElement }) => {\n event.currentTarget.style.background = HOVER_BG;\n },\n onMouseLeave: (event: { currentTarget: HTMLElement }) => {\n event.currentTarget.style.background = (base.background as string) ?? 'transparent';\n },\n };\n}\n\n/**\n * The split \"Copy page\" button. Renders nothing structural of its own beyond a\n * relatively-positioned wrapper, so a site drops it beside the page title.\n *\n * @public\n */\nexport function CopyPageButton({ markdown, viewUrl }: CopyPageButtonProps) {\n const [open, setOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const onPointerDown = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener('mousedown', onPointerDown);\n return () => {\n document.removeEventListener('mousedown', onPointerDown);\n };\n }, [open]);\n\n const copy = async () => {\n // A refused clipboard leaves the label unchanged: no error, no false claim.\n if (await copyToClipboard(markdown)) {\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 1600);\n }\n setOpen(false);\n };\n\n return (\n <div ref={ref} style={styles.root}>\n <div style={styles.split}>\n <button\n type=\"button\"\n style={styles.main}\n onClick={() => void copy()}\n {...hoverProps(styles.main)}\n >\n <span style={styles.muted}>\n <Icon name={copied ? 'check' : 'copy'} />\n </span>\n {copied ? 'Copied' : 'Copy page'}\n </button>\n <button\n type=\"button\"\n style={styles.caret}\n aria-label=\"More options\"\n aria-expanded={open}\n onClick={() => {\n setOpen((value) => !value);\n }}\n {...hoverProps(styles.caret)}\n >\n <Icon name=\"chevronDown\" size={14} />\n </button>\n </div>\n {open ? (\n <div style={styles.menu} role=\"menu\">\n <button\n type=\"button\"\n style={styles.item}\n onClick={() => void copy()}\n {...hoverProps(styles.item)}\n >\n <span style={{ ...styles.muted, marginTop: 1 }}>\n <Icon name=\"copy\" size={16} />\n </span>\n <span style={styles.itemText}>\n <b style={{ fontWeight: 600 }}>Copy page</b>\n <small style={styles.itemSub}>Copy page as Markdown for LLMs</small>\n </span>\n </button>\n <a\n style={styles.item}\n href={viewUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n onClick={() => {\n setOpen(false);\n }}\n {...hoverProps(styles.item)}\n >\n <span style={{ ...styles.muted, marginTop: 1 }}>\n <Icon name=\"markdown\" size={16} />\n </span>\n <span style={styles.itemText}>\n <b style={{ fontWeight: 600 }}>View as Markdown ↗</b>\n <small style={styles.itemSub}>View this page as plain text</small>\n </span>\n </a>\n </div>\n ) : null}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../../src/ui/clipboard.ts","../../src/ui/icons.tsx","../../src/ui/copy-page.tsx"],"names":["jsxs","Fragment","jsx","useState","useRef","useEffect"],"mappings":"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","file":"copy-page.cjs","sourcesContent":["/**\n * Clipboard copying for the framework's client components — internal.\n *\n * The Clipboard API is the right way to copy, and it is not always available:\n * an insecure origin, an embedded frame with no permission, or an older browser\n * leaves `navigator.clipboard` missing or its promise rejected. Every copy\n * control in the framework therefore needs the same two-step attempt, so the\n * attempt lives here once instead of in each control.\n *\n * @packageDocumentation\n */\n\n/**\n * Copy through a hidden textarea and `document.execCommand`. The fallback, for\n * the contexts the Clipboard API refuses.\n */\nfunction legacyCopy(text: string): boolean {\n try {\n const area = document.createElement('textarea');\n area.value = text;\n area.style.position = 'fixed';\n area.style.opacity = '0';\n document.body.appendChild(area);\n area.select();\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- clipboard fallback\n const ok = document.execCommand('copy');\n document.body.removeChild(area);\n return ok;\n } catch {\n return false;\n }\n}\n\n/**\n * Copy text to the clipboard.\n *\n * Tries the Clipboard API, then the hidden-textarea fallback. It never throws:\n * a caller flashes \"Copied\" on `true` and leaves its label alone on `false`.\n *\n * @param text - the text to copy\n * @returns whether the text reached the clipboard\n */\nexport async function copyToClipboard(text: string): Promise<boolean> {\n // TypeScript types `navigator.clipboard` as always present; a browser on an\n // insecure origin disagrees, so treat it as optional.\n const clip = navigator.clipboard as Clipboard | undefined;\n if (typeof clip?.writeText === 'function') {\n try {\n await clip.writeText(text);\n return true;\n } catch {\n // Denied or unavailable; fall through to the legacy path.\n }\n }\n return legacyCopy(text);\n}\n","import type { ReactNode } from 'react';\n\n/**\n * The framework's inline-SVG glyph set — internal.\n *\n * Five UI modules drew their own icons, and four glyphs were drawn twice: the\n * house on the error screen and in the sidebar icon map, the padlock on the\n * sign-in and the `403` screen, the info circle on both of those, the key in\n * both places again, and the check mark in the copy-page button and the\n * playground. One drawing per glyph now lives here.\n *\n * Nothing is exported from the package: the modules below compose these paths,\n * and `docsIcon` remains the only public icon surface. Zero dependencies — the\n * paths are Lucide-shaped, on the same 24×24 grid, so any glyph works at any\n * size.\n *\n * @packageDocumentation\n */\n\n/**\n * The glyph paths, keyed by name. Each value is the *inside* of an `<svg>`, so\n * a caller decides the size, the stroke, and the class.\n */\nconst GLYPHS = {\n house: (\n <>\n <path d=\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\n <path d=\"M9 22V12h6v10\" />\n </>\n ),\n book: <path d=\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20\" />,\n code: (\n <>\n <path d=\"m16 18 6-6-6-6\" />\n <path d=\"m8 6-6 6 6 6\" />\n </>\n ),\n rocket: (\n <>\n <path d=\"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91 0z\" />\n <path d=\"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z\" />\n <path d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0\" />\n <path d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5\" />\n </>\n ),\n terminal: (\n <>\n <path d=\"m4 17 6-6-6-6\" />\n <path d=\"M12 19h8\" />\n </>\n ),\n wallet: (\n <>\n <path d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\" />\n <path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\" />\n </>\n ),\n key: (\n <>\n <path d=\"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4\" />\n <path d=\"m21 2-9.6 9.6\" />\n <circle cx=\"7.5\" cy=\"15.5\" r=\"5.5\" />\n </>\n ),\n webhook: (\n <>\n <path d=\"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2\" />\n <path d=\"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06\" />\n <path d=\"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8\" />\n </>\n ),\n globe: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\" />\n <path d=\"M2 12h20\" />\n </>\n ),\n mail: (\n <>\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n </>\n ),\n user: (\n <>\n <circle cx=\"12\" cy=\"8\" r=\"4\" />\n <path d=\"M4 21a8 8 0 0 1 16 0\" />\n </>\n ),\n lock: (\n <>\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" />\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\" />\n </>\n ),\n users: (\n <>\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <path d=\"M2 21a7 7 0 0 1 14 0\" />\n <path d=\"M16 3.5a4 4 0 0 1 0 7\" />\n <path d=\"M17.5 14.5a7 7 0 0 1 4.5 6.5\" />\n </>\n ),\n building: (\n <>\n <rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" />\n <path d=\"M9 22v-4h6v4\" />\n <path d=\"M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01\" />\n </>\n ),\n clock: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path d=\"M12 7v5l3 2\" />\n </>\n ),\n /** A clock with a counter-clockwise arrow — a changelog, a history. */\n history: (\n <>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n <path d=\"M12 7v5l4 2\" />\n </>\n ),\n bell: (\n <>\n <path d=\"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9\" />\n <path d=\"M10.3 21a1.94 1.94 0 0 0 3.4 0\" />\n </>\n ),\n /** A paper plane — send, deliver. */\n send: (\n <>\n <path d=\"m22 2-7 20-4-9-9-4Z\" />\n <path d=\"M22 2 11 13\" />\n </>\n ),\n idCard: (\n <>\n <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\" />\n <circle cx=\"9\" cy=\"11\" r=\"2\" />\n <path d=\"M6.17 15a3 3 0 0 1 5.66 0\" />\n <path d=\"M16 10h2M16 14h2\" />\n </>\n ),\n coins: (\n <>\n <circle cx=\"8\" cy=\"8\" r=\"6\" />\n <path d=\"M18.09 10.37A6 6 0 1 1 10.34 18\" />\n <path d=\"M7 6h1v4\" />\n <path d=\"m16.71 13.88.7.71-2.82 2.82\" />\n </>\n ),\n handshake: (\n <>\n <path d=\"m11 17 2 2a1 1 0 1 0 3-3\" />\n <path d=\"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4\" />\n <path d=\"m21 3 1 11h-2\" />\n <path d=\"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3\" />\n <path d=\"M3 4h8\" />\n </>\n ),\n shieldCheck: (\n <>\n <path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1 1 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\" />\n <path d=\"m9 12 2 2 4-4\" />\n </>\n ),\n banknote: (\n <>\n <rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"2\" />\n <path d=\"M6 12h.01M18 12h.01\" />\n </>\n ),\n circlePlay: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m10 8 6 4-6 4z\" />\n </>\n ),\n /** A circled `i` — an informational note, and the generic error state. */\n info: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 8v4M12 16h.01\" strokeLinecap=\"round\" />\n </>\n ),\n /** A warning triangle — a caution, and the `500` screen. */\n alert: (\n <>\n <path d=\"M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <path d=\"M12 9v4M12 17h.01\" strokeLinecap=\"round\" />\n </>\n ),\n /** A light bulb — a tip. */\n bulb: (\n <path d=\"M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.3 1 2.1V17h6v-.2c0-.8.4-1.6 1-2.1A7 7 0 0 0 12 2Z\" />\n ),\n /** A circle with a cross — the `404` screen. */\n crossCircle: (\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m14.31 8-1.31 2.4M9.69 8l4.62 8M14.31 16 9.69 8\" strokeLinecap=\"round\" />\n </>\n ),\n /** Struck-through signal bars — the offline screen. */\n offline: (\n <>\n <path d=\"M5 12.55a11 11 0 0 1 14 0M8.5 16.11a6 6 0 0 1 7 0M12 20h.01\" strokeLinecap=\"round\" />\n <path d=\"m2 2 20 20\" strokeLinecap=\"round\" />\n </>\n ),\n copy: (\n <path d=\"M9 9h9a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2ZM5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\" />\n ),\n check: <path d=\"M20 6 9 17l-5-5\" />,\n chevronDown: <path d=\"m6 9 6 6 6-6\" />,\n /** Stacked chevrons — a value this control switches between. */\n chevronUpDown: <path d=\"m7 15 5 5 5-5M7 9l5-5 5 5\" />,\n /** An open arc — one turn of a loading spinner. */\n spinner: <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" strokeLinecap=\"round\" />,\n markdown: (\n <>\n <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\" />\n <path d=\"M6 15V9l3 3 3-3v6M17 9v4m0 0 2-2m-2 2-2-2\" />\n </>\n ),\n} satisfies Record<string, ReactNode>;\n\n/** A glyph in {@link GLYPHS}. */\nexport type GlyphName = keyof typeof GLYPHS;\n\n/**\n * How one icon is drawn. Every field is optional, and the defaults match the\n * house style: 24×24 grid, current colour, hidden from assistive technology.\n */\nexport interface IconOptions {\n /**\n * React key for the `<svg>`. Set it when a host may place the icon in an\n * array of children — fumadocs renders a sidebar link as `[icon, text]`, and\n * an unkeyed element there raises React's \"unique key\" warning in the\n * consuming site's console.\n */\n readonly key?: string;\n /** Pixel size for `width` and `height`. Omit to let CSS size the icon. */\n readonly size?: number;\n /** Stroke width. Default 2. */\n readonly strokeWidth?: number;\n /** Round the stroke's ends and joins. Default `false`. */\n readonly rounded?: boolean;\n /** Class for the `<svg>`, e.g. a spin animation. */\n readonly className?: string;\n}\n\n/**\n * Draw a stroked glyph.\n *\n * @param name - the glyph\n * @param options - size, stroke, and class\n * @returns the `<svg>` element\n */\nexport function strokeIcon(name: GlyphName, options: IconOptions = {}): ReactNode {\n return (\n <svg\n key={options.key}\n {...(options.className === undefined ? {} : { className: options.className })}\n {...(options.size === undefined ? {} : { width: options.size, height: options.size })}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={options.strokeWidth ?? 2}\n {...(options.rounded ? { strokeLinecap: 'round', strokeLinejoin: 'round' } : {})}\n aria-hidden=\"true\"\n >\n {GLYPHS[name]}\n </svg>\n );\n}\n\n/**\n * Draw a filled glyph. Used by the solid play triangle, where a stroke would\n * read as an outline.\n *\n * @param path - the path data\n * @param options - size and class\n * @returns the `<svg>` element\n */\nexport function filledIcon(path: string, options: IconOptions = {}): ReactNode {\n return (\n <svg\n key={options.key}\n {...(options.className === undefined ? {} : { className: options.className })}\n {...(options.size === undefined ? {} : { width: options.size, height: options.size })}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path d={path} />\n </svg>\n );\n}\n\n/** A solid right-pointing triangle: run this request. */\nexport const PLAY_PATH = 'M8 5v14l11-7z';\n","'use client';\n\nimport { useEffect, useRef, useState, type CSSProperties } from 'react';\n\nimport { copyToClipboard } from './clipboard.js';\nimport { strokeIcon } from './icons.js';\n\n/**\n * The \"Copy page\" control — a split button with a dropdown, matching Mintlify's\n * LLM-friendly page action. The primary button copies the page's Markdown to\n * the clipboard; the dropdown adds a \"View as Markdown\" link.\n *\n * Self-contained: it styles itself with inline styles keyed to the framework's\n * `--color-fd-*` theme variables, so it inherits the site's palette with no\n * extra stylesheet. This is the framework's one client component.\n *\n * @packageDocumentation\n */\n\n/**\n * Props for {@link CopyPageButton}.\n *\n * @public\n */\nexport interface CopyPageButtonProps {\n /** The page rendered as Markdown, copied to the clipboard on click. */\n readonly markdown: string;\n /** URL that serves the same page as plain Markdown (opened in a new tab). */\n readonly viewUrl: string;\n}\n\n/** The four glyphs this control draws, from the framework's shared set. */\ntype IconName = 'copy' | 'check' | 'chevronDown' | 'markdown';\n\nfunction Icon({ name, size = 15 }: { name: IconName; size?: number }) {\n // The check mark is drawn heavier so it reads at 15px.\n return strokeIcon(name, { size, strokeWidth: name === 'check' ? 2.5 : 1.9, rounded: true });\n}\n\nconst styles = {\n root: { position: 'relative', flexShrink: 0, fontSize: 13, lineHeight: 1.2 } as CSSProperties,\n split: {\n display: 'inline-flex',\n alignItems: 'stretch',\n border: '1px solid var(--color-fd-border)',\n borderRadius: 8,\n background: 'var(--color-fd-card)',\n overflow: 'hidden',\n } as CSSProperties,\n main: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 8,\n padding: '9px 15px',\n background: 'transparent',\n color: 'var(--color-fd-foreground)',\n font: 'inherit',\n fontWeight: 500,\n cursor: 'pointer',\n border: 'none',\n } as CSSProperties,\n caret: {\n display: 'inline-flex',\n alignItems: 'center',\n padding: '9px 11px',\n background: 'transparent',\n color: 'var(--color-fd-muted-foreground)',\n borderLeft: '1px solid var(--color-fd-border)',\n cursor: 'pointer',\n } as CSSProperties,\n menu: {\n position: 'absolute',\n top: 'calc(100% + 6px)',\n right: 0,\n zIndex: 40,\n width: 268,\n padding: 6,\n border: '1px solid var(--color-fd-border)',\n borderRadius: 12,\n background: 'var(--color-fd-popover, var(--color-fd-card))',\n boxShadow: '0 4px 6px -2px rgba(0,0,0,0.05), 0 12px 28px -6px rgba(0,0,0,0.18)',\n } as CSSProperties,\n item: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: 10,\n width: '100%',\n padding: '9px 10px',\n borderRadius: 8,\n background: 'transparent',\n border: 'none',\n textAlign: 'left',\n textDecoration: 'none',\n color: 'var(--color-fd-foreground)',\n font: 'inherit',\n cursor: 'pointer',\n } as CSSProperties,\n muted: { color: 'var(--color-fd-muted-foreground)' } as CSSProperties,\n itemText: { display: 'flex', flexDirection: 'column', gap: 2, minWidth: 0 } as CSSProperties,\n itemSub: { fontSize: 12, color: 'var(--color-fd-muted-foreground)' } as CSSProperties,\n};\n\nconst HOVER_BG = 'color-mix(in oklab, var(--color-fd-primary) 9%, transparent)';\n\nfunction hoverProps(base: CSSProperties) {\n return {\n onMouseEnter: (event: { currentTarget: HTMLElement }) => {\n event.currentTarget.style.background = HOVER_BG;\n },\n onMouseLeave: (event: { currentTarget: HTMLElement }) => {\n event.currentTarget.style.background = (base.background as string) ?? 'transparent';\n },\n };\n}\n\n/**\n * The split \"Copy page\" button. Renders nothing structural of its own beyond a\n * relatively-positioned wrapper, so a site drops it beside the page title.\n *\n * @public\n */\nexport function CopyPageButton({ markdown, viewUrl }: CopyPageButtonProps) {\n const [open, setOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!open) {\n return;\n }\n const onPointerDown = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener('mousedown', onPointerDown);\n return () => {\n document.removeEventListener('mousedown', onPointerDown);\n };\n }, [open]);\n\n const copy = async () => {\n // A refused clipboard leaves the label unchanged: no error, no false claim.\n if (await copyToClipboard(markdown)) {\n setCopied(true);\n setTimeout(() => {\n setCopied(false);\n }, 1600);\n }\n setOpen(false);\n };\n\n return (\n <div ref={ref} style={styles.root}>\n <div style={styles.split}>\n <button\n type=\"button\"\n style={styles.main}\n onClick={() => void copy()}\n {...hoverProps(styles.main)}\n >\n <span style={styles.muted}>\n <Icon name={copied ? 'check' : 'copy'} />\n </span>\n {copied ? 'Copied' : 'Copy page'}\n </button>\n <button\n type=\"button\"\n style={styles.caret}\n aria-label=\"More options\"\n aria-expanded={open}\n onClick={() => {\n setOpen((value) => !value);\n }}\n {...hoverProps(styles.caret)}\n >\n <Icon name=\"chevronDown\" size={14} />\n </button>\n </div>\n {open ? (\n <div style={styles.menu} role=\"menu\">\n <button\n type=\"button\"\n style={styles.item}\n onClick={() => void copy()}\n {...hoverProps(styles.item)}\n >\n <span style={{ ...styles.muted, marginTop: 1 }}>\n <Icon name=\"copy\" size={16} />\n </span>\n <span style={styles.itemText}>\n <b style={{ fontWeight: 600 }}>Copy page</b>\n <small style={styles.itemSub}>Copy page as Markdown for LLMs</small>\n </span>\n </button>\n <a\n style={styles.item}\n href={viewUrl}\n target=\"_blank\"\n rel=\"noreferrer\"\n onClick={() => {\n setOpen(false);\n }}\n {...hoverProps(styles.item)}\n >\n <span style={{ ...styles.muted, marginTop: 1 }}>\n <Icon name=\"markdown\" size={16} />\n </span>\n <span style={styles.itemText}>\n <b style={{ fontWeight: 600 }}>View as Markdown ↗</b>\n <small style={styles.itemSub}>View this page as plain text</small>\n </span>\n </a>\n </div>\n ) : null}\n </div>\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { copyToClipboard } from '../chunk-JCYR6RPE.js';
3
- import { strokeIcon } from '../chunk-6H6OB7YP.js';
3
+ import { strokeIcon } from '../chunk-FSB3DLMU.js';
4
4
  import { useState, useRef, useEffect } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
package/dist/ui.cjs CHANGED
@@ -132,6 +132,53 @@ var GLYPHS = {
132
132
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "9" }),
133
133
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 7v5l3 2" })
134
134
  ] }),
135
+ /** A clock with a counter-clockwise arrow — a changelog, a history. */
136
+ history: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
137
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }),
138
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 3v5h5" }),
139
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 7v5l4 2" })
140
+ ] }),
141
+ bell: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
142
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" }),
143
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.3 21a1.94 1.94 0 0 0 3.4 0" })
144
+ ] }),
145
+ /** A paper plane — send, deliver. */
146
+ send: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
147
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m22 2-7 20-4-9-9-4Z" }),
148
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22 2 11 13" })
149
+ ] }),
150
+ idCard: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
151
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "5", width: "20", height: "14", rx: "2" }),
152
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "9", cy: "11", r: "2" }),
153
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6.17 15a3 3 0 0 1 5.66 0" }),
154
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M16 10h2M16 14h2" })
155
+ ] }),
156
+ coins: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
157
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "8", cy: "8", r: "6" }),
158
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18.09 10.37A6 6 0 1 1 10.34 18" }),
159
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M7 6h1v4" }),
160
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m16.71 13.88.7.71-2.82 2.82" })
161
+ ] }),
162
+ handshake: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
163
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m11 17 2 2a1 1 0 1 0 3-3" }),
164
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4" }),
165
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m21 3 1 11h-2" }),
166
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3" }),
167
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M3 4h8" })
168
+ ] }),
169
+ shieldCheck: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
170
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1 1 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" }),
171
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m9 12 2 2 4-4" })
172
+ ] }),
173
+ banknote: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
174
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: "2", y: "6", width: "20", height: "12", rx: "2" }),
175
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "2" }),
176
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 12h.01M18 12h.01" })
177
+ ] }),
178
+ circlePlay: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
179
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
180
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m10 8 6 4-6 4z" })
181
+ ] }),
135
182
  /** A circled `i` — an informational note, and the generic error state. */
136
183
  info: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
137
184
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
@@ -397,21 +444,86 @@ function Info({ children }) {
397
444
  function Tip({ children }) {
398
445
  return /* @__PURE__ */ jsxRuntime.jsx(Callout, { tone: "tip", children });
399
446
  }
447
+
448
+ // src/ui/docs-icons.tsx
449
+ var ICONS = {
450
+ house: "house",
451
+ book: "book",
452
+ code: "code",
453
+ rocket: "rocket",
454
+ terminal: "terminal",
455
+ wallet: "wallet",
456
+ key: "key",
457
+ webhook: "webhook",
458
+ globe: "globe",
459
+ user: "user",
460
+ users: "users",
461
+ building: "building",
462
+ clock: "clock",
463
+ history: "history",
464
+ bell: "bell",
465
+ send: "send",
466
+ "id-card": "idCard",
467
+ coins: "coins",
468
+ handshake: "handshake",
469
+ "shield-check": "shieldCheck",
470
+ banknote: "banknote",
471
+ "circle-play": "circlePlay",
472
+ mail: "mail"
473
+ };
474
+ var ALIASES = {
475
+ home: "house",
476
+ "book-open": "book",
477
+ api: "code",
478
+ reference: "code",
479
+ terminal: "terminal",
480
+ bank: "wallet",
481
+ "credit-card": "wallet",
482
+ auth: "key",
483
+ lock: "key",
484
+ world: "globe",
485
+ people: "users",
486
+ team: "users",
487
+ "building-2": "building",
488
+ office: "building",
489
+ company: "building",
490
+ time: "clock",
491
+ "clock-rotate-left": "history",
492
+ "paper-plane": "send",
493
+ "address-card": "id-card",
494
+ shield: "shield-check",
495
+ "money-check-dollar-pen": "banknote",
496
+ "money-bill": "banknote",
497
+ "money-bill-transfer": "banknote",
498
+ play: "circle-play",
499
+ envelope: "mail"
500
+ };
501
+ function docsIcon(name) {
502
+ const glyph = name === void 0 ? void 0 : glyphFor(name);
503
+ return glyph === void 0 ? void 0 : strokeIcon(glyph, { size: 16, rounded: true, key: `docs-icon-${glyph}` });
504
+ }
505
+ function glyphFor(name) {
506
+ const key = name.toLowerCase();
507
+ return ICONS[key] ?? ICONS[ALIASES[key] ?? ""];
508
+ }
400
509
  function Card({
401
510
  title,
511
+ icon: icon2,
402
512
  href,
403
513
  children
404
514
  }) {
515
+ const glyph = icon2 === void 0 ? void 0 : glyphFor(icon2);
405
516
  const style = {
406
517
  display: "block",
407
518
  border: "1px solid var(--color-fd-border)",
408
519
  borderRadius: 12,
409
- padding: "16px 18px",
520
+ padding: "22px 24px",
410
521
  textDecoration: "none",
411
522
  color: "inherit",
412
523
  background: "var(--color-fd-card)"
413
524
  };
414
525
  const body = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
526
+ glyph !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { color: "var(--color-fd-primary)", marginBottom: 10 }, children: strokeIcon(glyph, { size: 20, rounded: true }) }),
415
527
  title !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { fontWeight: 700, fontSize: 15, marginBottom: 4 }, children: title }),
416
528
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { color: "var(--color-fd-muted-foreground)", fontSize: 14 }, children })
417
529
  ] });
@@ -424,7 +536,7 @@ function CardGroup({ cols = 2, children }) {
424
536
  const style = {
425
537
  display: "grid",
426
538
  gridTemplateColumns: `repeat(${String(cols)}, minmax(0, 1fr))`,
427
- gap: 12,
539
+ gap: 16,
428
540
  margin: "16px 0"
429
541
  };
430
542
  return /* @__PURE__ */ jsxRuntime.jsx("div", { style, children });
@@ -498,50 +610,6 @@ function Frame({ caption, children }) {
498
610
  ] });
499
611
  }
500
612
 
501
- // src/ui/docs-icons.tsx
502
- var ICONS = {
503
- house: "house",
504
- book: "book",
505
- code: "code",
506
- rocket: "rocket",
507
- terminal: "terminal",
508
- wallet: "wallet",
509
- key: "key",
510
- webhook: "webhook",
511
- globe: "globe",
512
- user: "user",
513
- users: "users",
514
- building: "building",
515
- clock: "clock"
516
- };
517
- var ALIASES = {
518
- home: "house",
519
- "book-open": "book",
520
- api: "code",
521
- reference: "code",
522
- terminal: "terminal",
523
- bank: "wallet",
524
- "credit-card": "wallet",
525
- auth: "key",
526
- lock: "key",
527
- world: "globe",
528
- people: "users",
529
- team: "users",
530
- "building-2": "building",
531
- office: "building",
532
- company: "building",
533
- history: "clock",
534
- time: "clock"
535
- };
536
- function docsIcon(name) {
537
- if (!name) {
538
- return void 0;
539
- }
540
- const key = name.toLowerCase();
541
- const glyph = ICONS[key] ?? ICONS[ALIASES[key] ?? ""];
542
- return glyph === void 0 ? void 0 : strokeIcon(glyph, { size: 16, rounded: true, key: `docs-icon-${glyph}` });
543
- }
544
-
545
613
  // src/ui/nav-links.ts
546
614
  function docsNavLinks(links, options = {}) {
547
615
  const baseUrl = options.baseUrl ?? "/docs";