@hanzo/docs-radix-ui 16.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 (272) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/css/black.css +1 -0
  4. package/css/catppuccin.css +1 -0
  5. package/css/dusk.css +1 -0
  6. package/css/layouts/docs.css +1 -0
  7. package/css/layouts/home.css +1 -0
  8. package/css/layouts/notebook.css +1 -0
  9. package/css/neutral.css +1 -0
  10. package/css/ocean.css +1 -0
  11. package/css/preset.css +89 -0
  12. package/css/purple.css +1 -0
  13. package/css/shadcn.css +1 -0
  14. package/css/solar.css +1 -0
  15. package/css/style.css +9 -0
  16. package/css/vitepress.css +1 -0
  17. package/dist/_virtual/rolldown_runtime.js +36 -0
  18. package/dist/components/accordion.d.ts +25 -0
  19. package/dist/components/accordion.d.ts.map +1 -0
  20. package/dist/components/accordion.js +70 -0
  21. package/dist/components/accordion.js.map +1 -0
  22. package/dist/components/banner.d.ts +35 -0
  23. package/dist/components/banner.d.ts.map +1 -0
  24. package/dist/components/banner.js +70 -0
  25. package/dist/components/banner.js.map +1 -0
  26. package/dist/components/callout.d.ts +43 -0
  27. package/dist/components/callout.d.ts.map +1 -0
  28. package/dist/components/callout.js +63 -0
  29. package/dist/components/callout.js.map +1 -0
  30. package/dist/components/card.d.ts +21 -0
  31. package/dist/components/card.d.ts.map +1 -0
  32. package/dist/components/card.js +41 -0
  33. package/dist/components/card.js.map +1 -0
  34. package/dist/components/codeblock.d.ts +63 -0
  35. package/dist/components/codeblock.d.ts.map +1 -0
  36. package/dist/components/codeblock.js +126 -0
  37. package/dist/components/codeblock.js.map +1 -0
  38. package/dist/components/dialog/search-algolia.d.ts +39 -0
  39. package/dist/components/dialog/search-algolia.d.ts.map +1 -0
  40. package/dist/components/dialog/search-algolia.js +68 -0
  41. package/dist/components/dialog/search-algolia.js.map +1 -0
  42. package/dist/components/dialog/search-default.d.ts +44 -0
  43. package/dist/components/dialog/search-default.d.ts.map +1 -0
  44. package/dist/components/dialog/search-default.js +66 -0
  45. package/dist/components/dialog/search-default.js.map +1 -0
  46. package/dist/components/dialog/search-orama.d.ts +46 -0
  47. package/dist/components/dialog/search-orama.d.ts.map +1 -0
  48. package/dist/components/dialog/search-orama.js +73 -0
  49. package/dist/components/dialog/search-orama.js.map +1 -0
  50. package/dist/components/dialog/search.d.ts +113 -0
  51. package/dist/components/dialog/search.d.ts.map +1 -0
  52. package/dist/components/dialog/search.js +271 -0
  53. package/dist/components/dialog/search.js.map +1 -0
  54. package/dist/components/dynamic-codeblock.d.ts +32 -0
  55. package/dist/components/dynamic-codeblock.d.ts.map +1 -0
  56. package/dist/components/dynamic-codeblock.js +66 -0
  57. package/dist/components/dynamic-codeblock.js.map +1 -0
  58. package/dist/components/files.d.ts +35 -0
  59. package/dist/components/files.d.ts.map +1 -0
  60. package/dist/components/files.js +44 -0
  61. package/dist/components/files.js.map +1 -0
  62. package/dist/components/github-info.d.ts +19 -0
  63. package/dist/components/github-info.d.ts.map +1 -0
  64. package/dist/components/github-info.js +68 -0
  65. package/dist/components/github-info.js.map +1 -0
  66. package/dist/components/heading.d.ts +15 -0
  67. package/dist/components/heading.d.ts.map +1 -0
  68. package/dist/components/heading.js +29 -0
  69. package/dist/components/heading.js.map +1 -0
  70. package/dist/components/image-zoom-CtfZieBH.css +80 -0
  71. package/dist/components/image-zoom-CtfZieBH.css.map +1 -0
  72. package/dist/components/image-zoom.css +77 -0
  73. package/dist/components/image-zoom.d.ts +25 -0
  74. package/dist/components/image-zoom.d.ts.map +1 -0
  75. package/dist/components/image-zoom.js +36 -0
  76. package/dist/components/image-zoom.js.map +1 -0
  77. package/dist/components/image-zoom2.js +1 -0
  78. package/dist/components/inline-toc.d.ts +16 -0
  79. package/dist/components/inline-toc.d.ts.map +1 -0
  80. package/dist/components/inline-toc.js +30 -0
  81. package/dist/components/inline-toc.js.map +1 -0
  82. package/dist/components/sidebar/base.d.ts +109 -0
  83. package/dist/components/sidebar/base.d.ts.map +1 -0
  84. package/dist/components/sidebar/base.js +262 -0
  85. package/dist/components/sidebar/base.js.map +1 -0
  86. package/dist/components/sidebar/link-item.d.ts +24 -0
  87. package/dist/components/sidebar/link-item.d.ts.map +1 -0
  88. package/dist/components/sidebar/link-item.js +33 -0
  89. package/dist/components/sidebar/link-item.js.map +1 -0
  90. package/dist/components/sidebar/page-tree.d.ts +30 -0
  91. package/dist/components/sidebar/page-tree.d.ts.map +1 -0
  92. package/dist/components/sidebar/page-tree.js +58 -0
  93. package/dist/components/sidebar/page-tree.js.map +1 -0
  94. package/dist/components/sidebar/tabs/dropdown.d.ts +20 -0
  95. package/dist/components/sidebar/tabs/dropdown.d.ts.map +1 -0
  96. package/dist/components/sidebar/tabs/dropdown.js +78 -0
  97. package/dist/components/sidebar/tabs/dropdown.js.map +1 -0
  98. package/dist/components/sidebar/tabs/index.d.ts +27 -0
  99. package/dist/components/sidebar/tabs/index.d.ts.map +1 -0
  100. package/dist/components/sidebar/tabs/index.js +49 -0
  101. package/dist/components/sidebar/tabs/index.js.map +1 -0
  102. package/dist/components/steps.d.ts +17 -0
  103. package/dist/components/steps.d.ts.map +1 -0
  104. package/dist/components/steps.js +19 -0
  105. package/dist/components/steps.js.map +1 -0
  106. package/dist/components/tabs.d.ts +52 -0
  107. package/dist/components/tabs.d.ts.map +1 -0
  108. package/dist/components/tabs.js +101 -0
  109. package/dist/components/tabs.js.map +1 -0
  110. package/dist/components/toc/clerk.d.ts +1 -0
  111. package/dist/components/toc/clerk.js +12 -0
  112. package/dist/components/toc/clerk.js.map +1 -0
  113. package/dist/components/toc/default.d.ts +1 -0
  114. package/dist/components/toc/default.js +12 -0
  115. package/dist/components/toc/default.js.map +1 -0
  116. package/dist/components/toc/index.d.ts +1 -0
  117. package/dist/components/toc/index.js +12 -0
  118. package/dist/components/toc/index.js.map +1 -0
  119. package/dist/components/type-table.d.ts +39 -0
  120. package/dist/components/type-table.d.ts.map +1 -0
  121. package/dist/components/type-table.js +109 -0
  122. package/dist/components/type-table.js.map +1 -0
  123. package/dist/components/ui/accordion.d.ts +32 -0
  124. package/dist/components/ui/accordion.d.ts.map +1 -0
  125. package/dist/components/ui/accordion.js +46 -0
  126. package/dist/components/ui/accordion.js.map +1 -0
  127. package/dist/components/ui/button.d.ts +13 -0
  128. package/dist/components/ui/button.d.ts.map +1 -0
  129. package/dist/components/ui/button.js +23 -0
  130. package/dist/components/ui/button.js.map +1 -0
  131. package/dist/components/ui/collapsible.d.ts +13 -0
  132. package/dist/components/ui/collapsible.d.ts.map +1 -0
  133. package/dist/components/ui/collapsible.js +27 -0
  134. package/dist/components/ui/collapsible.js.map +1 -0
  135. package/dist/components/ui/navigation-menu.d.ts +16 -0
  136. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  137. package/dist/components/ui/navigation-menu.js +44 -0
  138. package/dist/components/ui/navigation-menu.js.map +1 -0
  139. package/dist/components/ui/popover.d.ts +11 -0
  140. package/dist/components/ui/popover.d.ts.map +1 -0
  141. package/dist/components/ui/popover.js +24 -0
  142. package/dist/components/ui/popover.js.map +1 -0
  143. package/dist/components/ui/scroll-area.d.ts +11 -0
  144. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  145. package/dist/components/ui/scroll-area.js +37 -0
  146. package/dist/components/ui/scroll-area.js.map +1 -0
  147. package/dist/components/ui/tabs.d.ts +39 -0
  148. package/dist/components/ui/tabs.d.ts.map +1 -0
  149. package/dist/components/ui/tabs.js +81 -0
  150. package/dist/components/ui/tabs.js.map +1 -0
  151. package/dist/contexts/i18n.d.ts +1 -0
  152. package/dist/contexts/i18n.js +12 -0
  153. package/dist/contexts/i18n.js.map +1 -0
  154. package/dist/contexts/search.d.ts +8 -0
  155. package/dist/contexts/search.d.ts.map +1 -0
  156. package/dist/contexts/search.js +12 -0
  157. package/dist/contexts/search.js.map +1 -0
  158. package/dist/contexts/tree.d.ts +1 -0
  159. package/dist/contexts/tree.js +12 -0
  160. package/dist/contexts/tree.js.map +1 -0
  161. package/dist/i18n.d.ts +1 -0
  162. package/dist/i18n.js +3 -0
  163. package/dist/layouts/docs/client.d.ts +32 -0
  164. package/dist/layouts/docs/client.d.ts.map +1 -0
  165. package/dist/layouts/docs/client.js +68 -0
  166. package/dist/layouts/docs/client.js.map +1 -0
  167. package/dist/layouts/docs/index.d.ts +60 -0
  168. package/dist/layouts/docs/index.d.ts.map +1 -0
  169. package/dist/layouts/docs/index.js +179 -0
  170. package/dist/layouts/docs/index.js.map +1 -0
  171. package/dist/layouts/docs/page/client.d.ts +46 -0
  172. package/dist/layouts/docs/page/client.d.ts.map +1 -0
  173. package/dist/layouts/docs/page/client.js +227 -0
  174. package/dist/layouts/docs/page/client.js.map +1 -0
  175. package/dist/layouts/docs/page/index.d.ts +94 -0
  176. package/dist/layouts/docs/page/index.d.ts.map +1 -0
  177. package/dist/layouts/docs/page/index.js +104 -0
  178. package/dist/layouts/docs/page/index.js.map +1 -0
  179. package/dist/layouts/docs/sidebar.d.ts +58 -0
  180. package/dist/layouts/docs/sidebar.d.ts.map +1 -0
  181. package/dist/layouts/docs/sidebar.js +147 -0
  182. package/dist/layouts/docs/sidebar.js.map +1 -0
  183. package/dist/layouts/home/client.d.ts +19 -0
  184. package/dist/layouts/home/client.d.ts.map +1 -0
  185. package/dist/layouts/home/client.js +262 -0
  186. package/dist/layouts/home/client.js.map +1 -0
  187. package/dist/layouts/home/index.d.ts +17 -0
  188. package/dist/layouts/home/index.d.ts.map +1 -0
  189. package/dist/layouts/home/index.js +25 -0
  190. package/dist/layouts/home/index.js.map +1 -0
  191. package/dist/layouts/home/navbar.d.ts +14 -0
  192. package/dist/layouts/home/navbar.d.ts.map +1 -0
  193. package/dist/layouts/home/navbar.js +38 -0
  194. package/dist/layouts/home/navbar.js.map +1 -0
  195. package/dist/layouts/notebook/client.d.ts +47 -0
  196. package/dist/layouts/notebook/client.d.ts.map +1 -0
  197. package/dist/layouts/notebook/client.js +159 -0
  198. package/dist/layouts/notebook/client.js.map +1 -0
  199. package/dist/layouts/notebook/index.d.ts +38 -0
  200. package/dist/layouts/notebook/index.d.ts.map +1 -0
  201. package/dist/layouts/notebook/index.js +219 -0
  202. package/dist/layouts/notebook/index.js.map +1 -0
  203. package/dist/layouts/notebook/page/client.d.ts +46 -0
  204. package/dist/layouts/notebook/page/client.d.ts.map +1 -0
  205. package/dist/layouts/notebook/page/client.js +227 -0
  206. package/dist/layouts/notebook/page/client.js.map +1 -0
  207. package/dist/layouts/notebook/page/index.d.ts +94 -0
  208. package/dist/layouts/notebook/page/index.d.ts.map +1 -0
  209. package/dist/layouts/notebook/page/index.js +104 -0
  210. package/dist/layouts/notebook/page/index.js.map +1 -0
  211. package/dist/layouts/notebook/sidebar.d.ts +63 -0
  212. package/dist/layouts/notebook/sidebar.d.ts.map +1 -0
  213. package/dist/layouts/notebook/sidebar.js +147 -0
  214. package/dist/layouts/notebook/sidebar.js.map +1 -0
  215. package/dist/layouts/shared/index.d.ts +69 -0
  216. package/dist/layouts/shared/index.d.ts.map +1 -0
  217. package/dist/layouts/shared/index.js +39 -0
  218. package/dist/layouts/shared/index.js.map +1 -0
  219. package/dist/layouts/shared/language-toggle.d.ts +10 -0
  220. package/dist/layouts/shared/language-toggle.d.ts.map +1 -0
  221. package/dist/layouts/shared/language-toggle.js +47 -0
  222. package/dist/layouts/shared/language-toggle.js.map +1 -0
  223. package/dist/layouts/shared/search-toggle.d.ts +23 -0
  224. package/dist/layouts/shared/search-toggle.d.ts.map +1 -0
  225. package/dist/layouts/shared/search-toggle.js +56 -0
  226. package/dist/layouts/shared/search-toggle.js.map +1 -0
  227. package/dist/layouts/shared/theme-toggle.d.ts +14 -0
  228. package/dist/layouts/shared/theme-toggle.d.ts.map +1 -0
  229. package/dist/layouts/shared/theme-toggle.js +62 -0
  230. package/dist/layouts/shared/theme-toggle.js.map +1 -0
  231. package/dist/mdx.d.ts +38 -0
  232. package/dist/mdx.d.ts.map +1 -0
  233. package/dist/mdx.js +74 -0
  234. package/dist/mdx.js.map +1 -0
  235. package/dist/mdx.server.d.ts +17 -0
  236. package/dist/mdx.server.d.ts.map +1 -0
  237. package/dist/mdx.server.js +23 -0
  238. package/dist/mdx.server.js.map +1 -0
  239. package/dist/og.d.ts +1 -0
  240. package/dist/og.js +3 -0
  241. package/dist/page.d.ts +37 -0
  242. package/dist/page.d.ts.map +1 -0
  243. package/dist/page.js +38 -0
  244. package/dist/page.js.map +1 -0
  245. package/dist/provider/base.d.ts +50 -0
  246. package/dist/provider/base.d.ts.map +1 -0
  247. package/dist/provider/base.js +39 -0
  248. package/dist/provider/base.js.map +1 -0
  249. package/dist/provider/next.d.ts +22 -0
  250. package/dist/provider/next.d.ts.map +1 -0
  251. package/dist/provider/next.js +21 -0
  252. package/dist/provider/next.js.map +1 -0
  253. package/dist/provider/react-router.d.ts +22 -0
  254. package/dist/provider/react-router.d.ts.map +1 -0
  255. package/dist/provider/react-router.js +21 -0
  256. package/dist/provider/react-router.js.map +1 -0
  257. package/dist/provider/tanstack.d.ts +22 -0
  258. package/dist/provider/tanstack.d.ts.map +1 -0
  259. package/dist/provider/tanstack.js +21 -0
  260. package/dist/provider/tanstack.js.map +1 -0
  261. package/dist/provider/waku.d.ts +22 -0
  262. package/dist/provider/waku.d.ts.map +1 -0
  263. package/dist/provider/waku.js +21 -0
  264. package/dist/provider/waku.js.map +1 -0
  265. package/dist/style.css +3255 -0
  266. package/dist/utils/use-copy-button.d.ts +1 -0
  267. package/dist/utils/use-copy-button.js +3 -0
  268. package/dist/utils/use-footer-items.d.ts +1 -0
  269. package/dist/utils/use-footer-items.js +3 -0
  270. package/dist/utils/use-is-scroll-top.d.ts +1 -0
  271. package/dist/utils/use-is-scroll-top.js +3 -0
  272. package/package.json +149 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-info.d.ts","names":[],"sources":["../../src/components/github-info.tsx"],"sourcesContent":[],"mappings":";;;;iBAwCsB,UAAA;;;;;;GAMnB,qBAAqB;;;EANF,KAAA,CAAA,EAAA,MAAU;EAC9B,OAAA,CAAA,EAAA,MAAA;CACA,CAAA,EASD,OATC,CASD,mBAAA,CAAA,GAAA,CAAA,OAAA,CATC"}
@@ -0,0 +1,68 @@
1
+ import { cn } from "@hanzo/docs-ui/cn";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { Star } from "lucide-react";
4
+
5
+ //#region src/components/github-info.tsx
6
+ async function getRepoStarsAndForks(owner, repo, token, baseUrl = "https://api.github.com") {
7
+ const endpoint = `${baseUrl}/repos/${owner}/${repo}`;
8
+ const headers = new Headers({ "Content-Type": "application/json" });
9
+ if (token) headers.set("Authorization", `Bearer ${token}`);
10
+ const response = await fetch(endpoint, {
11
+ headers,
12
+ next: { revalidate: 60 }
13
+ });
14
+ if (!response.ok) {
15
+ const message = await response.text();
16
+ throw new Error(`Failed to fetch repository data: ${message}`);
17
+ }
18
+ const data = await response.json();
19
+ return {
20
+ stars: data.stargazers_count,
21
+ forks: data.forks_count
22
+ };
23
+ }
24
+ async function GithubInfo({ repo, owner, token, baseUrl, ...props }) {
25
+ const { stars } = await getRepoStarsAndForks(owner, repo, token, baseUrl);
26
+ const humanizedStars = humanizeNumber(stars);
27
+ return /* @__PURE__ */ jsxs("a", {
28
+ href: `https://github.com/${owner}/${repo}`,
29
+ rel: "noreferrer noopener",
30
+ target: "_blank",
31
+ ...props,
32
+ className: cn("flex flex-col gap-1.5 p-2 rounded-lg text-sm text-fd-foreground/80 transition-colors lg:flex-row lg:items-center hover:text-fd-accent-foreground hover:bg-fd-accent", props.className),
33
+ children: [/* @__PURE__ */ jsxs("p", {
34
+ className: "flex items-center gap-2 truncate",
35
+ children: [
36
+ /* @__PURE__ */ jsxs("svg", {
37
+ fill: "currentColor",
38
+ viewBox: "0 0 24 24",
39
+ className: "size-3.5",
40
+ children: [/* @__PURE__ */ jsx("title", { children: "GitHub" }), /* @__PURE__ */ jsx("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" })]
41
+ }),
42
+ owner,
43
+ "/",
44
+ repo
45
+ ]
46
+ }), /* @__PURE__ */ jsxs("p", {
47
+ className: "flex text-xs items-center gap-1 text-fd-muted-foreground",
48
+ children: [/* @__PURE__ */ jsx(Star, { className: "size-3" }), humanizedStars]
49
+ })]
50
+ });
51
+ }
52
+ /**
53
+ * Converts a number to a human-readable string with K suffix for thousands
54
+ * @example 1500 -> "1.5K", 1000000 -> "1000000"
55
+ */
56
+ function humanizeNumber(num) {
57
+ if (num < 1e3) return num.toString();
58
+ if (num < 1e5) {
59
+ const value = (num / 1e3).toFixed(1);
60
+ return `${value.endsWith(".0") ? value.slice(0, -2) : value}K`;
61
+ }
62
+ if (num < 1e6) return `${Math.floor(num / 1e3)}K`;
63
+ return num.toString();
64
+ }
65
+
66
+ //#endregion
67
+ export { GithubInfo };
68
+ //# sourceMappingURL=github-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-info.js","names":[],"sources":["../../src/components/github-info.tsx"],"sourcesContent":["import { cn } from '@hanzo/docs-ui/cn';\nimport { Star } from 'lucide-react';\nimport { type AnchorHTMLAttributes } from 'react';\n\nasync function getRepoStarsAndForks(\n owner: string,\n repo: string,\n token?: string,\n baseUrl: string = 'https://api.github.com',\n): Promise<{\n stars: number;\n forks: number;\n}> {\n const endpoint = `${baseUrl}/repos/${owner}/${repo}`;\n const headers = new Headers({\n 'Content-Type': 'application/json',\n });\n\n if (token) headers.set('Authorization', `Bearer ${token}`);\n\n const response = await fetch(endpoint, {\n headers,\n next: {\n revalidate: 60,\n },\n } as RequestInit);\n\n if (!response.ok) {\n const message = await response.text();\n\n throw new Error(`Failed to fetch repository data: ${message}`);\n }\n\n const data = await response.json();\n return {\n stars: data.stargazers_count,\n forks: data.forks_count,\n };\n}\n\nexport async function GithubInfo({\n repo,\n owner,\n token,\n baseUrl,\n ...props\n}: AnchorHTMLAttributes<HTMLAnchorElement> & {\n owner: string;\n repo: string;\n token?: string;\n baseUrl?: string;\n}) {\n const { stars } = await getRepoStarsAndForks(owner, repo, token, baseUrl);\n const humanizedStars = humanizeNumber(stars);\n\n return (\n <a\n href={`https://github.com/${owner}/${repo}`}\n rel=\"noreferrer noopener\"\n target=\"_blank\"\n {...props}\n className={cn(\n 'flex flex-col gap-1.5 p-2 rounded-lg text-sm text-fd-foreground/80 transition-colors lg:flex-row lg:items-center hover:text-fd-accent-foreground hover:bg-fd-accent',\n props.className,\n )}\n >\n <p className=\"flex items-center gap-2 truncate\">\n <svg fill=\"currentColor\" viewBox=\"0 0 24 24\" className=\"size-3.5\">\n <title>GitHub</title>\n <path d=\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\" />\n </svg>\n {owner}/{repo}\n </p>\n <p className=\"flex text-xs items-center gap-1 text-fd-muted-foreground\">\n <Star className=\"size-3\" />\n {humanizedStars}\n </p>\n </a>\n );\n}\n\n/**\n * Converts a number to a human-readable string with K suffix for thousands\n * @example 1500 -> \"1.5K\", 1000000 -> \"1000000\"\n */\nfunction humanizeNumber(num: number): string {\n if (num < 1000) {\n return num.toString();\n }\n\n if (num < 100000) {\n // For numbers between 1,000 and 99,999, show with one decimal (e.g., 1.5K)\n const value = (num / 1000).toFixed(1);\n // Remove trailing .0 if present\n const formattedValue = value.endsWith('.0') ? value.slice(0, -2) : value;\n\n return `${formattedValue}K`;\n }\n\n if (num < 1000000) {\n // For numbers between 10,000 and 999,999, show as whole K (e.g., 10K, 999K)\n return `${Math.floor(num / 1000)}K`;\n }\n\n // For 1,000,000 and above, just return the number\n return num.toString();\n}\n"],"mappings":";;;;;AAIA,eAAe,qBACb,OACA,MACA,OACA,UAAkB,0BAIjB;CACD,MAAM,WAAW,GAAG,QAAQ,SAAS,MAAM,GAAG;CAC9C,MAAM,UAAU,IAAI,QAAQ,EAC1B,gBAAgB,oBACjB,CAAC;AAEF,KAAI,MAAO,SAAQ,IAAI,iBAAiB,UAAU,QAAQ;CAE1D,MAAM,WAAW,MAAM,MAAM,UAAU;EACrC;EACA,MAAM,EACJ,YAAY,IACb;EACF,CAAgB;AAEjB,KAAI,CAAC,SAAS,IAAI;EAChB,MAAM,UAAU,MAAM,SAAS,MAAM;AAErC,QAAM,IAAI,MAAM,oCAAoC,UAAU;;CAGhE,MAAM,OAAO,MAAM,SAAS,MAAM;AAClC,QAAO;EACL,OAAO,KAAK;EACZ,OAAO,KAAK;EACb;;AAGH,eAAsB,WAAW,EAC/B,MACA,OACA,OACA,SACA,GAAG,SAMF;CACD,MAAM,EAAE,UAAU,MAAM,qBAAqB,OAAO,MAAM,OAAO,QAAQ;CACzE,MAAM,iBAAiB,eAAe,MAAM;AAE5C,QACE,qBAAC;EACC,MAAM,sBAAsB,MAAM,GAAG;EACrC,KAAI;EACJ,QAAO;EACP,GAAI;EACJ,WAAW,GACT,uKACA,MAAM,UACP;aAED,qBAAC;GAAE,WAAU;;IACX,qBAAC;KAAI,MAAK;KAAe,SAAQ;KAAY,WAAU;gBACrD,oBAAC,qBAAM,WAAc,EACrB,oBAAC,UAAK,GAAE,6sBAA6sB;MACjtB;IACL;IAAM;IAAE;;IACP,EACJ,qBAAC;GAAE,WAAU;cACX,oBAAC,QAAK,WAAU,WAAW,EAC1B;IACC;GACF;;;;;;AAQR,SAAS,eAAe,KAAqB;AAC3C,KAAI,MAAM,IACR,QAAO,IAAI,UAAU;AAGvB,KAAI,MAAM,KAAQ;EAEhB,MAAM,SAAS,MAAM,KAAM,QAAQ,EAAE;AAIrC,SAAO,GAFgB,MAAM,SAAS,KAAK,GAAG,MAAM,MAAM,GAAG,GAAG,GAAG,MAE1C;;AAG3B,KAAI,MAAM,IAER,QAAO,GAAG,KAAK,MAAM,MAAM,IAAK,CAAC;AAInC,QAAO,IAAI,UAAU"}
@@ -0,0 +1,15 @@
1
+ import { ComponentPropsWithoutRef } from "react";
2
+
3
+ //#region src/components/heading.d.ts
4
+ type Types = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
5
+ type HeadingProps<T extends Types> = Omit<ComponentPropsWithoutRef<T>, 'as'> & {
6
+ as?: T;
7
+ };
8
+ declare function Heading<T extends Types = 'h1'>({
9
+ as,
10
+ className,
11
+ ...props
12
+ }: HeadingProps<T>): React.ReactElement;
13
+ //#endregion
14
+ export { Heading };
15
+ //# sourceMappingURL=heading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.d.ts","names":[],"sources":["../../src/components/heading.tsx"],"sourcesContent":[],"mappings":";;;KAIK,KAAA;KACA,uBAAuB,SAAS,KAAK,yBAAyB;EAD9D,EAAA,CAAA,EAEE,CAFF;AAAK,CAAA;AACkB,iBAIZ,OAJY,CAAA,UAIM,KAJN,GAAA,IAAA,CAAA,CAAA;EAAA,EAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAQzB,YARyB,CAQZ,CARY,CAAA,CAAA,EAQP,KAAA,CAAM,YARC"}
@@ -0,0 +1,29 @@
1
+ import { cn } from "@hanzo/docs-ui/cn";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { Link } from "lucide-react";
4
+
5
+ //#region src/components/heading.tsx
6
+ function Heading({ as, className, ...props }) {
7
+ const As = as ?? "h1";
8
+ if (!props.id) return /* @__PURE__ */ jsx(As, {
9
+ className,
10
+ ...props
11
+ });
12
+ return /* @__PURE__ */ jsxs(As, {
13
+ className: cn("flex scroll-m-28 flex-row items-center gap-2", className),
14
+ ...props,
15
+ children: [/* @__PURE__ */ jsx("a", {
16
+ "data-card": "",
17
+ href: `#${props.id}`,
18
+ className: "peer",
19
+ children: props.children
20
+ }), /* @__PURE__ */ jsx(Link, {
21
+ "aria-hidden": true,
22
+ className: "size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100"
23
+ })]
24
+ });
25
+ }
26
+
27
+ //#endregion
28
+ export { Heading };
29
+ //# sourceMappingURL=heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.js","names":[],"sources":["../../src/components/heading.tsx"],"sourcesContent":["import { Link } from 'lucide-react';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { cn } from '@hanzo/docs-ui/cn';\n\ntype Types = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\ntype HeadingProps<T extends Types> = Omit<ComponentPropsWithoutRef<T>, 'as'> & {\n as?: T;\n};\n\nexport function Heading<T extends Types = 'h1'>({\n as,\n className,\n ...props\n}: HeadingProps<T>): React.ReactElement {\n const As = as ?? 'h1';\n\n if (!props.id) return <As className={className} {...props} />;\n\n return (\n <As className={cn('flex scroll-m-28 flex-row items-center gap-2', className)} {...props}>\n <a data-card=\"\" href={`#${props.id}`} className=\"peer\">\n {props.children}\n </a>\n <Link\n aria-hidden\n className=\"size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\"\n />\n </As>\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,QAAgC,EAC9C,IACA,WACA,GAAG,SACmC;CACtC,MAAM,KAAK,MAAM;AAEjB,KAAI,CAAC,MAAM,GAAI,QAAO,oBAAC;EAAc;EAAW,GAAI;GAAS;AAE7D,QACE,qBAAC;EAAG,WAAW,GAAG,gDAAgD,UAAU;EAAE,GAAI;aAChF,oBAAC;GAAE,aAAU;GAAG,MAAM,IAAI,MAAM;GAAM,WAAU;aAC7C,MAAM;IACL,EACJ,oBAAC;GACC;GACA,WAAU;IACV;GACC"}
@@ -0,0 +1,80 @@
1
+ [data-rmiz] {
2
+ display: block;
3
+ position: relative;
4
+ }
5
+
6
+ [data-rmiz-ghost] {
7
+ pointer-events: none;
8
+ position: absolute;
9
+ }
10
+
11
+ [data-rmiz-btn-zoom],
12
+ [data-rmiz-btn-unzoom] {
13
+ display: none;
14
+ }
15
+
16
+ [data-rmiz-content='found'] img {
17
+ cursor: zoom-in;
18
+ }
19
+
20
+ [data-rmiz-modal][open] {
21
+ width: 100vw /* fallback */;
22
+ width: 100dvw;
23
+
24
+ height: 100vh /* fallback */;
25
+ height: 100dvh;
26
+
27
+ background-color: transparent;
28
+ max-width: none;
29
+ max-height: none;
30
+ margin: 0;
31
+ padding: 0;
32
+ position: fixed;
33
+ overflow: hidden;
34
+ }
35
+
36
+ [data-rmiz-modal]:focus-visible {
37
+ outline: none;
38
+ }
39
+
40
+ [data-rmiz-modal-overlay] {
41
+ transition: background-color 0.3s;
42
+ position: absolute;
43
+ inset: 0;
44
+ }
45
+
46
+ [data-rmiz-modal-overlay='visible'] {
47
+ background-color: var(--color-fd-background);
48
+ }
49
+
50
+ [data-rmiz-modal-overlay='hidden'] {
51
+ background-color: transparent;
52
+ }
53
+
54
+ [data-rmiz-modal-content] {
55
+ width: 100%;
56
+ height: 100%;
57
+ position: relative;
58
+ }
59
+
60
+ [data-rmiz-modal]::backdrop {
61
+ display: none;
62
+ }
63
+
64
+ [data-rmiz-modal-img] {
65
+ cursor: zoom-out;
66
+ image-rendering: high-quality;
67
+ transform-origin: 0 0;
68
+ transition: transform 0.3s;
69
+ position: absolute;
70
+ }
71
+
72
+ @media (prefers-reduced-motion: reduce) {
73
+ [data-rmiz-modal-overlay],
74
+ [data-rmiz-modal-img] {
75
+ transition-duration: 0.01ms !important;
76
+ }
77
+ }
78
+
79
+
80
+ /*# sourceMappingURL=image-zoom-CtfZieBH.css.map*/
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-zoom-CtfZieBH.css","names":[],"sources":["../../src/components/image-zoom.css"],"sourcesContent":["[data-rmiz] {\n display: block;\n position: relative;\n}\n\n[data-rmiz-ghost] {\n pointer-events: none;\n position: absolute;\n}\n\n[data-rmiz-btn-zoom],\n[data-rmiz-btn-unzoom] {\n display: none;\n}\n\n[data-rmiz-content='found'] img {\n cursor: zoom-in;\n}\n\n[data-rmiz-modal][open] {\n width: 100vw /* fallback */;\n width: 100dvw;\n\n height: 100vh /* fallback */;\n height: 100dvh;\n\n background-color: transparent;\n max-width: none;\n max-height: none;\n margin: 0;\n padding: 0;\n position: fixed;\n overflow: hidden;\n}\n\n[data-rmiz-modal]:focus-visible {\n outline: none;\n}\n\n[data-rmiz-modal-overlay] {\n transition: background-color 0.3s;\n position: absolute;\n inset: 0;\n}\n\n[data-rmiz-modal-overlay='visible'] {\n background-color: var(--color-fd-background);\n}\n\n[data-rmiz-modal-overlay='hidden'] {\n background-color: transparent;\n}\n\n[data-rmiz-modal-content] {\n width: 100%;\n height: 100%;\n position: relative;\n}\n\n[data-rmiz-modal]::backdrop {\n display: none;\n}\n\n[data-rmiz-modal-img] {\n cursor: zoom-out;\n image-rendering: high-quality;\n transform-origin: 0 0;\n transition: transform 0.3s;\n position: absolute;\n}\n\n@media (prefers-reduced-motion: reduce) {\n [data-rmiz-modal-overlay],\n [data-rmiz-modal-img] {\n transition-duration: 0.01ms !important;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1,77 @@
1
+ [data-rmiz] {
2
+ display: block;
3
+ position: relative;
4
+ }
5
+
6
+ [data-rmiz-ghost] {
7
+ pointer-events: none;
8
+ position: absolute;
9
+ }
10
+
11
+ [data-rmiz-btn-zoom],
12
+ [data-rmiz-btn-unzoom] {
13
+ display: none;
14
+ }
15
+
16
+ [data-rmiz-content='found'] img {
17
+ cursor: zoom-in;
18
+ }
19
+
20
+ [data-rmiz-modal][open] {
21
+ width: 100vw /* fallback */;
22
+ width: 100dvw;
23
+
24
+ height: 100vh /* fallback */;
25
+ height: 100dvh;
26
+
27
+ background-color: transparent;
28
+ max-width: none;
29
+ max-height: none;
30
+ margin: 0;
31
+ padding: 0;
32
+ position: fixed;
33
+ overflow: hidden;
34
+ }
35
+
36
+ [data-rmiz-modal]:focus-visible {
37
+ outline: none;
38
+ }
39
+
40
+ [data-rmiz-modal-overlay] {
41
+ transition: background-color 0.3s;
42
+ position: absolute;
43
+ inset: 0;
44
+ }
45
+
46
+ [data-rmiz-modal-overlay='visible'] {
47
+ background-color: var(--color-fd-background);
48
+ }
49
+
50
+ [data-rmiz-modal-overlay='hidden'] {
51
+ background-color: transparent;
52
+ }
53
+
54
+ [data-rmiz-modal-content] {
55
+ width: 100%;
56
+ height: 100%;
57
+ position: relative;
58
+ }
59
+
60
+ [data-rmiz-modal]::backdrop {
61
+ display: none;
62
+ }
63
+
64
+ [data-rmiz-modal-img] {
65
+ cursor: zoom-out;
66
+ image-rendering: high-quality;
67
+ transform-origin: 0 0;
68
+ transition: transform 0.3s;
69
+ position: absolute;
70
+ }
71
+
72
+ @media (prefers-reduced-motion: reduce) {
73
+ [data-rmiz-modal-overlay],
74
+ [data-rmiz-modal-img] {
75
+ transition-duration: 0.01ms !important;
76
+ }
77
+ }
@@ -0,0 +1,25 @@
1
+ import { ImageProps } from "@hanzo/docs-core/framework";
2
+ import * as react_jsx_runtime19 from "react/jsx-runtime";
3
+ import { ComponentProps } from "react";
4
+ import { UncontrolledProps } from "react-medium-image-zoom";
5
+
6
+ //#region src/components/image-zoom.d.ts
7
+ type ImageZoomProps = ImageProps & {
8
+ /**
9
+ * Image props when zoom in
10
+ */
11
+ zoomInProps?: ComponentProps<'img'>;
12
+ /**
13
+ * Props for `react-medium-image-zoom`
14
+ */
15
+ rmiz?: UncontrolledProps;
16
+ };
17
+ declare function ImageZoom({
18
+ zoomInProps,
19
+ children,
20
+ rmiz,
21
+ ...props
22
+ }: ImageZoomProps): react_jsx_runtime19.JSX.Element;
23
+ //#endregion
24
+ export { ImageZoom, ImageZoomProps };
25
+ //# sourceMappingURL=image-zoom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-zoom.d.ts","names":[],"sources":["../../src/components/image-zoom.tsx"],"sourcesContent":[],"mappings":";;;;;;KAOY,cAAA,GAAiB;;AAA7B;;EAIgB,WAAA,CAAA,EAAA,cAAA,CAAA,KAAA,CAAA;EAKP;;AAeT;EAA4B,IAAA,CAAA,EAfnB,iBAemB;CAAa;AAAU,iBAAnC,SAAA,CAAmC;EAAA,WAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAAkB,cAAlB,CAAA,EAAgC,mBAAA,CAAA,GAAA,CAAA,OAAhC"}
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+
3
+ import "./image-zoom.css";
4
+ import { Image } from "@hanzo/docs-core/framework";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import Zoom from "react-medium-image-zoom";
7
+
8
+ //#region src/components/image-zoom.tsx
9
+ function getImageSrc(src) {
10
+ if (typeof src === "string") return src;
11
+ if (typeof src === "object") {
12
+ if ("default" in src) return src.default.src;
13
+ return src.src;
14
+ }
15
+ return "";
16
+ }
17
+ function ImageZoom({ zoomInProps, children, rmiz, ...props }) {
18
+ return /* @__PURE__ */ jsx(Zoom, {
19
+ zoomMargin: 20,
20
+ wrapElement: "span",
21
+ ...rmiz,
22
+ zoomImg: {
23
+ src: getImageSrc(props.src),
24
+ sizes: void 0,
25
+ ...zoomInProps
26
+ },
27
+ children: children ?? /* @__PURE__ */ jsx(Image, {
28
+ sizes: "(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px",
29
+ ...props
30
+ })
31
+ });
32
+ }
33
+
34
+ //#endregion
35
+ export { ImageZoom };
36
+ //# sourceMappingURL=image-zoom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-zoom.js","names":[],"sources":["../../src/components/image-zoom.tsx"],"sourcesContent":["'use client';\n\nimport { Image, type ImageProps } from '@hanzo/docs-core/framework';\nimport type { ComponentProps } from 'react';\nimport Zoom, { type UncontrolledProps } from 'react-medium-image-zoom';\nimport './image-zoom.css';\n\nexport type ImageZoomProps = ImageProps & {\n /**\n * Image props when zoom in\n */\n zoomInProps?: ComponentProps<'img'>;\n\n /**\n * Props for `react-medium-image-zoom`\n */\n rmiz?: UncontrolledProps;\n};\n\nfunction getImageSrc(src: ImageProps['src']): string {\n if (typeof src === 'string') return src;\n\n if (typeof src === 'object') {\n // Next.js\n if ('default' in src) return (src as { default: { src: string } }).default.src;\n return src.src;\n }\n\n return '';\n}\n\nexport function ImageZoom({ zoomInProps, children, rmiz, ...props }: ImageZoomProps) {\n return (\n <Zoom\n zoomMargin={20}\n wrapElement=\"span\"\n {...rmiz}\n zoomImg={{\n src: getImageSrc(props.src),\n sizes: undefined,\n ...zoomInProps,\n }}\n >\n {children ?? (\n <Image sizes=\"(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px\" {...props} />\n )}\n </Zoom>\n );\n}\n"],"mappings":";;;;;;;;AAmBA,SAAS,YAAY,KAAgC;AACnD,KAAI,OAAO,QAAQ,SAAU,QAAO;AAEpC,KAAI,OAAO,QAAQ,UAAU;AAE3B,MAAI,aAAa,IAAK,QAAQ,IAAqC,QAAQ;AAC3E,SAAO,IAAI;;AAGb,QAAO;;AAGT,SAAgB,UAAU,EAAE,aAAa,UAAU,MAAM,GAAG,SAAyB;AACnF,QACE,oBAAC;EACC,YAAY;EACZ,aAAY;EACZ,GAAI;EACJ,SAAS;GACP,KAAK,YAAY,MAAM,IAAI;GAC3B,OAAO;GACP,GAAG;GACJ;YAEA,YACC,oBAAC;GAAM,OAAM;GAA4D,GAAI;IAAS;GAEnF"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,16 @@
1
+ import { Collapsible } from "./ui/collapsible.js";
2
+ import * as react_jsx_runtime18 from "react/jsx-runtime";
3
+ import { ComponentProps } from "react";
4
+ import { TOCItemType } from "@hanzo/docs-core/toc";
5
+
6
+ //#region src/components/inline-toc.d.ts
7
+ interface InlineTocProps extends ComponentProps<typeof Collapsible> {
8
+ items: TOCItemType[];
9
+ }
10
+ declare function InlineTOC({
11
+ items,
12
+ ...props
13
+ }: InlineTocProps): react_jsx_runtime18.JSX.Element;
14
+ //#endregion
15
+ export { InlineTOC, InlineTocProps };
16
+ //# sourceMappingURL=inline-toc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-toc.d.ts","names":[],"sources":["../../src/components/inline-toc.tsx"],"sourcesContent":[],"mappings":";;;;;;UAQiB,cAAA,SAAuB,sBAAsB;SACrD;;AADQ,iBAID,SAAA,CAJgB;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAIe,cAJf,CAAA,EAI6B,mBAAA,CAAA,GAAA,CAAA,OAJ7B"}
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+
3
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./ui/collapsible.js";
4
+ import { cn } from "@hanzo/docs-ui/cn";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { ChevronDown } from "lucide-react";
7
+
8
+ //#region src/components/inline-toc.tsx
9
+ function InlineTOC({ items, ...props }) {
10
+ return /* @__PURE__ */ jsxs(Collapsible, {
11
+ ...props,
12
+ className: cn("not-prose rounded-lg border bg-fd-card text-fd-card-foreground", props.className),
13
+ children: [/* @__PURE__ */ jsxs(CollapsibleTrigger, {
14
+ className: "group inline-flex w-full items-center justify-between px-4 py-2.5 font-medium",
15
+ children: [props.children ?? "Table of Contents", /* @__PURE__ */ jsx(ChevronDown, { className: "size-4 transition-transform duration-200 group-data-[state=open]:rotate-180" })]
16
+ }), /* @__PURE__ */ jsx(CollapsibleContent, { children: /* @__PURE__ */ jsx("div", {
17
+ className: "flex flex-col p-4 pt-0 text-sm text-fd-muted-foreground",
18
+ children: items.map((item) => /* @__PURE__ */ jsx("a", {
19
+ href: item.url,
20
+ className: "border-s py-1.5 hover:text-fd-accent-foreground",
21
+ style: { paddingInlineStart: 12 * Math.max(item.depth - 1, 0) },
22
+ children: item.title
23
+ }, item.url))
24
+ }) })]
25
+ });
26
+ }
27
+
28
+ //#endregion
29
+ export { InlineTOC };
30
+ //# sourceMappingURL=inline-toc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-toc.js","names":[],"sources":["../../src/components/inline-toc.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronDown } from 'lucide-react';\nimport type { TOCItemType } from '@hanzo/docs-core/toc';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from './ui/collapsible';\nimport type { ComponentProps } from 'react';\nimport { cn } from '@hanzo/docs-ui/cn';\n\nexport interface InlineTocProps extends ComponentProps<typeof Collapsible> {\n items: TOCItemType[];\n}\n\nexport function InlineTOC({ items, ...props }: InlineTocProps) {\n return (\n <Collapsible\n {...props}\n className={cn(\n 'not-prose rounded-lg border bg-fd-card text-fd-card-foreground',\n props.className,\n )}\n >\n <CollapsibleTrigger className=\"group inline-flex w-full items-center justify-between px-4 py-2.5 font-medium\">\n {props.children ?? 'Table of Contents'}\n <ChevronDown className=\"size-4 transition-transform duration-200 group-data-[state=open]:rotate-180\" />\n </CollapsibleTrigger>\n <CollapsibleContent>\n <div className=\"flex flex-col p-4 pt-0 text-sm text-fd-muted-foreground\">\n {items.map((item) => (\n <a\n key={item.url}\n href={item.url}\n className=\"border-s py-1.5 hover:text-fd-accent-foreground\"\n style={{\n paddingInlineStart: 12 * Math.max(item.depth - 1, 0),\n }}\n >\n {item.title}\n </a>\n ))}\n </div>\n </CollapsibleContent>\n </Collapsible>\n );\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,UAAU,EAAE,OAAO,GAAG,SAAyB;AAC7D,QACE,qBAAC;EACC,GAAI;EACJ,WAAW,GACT,kEACA,MAAM,UACP;aAED,qBAAC;GAAmB,WAAU;cAC3B,MAAM,YAAY,qBACnB,oBAAC,eAAY,WAAU,gFAAgF;IACpF,EACrB,oBAAC,gCACC,oBAAC;GAAI,WAAU;aACZ,MAAM,KAAK,SACV,oBAAC;IAEC,MAAM,KAAK;IACX,WAAU;IACV,OAAO,EACL,oBAAoB,KAAK,KAAK,IAAI,KAAK,QAAQ,GAAG,EAAE,EACrD;cAEA,KAAK;MAPD,KAAK,IAQR,CACJ;IACE,GACa;GACT"}
@@ -0,0 +1,109 @@
1
+ import { CollapsibleContentProps, CollapsibleTriggerProps } from "../ui/collapsible.js";
2
+ import { ScrollAreaProps } from "../ui/scroll-area.js";
3
+ import { LinkProps } from "@hanzo/docs-core/link";
4
+ import * as react_jsx_runtime20 from "react/jsx-runtime";
5
+ import * as react0 from "react";
6
+ import { ComponentProps, PointerEvent, ReactNode, RefObject } from "react";
7
+
8
+ //#region src/components/sidebar/base.d.ts
9
+ declare namespace base_d_exports {
10
+ export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, useFolder, useFolderDepth, useSidebar };
11
+ }
12
+ interface SidebarContext {
13
+ open: boolean;
14
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
15
+ collapsed: boolean;
16
+ setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;
17
+ /**
18
+ * When set to false, don't close the sidebar when navigate to another page
19
+ */
20
+ closeOnRedirect: RefObject<boolean>;
21
+ defaultOpenLevel: number;
22
+ prefetch: boolean;
23
+ mode: Mode;
24
+ }
25
+ interface SidebarProviderProps {
26
+ /**
27
+ * Open folders by default if their level is lower or equal to a specific level
28
+ * (Starting from 1)
29
+ *
30
+ * @defaultValue 0
31
+ */
32
+ defaultOpenLevel?: number;
33
+ /**
34
+ * Prefetch links
35
+ *
36
+ * @defaultValue true
37
+ */
38
+ prefetch?: boolean;
39
+ children?: ReactNode;
40
+ }
41
+ type Mode = 'drawer' | 'full';
42
+ declare const SidebarContext: react0.Context<SidebarContext | null>;
43
+ declare function SidebarProvider({
44
+ defaultOpenLevel,
45
+ prefetch,
46
+ children
47
+ }: SidebarProviderProps): react_jsx_runtime20.JSX.Element;
48
+ declare function useSidebar(): SidebarContext;
49
+ declare function useFolder(): {
50
+ open: boolean;
51
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
52
+ depth: number;
53
+ collapsible: boolean;
54
+ } | null;
55
+ declare function useFolderDepth(): number;
56
+ declare function SidebarContent({
57
+ children
58
+ }: {
59
+ children: (state: {
60
+ ref: RefObject<HTMLElement | null>;
61
+ collapsed: boolean;
62
+ hovered: boolean;
63
+ onPointerEnter: (event: PointerEvent) => void;
64
+ onPointerLeave: (event: PointerEvent) => void;
65
+ }) => ReactNode;
66
+ }): ReactNode;
67
+ declare function SidebarDrawerOverlay(props: ComponentProps<'div'>): react_jsx_runtime20.JSX.Element | undefined;
68
+ declare function SidebarDrawerContent({
69
+ className,
70
+ children,
71
+ ...props
72
+ }: ComponentProps<'aside'>): react_jsx_runtime20.JSX.Element | undefined;
73
+ declare function SidebarViewport(props: ScrollAreaProps): react_jsx_runtime20.JSX.Element;
74
+ declare function SidebarSeparator(props: ComponentProps<'p'>): react_jsx_runtime20.JSX.Element;
75
+ declare function SidebarItem({
76
+ icon,
77
+ children,
78
+ ...props
79
+ }: LinkProps & {
80
+ icon?: ReactNode;
81
+ }): react_jsx_runtime20.JSX.Element;
82
+ declare function SidebarFolder({
83
+ defaultOpen: defaultOpenProp,
84
+ collapsible,
85
+ active,
86
+ children,
87
+ ...props
88
+ }: ComponentProps<'div'> & {
89
+ active?: boolean;
90
+ defaultOpen?: boolean;
91
+ collapsible?: boolean;
92
+ }): react_jsx_runtime20.JSX.Element;
93
+ declare function SidebarFolderTrigger({
94
+ children,
95
+ ...props
96
+ }: CollapsibleTriggerProps): react_jsx_runtime20.JSX.Element;
97
+ declare function SidebarFolderLink({
98
+ children,
99
+ ...props
100
+ }: LinkProps): react_jsx_runtime20.JSX.Element;
101
+ declare function SidebarFolderContent(props: CollapsibleContentProps): react_jsx_runtime20.JSX.Element;
102
+ declare function SidebarTrigger({
103
+ children,
104
+ ...props
105
+ }: ComponentProps<'button'>): react_jsx_runtime20.JSX.Element;
106
+ declare function SidebarCollapseTrigger(props: ComponentProps<'button'>): react_jsx_runtime20.JSX.Element;
107
+ //#endregion
108
+ export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, base_d_exports, useFolder, useFolderDepth, useSidebar };
109
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../../../src/components/sidebar/base.tsx"],"sourcesContent":[],"mappings":"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"}