@docubook/mdx-content 3.4.1 → 3.4.3

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 (213) hide show
  1. package/README.md +4 -3
  2. package/dist/chunk-PSDC53TU.js +1056 -0
  3. package/dist/chunk-PSDC53TU.js.map +1 -0
  4. package/dist/client.d.ts +91 -9
  5. package/dist/client.js +1191 -8
  6. package/dist/client.js.map +1 -1
  7. package/dist/index.d.ts +91 -20
  8. package/dist/index.js +1245 -19
  9. package/dist/index.js.map +1 -1
  10. package/dist/server-BObcTM97.d.ts +100 -0
  11. package/dist/server.d.ts +3 -11
  12. package/dist/server.js +40 -10
  13. package/dist/server.js.map +1 -1
  14. package/package.json +5 -14
  15. package/dist/__test__/AccordionMdx.test.d.ts +0 -2
  16. package/dist/__test__/AccordionMdx.test.d.ts.map +0 -1
  17. package/dist/__test__/AccordionMdx.test.js +0 -21
  18. package/dist/__test__/AccordionMdx.test.js.map +0 -1
  19. package/dist/__test__/AccordionsMdx.test.d.ts +0 -2
  20. package/dist/__test__/AccordionsMdx.test.d.ts.map +0 -1
  21. package/dist/__test__/AccordionsMdx.test.js +0 -22
  22. package/dist/__test__/AccordionsMdx.test.js.map +0 -1
  23. package/dist/__test__/ButtonMdx.test.d.ts +0 -2
  24. package/dist/__test__/ButtonMdx.test.d.ts.map +0 -1
  25. package/dist/__test__/ButtonMdx.test.js +0 -20
  26. package/dist/__test__/ButtonMdx.test.js.map +0 -1
  27. package/dist/__test__/CardMdx.test.d.ts +0 -2
  28. package/dist/__test__/CardMdx.test.d.ts.map +0 -1
  29. package/dist/__test__/CardMdx.test.js +0 -29
  30. package/dist/__test__/CardMdx.test.js.map +0 -1
  31. package/dist/__test__/CardsMdx.test.d.ts +0 -2
  32. package/dist/__test__/CardsMdx.test.d.ts.map +0 -1
  33. package/dist/__test__/CardsMdx.test.js +0 -33
  34. package/dist/__test__/CardsMdx.test.js.map +0 -1
  35. package/dist/__test__/CodeBlockMdx.test.d.ts +0 -2
  36. package/dist/__test__/CodeBlockMdx.test.d.ts.map +0 -1
  37. package/dist/__test__/CodeBlockMdx.test.js +0 -48
  38. package/dist/__test__/CodeBlockMdx.test.js.map +0 -1
  39. package/dist/__test__/FileTreeMdx.test.d.ts +0 -2
  40. package/dist/__test__/FileTreeMdx.test.d.ts.map +0 -1
  41. package/dist/__test__/FileTreeMdx.test.js +0 -26
  42. package/dist/__test__/FileTreeMdx.test.js.map +0 -1
  43. package/dist/__test__/ImageMdx.test.d.ts +0 -2
  44. package/dist/__test__/ImageMdx.test.d.ts.map +0 -1
  45. package/dist/__test__/ImageMdx.test.js +0 -32
  46. package/dist/__test__/ImageMdx.test.js.map +0 -1
  47. package/dist/__test__/KbdMdx.test.d.ts +0 -2
  48. package/dist/__test__/KbdMdx.test.d.ts.map +0 -1
  49. package/dist/__test__/KbdMdx.test.js +0 -27
  50. package/dist/__test__/KbdMdx.test.js.map +0 -1
  51. package/dist/__test__/LinkMdx.test.d.ts +0 -2
  52. package/dist/__test__/LinkMdx.test.d.ts.map +0 -1
  53. package/dist/__test__/LinkMdx.test.js +0 -29
  54. package/dist/__test__/LinkMdx.test.js.map +0 -1
  55. package/dist/__test__/MermaidMdx.test.d.ts +0 -2
  56. package/dist/__test__/MermaidMdx.test.d.ts.map +0 -1
  57. package/dist/__test__/MermaidMdx.test.js +0 -287
  58. package/dist/__test__/MermaidMdx.test.js.map +0 -1
  59. package/dist/__test__/NoteMdx.test.d.ts +0 -2
  60. package/dist/__test__/NoteMdx.test.d.ts.map +0 -1
  61. package/dist/__test__/NoteMdx.test.js +0 -39
  62. package/dist/__test__/NoteMdx.test.js.map +0 -1
  63. package/dist/__test__/ReleaseMdx.test.d.ts +0 -2
  64. package/dist/__test__/ReleaseMdx.test.d.ts.map +0 -1
  65. package/dist/__test__/ReleaseMdx.test.js +0 -39
  66. package/dist/__test__/ReleaseMdx.test.js.map +0 -1
  67. package/dist/__test__/StepperMdx.test.d.ts +0 -2
  68. package/dist/__test__/StepperMdx.test.d.ts.map +0 -1
  69. package/dist/__test__/StepperMdx.test.js +0 -25
  70. package/dist/__test__/StepperMdx.test.js.map +0 -1
  71. package/dist/__test__/TableMdx.test.d.ts +0 -2
  72. package/dist/__test__/TableMdx.test.d.ts.map +0 -1
  73. package/dist/__test__/TableMdx.test.js +0 -25
  74. package/dist/__test__/TableMdx.test.js.map +0 -1
  75. package/dist/__test__/TabsMdx.test.d.ts +0 -2
  76. package/dist/__test__/TabsMdx.test.d.ts.map +0 -1
  77. package/dist/__test__/TabsMdx.test.js +0 -30
  78. package/dist/__test__/TabsMdx.test.js.map +0 -1
  79. package/dist/__test__/TooltipMdx.test.d.ts +0 -2
  80. package/dist/__test__/TooltipMdx.test.d.ts.map +0 -1
  81. package/dist/__test__/TooltipMdx.test.js +0 -23
  82. package/dist/__test__/TooltipMdx.test.js.map +0 -1
  83. package/dist/__test__/YoutubeMdx.test.d.ts +0 -2
  84. package/dist/__test__/YoutubeMdx.test.d.ts.map +0 -1
  85. package/dist/__test__/YoutubeMdx.test.js +0 -25
  86. package/dist/__test__/YoutubeMdx.test.js.map +0 -1
  87. package/dist/__test__/utils/ExpandableCode.test.d.ts +0 -2
  88. package/dist/__test__/utils/ExpandableCode.test.d.ts.map +0 -1
  89. package/dist/__test__/utils/ExpandableCode.test.js +0 -62
  90. package/dist/__test__/utils/ExpandableCode.test.js.map +0 -1
  91. package/dist/__test__/utils/Icon.test.d.ts +0 -2
  92. package/dist/__test__/utils/Icon.test.d.ts.map +0 -1
  93. package/dist/__test__/utils/Icon.test.js +0 -29
  94. package/dist/__test__/utils/Icon.test.js.map +0 -1
  95. package/dist/adapters/next/ButtonMdx.d.ts +0 -4
  96. package/dist/adapters/next/ButtonMdx.d.ts.map +0 -1
  97. package/dist/adapters/next/ButtonMdx.js +0 -8
  98. package/dist/adapters/next/ButtonMdx.js.map +0 -1
  99. package/dist/adapters/next/CardMdx.d.ts +0 -4
  100. package/dist/adapters/next/CardMdx.d.ts.map +0 -1
  101. package/dist/adapters/next/CardMdx.js +0 -8
  102. package/dist/adapters/next/CardMdx.js.map +0 -1
  103. package/dist/adapters/next/ImageMdx.d.ts +0 -8
  104. package/dist/adapters/next/ImageMdx.d.ts.map +0 -1
  105. package/dist/adapters/next/ImageMdx.js +0 -8
  106. package/dist/adapters/next/ImageMdx.js.map +0 -1
  107. package/dist/adapters/next/LinkMdx.d.ts +0 -3
  108. package/dist/adapters/next/LinkMdx.d.ts.map +0 -1
  109. package/dist/adapters/next/LinkMdx.js +0 -11
  110. package/dist/adapters/next/LinkMdx.js.map +0 -1
  111. package/dist/adapters/next/index.d.ts +0 -5
  112. package/dist/adapters/next/index.d.ts.map +0 -1
  113. package/dist/adapters/next/index.js +0 -5
  114. package/dist/adapters/next/index.js.map +0 -1
  115. package/dist/client.d.ts.map +0 -1
  116. package/dist/components/AccordionMdx.d.ts +0 -11
  117. package/dist/components/AccordionMdx.d.ts.map +0 -1
  118. package/dist/components/AccordionMdx.js +0 -64
  119. package/dist/components/AccordionMdx.js.map +0 -1
  120. package/dist/components/AccordionsMdx.d.ts +0 -7
  121. package/dist/components/AccordionsMdx.d.ts.map +0 -1
  122. package/dist/components/AccordionsMdx.js +0 -14
  123. package/dist/components/AccordionsMdx.js.map +0 -1
  124. package/dist/components/ButtonMdx.d.ts +0 -17
  125. package/dist/components/ButtonMdx.d.ts.map +0 -1
  126. package/dist/components/ButtonMdx.js +0 -57
  127. package/dist/components/ButtonMdx.js.map +0 -1
  128. package/dist/components/CardMdx.d.ts +0 -17
  129. package/dist/components/CardMdx.d.ts.map +0 -1
  130. package/dist/components/CardMdx.js +0 -52
  131. package/dist/components/CardMdx.js.map +0 -1
  132. package/dist/components/CardsMdx.d.ts +0 -9
  133. package/dist/components/CardsMdx.d.ts.map +0 -1
  134. package/dist/components/CardsMdx.js +0 -9
  135. package/dist/components/CardsMdx.js.map +0 -1
  136. package/dist/components/CodeBlockMdx.d.ts +0 -11
  137. package/dist/components/CodeBlockMdx.d.ts.map +0 -1
  138. package/dist/components/CodeBlockMdx.js +0 -135
  139. package/dist/components/CodeBlockMdx.js.map +0 -1
  140. package/dist/components/FileTreeMdx.d.ts +0 -19
  141. package/dist/components/FileTreeMdx.d.ts.map +0 -1
  142. package/dist/components/FileTreeMdx.js +0 -99
  143. package/dist/components/FileTreeMdx.js.map +0 -1
  144. package/dist/components/ImageMdx.d.ts +0 -8
  145. package/dist/components/ImageMdx.d.ts.map +0 -1
  146. package/dist/components/ImageMdx.js +0 -111
  147. package/dist/components/ImageMdx.js.map +0 -1
  148. package/dist/components/KbdMdx.d.ts +0 -9
  149. package/dist/components/KbdMdx.d.ts.map +0 -1
  150. package/dist/components/KbdMdx.js +0 -74
  151. package/dist/components/KbdMdx.js.map +0 -1
  152. package/dist/components/LinkMdx.d.ts +0 -4
  153. package/dist/components/LinkMdx.d.ts.map +0 -1
  154. package/dist/components/LinkMdx.js +0 -10
  155. package/dist/components/LinkMdx.js.map +0 -1
  156. package/dist/components/MermaidMdx.d.ts +0 -13
  157. package/dist/components/MermaidMdx.d.ts.map +0 -1
  158. package/dist/components/MermaidMdx.js +0 -241
  159. package/dist/components/MermaidMdx.js.map +0 -1
  160. package/dist/components/NoteMdx.d.ts +0 -13
  161. package/dist/components/NoteMdx.d.ts.map +0 -1
  162. package/dist/components/NoteMdx.js +0 -79
  163. package/dist/components/NoteMdx.js.map +0 -1
  164. package/dist/components/ReleaseMdx.d.ts +0 -16
  165. package/dist/components/ReleaseMdx.d.ts.map +0 -1
  166. package/dist/components/ReleaseMdx.js +0 -44
  167. package/dist/components/ReleaseMdx.js.map +0 -1
  168. package/dist/components/StepperMdx.d.ts +0 -17
  169. package/dist/components/StepperMdx.d.ts.map +0 -1
  170. package/dist/components/StepperMdx.js +0 -74
  171. package/dist/components/StepperMdx.js.map +0 -1
  172. package/dist/components/TableMdx.d.ts +0 -9
  173. package/dist/components/TableMdx.d.ts.map +0 -1
  174. package/dist/components/TableMdx.js +0 -56
  175. package/dist/components/TableMdx.js.map +0 -1
  176. package/dist/components/TabsMdx.d.ts +0 -13
  177. package/dist/components/TabsMdx.d.ts.map +0 -1
  178. package/dist/components/TabsMdx.js +0 -67
  179. package/dist/components/TabsMdx.js.map +0 -1
  180. package/dist/components/TooltipMdx.d.ts +0 -10
  181. package/dist/components/TooltipMdx.d.ts.map +0 -1
  182. package/dist/components/TooltipMdx.js +0 -36
  183. package/dist/components/TooltipMdx.js.map +0 -1
  184. package/dist/components/YoutubeMdx.d.ts +0 -7
  185. package/dist/components/YoutubeMdx.d.ts.map +0 -1
  186. package/dist/components/YoutubeMdx.js +0 -24
  187. package/dist/components/YoutubeMdx.js.map +0 -1
  188. package/dist/components/index.d.ts +0 -19
  189. package/dist/components/index.d.ts.map +0 -1
  190. package/dist/components/index.js +0 -19
  191. package/dist/components/index.js.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/registry/index.d.ts +0 -4
  194. package/dist/registry/index.d.ts.map +0 -1
  195. package/dist/registry/index.js +0 -38
  196. package/dist/registry/index.js.map +0 -1
  197. package/dist/server.d.ts.map +0 -1
  198. package/dist/utils/AccordionGroupContext.d.ts +0 -8
  199. package/dist/utils/AccordionGroupContext.d.ts.map +0 -1
  200. package/dist/utils/AccordionGroupContext.js +0 -4
  201. package/dist/utils/AccordionGroupContext.js.map +0 -1
  202. package/dist/utils/CopyButton.d.ts +0 -6
  203. package/dist/utils/CopyButton.d.ts.map +0 -1
  204. package/dist/utils/CopyButton.js +0 -39
  205. package/dist/utils/CopyButton.js.map +0 -1
  206. package/dist/utils/ExpandableCode.d.ts +0 -11
  207. package/dist/utils/ExpandableCode.d.ts.map +0 -1
  208. package/dist/utils/ExpandableCode.js +0 -78
  209. package/dist/utils/ExpandableCode.js.map +0 -1
  210. package/dist/utils/Icon.d.ts +0 -6
  211. package/dist/utils/Icon.d.ts.map +0 -1
  212. package/dist/utils/Icon.js +0 -12
  213. package/dist/utils/Icon.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/LinkMdx.tsx","../src/utils/Icon.tsx","../src/components/ButtonMdx.tsx","../src/components/CardsMdx.tsx","../src/components/CodeBlockMdx.tsx","../src/utils/CopyButton.tsx","../src/utils/ExpandableCode.tsx","../src/components/KbdMdx.tsx","../src/components/NoteMdx.tsx","../src/components/ReleaseMdx.tsx","../src/components/StepperMdx.tsx","../src/components/TableMdx.tsx","../src/components/YoutubeMdx.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\n\nexport type LinkMdxProps = ComponentProps<\"a\">;\n\nexport function LinkMdx({ href, rel, target, ...props }: LinkMdxProps) {\n if (!href) return null;\n\n const external = /^https?:\\/\\//.test(href);\n const computedTarget = target ?? (external ? \"_blank\" : undefined);\n const computedRel = rel ?? (external ? \"noopener noreferrer\" : undefined);\n\n return <a href={href} target={computedTarget} rel={computedRel} {...props} />;\n}\n","import * as LucideIcons from \"lucide-react\";\nimport type { LucideProps } from \"lucide-react\";\nimport type { ReactNode, ComponentType } from \"react\";\n\nexport type IconName = keyof typeof LucideIcons;\nexport type IconProp = IconName | string;\n\nconst DEFAULT_ICON_SIZE = 20;\n\nexport function resolveLucideIcon(icon?: IconProp): ReactNode {\n const normalized = typeof icon === \"string\" ? icon.trim() : icon;\n if (!normalized || !Object.hasOwn(LucideIcons, normalized)) {\n return undefined;\n }\n\n const IconComponent = LucideIcons[normalized as IconName] as ComponentType<LucideProps>;\n\n return <IconComponent size={DEFAULT_ICON_SIZE} />;\n}\n","import type { ButtonHTMLAttributes, ComponentType, CSSProperties } from \"react\";\nimport { LinkMdx } from \"./LinkMdx\";\nimport { IconProp, resolveLucideIcon } from \"../utils/Icon\";\nimport type { LinkMdxProps } from \"./LinkMdx\";\n\ntype LinkRenderer = ComponentType<LinkMdxProps>;\n\nexport type ButtonMdxProps = ButtonHTMLAttributes<HTMLButtonElement> & {\n href?: string;\n variant?: \"primary\" | \"secondary\" | \"ghost\";\n size?: \"sm\" | \"md\" | \"lg\";\n icon?: IconProp;\n text?: string;\n target?: string;\n /** Internal adapter hook: inject framework link component without duplicating styles. */\n __LinkComponent?: LinkRenderer;\n};\n\nconst baseStyle: CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: \"0.375rem\",\n borderRadius: 10,\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n background: \"hsl(var(--card, 0 0% 100%))\",\n color: \"hsl(var(--foreground, 220 30% 15%))\",\n textDecoration: \"none\",\n fontWeight: 600,\n fontSize: \"0.9rem\",\n lineHeight: 1,\n padding: \"0.65rem 0.85rem\",\n cursor: \"pointer\",\n};\n\nconst variantStyles: Record<NonNullable<ButtonMdxProps[\"variant\"]>, CSSProperties> = {\n primary: {\n background: \"hsl(var(--accent, 200 100% 40%))\",\n borderColor: \"hsl(var(--accent, 200 100% 40%))\",\n color: \"#ffffff\",\n },\n secondary: {\n background: \"hsl(var(--muted, 210 20% 92%))\",\n color: \"hsl(var(--foreground, 220 30% 15%))\",\n },\n ghost: {\n background: \"transparent\",\n borderColor: \"transparent\",\n color: \"hsl(var(--foreground, 220 30% 15%))\",\n },\n};\n\nconst sizeStyles: Record<NonNullable<ButtonMdxProps[\"size\"]>, CSSProperties> = {\n sm: { padding: \"0.45rem 0.6rem\", fontSize: \"0.8rem\" },\n md: { padding: \"0.65rem 0.85rem\", fontSize: \"0.9rem\" },\n lg: { padding: \"0.8rem 1rem\", fontSize: \"0.96rem\" },\n};\n\nexport function ButtonMdx({\n href,\n variant,\n size = \"md\",\n icon,\n text,\n style,\n children,\n target,\n __LinkComponent,\n ...props\n}: ButtonMdxProps) {\n const resolvedVariant = variant ?? \"secondary\";\n const mergedStyle = {\n ...baseStyle,\n ...variantStyles[resolvedVariant],\n ...sizeStyles[size],\n ...style,\n };\n const resolvedIcon = resolveLucideIcon(icon);\n const LinkComponent = __LinkComponent ?? LinkMdx;\n const content = (\n <>\n {resolvedIcon ? (\n <span\n aria-hidden=\"true\"\n style={{ display: \"inline-flex\", alignItems: \"center\", justifyContent: \"center\" }}\n >\n {resolvedIcon}\n </span>\n ) : null}\n {text ?? children}\n </>\n );\n\n if (href) {\n return (\n <LinkComponent href={href} target={target} style={mergedStyle}>\n {content}\n </LinkComponent>\n );\n }\n\n return (\n <button type={props.type ?? \"button\"} {...props} style={mergedStyle}>\n {content}\n </button>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\n\ntype CardsMdxProps = {\n cols?: number;\n children?: ReactNode;\n style?: CSSProperties;\n};\n\nexport function CardsMdx({ cols = 2, children, style }: CardsMdxProps) {\n const columnCount = Math.max(1, Math.min(4, cols));\n\n return (\n <div\n className=\"docubook-card-group\"\n style={\n {\n \"--docubook-card-group-template\": `repeat(${columnCount}, minmax(240px, 1fr))`,\n ...style,\n } as CSSProperties\n }\n >\n {children}\n </div>\n );\n}\n","import { isValidElement, type ComponentProps, type ReactNode } from \"react\";\nimport {\n SiJavascript,\n SiTypescript,\n SiReact,\n SiPython,\n SiGo,\n SiPhp,\n SiRuby,\n SiSwift,\n SiKotlin,\n SiHtml5,\n SiCss,\n SiSass,\n SiPostgresql,\n SiGraphql,\n SiYaml,\n SiToml,\n SiDocker,\n SiNginx,\n SiGit,\n SiGnubash,\n SiMarkdown,\n} from \"react-icons/si\";\nimport { FaJava, FaCode, FaRegFileAlt } from \"react-icons/fa\";\nimport { TbJson } from \"react-icons/tb\";\nimport { CopyButton } from \"../utils/CopyButton\";\nimport { ExpandableCode } from \"../utils/ExpandableCode\";\n\ntype CodeBlockProps = ComponentProps<\"pre\"> & {\n raw?: string;\n \"data-title\"?: string;\n \"data-language\"?: string;\n \"data-expandable\"?: string;\n \"data-expandable-lines\"?: string;\n};\n\nfunction getLanguage(className: string = \"\") {\n const match = className.match(/language-(\\w+)/);\n return match ? match[1] : \"text\";\n}\n\nfunction resolveLanguage(\n preClassName: string | undefined,\n dataLanguage: string | undefined,\n children: ReactNode\n) {\n if (typeof dataLanguage === \"string\" && dataLanguage.trim().length > 0) {\n return dataLanguage.trim().toLowerCase();\n }\n\n const languageFromPre = getLanguage(preClassName ?? \"\");\n if (languageFromPre !== \"text\") return languageFromPre;\n\n if (isValidElement(children)) {\n const childProps = children.props as { className?: string };\n if (typeof childProps.className === \"string\") {\n const languageFromCode = getLanguage(childProps.className);\n if (languageFromCode !== \"text\") return languageFromCode;\n }\n }\n\n return \"text\";\n}\n\nfunction getLanguageIcon(language: string) {\n const normalized = language.toLowerCase();\n const iconProps = { size: 14 };\n\n const map: Record<string, ReactNode> = {\n gitignore: <SiGit {...iconProps} />,\n docker: <SiDocker {...iconProps} />,\n dockerfile: <SiDocker {...iconProps} />,\n nginx: <SiNginx {...iconProps} />,\n sql: <SiPostgresql {...iconProps} />,\n graphql: <SiGraphql {...iconProps} />,\n yaml: <SiYaml {...iconProps} />,\n yml: <SiYaml {...iconProps} />,\n toml: <SiToml {...iconProps} />,\n json: <TbJson {...iconProps} />,\n md: <SiMarkdown {...iconProps} />,\n markdown: <SiMarkdown {...iconProps} />,\n bash: <SiGnubash {...iconProps} />,\n sh: <SiGnubash {...iconProps} />,\n shell: <SiGnubash {...iconProps} />,\n swift: <SiSwift {...iconProps} />,\n kotlin: <SiKotlin {...iconProps} />,\n kt: <SiKotlin {...iconProps} />,\n kts: <SiKotlin {...iconProps} />,\n rb: <SiRuby {...iconProps} />,\n ruby: <SiRuby {...iconProps} />,\n php: <SiPhp {...iconProps} />,\n go: <SiGo {...iconProps} />,\n py: <SiPython {...iconProps} />,\n python: <SiPython {...iconProps} />,\n java: <FaJava {...iconProps} />,\n tsx: <SiReact {...iconProps} />,\n typescript: <SiTypescript {...iconProps} />,\n ts: <SiTypescript {...iconProps} />,\n jsx: <SiReact {...iconProps} />,\n js: <SiJavascript {...iconProps} />,\n javascript: <SiJavascript {...iconProps} />,\n html: <SiHtml5 {...iconProps} />,\n css: <SiCss {...iconProps} />,\n scss: <SiSass {...iconProps} />,\n sass: <SiSass {...iconProps} />,\n text: <FaRegFileAlt {...iconProps} />,\n plaintext: <FaRegFileAlt {...iconProps} />,\n };\n\n return map[normalized] || <FaCode {...iconProps} />;\n}\n\nfunction countCodeLines(raw: string) {\n let normalized = raw.replace(/\\r\\n/g, \"\\n\");\n if (normalized.startsWith(\"\\n\")) normalized = normalized.slice(1);\n if (normalized.endsWith(\"\\n\")) normalized = normalized.slice(0, -1);\n\n if (normalized.length === 0) return 0;\n return normalized.split(\"\\n\").length;\n}\n\nexport function CodeBlock({ children, raw, ...rest }: CodeBlockProps) {\n const {\n className,\n \"data-title\": title,\n \"data-language\": dataLanguage,\n \"data-expandable\": isExpandable,\n \"data-expandable-lines\": totalLinesStr,\n ...props\n } = rest;\n\n const language = resolveLanguage(\n typeof className === \"string\" ? className : undefined,\n dataLanguage,\n children\n );\n const totalLinesFromMeta = parseInt(totalLinesStr as string, 10) || 0;\n const totalLinesFromRaw = raw ? countCodeLines(raw) : 0;\n const totalLines = totalLinesFromRaw || totalLinesFromMeta;\n const hasExpandableClass =\n typeof className === \"string\" && className.split(\" \").includes(\"mdx-expandable-code\");\n const shouldExpand = isExpandable === \"true\" || hasExpandableClass;\n const preProps = {\n ...props,\n \"data-expandable\": isExpandable,\n \"data-expandable-lines\": totalLinesStr,\n };\n\n return (\n <div\n className=\"code-block-container not-prose\"\n style={{\n position: \"relative\",\n margin: \"1.5rem 0\",\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n overflow: \"hidden\",\n fontSize: \"0.875rem\",\n borderRadius: \"0.75rem\",\n }}\n >\n <div\n className=\"code-block-header\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"0.75rem\",\n background: \"hsl(var(--muted, 210 20% 92%))\",\n padding: \"0.5rem 1rem\",\n borderBottom: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n color: \"hsl(var(--muted-foreground, 220 15% 50%))\",\n fontFamily: \"monospace\",\n fontSize: \"0.8rem\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n fontSize: \"0.78rem\",\n color: \"hsl(var(--muted-foreground, 220 15% 50%))\",\n }}\n >\n {getLanguageIcon(language)}\n <span>{title || language}</span>\n </div>\n {raw ? (\n <div\n className=\"code-block-actions\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n marginLeft: \"auto\",\n }}\n >\n <div\n style={{\n color: \"hsl(var(--muted-foreground, 220 15% 50%))\",\n transition: \"color 0.2s ease-in-out\",\n }}\n >\n <CopyButton content={raw} />\n </div>\n </div>\n ) : null}\n </div>\n <div\n className=\"code-block-body\"\n style={\n {\n overflowY: \"visible\",\n backgroundColor: \"hsl(var(--background, 210 40% 98%))\",\n willChange: \"transform\",\n borderBottom: \"none\",\n } as React.CSSProperties\n }\n >\n <ExpandableCode\n isExpandable={shouldExpand}\n totalLines={totalLines}\n preContent={children}\n preProps={preProps}\n className={className}\n />\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useEffect, useId, useRef, useState } from \"react\";\n\ntype CopyButtonProps = {\n content: string;\n};\n\nexport function CopyButton({ content }: CopyButtonProps) {\n const [copied, setCopied] = useState(false);\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const statusId = useId();\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n async function onCopy() {\n try {\n await navigator.clipboard.writeText(content);\n setCopied(true);\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n timeoutRef.current = setTimeout(() => setCopied(false), 1600);\n } catch {\n setCopied(false);\n }\n }\n\n return (\n <button\n type=\"button\"\n onClick={onCopy}\n aria-label={copied ? \"Copied\" : \"Copy code\"}\n aria-describedby={statusId}\n style={{\n position: \"relative\",\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n borderRadius: 8,\n background: \"hsl(var(--card, 0 0% 100%))\",\n color: \"hsl(var(--foreground, 220 30% 15%))\",\n fontSize: \"0.78rem\",\n padding: \"0.35rem 0.55rem\",\n cursor: \"copy\",\n }}\n >\n {copied ? \"Copied\" : \"Copy\"}\n <span\n id={statusId}\n aria-live=\"polite\"\n style={{ position: \"absolute\", left: -9999, top: \"auto\" }}\n >\n {copied ? \"Code copied to clipboard\" : \"Ready to copy code\"}\n </span>\n </button>\n );\n}\n","\"use client\";\n\nimport { useEffect, useState, useRef, type ReactNode } from \"react\";\nimport { Ellipsis } from \"lucide-react\";\n\ntype ExpandableCodeProps = {\n isExpandable: boolean;\n totalLines: number;\n preContent: ReactNode;\n preProps: Record<string, unknown>;\n className?: string;\n};\n\nconst DEFAULT_VISIBLE_LINES = 20;\nconst FALLBACK_LINE_HEIGHT_PX = 24;\n\nexport function ExpandableCode({\n isExpandable,\n totalLines,\n preContent,\n preProps,\n className,\n}: ExpandableCodeProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [collapsedMaxHeight, setCollapsedMaxHeight] = useState(\n `${DEFAULT_VISIBLE_LINES * FALLBACK_LINE_HEIGHT_PX}px`\n );\n const preRef = useRef<HTMLPreElement>(null);\n\n const shouldShow = isExpandable && totalLines > DEFAULT_VISIBLE_LINES;\n const isCollapsed = shouldShow && !isOpen;\n\n useEffect(() => {\n const pre = preRef.current;\n if (!pre) return;\n\n const calculateCollapsedHeight = () => {\n const styles = window.getComputedStyle(pre);\n const paddingTop = Number.parseFloat(styles.paddingTop) || 0;\n const paddingBottom = Number.parseFloat(styles.paddingBottom) || 0;\n const contentHeight = Math.max(pre.scrollHeight - paddingTop - paddingBottom, 0);\n\n if (totalLines > 0 && contentHeight > 0) {\n const lineHeight = contentHeight / totalLines;\n setCollapsedMaxHeight(\n `${DEFAULT_VISIBLE_LINES * lineHeight + paddingTop + paddingBottom}px`\n );\n return;\n }\n\n let lineHeight = Number.parseFloat(styles.lineHeight);\n if (!Number.isFinite(lineHeight) || lineHeight === 0) {\n const fontSize = Number.parseFloat(styles.fontSize);\n lineHeight = Number.isFinite(fontSize) ? fontSize * 1.5 : FALLBACK_LINE_HEIGHT_PX;\n }\n\n setCollapsedMaxHeight(`${DEFAULT_VISIBLE_LINES * lineHeight + paddingTop + paddingBottom}px`);\n };\n\n const frame = requestAnimationFrame(calculateCollapsedHeight);\n const timeout = window.setTimeout(calculateCollapsedHeight, 50);\n window.addEventListener(\"resize\", calculateCollapsedHeight);\n\n return () => {\n cancelAnimationFrame(frame);\n window.clearTimeout(timeout);\n window.removeEventListener(\"resize\", calculateCollapsedHeight);\n };\n }, [preContent, totalLines]);\n\n return (\n <>\n <div className=\"mdx-expandable-code-container\">\n <pre\n ref={preRef}\n {...preProps}\n className={`${className || \"\"} mdx-expandable-code`}\n style={{\n margin: 0,\n padding: \"0.9rem\",\n overflowX: \"auto\",\n minWidth: \"100%\",\n maxHeight: isCollapsed ? collapsedMaxHeight : \"none\",\n overflowY: isCollapsed ? \"hidden\" : \"visible\",\n transition: \"max-height 0.3s ease\",\n scrollbarWidth: \"thin\",\n }}\n >\n {preContent}\n </pre>\n </div>\n\n {shouldShow && (\n <div\n className=\"code-block-expandable-footer\"\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"0.6rem\",\n background: \"hsl(var(--muted, 210 20% 92%))\",\n borderTop: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n }}\n >\n <button\n className=\"code-block-expandable-toggle\"\n onClick={() => setIsOpen(!isOpen)}\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n padding: \"0.4rem 0.8rem\",\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n borderRadius: 6,\n background: \"hsl(var(--background, 210 40% 98%))\",\n color: \"hsl(var(--foreground, 220 30% 15%))\",\n fontSize: \"0.85rem\",\n fontWeight: 500,\n cursor: \"pointer\",\n transition: \"all 0.2s ease\",\n fontFamily: \"inherit\",\n }}\n >\n <Ellipsis\n size={16}\n style={{\n transform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\n transition: \"transform 0.2s ease\",\n }}\n />\n <span>{isOpen ? \"Collapse\" : `See all ${totalLines} lines`}</span>\n </button>\n </div>\n )}\n </>\n );\n}\n","import type { CSSProperties } from \"react\";\n\ntype KeyboardMdxProps = {\n show: string;\n type?: \"window\" | \"mac\";\n style?: CSSProperties;\n};\n\nconst wrapperStyle: CSSProperties = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n borderBottomWidth: 2,\n borderRadius: 8,\n background: \"hsl(var(--muted, 210 20% 92%))\",\n color: \"hsl(var(--foreground, 220 30% 15%))\",\n minWidth: \"1.9rem\",\n height: \"1.7rem\",\n padding: \"0 0.45rem\",\n fontSize: \"0.8rem\",\n fontWeight: 600,\n lineHeight: 1,\n};\n\nconst aliases: Record<string, string> = {\n cmd: \"Win\",\n command: \"Win\",\n ctrl: \"Ctrl\",\n control: \"Ctrl\",\n alt: \"Alt\",\n option: \"Alt\",\n shift: \"Shift\",\n tab: \"Tab\",\n enter: \"Enter\",\n return: \"Enter\",\n delete: \"Del\",\n del: \"Del\",\n escape: \"Esc\",\n esc: \"Esc\",\n space: \"Space\",\n up: \"↑\",\n down: \"↓\",\n left: \"←\",\n right: \"→\",\n};\n\nconst macSymbols: Record<string, string> = {\n cmd: \"⌘\",\n command: \"⌘\",\n ctrl: \"⌃\",\n control: \"⌃\",\n alt: \"⌥\",\n option: \"⌥\",\n shift: \"⇧\",\n tab: \"⇥\",\n enter: \"⏎\",\n return: \"⏎\",\n delete: \"⌫\",\n del: \"⌫\",\n escape: \"⎋\",\n esc: \"⎋\",\n space: \"␣\",\n up: \"↑\",\n down: \"↓\",\n left: \"←\",\n right: \"→\",\n};\n\nfunction normalize(show: string, type: \"window\" | \"mac\") {\n const token = (show || \"\").toLowerCase();\n const label = aliases[token] || show || \"Key\";\n\n if (type === \"mac\") {\n return macSymbols[token] || label;\n }\n return label;\n}\n\nexport function KbdMdx({ show, type = \"window\", style }: KeyboardMdxProps) {\n const label = normalize(show, type);\n const isLetter = /^[a-zA-Z]$/.test(show);\n const display = isLetter ? show.toUpperCase() : label;\n return <kbd style={{ ...wrapperStyle, ...style }}>{display}</kbd>;\n}\n","import type { CSSProperties, HTMLAttributes, ReactNode } from \"react\";\nimport { IconProp, IconName, resolveLucideIcon } from \"../utils/Icon\";\n\ntype NoteType = \"danger\" | \"warning\" | \"success\" | \"info\" | \"tip\";\n\ntype NoteMdxProps = HTMLAttributes<HTMLElement> & {\n type?: NoteType;\n title?: string;\n icon?: IconProp;\n children?: ReactNode;\n style?: CSSProperties;\n};\n\nconst palette: Record<\n NoteType,\n {\n border: string;\n bg: string;\n text: string;\n header: string;\n content: string;\n defaultIcon: IconName;\n }\n> = {\n danger: {\n border: \"hsl(var(--destructive, 0 85% 60%))\",\n bg: \"hsl(var(--destructive, 0 85% 60%) / 0.16)\",\n text: \"hsl(var(--foreground, 220 30% 15%))\",\n header: \"hsl(var(--destructive, 0 85% 60%))\",\n content: \"hsl(var(--destructive, 0 85% 60%) / 0.75)\",\n defaultIcon: \"Siren\",\n },\n warning: {\n border: \"hsl(36 100% 56%)\",\n bg: \"rgba(249, 115, 22, 0.14)\",\n text: \"hsl(24 100% 18%)\",\n header: \"hsl(36 100% 56%)\",\n content: \"hsl(36 100% 56% / 0.75)\",\n defaultIcon: \"AlertTriangle\",\n },\n success: {\n border: \"hsl(145 63% 42%)\",\n bg: \"hsl(145 63% 42% / 0.16)\",\n text: \"hsl(var(--foreground, 220 30% 15%))\",\n header: \"hsl(145 63% 42%)\",\n content: \"hsl(145 63% 42% / 0.75)\",\n defaultIcon: \"CheckCircle2\",\n },\n info: {\n border: \"hsl(var(--primary, 210 81% 56%))\",\n bg: \"hsl(var(--primary, 210 81% 56%) / 0.16)\",\n text: \"hsl(var(--foreground, 220 30% 15%))\",\n header: \"hsl(var(--primary, 210 81% 56%))\",\n content: \"hsl(var(--primary, 210 81% 56%) / 0.75)\",\n defaultIcon: \"Info\",\n },\n tip: {\n border: \"hsl(137 50% 35%)\",\n bg: \"hsl(137 50% 35% / 0.16)\",\n text: \"hsl(var(--foreground, 220 30% 15%))\",\n header: \"hsl(137 50% 35%)\",\n content: \"hsl(137 50% 35% / 0.75)\",\n defaultIcon: \"Lightbulb\",\n },\n};\n\nexport function NoteMdx({\n type = \"info\",\n title,\n icon,\n children,\n style,\n className,\n ...props\n}: NoteMdxProps) {\n const safeType = Object.hasOwn(palette, type) ? type : \"info\";\n const token = palette[safeType];\n if (!token) return null;\n const normalizedTitle = typeof title === \"string\" ? title.trim() : title;\n const resolvedIcon = resolveLucideIcon(icon || token.defaultIcon);\n const fallbackTitle = normalizedTitle || type.charAt(0).toUpperCase() + type.slice(1);\n\n return (\n <aside\n role=\"note\"\n className={className}\n {...props}\n style={{\n border: \"1px solid transparent\",\n borderLeft: `4px solid ${token.border}`,\n borderRadius: 10,\n background: token.bg,\n color: token.text,\n padding: \"0.5rem 1rem\",\n margin: \"1rem 0\",\n boxShadow: \"0 1px 2px rgba(15, 23, 42, 0.08)\",\n ...style,\n }}\n >\n {fallbackTitle || resolvedIcon ? (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n fontWeight: 700,\n marginBottom: \"0.35rem\",\n color: token.header,\n }}\n >\n {resolvedIcon ? (\n <span\n aria-hidden=\"true\"\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 20,\n height: 20,\n color: token.header,\n }}\n >\n {resolvedIcon}\n </span>\n ) : null}\n <span style={{ color: token.header }}>{fallbackTitle}</span>\n </div>\n ) : null}\n <div style={{ color: token.content, lineHeight: 1.5 }}>{children}</div>\n </aside>\n );\n}\n","import type { CSSProperties, ReactNode } from \"react\";\nimport {\n AlertTriangle,\n PlusCircle,\n RefreshCw,\n Wrench,\n Zap,\n XCircle,\n type LucideIcon,\n} from \"lucide-react\";\n\ntype ReleaseMdxProps = {\n version: string;\n date?: string;\n title: string;\n children?: ReactNode;\n style?: CSSProperties;\n};\n\ntype ChangesMdxProps = {\n type?: \"added\" | \"changed\" | \"fixed\" | \"improved\" | \"deprecated\" | \"removed\";\n children?: ReactNode;\n};\n\ntype ChangeType = NonNullable<ChangesMdxProps[\"type\"]>;\n\nconst changeConfig: Record<ChangeType, { label: string; color: string; icon: LucideIcon }> = {\n added: { label: \"Added\", color: \"#14b8a6\", icon: PlusCircle },\n changed: { label: \"Changed\", color: \"#f59e0b\", icon: RefreshCw },\n fixed: { label: \"Fixed\", color: \"#ef4444\", icon: Wrench },\n improved: { label: \"Improved\", color: \"#3b82f6\", icon: Zap },\n deprecated: { label: \"Deprecated\", color: \"#f97316\", icon: AlertTriangle },\n removed: { label: \"Removed\", color: \"#ec4899\", icon: XCircle },\n};\n\nexport function ReleaseMdx({ version, date, title, children, style }: ReleaseMdxProps) {\n const formattedDate = date\n ? new Date(date).toLocaleDateString(\"en-US\", {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n })\n : undefined;\n\n const displayVersion = version.startsWith(\"v\") ? version : `v${version}`;\n\n return (\n <section\n style={{\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n borderRadius: 12,\n padding: \"1rem\",\n margin: \"1rem 0\",\n background: \"hsl(var(--card, 0 0% 100%))\",\n ...style,\n }}\n >\n <div style={{ display: \"flex\", gap: \"0.6rem\", alignItems: \"center\", marginBottom: \"0.5rem\" }}>\n <span style={{ fontWeight: 700, color: \"hsl(var(--accent, 200 100% 40%))\" }}>\n {displayVersion}\n </span>\n {formattedDate ? (\n <span style={{ color: \"hsl(var(--muted-foreground, 220 15% 50%))\" }}>\n {formattedDate}\n </span>\n ) : null}\n </div>\n <h3 style={{ margin: 0 }}>{title}</h3>\n <div style={{ marginTop: \"0.75rem\" }}>{children}</div>\n </section>\n );\n}\n\nexport function ChangesMdx({ type = \"changed\", children }: ChangesMdxProps) {\n const config = changeConfig[type] || changeConfig.changed;\n const Icon = config.icon;\n\n return (\n <div style={{ margin: \"0.75rem 0\" }}>\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: \"0.35rem\",\n borderRadius: 999,\n padding: \"0.2rem 0.55rem\",\n fontSize: \"0.8rem\",\n fontWeight: 700,\n color: config.color,\n background: `${config.color}1f`,\n }}\n >\n <Icon size={13} aria-hidden=\"true\" />\n {config.label}\n </span>\n <div style={{ marginTop: \"0.45rem\" }}>{children}</div>\n </div>\n );\n}\n","import {\n Children,\n cloneElement,\n isValidElement,\n type CSSProperties,\n type HTMLAttributes,\n type LiHTMLAttributes,\n type ReactElement,\n type ReactNode,\n} from \"react\";\n\ntype StepsMdxProps = HTMLAttributes<HTMLOListElement> & {\n children?: ReactNode;\n style?: CSSProperties;\n};\n\ntype StepMdxProps = LiHTMLAttributes<HTMLLIElement> & {\n title: string;\n children?: ReactNode;\n style?: CSSProperties;\n};\n\n// Internal props including stepNumber (auto-injected)\ntype InternalStepProps = StepMdxProps & {\n stepNumber?: number;\n};\n\nexport function StepsMdx({ children, style, className, ...props }: StepsMdxProps) {\n const items = Children.toArray(children);\n\n return (\n <ol\n className={className}\n {...props}\n style={{\n listStyle: \"none\",\n position: \"relative\",\n margin: \"1.2rem 0\",\n padding: 0,\n display: \"grid\",\n gap: 0,\n ...style,\n }}\n >\n {items.map((child, index) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const item = child as ReactElement<InternalStepProps>;\n\n return cloneElement(item, {\n stepNumber: index + 1,\n });\n })}\n\n {items.length > 1 ? (\n <span\n aria-hidden=\"true\"\n style={{\n position: \"absolute\",\n left: \"1.05rem\",\n top: \"0.8rem\",\n bottom: \"0.8rem\",\n width: 1,\n background: \"hsl(var(--border-color, 210 20% 85%))\",\n pointerEvents: \"none\",\n }}\n />\n ) : null}\n </ol>\n );\n}\n\nexport function StepMdx({ title, children, style, className, ...props }: InternalStepProps) {\n const { stepNumber, ...liProps } = props as InternalStepProps;\n\n return (\n <li\n className={className}\n {...liProps}\n style={{\n position: \"relative\",\n zIndex: 1,\n width: \"100%\",\n minWidth: 0,\n boxSizing: \"border-box\",\n marginLeft: \"0.25rem\",\n paddingLeft: \"2.6rem\",\n paddingBottom: \"1.15rem\",\n ...style,\n }}\n >\n <span\n aria-hidden=\"true\"\n style={{\n position: \"absolute\",\n left: 0,\n top: 0,\n width: stepNumber && stepNumber >= 10 ? \"1.9rem\" : \"1.6rem\",\n height: \"1.6rem\",\n borderRadius: 10,\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n fontSize: \"0.82rem\",\n fontWeight: 600,\n color: \"hsl(var(--muted-foreground, 220 15% 50%))\",\n background: \"hsl(var(--muted, 210 12% 92%))\",\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n }}\n >\n {stepNumber ?? \"-\"}\n </span>\n\n <div\n style={{\n fontWeight: 700,\n fontSize: \"1.02rem\",\n lineHeight: 1.35,\n marginBottom: children ? \"0.55rem\" : 0,\n color: \"hsl(var(--foreground, 220 30% 15%))\",\n }}\n >\n {title}\n </div>\n {children ? (\n <div\n style={{\n color: \"hsl(var(--muted-foreground, 220 15% 50%))\",\n display: \"flow-root\",\n width: \"100%\",\n minWidth: 0,\n maxWidth: \"100%\",\n overflowX: \"auto\",\n overflowY: \"hidden\",\n }}\n >\n {children}\n </div>\n ) : null}\n </li>\n );\n}\n","import type {\n CSSProperties,\n HTMLAttributes,\n TableHTMLAttributes,\n TdHTMLAttributes,\n ThHTMLAttributes,\n} from \"react\";\n\nconst tableShellStyle: CSSProperties = {\n position: \"relative\",\n width: \"100%\",\n overflowX: \"auto\",\n overflowY: \"hidden\",\n border: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n borderRadius: 10,\n margin: \"1rem 0\",\n};\n\nconst cellBaseStyle: CSSProperties = {\n padding: \"0.6rem 0.75rem\",\n verticalAlign: \"middle\",\n borderBottom: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n};\n\nexport function TableMdx({ style, ...props }: TableHTMLAttributes<HTMLTableElement>) {\n return (\n <div style={{ ...tableShellStyle }}>\n <table\n {...props}\n style={{\n width: \"100%\",\n fontSize: \"0.925rem\",\n borderCollapse: \"collapse\",\n margin: 0,\n ...style,\n }}\n />\n </div>\n );\n}\n\nexport function TableHeaderMdx(props: HTMLAttributes<HTMLTableSectionElement>) {\n return (\n <thead\n {...props}\n style={{\n background: \"hsl(var(--muted, 210 20% 92%))\",\n ...props.style,\n }}\n />\n );\n}\n\nexport function TableBodyMdx(props: HTMLAttributes<HTMLTableSectionElement>) {\n return <tbody {...props} />;\n}\n\nexport function TableFooterMdx(props: HTMLAttributes<HTMLTableSectionElement>) {\n return (\n <tfoot\n {...props}\n style={{\n background: \"hsl(var(--muted, 210 20% 92%))\",\n borderTop: \"1px solid hsl(var(--border-color, 210 20% 85%))\",\n ...props.style,\n }}\n />\n );\n}\n\nexport function TableRowMdx(props: HTMLAttributes<HTMLTableRowElement>) {\n return <tr {...props} />;\n}\n\nexport function TableHeadMdx(props: ThHTMLAttributes<HTMLTableCellElement>) {\n return (\n <th\n scope={props.scope ?? \"col\"}\n {...props}\n style={{\n ...cellBaseStyle,\n textAlign: \"left\",\n color: \"hsl(var(--muted-foreground, 220 15% 50%))\",\n fontWeight: 600,\n ...props.style,\n }}\n />\n );\n}\n\nexport function TableCellMdx(props: TdHTMLAttributes<HTMLTableCellElement>) {\n return <td {...props} style={{ ...cellBaseStyle, ...props.style }} />;\n}\n","type YoutubeMdxProps = {\n videoId: string;\n title?: string;\n};\n\nexport function YoutubeMdx({ videoId, title = \"YouTube video\" }: YoutubeMdxProps) {\n const src = `https://www.youtube-nocookie.com/embed/${videoId}`;\n\n return (\n <div\n style={{\n position: \"relative\",\n width: \"100%\",\n paddingBottom: \"56.25%\",\n height: 0,\n overflow: \"hidden\",\n background: \"#000\",\n borderRadius: 8,\n boxShadow: \"0 4px 20px rgba(0, 0, 0, 0.2)\",\n margin: \"1rem 0\",\n }}\n >\n <iframe\n src={src}\n title={title}\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n border: \"none\",\n borderRadius: 8,\n }}\n />\n </div>\n );\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsx","jsxs","useEffect","useState","useRef","Fragment","jsx","jsxs","lineHeight","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","isValidElement","jsx","jsxs","jsx","jsx"]}
package/dist/client.d.ts CHANGED
@@ -1,9 +1,91 @@
1
- export { AccordionMdx } from "./components/AccordionMdx";
2
- export { AccordionsMdx } from "./components/AccordionsMdx";
3
- export { TabMdx, TabsMdx } from "./components/TabsMdx";
4
- export { TooltipMdx } from "./components/TooltipMdx";
5
- export { ImageMdx } from "./components/ImageMdx";
6
- export { CardMdx } from "./components/CardMdx";
7
- export { FileMdx, FilesMdx, FolderMdx } from "./components/FileTreeMdx";
8
- export { MermaidMdx } from "./components/MermaidMdx";
9
- //# sourceMappingURL=client.d.ts.map
1
+ import * as react from 'react';
2
+ import react__default, { ReactNode, HTMLAttributes, CSSProperties, ComponentProps, ComponentType } from 'react';
3
+ import * as LucideIcons from 'lucide-react';
4
+
5
+ type IconName = keyof typeof LucideIcons;
6
+ type IconProp = IconName | string;
7
+
8
+ type AccordionMdxProps = {
9
+ title: string;
10
+ icon?: IconProp;
11
+ className?: string;
12
+ children?: ReactNode;
13
+ };
14
+ declare function AccordionMdx({ title, icon, className, children }: AccordionMdxProps): react.JSX.Element;
15
+
16
+ type AccordionsMdxProps = {
17
+ children?: ReactNode;
18
+ };
19
+ declare function AccordionsMdx({ children }: AccordionsMdxProps): react.JSX.Element;
20
+
21
+ type TabMdxProps = {
22
+ title: string;
23
+ children?: ReactNode;
24
+ };
25
+ declare function TabMdx({ children }: TabMdxProps): react.JSX.Element;
26
+ type TabsMdxProps = {
27
+ className?: string;
28
+ children: ReactNode;
29
+ };
30
+ declare function TabsMdx({ className, children }: TabsMdxProps): react.JSX.Element;
31
+
32
+ type TooltipMdxProps = HTMLAttributes<HTMLSpanElement> & {
33
+ text?: ReactNode;
34
+ tip?: ReactNode;
35
+ side?: "top" | "bottom";
36
+ style?: CSSProperties;
37
+ };
38
+ declare function TooltipMdx({ text, tip, side, style, className, ...props }: TooltipMdxProps): react.JSX.Element;
39
+
40
+ type ImageMdxProps = Omit<ComponentProps<"img">, "src"> & {
41
+ src?: any;
42
+ zoom?: boolean;
43
+ ImageComponent?: ComponentType<any>;
44
+ };
45
+ declare function ImageMdx({ src, alt, width, height, zoom, style, ImageComponent, ...props }: ImageMdxProps): react.JSX.Element | null;
46
+
47
+ type LinkMdxProps = ComponentProps<"a">;
48
+
49
+ type LinkRenderer = ComponentType<LinkMdxProps>;
50
+ type CardMdxProps = HTMLAttributes<HTMLDivElement> & {
51
+ title: string;
52
+ icon?: IconProp;
53
+ href?: string;
54
+ horizontal?: boolean;
55
+ children?: ReactNode;
56
+ style?: CSSProperties;
57
+ /** Internal adapter hook: inject framework link component without duplicating styles. */
58
+ __LinkComponent?: LinkRenderer;
59
+ };
60
+ declare function CardMdx({ title, icon, href, horizontal, children, style, className, __LinkComponent, ...props }: CardMdxProps): react.JSX.Element;
61
+
62
+ type FilesMdxProps = HTMLAttributes<HTMLDivElement> & {
63
+ children?: ReactNode;
64
+ style?: CSSProperties;
65
+ };
66
+ type FolderMdxProps = HTMLAttributes<HTMLDivElement> & {
67
+ name: string;
68
+ children?: ReactNode;
69
+ style?: CSSProperties;
70
+ };
71
+ type FileMdxProps = HTMLAttributes<HTMLDivElement> & {
72
+ name: string;
73
+ style?: CSSProperties;
74
+ };
75
+ declare function FilesMdx({ children, style, className, ...props }: FilesMdxProps): react__default.JSX.Element;
76
+ declare function FolderMdx({ name, children, style, className, ...props }: FolderMdxProps): react__default.JSX.Element;
77
+ declare function FileMdx({ name, style, className, ...props }: FileMdxProps): react__default.JSX.Element;
78
+
79
+ interface MermaidMdxProps {
80
+ /** Mermaid diagram definition (from rehype plugin or programmatic) */
81
+ chart: string;
82
+ /** Custom DOM id (auto-generated if omitted) */
83
+ id?: string;
84
+ /** Additional CSS class on container */
85
+ className?: string;
86
+ /** Show GFM-style pan/zoom controls once the diagram renders (default true) */
87
+ panZoom?: boolean;
88
+ }
89
+ declare function MermaidMdx({ chart, id, className, panZoom }: MermaidMdxProps): react.JSX.Element | null;
90
+
91
+ export { AccordionMdx, AccordionsMdx, CardMdx, FileMdx, FilesMdx, FolderMdx, ImageMdx, MermaidMdx, TabMdx, TabsMdx, TooltipMdx };