@fumadocs/base-ui 16.6.10 → 16.6.12

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 (167) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +6 -11
  2. package/dist/components/accordion.js +2 -4
  3. package/dist/components/accordion.js.map +1 -1
  4. package/dist/components/banner.js +2 -4
  5. package/dist/components/banner.js.map +1 -1
  6. package/dist/components/callout.js +1 -2
  7. package/dist/components/callout.js.map +1 -1
  8. package/dist/components/card.js +1 -2
  9. package/dist/components/card.js.map +1 -1
  10. package/dist/components/codeblock.js +2 -4
  11. package/dist/components/codeblock.js.map +1 -1
  12. package/dist/components/codeblock.rsc.js +5 -6
  13. package/dist/components/codeblock.rsc.js.map +1 -1
  14. package/dist/components/dialog/search-algolia.js +2 -4
  15. package/dist/components/dialog/search-algolia.js.map +1 -1
  16. package/dist/components/dialog/search-default.js +2 -4
  17. package/dist/components/dialog/search-default.js.map +1 -1
  18. package/dist/components/dialog/search-orama.js +2 -4
  19. package/dist/components/dialog/search-orama.js.map +1 -1
  20. package/dist/components/dialog/search.js +2 -4
  21. package/dist/components/dialog/search.js.map +1 -1
  22. package/dist/components/dynamic-codeblock.core.js +2 -4
  23. package/dist/components/dynamic-codeblock.core.js.map +1 -1
  24. package/dist/components/dynamic-codeblock.js +2 -4
  25. package/dist/components/dynamic-codeblock.js.map +1 -1
  26. package/dist/components/files.js +2 -4
  27. package/dist/components/files.js.map +1 -1
  28. package/dist/components/github-info.js +1 -2
  29. package/dist/components/github-info.js.map +1 -1
  30. package/dist/components/heading.js +1 -2
  31. package/dist/components/heading.js.map +1 -1
  32. package/dist/components/image-zoom.js +3 -5
  33. package/dist/components/image-zoom.js.map +1 -1
  34. package/dist/components/inline-toc.js +2 -4
  35. package/dist/components/inline-toc.js.map +1 -1
  36. package/dist/components/sidebar/base.js +2 -4
  37. package/dist/components/sidebar/base.js.map +1 -1
  38. package/dist/components/sidebar/link-item.js +2 -4
  39. package/dist/components/sidebar/link-item.js.map +1 -1
  40. package/dist/components/sidebar/page-tree.js +1 -2
  41. package/dist/components/sidebar/page-tree.js.map +1 -1
  42. package/dist/components/sidebar/tabs/dropdown.js +2 -4
  43. package/dist/components/sidebar/tabs/dropdown.js.map +1 -1
  44. package/dist/components/sidebar/tabs/index.js +1 -2
  45. package/dist/components/sidebar/tabs/index.js.map +1 -1
  46. package/dist/components/steps.js +1 -2
  47. package/dist/components/steps.js.map +1 -1
  48. package/dist/components/tabs.js +2 -4
  49. package/dist/components/tabs.js.map +1 -1
  50. package/dist/components/toc/clerk.js +2 -4
  51. package/dist/components/toc/clerk.js.map +1 -1
  52. package/dist/components/toc/default.js +2 -4
  53. package/dist/components/toc/default.js.map +1 -1
  54. package/dist/components/toc/index.js +2 -4
  55. package/dist/components/toc/index.js.map +1 -1
  56. package/dist/components/type-table.js +2 -4
  57. package/dist/components/type-table.js.map +1 -1
  58. package/dist/components/ui/accordion.js +2 -4
  59. package/dist/components/ui/accordion.js.map +1 -1
  60. package/dist/components/ui/button.d.ts +1 -1
  61. package/dist/components/ui/button.js +1 -2
  62. package/dist/components/ui/button.js.map +1 -1
  63. package/dist/components/ui/collapsible.js +2 -4
  64. package/dist/components/ui/collapsible.js.map +1 -1
  65. package/dist/components/ui/navigation-menu.js +2 -4
  66. package/dist/components/ui/navigation-menu.js.map +1 -1
  67. package/dist/components/ui/popover.js +2 -4
  68. package/dist/components/ui/popover.js.map +1 -1
  69. package/dist/components/ui/scroll-area.js +1 -2
  70. package/dist/components/ui/scroll-area.js.map +1 -1
  71. package/dist/components/ui/tabs.js +2 -4
  72. package/dist/components/ui/tabs.js.map +1 -1
  73. package/dist/contexts/i18n.js +2 -4
  74. package/dist/contexts/i18n.js.map +1 -1
  75. package/dist/contexts/search.js +2 -4
  76. package/dist/contexts/search.js.map +1 -1
  77. package/dist/contexts/tree.js +2 -4
  78. package/dist/contexts/tree.js.map +1 -1
  79. package/dist/i18n.js +1 -2
  80. package/dist/i18n.js.map +1 -1
  81. package/dist/layouts/docs/client.js +2 -4
  82. package/dist/layouts/docs/client.js.map +1 -1
  83. package/dist/layouts/docs/index.js +1 -2
  84. package/dist/layouts/docs/index.js.map +1 -1
  85. package/dist/layouts/docs/page/client.js +2 -4
  86. package/dist/layouts/docs/page/client.js.map +1 -1
  87. package/dist/layouts/docs/page/index.js +1 -2
  88. package/dist/layouts/docs/page/index.js.map +1 -1
  89. package/dist/layouts/docs/sidebar.js +2 -4
  90. package/dist/layouts/docs/sidebar.js.map +1 -1
  91. package/dist/layouts/flux/index.js +2 -4
  92. package/dist/layouts/flux/index.js.map +1 -1
  93. package/dist/layouts/flux/page/client.js +2 -4
  94. package/dist/layouts/flux/page/client.js.map +1 -1
  95. package/dist/layouts/flux/page/index.js +1 -2
  96. package/dist/layouts/flux/page/index.js.map +1 -1
  97. package/dist/layouts/flux/sidebar.js +2 -4
  98. package/dist/layouts/flux/sidebar.js.map +1 -1
  99. package/dist/layouts/flux/tab-dropdown.js +2 -4
  100. package/dist/layouts/flux/tab-dropdown.js.map +1 -1
  101. package/dist/layouts/home/client.d.ts +1 -1
  102. package/dist/layouts/home/client.js +2 -4
  103. package/dist/layouts/home/client.js.map +1 -1
  104. package/dist/layouts/home/index.js +1 -2
  105. package/dist/layouts/home/index.js.map +1 -1
  106. package/dist/layouts/home/navbar.js +2 -4
  107. package/dist/layouts/home/navbar.js.map +1 -1
  108. package/dist/layouts/home/not-found.js +1 -2
  109. package/dist/layouts/home/not-found.js.map +1 -1
  110. package/dist/layouts/notebook/client.d.ts +1 -1
  111. package/dist/layouts/notebook/client.d.ts.map +1 -1
  112. package/dist/layouts/notebook/client.js +2 -4
  113. package/dist/layouts/notebook/client.js.map +1 -1
  114. package/dist/layouts/notebook/index.js +1 -2
  115. package/dist/layouts/notebook/index.js.map +1 -1
  116. package/dist/layouts/notebook/page/client.js +2 -4
  117. package/dist/layouts/notebook/page/client.js.map +1 -1
  118. package/dist/layouts/notebook/page/index.js +1 -2
  119. package/dist/layouts/notebook/page/index.js.map +1 -1
  120. package/dist/layouts/notebook/sidebar.js +2 -4
  121. package/dist/layouts/notebook/sidebar.js.map +1 -1
  122. package/dist/layouts/shared/index.d.ts +1 -1
  123. package/dist/layouts/shared/index.d.ts.map +1 -1
  124. package/dist/layouts/shared/index.js +1 -2
  125. package/dist/layouts/shared/index.js.map +1 -1
  126. package/dist/layouts/shared/language-toggle.js +2 -4
  127. package/dist/layouts/shared/language-toggle.js.map +1 -1
  128. package/dist/layouts/shared/search-toggle.js +2 -4
  129. package/dist/layouts/shared/search-toggle.js.map +1 -1
  130. package/dist/layouts/shared/theme-toggle.js +2 -4
  131. package/dist/layouts/shared/theme-toggle.js.map +1 -1
  132. package/dist/mdx.js +1 -2
  133. package/dist/mdx.js.map +1 -1
  134. package/dist/mdx.server.js +1 -2
  135. package/dist/mdx.server.js.map +1 -1
  136. package/dist/og/takumi.js +1 -2
  137. package/dist/og/takumi.js.map +1 -1
  138. package/dist/og.js +1 -2
  139. package/dist/og.js.map +1 -1
  140. package/dist/page.js +2 -4
  141. package/dist/page.js.map +1 -1
  142. package/dist/provider/base.js +2 -4
  143. package/dist/provider/base.js.map +1 -1
  144. package/dist/provider/next.js +2 -4
  145. package/dist/provider/next.js.map +1 -1
  146. package/dist/provider/react-router.js +2 -4
  147. package/dist/provider/react-router.js.map +1 -1
  148. package/dist/provider/tanstack.js +2 -4
  149. package/dist/provider/tanstack.js.map +1 -1
  150. package/dist/provider/waku.js +2 -4
  151. package/dist/provider/waku.js.map +1 -1
  152. package/dist/tailwind/typography.js +1 -2
  153. package/dist/utils/cn.js +1 -2
  154. package/dist/utils/link-item.js +2 -4
  155. package/dist/utils/link-item.js.map +1 -1
  156. package/dist/utils/merge-refs.js +1 -1
  157. package/dist/utils/urls.js +1 -1
  158. package/dist/utils/use-copy-button.js +2 -4
  159. package/dist/utils/use-copy-button.js.map +1 -1
  160. package/dist/utils/use-footer-items.js +2 -4
  161. package/dist/utils/use-footer-items.js.map +1 -1
  162. package/dist/utils/use-is-scroll-top.js +2 -4
  163. package/dist/utils/use-is-scroll-top.js.map +1 -1
  164. package/package.json +5 -5
  165. package/dist/components/image-zoom-DGvp66QF.css +0 -80
  166. package/dist/components/image-zoom-DGvp66QF.css.map +0 -1
  167. package/dist/components/image-zoom2.js +0 -1
@@ -1,12 +1,10 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useI18n } from "../../contexts/i18n.js";
4
3
  import { cn } from "../../utils/cn.js";
5
4
  import { buttonVariants } from "../../components/ui/button.js";
6
5
  import { useSearchContext } from "../../contexts/search.js";
7
6
  import { jsx, jsxs } from "react/jsx-runtime";
8
7
  import { Search } from "lucide-react";
9
-
10
8
  //#region src/layouts/shared/search-toggle.tsx
11
9
  function SearchToggle({ hideIfDisabled, size = "icon-sm", color = "ghost", ...props }) {
12
10
  const { setOpenSearch, enabled } = useSearchContext();
@@ -50,7 +48,7 @@ function LargeSearchToggle({ hideIfDisabled, ...props }) {
50
48
  ]
51
49
  });
52
50
  }
53
-
54
51
  //#endregion
55
52
  export { LargeSearchToggle, SearchToggle };
53
+
56
54
  //# sourceMappingURL=search-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-toggle.js","names":[],"sources":["../../../src/layouts/shared/search-toggle.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { Search } from 'lucide-react';\nimport { useSearchContext } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\nimport { cn } from '@/utils/cn';\nimport { type ButtonProps, buttonVariants } from '@/components/ui/button';\n\ninterface SearchToggleProps extends Omit<ComponentProps<'button'>, 'color'>, ButtonProps {\n hideIfDisabled?: boolean;\n}\n\nexport function SearchToggle({\n hideIfDisabled,\n size = 'icon-sm',\n color = 'ghost',\n ...props\n}: SearchToggleProps) {\n const { setOpenSearch, enabled } = useSearchContext();\n if (hideIfDisabled && !enabled) return null;\n\n return (\n <button\n type=\"button\"\n className={cn(\n buttonVariants({\n size,\n color,\n }),\n props.className,\n )}\n data-search=\"\"\n aria-label=\"Open Search\"\n onClick={() => {\n setOpenSearch(true);\n }}\n >\n <Search />\n </button>\n );\n}\n\nexport function LargeSearchToggle({\n hideIfDisabled,\n ...props\n}: ComponentProps<'button'> & {\n hideIfDisabled?: boolean;\n}) {\n const { enabled, hotKey, setOpenSearch } = useSearchContext();\n const { text } = useI18n();\n if (hideIfDisabled && !enabled) return null;\n\n return (\n <button\n type=\"button\"\n data-search-full=\"\"\n {...props}\n className={cn(\n 'inline-flex items-center gap-2 rounded-lg border bg-fd-secondary/50 p-1.5 ps-2 text-sm text-fd-muted-foreground transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring',\n props.className,\n )}\n onClick={() => {\n setOpenSearch(true);\n }}\n >\n <Search className=\"size-4\" />\n {text.search}\n <div className=\"ms-auto inline-flex gap-0.5\">\n {hotKey.map((k, i) => (\n <kbd key={i} className=\"rounded-md border bg-fd-background px-1.5\">\n {k.display}\n </kbd>\n ))}\n </div>\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;AAYA,SAAgB,aAAa,EAC3B,gBACA,OAAO,WACP,QAAQ,SACR,GAAG,SACiB;CACpB,MAAM,EAAE,eAAe,YAAY,kBAAkB;AACrD,KAAI,kBAAkB,CAAC,QAAS,QAAO;AAEvC,QACE,oBAAC;EACC,MAAK;EACL,WAAW,GACT,eAAe;GACb;GACA;GACD,CAAC,EACF,MAAM,UACP;EACD,eAAY;EACZ,cAAW;EACX,eAAe;AACb,iBAAc,KAAK;;YAGrB,oBAAC,WAAS;GACH;;AAIb,SAAgB,kBAAkB,EAChC,gBACA,GAAG,SAGF;CACD,MAAM,EAAE,SAAS,QAAQ,kBAAkB,kBAAkB;CAC7D,MAAM,EAAE,SAAS,SAAS;AAC1B,KAAI,kBAAkB,CAAC,QAAS,QAAO;AAEvC,QACE,qBAAC;EACC,MAAK;EACL,oBAAiB;EACjB,GAAI;EACJ,WAAW,GACT,mQACA,MAAM,UACP;EACD,eAAe;AACb,iBAAc,KAAK;;;GAGrB,oBAAC,UAAO,WAAU,WAAW;GAC5B,KAAK;GACN,oBAAC;IAAI,WAAU;cACZ,OAAO,KAAK,GAAG,MACd,oBAAC;KAAY,WAAU;eACpB,EAAE;OADK,EAEJ,CACN;KACE;;GACC"}
1
+ {"version":3,"file":"search-toggle.js","names":[],"sources":["../../../src/layouts/shared/search-toggle.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { Search } from 'lucide-react';\nimport { useSearchContext } from '@/contexts/search';\nimport { useI18n } from '@/contexts/i18n';\nimport { cn } from '@/utils/cn';\nimport { type ButtonProps, buttonVariants } from '@/components/ui/button';\n\ninterface SearchToggleProps extends Omit<ComponentProps<'button'>, 'color'>, ButtonProps {\n hideIfDisabled?: boolean;\n}\n\nexport function SearchToggle({\n hideIfDisabled,\n size = 'icon-sm',\n color = 'ghost',\n ...props\n}: SearchToggleProps) {\n const { setOpenSearch, enabled } = useSearchContext();\n if (hideIfDisabled && !enabled) return null;\n\n return (\n <button\n type=\"button\"\n className={cn(\n buttonVariants({\n size,\n color,\n }),\n props.className,\n )}\n data-search=\"\"\n aria-label=\"Open Search\"\n onClick={() => {\n setOpenSearch(true);\n }}\n >\n <Search />\n </button>\n );\n}\n\nexport function LargeSearchToggle({\n hideIfDisabled,\n ...props\n}: ComponentProps<'button'> & {\n hideIfDisabled?: boolean;\n}) {\n const { enabled, hotKey, setOpenSearch } = useSearchContext();\n const { text } = useI18n();\n if (hideIfDisabled && !enabled) return null;\n\n return (\n <button\n type=\"button\"\n data-search-full=\"\"\n {...props}\n className={cn(\n 'inline-flex items-center gap-2 rounded-lg border bg-fd-secondary/50 p-1.5 ps-2 text-sm text-fd-muted-foreground transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring',\n props.className,\n )}\n onClick={() => {\n setOpenSearch(true);\n }}\n >\n <Search className=\"size-4\" />\n {text.search}\n <div className=\"ms-auto inline-flex gap-0.5\">\n {hotKey.map((k, i) => (\n <kbd key={i} className=\"rounded-md border bg-fd-background px-1.5\">\n {k.display}\n </kbd>\n ))}\n </div>\n </button>\n );\n}\n"],"mappings":";;;;;;;;AAYA,SAAgB,aAAa,EAC3B,gBACA,OAAO,WACP,QAAQ,SACR,GAAG,SACiB;CACpB,MAAM,EAAE,eAAe,YAAY,kBAAkB;AACrD,KAAI,kBAAkB,CAAC,QAAS,QAAO;AAEvC,QACE,oBAAC,UAAD;EACE,MAAK;EACL,WAAW,GACT,eAAe;GACb;GACA;GACD,CAAC,EACF,MAAM,UACP;EACD,eAAY;EACZ,cAAW;EACX,eAAe;AACb,iBAAc,KAAK;;YAGrB,oBAAC,QAAD,EAAU,CAAA;EACH,CAAA;;AAIb,SAAgB,kBAAkB,EAChC,gBACA,GAAG,SAGF;CACD,MAAM,EAAE,SAAS,QAAQ,kBAAkB,kBAAkB;CAC7D,MAAM,EAAE,SAAS,SAAS;AAC1B,KAAI,kBAAkB,CAAC,QAAS,QAAO;AAEvC,QACE,qBAAC,UAAD;EACE,MAAK;EACL,oBAAiB;EACjB,GAAI;EACJ,WAAW,GACT,mQACA,MAAM,UACP;EACD,eAAe;AACb,iBAAc,KAAK;;YATvB;GAYE,oBAAC,QAAD,EAAQ,WAAU,UAAW,CAAA;GAC5B,KAAK;GACN,oBAAC,OAAD;IAAK,WAAU;cACZ,OAAO,KAAK,GAAG,MACd,oBAAC,OAAD;KAAa,WAAU;eACpB,EAAE;KACC,EAFI,EAEJ,CACN;IACE,CAAA;GACC"}
@@ -1,12 +1,10 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { cn } from "../../utils/cn.js";
4
3
  import { useEffect, useState } from "react";
5
4
  import { jsx } from "react/jsx-runtime";
6
5
  import { Airplay, Moon, Sun } from "lucide-react";
7
6
  import { cva } from "class-variance-authority";
8
7
  import { useTheme } from "next-themes";
9
-
10
8
  //#region src/layouts/shared/theme-toggle.tsx
11
9
  const itemVariants = cva("size-6.5 p-1.5 text-fd-muted-foreground", { variants: { active: {
12
10
  true: "bg-fd-accent text-fd-accent-foreground",
@@ -56,7 +54,7 @@ function ThemeToggle({ className, mode = "light-dark", ...props }) {
56
54
  }, key))
57
55
  });
58
56
  }
59
-
60
57
  //#endregion
61
58
  export { ThemeToggle };
59
+
62
60
  //# sourceMappingURL=theme-toggle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-toggle.js","names":[],"sources":["../../../src/layouts/shared/theme-toggle.tsx"],"sourcesContent":["'use client';\nimport { cva } from 'class-variance-authority';\nimport { Airplay, Moon, Sun } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { ComponentProps, useEffect, useState } from 'react';\nimport { cn } from '@/utils/cn';\n\nconst itemVariants = cva('size-6.5 p-1.5 text-fd-muted-foreground', {\n variants: {\n active: {\n true: 'bg-fd-accent text-fd-accent-foreground',\n false: 'text-fd-muted-foreground',\n },\n },\n});\n\nconst full = [['light', Sun] as const, ['dark', Moon] as const, ['system', Airplay] as const];\n\nexport function ThemeToggle({\n className,\n mode = 'light-dark',\n ...props\n}: ComponentProps<'div'> & {\n mode?: 'light-dark' | 'light-dark-system';\n}) {\n const { setTheme, theme, resolvedTheme } = useTheme();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n const container = cn(\n 'inline-flex items-center rounded-full border p-1 *:rounded-full',\n className,\n );\n\n if (mode === 'light-dark') {\n const value = mounted ? resolvedTheme : null;\n\n return (\n <button\n className={container}\n aria-label={`Toggle Theme`}\n onClick={() => setTheme(value === 'light' ? 'dark' : 'light')}\n data-theme-toggle=\"\"\n >\n {full.map(([key, Icon]) => {\n if (key === 'system') return;\n\n return (\n <Icon\n key={key}\n fill=\"currentColor\"\n className={cn(itemVariants({ active: value === key }))}\n />\n );\n })}\n </button>\n );\n }\n\n const value = mounted ? theme : null;\n\n return (\n <div className={container} data-theme-toggle=\"\" {...props}>\n {full.map(([key, Icon]) => (\n <button\n key={key}\n aria-label={key}\n className={cn(itemVariants({ active: value === key }))}\n onClick={() => setTheme(key)}\n >\n <Icon className=\"size-full\" fill=\"currentColor\" />\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAOA,MAAM,eAAe,IAAI,2CAA2C,EAClE,UAAU,EACR,QAAQ;CACN,MAAM;CACN,OAAO;CACR,EACF,EACF,CAAC;AAEF,MAAM,OAAO;CAAC,CAAC,SAAS,IAAI;CAAW,CAAC,QAAQ,KAAK;CAAW,CAAC,UAAU,QAAQ;CAAU;AAE7F,SAAgB,YAAY,EAC1B,WACA,OAAO,cACP,GAAG,SAGF;CACD,MAAM,EAAE,UAAU,OAAO,kBAAkB,UAAU;CACrD,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;AAE7C,iBAAgB;AACd,aAAW,KAAK;IACf,EAAE,CAAC;CAEN,MAAM,YAAY,GAChB,mEACA,UACD;AAED,KAAI,SAAS,cAAc;EACzB,MAAM,QAAQ,UAAU,gBAAgB;AAExC,SACE,oBAAC;GACC,WAAW;GACX,cAAY;GACZ,eAAe,SAAS,UAAU,UAAU,SAAS,QAAQ;GAC7D,qBAAkB;aAEjB,KAAK,KAAK,CAAC,KAAK,UAAU;AACzB,QAAI,QAAQ,SAAU;AAEtB,WACE,oBAAC;KAEC,MAAK;KACL,WAAW,GAAG,aAAa,EAAE,QAAQ,UAAU,KAAK,CAAC,CAAC;OAFjD,IAGL;KAEJ;IACK;;CAIb,MAAM,QAAQ,UAAU,QAAQ;AAEhC,QACE,oBAAC;EAAI,WAAW;EAAW,qBAAkB;EAAG,GAAI;YACjD,KAAK,KAAK,CAAC,KAAK,UACf,oBAAC;GAEC,cAAY;GACZ,WAAW,GAAG,aAAa,EAAE,QAAQ,UAAU,KAAK,CAAC,CAAC;GACtD,eAAe,SAAS,IAAI;aAE5B,oBAAC;IAAK,WAAU;IAAY,MAAK;KAAiB;KAL7C,IAME,CACT;GACE"}
1
+ {"version":3,"file":"theme-toggle.js","names":[],"sources":["../../../src/layouts/shared/theme-toggle.tsx"],"sourcesContent":["'use client';\nimport { cva } from 'class-variance-authority';\nimport { Airplay, Moon, Sun } from 'lucide-react';\nimport { useTheme } from 'next-themes';\nimport { ComponentProps, useEffect, useState } from 'react';\nimport { cn } from '@/utils/cn';\n\nconst itemVariants = cva('size-6.5 p-1.5 text-fd-muted-foreground', {\n variants: {\n active: {\n true: 'bg-fd-accent text-fd-accent-foreground',\n false: 'text-fd-muted-foreground',\n },\n },\n});\n\nconst full = [['light', Sun] as const, ['dark', Moon] as const, ['system', Airplay] as const];\n\nexport function ThemeToggle({\n className,\n mode = 'light-dark',\n ...props\n}: ComponentProps<'div'> & {\n mode?: 'light-dark' | 'light-dark-system';\n}) {\n const { setTheme, theme, resolvedTheme } = useTheme();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n const container = cn(\n 'inline-flex items-center rounded-full border p-1 *:rounded-full',\n className,\n );\n\n if (mode === 'light-dark') {\n const value = mounted ? resolvedTheme : null;\n\n return (\n <button\n className={container}\n aria-label={`Toggle Theme`}\n onClick={() => setTheme(value === 'light' ? 'dark' : 'light')}\n data-theme-toggle=\"\"\n >\n {full.map(([key, Icon]) => {\n if (key === 'system') return;\n\n return (\n <Icon\n key={key}\n fill=\"currentColor\"\n className={cn(itemVariants({ active: value === key }))}\n />\n );\n })}\n </button>\n );\n }\n\n const value = mounted ? theme : null;\n\n return (\n <div className={container} data-theme-toggle=\"\" {...props}>\n {full.map(([key, Icon]) => (\n <button\n key={key}\n aria-label={key}\n className={cn(itemVariants({ active: value === key }))}\n onClick={() => setTheme(key)}\n >\n <Icon className=\"size-full\" fill=\"currentColor\" />\n </button>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;;AAOA,MAAM,eAAe,IAAI,2CAA2C,EAClE,UAAU,EACR,QAAQ;CACN,MAAM;CACN,OAAO;CACR,EACF,EACF,CAAC;AAEF,MAAM,OAAO;CAAC,CAAC,SAAS,IAAI;CAAW,CAAC,QAAQ,KAAK;CAAW,CAAC,UAAU,QAAQ;CAAU;AAE7F,SAAgB,YAAY,EAC1B,WACA,OAAO,cACP,GAAG,SAGF;CACD,MAAM,EAAE,UAAU,OAAO,kBAAkB,UAAU;CACrD,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;AAE7C,iBAAgB;AACd,aAAW,KAAK;IACf,EAAE,CAAC;CAEN,MAAM,YAAY,GAChB,mEACA,UACD;AAED,KAAI,SAAS,cAAc;EACzB,MAAM,QAAQ,UAAU,gBAAgB;AAExC,SACE,oBAAC,UAAD;GACE,WAAW;GACX,cAAY;GACZ,eAAe,SAAS,UAAU,UAAU,SAAS,QAAQ;GAC7D,qBAAkB;aAEjB,KAAK,KAAK,CAAC,KAAK,UAAU;AACzB,QAAI,QAAQ,SAAU;AAEtB,WACE,oBAAC,MAAD;KAEE,MAAK;KACL,WAAW,GAAG,aAAa,EAAE,QAAQ,UAAU,KAAK,CAAC,CAAC;KACtD,EAHK,IAGL;KAEJ;GACK,CAAA;;CAIb,MAAM,QAAQ,UAAU,QAAQ;AAEhC,QACE,oBAAC,OAAD;EAAK,WAAW;EAAW,qBAAkB;EAAG,GAAI;YACjD,KAAK,KAAK,CAAC,KAAK,UACf,oBAAC,UAAD;GAEE,cAAY;GACZ,WAAW,GAAG,aAAa,EAAE,QAAQ,UAAU,KAAK,CAAC,CAAC;GACtD,eAAe,SAAS,IAAI;aAE5B,oBAAC,MAAD;IAAM,WAAU;IAAY,MAAK;IAAiB,CAAA;GAC3C,EANF,IAME,CACT;EACE,CAAA"}
package/dist/mdx.js CHANGED
@@ -6,7 +6,6 @@ import { CodeBlock, CodeBlockTab, CodeBlockTabs, CodeBlockTabsList, CodeBlockTab
6
6
  import { Image } from "fumadocs-core/framework";
7
7
  import { jsx } from "react/jsx-runtime";
8
8
  import Link from "fumadocs-core/link";
9
-
10
9
  //#region src/mdx.tsx
11
10
  function Image$1(props) {
12
11
  return /* @__PURE__ */ jsx(Image, {
@@ -68,7 +67,7 @@ const defaultMdxComponents = {
68
67
  const createRelativeLink = () => {
69
68
  throw new Error("`createRelativeLink` is only supported in Node.js environment");
70
69
  };
71
-
72
70
  //#endregion
73
71
  export { createRelativeLink, defaultMdxComponents as default };
72
+
74
73
  //# sourceMappingURL=mdx.js.map
package/dist/mdx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mdx.js","names":["Image","FrameworkImage"],"sources":["../src/mdx.tsx"],"sourcesContent":["import Link from 'fumadocs-core/link';\nimport type {\n AnchorHTMLAttributes,\n FC,\n HTMLAttributes,\n ImgHTMLAttributes,\n TableHTMLAttributes,\n} from 'react';\nimport { Image as FrameworkImage } from 'fumadocs-core/framework';\nimport { Card, Cards } from '@/components/card';\nimport { Callout, CalloutContainer, CalloutDescription, CalloutTitle } from '@/components/callout';\nimport { Heading } from '@/components/heading';\nimport { cn } from '@/utils/cn';\nimport {\n CodeBlock,\n CodeBlockTab,\n CodeBlockTabs,\n CodeBlockTabsList,\n CodeBlockTabsTrigger,\n Pre,\n} from '@/components/codeblock';\n\nfunction Image(\n props: ImgHTMLAttributes<HTMLImageElement> & {\n sizes?: string;\n },\n) {\n return (\n <FrameworkImage\n sizes=\"(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px\"\n {...props}\n src={props.src as unknown as string}\n className={cn('rounded-lg', props.className)}\n />\n );\n}\n\nfunction Table(props: TableHTMLAttributes<HTMLTableElement>) {\n return (\n <div className=\"relative overflow-auto prose-no-margin my-6\">\n <table {...props} />\n </div>\n );\n}\n\nconst defaultMdxComponents = {\n CodeBlockTab,\n CodeBlockTabs,\n CodeBlockTabsList,\n CodeBlockTabsTrigger,\n pre: (props: HTMLAttributes<HTMLPreElement>) => (\n <CodeBlock {...props}>\n <Pre>{props.children}</Pre>\n </CodeBlock>\n ),\n Card,\n Cards,\n a: Link as FC<AnchorHTMLAttributes<HTMLAnchorElement>>,\n img: Image,\n h1: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h1\" {...props} />,\n h2: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h2\" {...props} />,\n h3: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h3\" {...props} />,\n h4: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h4\" {...props} />,\n h5: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h5\" {...props} />,\n h6: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h6\" {...props} />,\n table: Table,\n Callout,\n CalloutContainer,\n CalloutTitle,\n CalloutDescription,\n};\n\nexport const createRelativeLink: typeof import('./mdx.server').createRelativeLink = () => {\n throw new Error('`createRelativeLink` is only supported in Node.js environment');\n};\n\nexport { defaultMdxComponents as default };\n"],"mappings":";;;;;;;;;;AAsBA,SAASA,QACP,OAGA;AACA,QACE,oBAACC;EACC,OAAM;EACN,GAAI;EACJ,KAAK,MAAM;EACX,WAAW,GAAG,cAAc,MAAM,UAAU;GAC5C;;AAIN,SAAS,MAAM,OAA8C;AAC3D,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC,WAAM,GAAI,QAAS;GAChB;;AAIV,MAAM,uBAAuB;CAC3B;CACA;CACA;CACA;CACA,MAAM,UACJ,oBAAC;EAAU,GAAI;YACb,oBAAC,iBAAK,MAAM,WAAe;GACjB;CAEd;CACA;CACA,GAAG;CACH,KAAKD;CACL,KAAK,UAA8C,oBAAC;EAAQ,IAAG;EAAK,GAAI;GAAS;CACjF,KAAK,UAA8C,oBAAC;EAAQ,IAAG;EAAK,GAAI;GAAS;CACjF,KAAK,UAA8C,oBAAC;EAAQ,IAAG;EAAK,GAAI;GAAS;CACjF,KAAK,UAA8C,oBAAC;EAAQ,IAAG;EAAK,GAAI;GAAS;CACjF,KAAK,UAA8C,oBAAC;EAAQ,IAAG;EAAK,GAAI;GAAS;CACjF,KAAK,UAA8C,oBAAC;EAAQ,IAAG;EAAK,GAAI;GAAS;CACjF,OAAO;CACP;CACA;CACA;CACA;CACD;AAED,MAAa,2BAA6E;AACxF,OAAM,IAAI,MAAM,gEAAgE"}
1
+ {"version":3,"file":"mdx.js","names":["Image","FrameworkImage"],"sources":["../src/mdx.tsx"],"sourcesContent":["import Link from 'fumadocs-core/link';\nimport type {\n AnchorHTMLAttributes,\n FC,\n HTMLAttributes,\n ImgHTMLAttributes,\n TableHTMLAttributes,\n} from 'react';\nimport { Image as FrameworkImage } from 'fumadocs-core/framework';\nimport { Card, Cards } from '@/components/card';\nimport { Callout, CalloutContainer, CalloutDescription, CalloutTitle } from '@/components/callout';\nimport { Heading } from '@/components/heading';\nimport { cn } from '@/utils/cn';\nimport {\n CodeBlock,\n CodeBlockTab,\n CodeBlockTabs,\n CodeBlockTabsList,\n CodeBlockTabsTrigger,\n Pre,\n} from '@/components/codeblock';\n\nfunction Image(\n props: ImgHTMLAttributes<HTMLImageElement> & {\n sizes?: string;\n },\n) {\n return (\n <FrameworkImage\n sizes=\"(max-width: 768px) 100vw, (max-width: 1200px) 70vw, 900px\"\n {...props}\n src={props.src as unknown as string}\n className={cn('rounded-lg', props.className)}\n />\n );\n}\n\nfunction Table(props: TableHTMLAttributes<HTMLTableElement>) {\n return (\n <div className=\"relative overflow-auto prose-no-margin my-6\">\n <table {...props} />\n </div>\n );\n}\n\nconst defaultMdxComponents = {\n CodeBlockTab,\n CodeBlockTabs,\n CodeBlockTabsList,\n CodeBlockTabsTrigger,\n pre: (props: HTMLAttributes<HTMLPreElement>) => (\n <CodeBlock {...props}>\n <Pre>{props.children}</Pre>\n </CodeBlock>\n ),\n Card,\n Cards,\n a: Link as FC<AnchorHTMLAttributes<HTMLAnchorElement>>,\n img: Image,\n h1: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h1\" {...props} />,\n h2: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h2\" {...props} />,\n h3: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h3\" {...props} />,\n h4: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h4\" {...props} />,\n h5: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h5\" {...props} />,\n h6: (props: HTMLAttributes<HTMLHeadingElement>) => <Heading as=\"h6\" {...props} />,\n table: Table,\n Callout,\n CalloutContainer,\n CalloutTitle,\n CalloutDescription,\n};\n\nexport const createRelativeLink: typeof import('./mdx.server').createRelativeLink = () => {\n throw new Error('`createRelativeLink` is only supported in Node.js environment');\n};\n\nexport { defaultMdxComponents as default };\n"],"mappings":";;;;;;;;;AAsBA,SAASA,QACP,OAGA;AACA,QACE,oBAACC,OAAD;EACE,OAAM;EACN,GAAI;EACJ,KAAK,MAAM;EACX,WAAW,GAAG,cAAc,MAAM,UAAU;EAC5C,CAAA;;AAIN,SAAS,MAAM,OAA8C;AAC3D,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,SAAD,EAAO,GAAI,OAAS,CAAA;EAChB,CAAA;;AAIV,MAAM,uBAAuB;CAC3B;CACA;CACA;CACA;CACA,MAAM,UACJ,oBAAC,WAAD;EAAW,GAAI;YACb,oBAAC,KAAD,EAAA,UAAM,MAAM,UAAe,CAAA;EACjB,CAAA;CAEd;CACA;CACA,GAAG;CACH,KAAKD;CACL,KAAK,UAA8C,oBAAC,SAAD;EAAS,IAAG;EAAK,GAAI;EAAS,CAAA;CACjF,KAAK,UAA8C,oBAAC,SAAD;EAAS,IAAG;EAAK,GAAI;EAAS,CAAA;CACjF,KAAK,UAA8C,oBAAC,SAAD;EAAS,IAAG;EAAK,GAAI;EAAS,CAAA;CACjF,KAAK,UAA8C,oBAAC,SAAD;EAAS,IAAG;EAAK,GAAI;EAAS,CAAA;CACjF,KAAK,UAA8C,oBAAC,SAAD;EAAS,IAAG;EAAK,GAAI;EAAS,CAAA;CACjF,KAAK,UAA8C,oBAAC,SAAD;EAAS,IAAG;EAAK,GAAI;EAAS,CAAA;CACjF,OAAO;CACP;CACA;CACA;CACA;CACD;AAED,MAAa,2BAA6E;AACxF,OAAM,IAAI,MAAM,gEAAgE"}
@@ -1,6 +1,5 @@
1
1
  import defaultMdxComponents from "./mdx.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
-
4
3
  //#region src/mdx.server.tsx
5
4
  /**
6
5
  * Extend the default Link component to resolve relative file paths in `href`.
@@ -17,7 +16,7 @@ function createRelativeLink(source, page, OverrideLink = defaultMdxComponents.a)
17
16
  });
18
17
  };
19
18
  }
20
-
21
19
  //#endregion
22
20
  export { createRelativeLink, defaultMdxComponents as default };
21
+
23
22
  //# sourceMappingURL=mdx.server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mdx.server.js","names":[],"sources":["../src/mdx.server.tsx"],"sourcesContent":["import type { LoaderConfig, LoaderOutput, Page } from 'fumadocs-core/source';\nimport type { ComponentProps, FC } from 'react';\nimport defaultMdxComponents from '@/mdx';\n\n/**\n * Extend the default Link component to resolve relative file paths in `href`.\n *\n * @param page the current page\n * @param source the source object\n * @param OverrideLink The component to override from\n */\nexport function createRelativeLink<C extends LoaderConfig>(\n source: LoaderOutput<C>,\n page: Page,\n OverrideLink: FC<ComponentProps<'a'>> = defaultMdxComponents.a,\n): FC<ComponentProps<'a'>> {\n return async function RelativeLink({ href, ...props }) {\n return <OverrideLink href={href ? source.resolveHref(href, page) : href} {...props} />;\n };\n}\n\nexport { defaultMdxComponents as default };\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,mBACd,QACA,MACA,eAAwC,qBAAqB,GACpC;AACzB,QAAO,eAAe,aAAa,EAAE,MAAM,GAAG,SAAS;AACrD,SAAO,oBAAC;GAAa,MAAM,OAAO,OAAO,YAAY,MAAM,KAAK,GAAG;GAAM,GAAI;IAAS"}
1
+ {"version":3,"file":"mdx.server.js","names":[],"sources":["../src/mdx.server.tsx"],"sourcesContent":["import type { LoaderConfig, LoaderOutput, Page } from 'fumadocs-core/source';\nimport type { ComponentProps, FC } from 'react';\nimport defaultMdxComponents from '@/mdx';\n\n/**\n * Extend the default Link component to resolve relative file paths in `href`.\n *\n * @param page the current page\n * @param source the source object\n * @param OverrideLink The component to override from\n */\nexport function createRelativeLink<C extends LoaderConfig>(\n source: LoaderOutput<C>,\n page: Page,\n OverrideLink: FC<ComponentProps<'a'>> = defaultMdxComponents.a,\n): FC<ComponentProps<'a'>> {\n return async function RelativeLink({ href, ...props }) {\n return <OverrideLink href={href ? source.resolveHref(href, page) : href} {...props} />;\n };\n}\n\nexport { defaultMdxComponents as default };\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,mBACd,QACA,MACA,eAAwC,qBAAqB,GACpC;AACzB,QAAO,eAAe,aAAa,EAAE,MAAM,GAAG,SAAS;AACrD,SAAO,oBAAC,cAAD;GAAc,MAAM,OAAO,OAAO,YAAY,MAAM,KAAK,GAAG;GAAM,GAAI;GAAS,CAAA"}
package/dist/og/takumi.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { ImageResponse } from "@takumi-rs/image-response";
3
-
4
3
  //#region src/og/takumi.tsx
5
4
  function generateOGImage(options) {
6
5
  const { title, description, icon, site, primaryColor, primaryTextColor, ...rest } = options;
@@ -67,7 +66,7 @@ function generate({ primaryColor = "rgba(255,150,255,0.3)", primaryTextColor = "
67
66
  ]
68
67
  });
69
68
  }
70
-
71
69
  //#endregion
72
70
  export { generate, generateOGImage };
71
+
73
72
  //# sourceMappingURL=takumi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"takumi.js","names":[],"sources":["../../src/og/takumi.tsx"],"sourcesContent":["import { ImageResponse, type ImageResponseOptions } from '@takumi-rs/image-response';\nimport type { ReactNode } from 'react';\n\ninterface GenerateProps {\n title: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n primaryColor?: string;\n primaryTextColor?: string;\n site?: ReactNode;\n}\n\nexport function generateOGImage(options: GenerateProps & ImageResponseOptions): ImageResponse {\n const { title, description, icon, site, primaryColor, primaryTextColor, ...rest } = options;\n\n return new ImageResponse(\n generate({\n title,\n description,\n icon,\n site,\n primaryTextColor,\n primaryColor,\n }),\n {\n width: 1200,\n height: 630,\n ...rest,\n },\n );\n}\n\nexport function generate({\n primaryColor = 'rgba(255,150,255,0.3)',\n primaryTextColor = 'rgb(255,150,255)',\n ...props\n}: GenerateProps) {\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100%',\n color: 'white',\n padding: '4rem',\n backgroundColor: '#0c0c0c',\n backgroundImage: `linear-gradient(to top right, ${primaryColor}, transparent)`,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '16px',\n marginBottom: '12px',\n color: primaryTextColor,\n }}\n >\n {props.icon}\n <p\n style={{\n fontSize: '56px',\n fontWeight: 600,\n margin: 0,\n }}\n >\n {props.site}\n </p>\n </div>\n\n <p\n style={{\n fontWeight: 800,\n fontSize: '82px',\n margin: 0,\n }}\n >\n {props.title}\n </p>\n <p\n style={{\n fontSize: '52px',\n color: 'rgba(240,240,240,0.8)',\n margin: 0,\n }}\n >\n {props.description}\n </p>\n </div>\n );\n}\n"],"mappings":";;;;AAYA,SAAgB,gBAAgB,SAA8D;CAC5F,MAAM,EAAE,OAAO,aAAa,MAAM,MAAM,cAAc,kBAAkB,GAAG,SAAS;AAEpF,QAAO,IAAI,cACT,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EACF;EACE,OAAO;EACP,QAAQ;EACR,GAAG;EACJ,CACF;;AAGH,SAAgB,SAAS,EACvB,eAAe,yBACf,mBAAmB,oBACnB,GAAG,SACa;AAChB,QACE,qBAAC;EACC,OAAO;GACL,SAAS;GACT,eAAe;GACf,OAAO;GACP,QAAQ;GACR,OAAO;GACP,SAAS;GACT,iBAAiB;GACjB,iBAAiB,iCAAiC,aAAa;GAChE;;GAED,qBAAC;IACC,OAAO;KACL,SAAS;KACT,eAAe;KACf,YAAY;KACZ,KAAK;KACL,cAAc;KACd,OAAO;KACR;eAEA,MAAM,MACP,oBAAC;KACC,OAAO;MACL,UAAU;MACV,YAAY;MACZ,QAAQ;MACT;eAEA,MAAM;MACL;KACA;GAEN,oBAAC;IACC,OAAO;KACL,YAAY;KACZ,UAAU;KACV,QAAQ;KACT;cAEA,MAAM;KACL;GACJ,oBAAC;IACC,OAAO;KACL,UAAU;KACV,OAAO;KACP,QAAQ;KACT;cAEA,MAAM;KACL;;GACA"}
1
+ {"version":3,"file":"takumi.js","names":[],"sources":["../../src/og/takumi.tsx"],"sourcesContent":["import { ImageResponse, type ImageResponseOptions } from '@takumi-rs/image-response';\nimport type { ReactNode } from 'react';\n\ninterface GenerateProps {\n title: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n primaryColor?: string;\n primaryTextColor?: string;\n site?: ReactNode;\n}\n\nexport function generateOGImage(options: GenerateProps & ImageResponseOptions): ImageResponse {\n const { title, description, icon, site, primaryColor, primaryTextColor, ...rest } = options;\n\n return new ImageResponse(\n generate({\n title,\n description,\n icon,\n site,\n primaryTextColor,\n primaryColor,\n }),\n {\n width: 1200,\n height: 630,\n ...rest,\n },\n );\n}\n\nexport function generate({\n primaryColor = 'rgba(255,150,255,0.3)',\n primaryTextColor = 'rgb(255,150,255)',\n ...props\n}: GenerateProps) {\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100%',\n color: 'white',\n padding: '4rem',\n backgroundColor: '#0c0c0c',\n backgroundImage: `linear-gradient(to top right, ${primaryColor}, transparent)`,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '16px',\n marginBottom: '12px',\n color: primaryTextColor,\n }}\n >\n {props.icon}\n <p\n style={{\n fontSize: '56px',\n fontWeight: 600,\n margin: 0,\n }}\n >\n {props.site}\n </p>\n </div>\n\n <p\n style={{\n fontWeight: 800,\n fontSize: '82px',\n margin: 0,\n }}\n >\n {props.title}\n </p>\n <p\n style={{\n fontSize: '52px',\n color: 'rgba(240,240,240,0.8)',\n margin: 0,\n }}\n >\n {props.description}\n </p>\n </div>\n );\n}\n"],"mappings":";;;AAYA,SAAgB,gBAAgB,SAA8D;CAC5F,MAAM,EAAE,OAAO,aAAa,MAAM,MAAM,cAAc,kBAAkB,GAAG,SAAS;AAEpF,QAAO,IAAI,cACT,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EACF;EACE,OAAO;EACP,QAAQ;EACR,GAAG;EACJ,CACF;;AAGH,SAAgB,SAAS,EACvB,eAAe,yBACf,mBAAmB,oBACnB,GAAG,SACa;AAChB,QACE,qBAAC,OAAD;EACE,OAAO;GACL,SAAS;GACT,eAAe;GACf,OAAO;GACP,QAAQ;GACR,OAAO;GACP,SAAS;GACT,iBAAiB;GACjB,iBAAiB,iCAAiC,aAAa;GAChE;YAVH;GAYE,qBAAC,OAAD;IACE,OAAO;KACL,SAAS;KACT,eAAe;KACf,YAAY;KACZ,KAAK;KACL,cAAc;KACd,OAAO;KACR;cARH,CAUG,MAAM,MACP,oBAAC,KAAD;KACE,OAAO;MACL,UAAU;MACV,YAAY;MACZ,QAAQ;MACT;eAEA,MAAM;KACL,CAAA,CACA;;GAEN,oBAAC,KAAD;IACE,OAAO;KACL,YAAY;KACZ,UAAU;KACV,QAAQ;KACT;cAEA,MAAM;IACL,CAAA;GACJ,oBAAC,KAAD;IACE,OAAO;KACL,UAAU;KACV,OAAO;KACP,QAAQ;KACT;cAEA,MAAM;IACL,CAAA;GACA"}
package/dist/og.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { ImageResponse } from "next/og";
3
-
4
3
  //#region src/og.tsx
5
4
  function generateOGImage(options) {
6
5
  const { title, description, icon, site, primaryColor, primaryTextColor, ...rest } = options;
@@ -67,7 +66,7 @@ function generate({ primaryColor = "rgba(255,150,255,0.3)", primaryTextColor = "
67
66
  ]
68
67
  });
69
68
  }
70
-
71
69
  //#endregion
72
70
  export { generate, generateOGImage };
71
+
73
72
  //# sourceMappingURL=og.js.map
package/dist/og.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"og.js","names":[],"sources":["../src/og.tsx"],"sourcesContent":["import { ImageResponse } from 'next/og';\nimport type { ReactNode } from 'react';\nimport type { ImageResponseOptions } from 'next/dist/compiled/@vercel/og/types';\n\ninterface GenerateProps {\n title: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n primaryColor?: string;\n primaryTextColor?: string;\n site?: ReactNode;\n}\n\nexport function generateOGImage(options: GenerateProps & ImageResponseOptions): ImageResponse {\n const { title, description, icon, site, primaryColor, primaryTextColor, ...rest } = options;\n\n return new ImageResponse(\n generate({\n title,\n description,\n icon,\n site,\n primaryTextColor,\n primaryColor,\n }),\n {\n width: 1200,\n height: 630,\n ...rest,\n },\n );\n}\n\nexport function generate({\n primaryColor = 'rgba(255,150,255,0.3)',\n primaryTextColor = 'rgb(255,150,255)',\n ...props\n}: GenerateProps) {\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100%',\n color: 'white',\n padding: '4rem',\n backgroundColor: '#0c0c0c',\n backgroundImage: `linear-gradient(to top right, ${primaryColor}, transparent)`,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '16px',\n marginBottom: '12px',\n color: primaryTextColor,\n }}\n >\n {props.icon}\n <p\n style={{\n fontSize: '56px',\n fontWeight: 600,\n margin: 0,\n }}\n >\n {props.site}\n </p>\n </div>\n\n <p\n style={{\n fontWeight: 800,\n fontSize: '82px',\n margin: 0,\n }}\n >\n {props.title}\n </p>\n <p\n style={{\n fontSize: '52px',\n color: 'rgba(240,240,240,0.8)',\n margin: 0,\n }}\n >\n {props.description}\n </p>\n </div>\n );\n}\n"],"mappings":";;;;AAaA,SAAgB,gBAAgB,SAA8D;CAC5F,MAAM,EAAE,OAAO,aAAa,MAAM,MAAM,cAAc,kBAAkB,GAAG,SAAS;AAEpF,QAAO,IAAI,cACT,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EACF;EACE,OAAO;EACP,QAAQ;EACR,GAAG;EACJ,CACF;;AAGH,SAAgB,SAAS,EACvB,eAAe,yBACf,mBAAmB,oBACnB,GAAG,SACa;AAChB,QACE,qBAAC;EACC,OAAO;GACL,SAAS;GACT,eAAe;GACf,OAAO;GACP,QAAQ;GACR,OAAO;GACP,SAAS;GACT,iBAAiB;GACjB,iBAAiB,iCAAiC,aAAa;GAChE;;GAED,qBAAC;IACC,OAAO;KACL,SAAS;KACT,eAAe;KACf,YAAY;KACZ,KAAK;KACL,cAAc;KACd,OAAO;KACR;eAEA,MAAM,MACP,oBAAC;KACC,OAAO;MACL,UAAU;MACV,YAAY;MACZ,QAAQ;MACT;eAEA,MAAM;MACL;KACA;GAEN,oBAAC;IACC,OAAO;KACL,YAAY;KACZ,UAAU;KACV,QAAQ;KACT;cAEA,MAAM;KACL;GACJ,oBAAC;IACC,OAAO;KACL,UAAU;KACV,OAAO;KACP,QAAQ;KACT;cAEA,MAAM;KACL;;GACA"}
1
+ {"version":3,"file":"og.js","names":[],"sources":["../src/og.tsx"],"sourcesContent":["import { ImageResponse } from 'next/og';\nimport type { ReactNode } from 'react';\nimport type { ImageResponseOptions } from 'next/dist/compiled/@vercel/og/types';\n\ninterface GenerateProps {\n title: ReactNode;\n description?: ReactNode;\n icon?: ReactNode;\n primaryColor?: string;\n primaryTextColor?: string;\n site?: ReactNode;\n}\n\nexport function generateOGImage(options: GenerateProps & ImageResponseOptions): ImageResponse {\n const { title, description, icon, site, primaryColor, primaryTextColor, ...rest } = options;\n\n return new ImageResponse(\n generate({\n title,\n description,\n icon,\n site,\n primaryTextColor,\n primaryColor,\n }),\n {\n width: 1200,\n height: 630,\n ...rest,\n },\n );\n}\n\nexport function generate({\n primaryColor = 'rgba(255,150,255,0.3)',\n primaryTextColor = 'rgb(255,150,255)',\n ...props\n}: GenerateProps) {\n return (\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n height: '100%',\n color: 'white',\n padding: '4rem',\n backgroundColor: '#0c0c0c',\n backgroundImage: `linear-gradient(to top right, ${primaryColor}, transparent)`,\n }}\n >\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '16px',\n marginBottom: '12px',\n color: primaryTextColor,\n }}\n >\n {props.icon}\n <p\n style={{\n fontSize: '56px',\n fontWeight: 600,\n margin: 0,\n }}\n >\n {props.site}\n </p>\n </div>\n\n <p\n style={{\n fontWeight: 800,\n fontSize: '82px',\n margin: 0,\n }}\n >\n {props.title}\n </p>\n <p\n style={{\n fontSize: '52px',\n color: 'rgba(240,240,240,0.8)',\n margin: 0,\n }}\n >\n {props.description}\n </p>\n </div>\n );\n}\n"],"mappings":";;;AAaA,SAAgB,gBAAgB,SAA8D;CAC5F,MAAM,EAAE,OAAO,aAAa,MAAM,MAAM,cAAc,kBAAkB,GAAG,SAAS;AAEpF,QAAO,IAAI,cACT,SAAS;EACP;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,EACF;EACE,OAAO;EACP,QAAQ;EACR,GAAG;EACJ,CACF;;AAGH,SAAgB,SAAS,EACvB,eAAe,yBACf,mBAAmB,oBACnB,GAAG,SACa;AAChB,QACE,qBAAC,OAAD;EACE,OAAO;GACL,SAAS;GACT,eAAe;GACf,OAAO;GACP,QAAQ;GACR,OAAO;GACP,SAAS;GACT,iBAAiB;GACjB,iBAAiB,iCAAiC,aAAa;GAChE;YAVH;GAYE,qBAAC,OAAD;IACE,OAAO;KACL,SAAS;KACT,eAAe;KACf,YAAY;KACZ,KAAK;KACL,cAAc;KACd,OAAO;KACR;cARH,CAUG,MAAM,MACP,oBAAC,KAAD;KACE,OAAO;MACL,UAAU;MACV,YAAY;MACZ,QAAQ;MACT;eAEA,MAAM;KACL,CAAA,CACA;;GAEN,oBAAC,KAAD;IACE,OAAO;KACL,YAAY;KACZ,UAAU;KACV,QAAQ;KACT;cAEA,MAAM;IACL,CAAA;GACJ,oBAAC,KAAD;IACE,OAAO;KACL,UAAU;KACV,OAAO;KACP,QAAQ;KACT;cAEA,MAAM;IACL,CAAA;GACA"}
package/dist/page.js CHANGED
@@ -1,5 +1,4 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { cn } from "./utils/cn.js";
4
3
  import { LayoutContext } from "./layouts/docs/client.js";
5
4
  import { PageBreadcrumb, PageLastUpdate } from "./layouts/docs/page/client.js";
@@ -7,7 +6,6 @@ import { DocsBody, DocsDescription, DocsTitle, EditOnGitHub, page_exports } from
7
6
  import { page_exports as page_exports$1 } from "./layouts/notebook/page/index.js";
8
7
  import { use } from "react";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
10
-
11
9
  //#region src/page.tsx
12
10
  /**
13
11
  * For separate MDX page
@@ -32,7 +30,7 @@ function DocsPage({ lastUpdate, editOnGithub, children, ...props }) {
32
30
  })]
33
31
  });
34
32
  }
35
-
36
33
  //#endregion
37
34
  export { DocsBody, DocsDescription, DocsPage, DocsTitle, EditOnGitHub, PageBreadcrumb, PageLastUpdate, withArticle };
35
+
38
36
  //# sourceMappingURL=page.js.map
package/dist/page.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","names":["Docs","Notebook"],"sources":["../src/page.tsx"],"sourcesContent":["'use client';\nimport { type ComponentProps, use } from 'react';\nimport { cn } from '@/utils/cn';\nimport * as Docs from './layouts/docs/page';\nimport * as Notebook from './layouts/notebook/page';\nimport { LayoutContext } from './layouts/docs/client';\n\n// TODO: remove this compat layer on v17\n\nexport {\n DocsDescription,\n DocsTitle,\n EditOnGitHub,\n DocsBody,\n PageBreadcrumb,\n PageLastUpdate,\n} from './layouts/docs/page';\n\ninterface EditOnGitHubOptions extends Omit<ComponentProps<'a'>, 'href' | 'children'> {\n owner: string;\n repo: string;\n\n /**\n * SHA or ref (branch or tag) name.\n *\n * @defaultValue main\n */\n sha?: string;\n\n /**\n * File path in the repo\n */\n path: string;\n}\n\nexport interface DocsPageProps extends Docs.DocsPageProps {\n editOnGithub?: EditOnGitHubOptions;\n lastUpdate?: Date | string | number;\n}\n\n/**\n * For separate MDX page\n */\nexport function withArticle(props: ComponentProps<'main'>) {\n return (\n <main {...props} className={cn('w-full max-w-[1400px] mx-auto px-4 py-12', props.className)}>\n <article className=\"prose\">{props.children}</article>\n </main>\n );\n}\n\nexport function DocsPage({ lastUpdate, editOnGithub, children, ...props }: DocsPageProps) {\n const docsLayoutCtx = use(LayoutContext);\n const { DocsPage, EditOnGitHub, PageLastUpdate } = docsLayoutCtx ? Docs : Notebook;\n\n return (\n <DocsPage {...props}>\n {children}\n <div className=\"flex flex-row flex-wrap items-center justify-between gap-4 empty:hidden\">\n {editOnGithub && (\n <EditOnGitHub\n href={`https://github.com/${editOnGithub.owner}/${editOnGithub.repo}/blob/${editOnGithub.sha}/${editOnGithub.path.startsWith('/') ? editOnGithub.path.slice(1) : editOnGithub.path}`}\n />\n )}\n {lastUpdate && <PageLastUpdate date={new Date(lastUpdate)} />}\n </div>\n </DocsPage>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AA2CA,SAAgB,YAAY,OAA+B;AACzD,QACE,oBAAC;EAAK,GAAI;EAAO,WAAW,GAAG,4CAA4C,MAAM,UAAU;YACzF,oBAAC;GAAQ,WAAU;aAAS,MAAM;IAAmB;GAChD;;AAIX,SAAgB,SAAS,EAAE,YAAY,cAAc,UAAU,GAAG,SAAwB;CAExF,MAAM,EAAE,UAAU,cAAc,mBADV,IAAI,cAAc,GAC2BA,eAAOC;AAE1E,QACE,qBAAC;EAAS,GAAI;aACX,UACD,qBAAC;GAAI,WAAU;cACZ,gBACC,oBAAC,gBACC,MAAM,sBAAsB,aAAa,MAAM,GAAG,aAAa,KAAK,QAAQ,aAAa,IAAI,GAAG,aAAa,KAAK,WAAW,IAAI,GAAG,aAAa,KAAK,MAAM,EAAE,GAAG,aAAa,SAC9K,EAEH,cAAc,oBAAC,kBAAe,MAAM,IAAI,KAAK,WAAW,GAAI;IACzD;GACG"}
1
+ {"version":3,"file":"page.js","names":["Docs","Notebook"],"sources":["../src/page.tsx"],"sourcesContent":["'use client';\nimport { type ComponentProps, use } from 'react';\nimport { cn } from '@/utils/cn';\nimport * as Docs from './layouts/docs/page';\nimport * as Notebook from './layouts/notebook/page';\nimport { LayoutContext } from './layouts/docs/client';\n\n// TODO: remove this compat layer on v17\n\nexport {\n DocsDescription,\n DocsTitle,\n EditOnGitHub,\n DocsBody,\n PageBreadcrumb,\n PageLastUpdate,\n} from './layouts/docs/page';\n\ninterface EditOnGitHubOptions extends Omit<ComponentProps<'a'>, 'href' | 'children'> {\n owner: string;\n repo: string;\n\n /**\n * SHA or ref (branch or tag) name.\n *\n * @defaultValue main\n */\n sha?: string;\n\n /**\n * File path in the repo\n */\n path: string;\n}\n\nexport interface DocsPageProps extends Docs.DocsPageProps {\n editOnGithub?: EditOnGitHubOptions;\n lastUpdate?: Date | string | number;\n}\n\n/**\n * For separate MDX page\n */\nexport function withArticle(props: ComponentProps<'main'>) {\n return (\n <main {...props} className={cn('w-full max-w-[1400px] mx-auto px-4 py-12', props.className)}>\n <article className=\"prose\">{props.children}</article>\n </main>\n );\n}\n\nexport function DocsPage({ lastUpdate, editOnGithub, children, ...props }: DocsPageProps) {\n const docsLayoutCtx = use(LayoutContext);\n const { DocsPage, EditOnGitHub, PageLastUpdate } = docsLayoutCtx ? Docs : Notebook;\n\n return (\n <DocsPage {...props}>\n {children}\n <div className=\"flex flex-row flex-wrap items-center justify-between gap-4 empty:hidden\">\n {editOnGithub && (\n <EditOnGitHub\n href={`https://github.com/${editOnGithub.owner}/${editOnGithub.repo}/blob/${editOnGithub.sha}/${editOnGithub.path.startsWith('/') ? editOnGithub.path.slice(1) : editOnGithub.path}`}\n />\n )}\n {lastUpdate && <PageLastUpdate date={new Date(lastUpdate)} />}\n </div>\n </DocsPage>\n );\n}\n"],"mappings":";;;;;;;;;;;;AA2CA,SAAgB,YAAY,OAA+B;AACzD,QACE,oBAAC,QAAD;EAAM,GAAI;EAAO,WAAW,GAAG,4CAA4C,MAAM,UAAU;YACzF,oBAAC,WAAD;GAAS,WAAU;aAAS,MAAM;GAAmB,CAAA;EAChD,CAAA;;AAIX,SAAgB,SAAS,EAAE,YAAY,cAAc,UAAU,GAAG,SAAwB;CAExF,MAAM,EAAE,UAAU,cAAc,mBADV,IAAI,cAAc,GAC2BA,eAAOC;AAE1E,QACE,qBAAC,UAAD;EAAU,GAAI;YAAd,CACG,UACD,qBAAC,OAAD;GAAK,WAAU;aAAf,CACG,gBACC,oBAAC,cAAD,EACE,MAAM,sBAAsB,aAAa,MAAM,GAAG,aAAa,KAAK,QAAQ,aAAa,IAAI,GAAG,aAAa,KAAK,WAAW,IAAI,GAAG,aAAa,KAAK,MAAM,EAAE,GAAG,aAAa,QAC9K,CAAA,EAEH,cAAc,oBAAC,gBAAD,EAAgB,MAAM,IAAI,KAAK,WAAW,EAAI,CAAA,CACzD;KACG"}
@@ -1,12 +1,10 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { I18nProvider } from "../contexts/i18n.js";
4
3
  import { SearchProvider } from "../contexts/search.js";
5
4
  import { lazy } from "react";
6
5
  import { jsx } from "react/jsx-runtime";
7
6
  import { DirectionProvider } from "@base-ui/react/direction-provider";
8
7
  import { ThemeProvider } from "next-themes";
9
-
10
8
  //#region src/provider/base.tsx
11
9
  const DefaultSearchDialog = lazy(() => import("../components/dialog/search-default.js"));
12
10
  function RootProvider({ children, dir = "ltr", theme = {}, search, i18n }) {
@@ -33,7 +31,7 @@ function RootProvider({ children, dir = "ltr", theme = {}, search, i18n }) {
33
31
  children: body
34
32
  });
35
33
  }
36
-
37
34
  //#endregion
38
35
  export { RootProvider };
36
+
39
37
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../src/provider/base.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentPropsWithoutRef, lazy, type ReactNode } from 'react';\nimport { DirectionProvider } from '@base-ui/react/direction-provider';\nimport type { DefaultSearchDialogProps } from '@/components/dialog/search-default';\nimport { ThemeProvider } from 'next-themes';\nimport { I18nProvider, type I18nProviderProps } from '@/contexts/i18n';\nimport { SearchProvider, type SearchProviderProps } from '@/contexts/search';\n\ninterface SearchOptions extends Omit<SearchProviderProps, 'children'> {\n options?: Partial<DefaultSearchDialogProps>;\n\n /**\n * Enable search functionality\n *\n * @defaultValue `true`\n */\n enabled?: boolean;\n}\n\nexport interface RootProviderProps {\n /**\n * `dir` option for Base UI\n */\n dir?: 'rtl' | 'ltr';\n\n /**\n * @remarks `SearchProviderProps`\n */\n search?: Partial<SearchOptions>;\n\n /**\n * Customise options of `next-themes`\n */\n theme?: Partial<ComponentPropsWithoutRef<typeof ThemeProvider>> & {\n /**\n * Enable `next-themes`\n *\n * @defaultValue true\n */\n enabled?: boolean;\n };\n\n i18n?: Omit<I18nProviderProps, 'children'>;\n\n children?: ReactNode;\n}\n\nconst DefaultSearchDialog = lazy(() => import('@/components/dialog/search-default'));\n\nexport function RootProvider({\n children,\n dir = 'ltr',\n theme = {},\n search,\n i18n,\n}: RootProviderProps) {\n let body = children;\n\n if (search?.enabled !== false)\n body = (\n <SearchProvider SearchDialog={DefaultSearchDialog} {...search}>\n {body}\n </SearchProvider>\n );\n\n if (theme?.enabled !== false)\n body = (\n <ThemeProvider\n attribute=\"class\"\n defaultTheme=\"system\"\n enableSystem\n disableTransitionOnChange\n {...theme}\n >\n {body}\n </ThemeProvider>\n );\n\n if (i18n) {\n body = <I18nProvider {...i18n}>{body}</I18nProvider>;\n }\n\n return <DirectionProvider direction={dir}>{body}</DirectionProvider>;\n}\n"],"mappings":";;;;;;;;;;AAgDA,MAAM,sBAAsB,WAAW,OAAO,0CAAsC;AAEpF,SAAgB,aAAa,EAC3B,UACA,MAAM,OACN,QAAQ,EAAE,EACV,QACA,QACoB;CACpB,IAAI,OAAO;AAEX,KAAI,QAAQ,YAAY,MACtB,QACE,oBAAC;EAAe,cAAc;EAAqB,GAAI;YACpD;GACc;AAGrB,KAAI,OAAO,YAAY,MACrB,QACE,oBAAC;EACC,WAAU;EACV,cAAa;EACb;EACA;EACA,GAAI;YAEH;GACa;AAGpB,KAAI,KACF,QAAO,oBAAC;EAAa,GAAI;YAAO;GAAoB;AAGtD,QAAO,oBAAC;EAAkB,WAAW;YAAM;GAAyB"}
1
+ {"version":3,"file":"base.js","names":[],"sources":["../../src/provider/base.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentPropsWithoutRef, lazy, type ReactNode } from 'react';\nimport { DirectionProvider } from '@base-ui/react/direction-provider';\nimport type { DefaultSearchDialogProps } from '@/components/dialog/search-default';\nimport { ThemeProvider } from 'next-themes';\nimport { I18nProvider, type I18nProviderProps } from '@/contexts/i18n';\nimport { SearchProvider, type SearchProviderProps } from '@/contexts/search';\n\ninterface SearchOptions extends Omit<SearchProviderProps, 'children'> {\n options?: Partial<DefaultSearchDialogProps>;\n\n /**\n * Enable search functionality\n *\n * @defaultValue `true`\n */\n enabled?: boolean;\n}\n\nexport interface RootProviderProps {\n /**\n * `dir` option for Base UI\n */\n dir?: 'rtl' | 'ltr';\n\n /**\n * @remarks `SearchProviderProps`\n */\n search?: Partial<SearchOptions>;\n\n /**\n * Customise options of `next-themes`\n */\n theme?: Partial<ComponentPropsWithoutRef<typeof ThemeProvider>> & {\n /**\n * Enable `next-themes`\n *\n * @defaultValue true\n */\n enabled?: boolean;\n };\n\n i18n?: Omit<I18nProviderProps, 'children'>;\n\n children?: ReactNode;\n}\n\nconst DefaultSearchDialog = lazy(() => import('@/components/dialog/search-default'));\n\nexport function RootProvider({\n children,\n dir = 'ltr',\n theme = {},\n search,\n i18n,\n}: RootProviderProps) {\n let body = children;\n\n if (search?.enabled !== false)\n body = (\n <SearchProvider SearchDialog={DefaultSearchDialog} {...search}>\n {body}\n </SearchProvider>\n );\n\n if (theme?.enabled !== false)\n body = (\n <ThemeProvider\n attribute=\"class\"\n defaultTheme=\"system\"\n enableSystem\n disableTransitionOnChange\n {...theme}\n >\n {body}\n </ThemeProvider>\n );\n\n if (i18n) {\n body = <I18nProvider {...i18n}>{body}</I18nProvider>;\n }\n\n return <DirectionProvider direction={dir}>{body}</DirectionProvider>;\n}\n"],"mappings":";;;;;;;;AAgDA,MAAM,sBAAsB,WAAW,OAAO,0CAAsC;AAEpF,SAAgB,aAAa,EAC3B,UACA,MAAM,OACN,QAAQ,EAAE,EACV,QACA,QACoB;CACpB,IAAI,OAAO;AAEX,KAAI,QAAQ,YAAY,MACtB,QACE,oBAAC,gBAAD;EAAgB,cAAc;EAAqB,GAAI;YACpD;EACc,CAAA;AAGrB,KAAI,OAAO,YAAY,MACrB,QACE,oBAAC,eAAD;EACE,WAAU;EACV,cAAa;EACb,cAAA;EACA,2BAAA;EACA,GAAI;YAEH;EACa,CAAA;AAGpB,KAAI,KACF,QAAO,oBAAC,cAAD;EAAc,GAAI;YAAO;EAAoB,CAAA;AAGtD,QAAO,oBAAC,mBAAD;EAAmB,WAAW;YAAM;EAAyB,CAAA"}
@@ -1,9 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { RootProvider as RootProvider$1 } from "./base.js";
4
3
  import { jsx } from "react/jsx-runtime";
5
4
  import { NextProvider } from "fumadocs-core/framework/next";
6
-
7
5
  //#region src/provider/next.tsx
8
6
  function RootProvider({ components, ...props }) {
9
7
  return /* @__PURE__ */ jsx(NextProvider, {
@@ -15,7 +13,7 @@ function RootProvider({ components, ...props }) {
15
13
  })
16
14
  });
17
15
  }
18
-
19
16
  //#endregion
20
17
  export { RootProvider };
18
+
21
19
  //# sourceMappingURL=next.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"next.js","names":["BaseProvider"],"sources":["../../src/provider/next.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { NextProvider } from 'fumadocs-core/framework/next';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override Next.js defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <NextProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </NextProvider>\n );\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC;EAAa,MAAM,YAAY;EAAM,OAAO,YAAY;YACvD,oBAACA;GAAa,GAAI;aAAQ,MAAM;IAAwB;GAC3C"}
1
+ {"version":3,"file":"next.js","names":["BaseProvider"],"sources":["../../src/provider/next.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { NextProvider } from 'fumadocs-core/framework/next';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override Next.js defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <NextProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </NextProvider>\n );\n}\n"],"mappings":";;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC,cAAD;EAAc,MAAM,YAAY;EAAM,OAAO,YAAY;YACvD,oBAACA,gBAAD;GAAc,GAAI;aAAQ,MAAM;GAAwB,CAAA;EAC3C,CAAA"}
@@ -1,9 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { RootProvider as RootProvider$1 } from "./base.js";
4
3
  import { jsx } from "react/jsx-runtime";
5
4
  import { ReactRouterProvider } from "fumadocs-core/framework/react-router";
6
-
7
5
  //#region src/provider/react-router.tsx
8
6
  function RootProvider({ components, ...props }) {
9
7
  return /* @__PURE__ */ jsx(ReactRouterProvider, {
@@ -15,7 +13,7 @@ function RootProvider({ components, ...props }) {
15
13
  })
16
14
  });
17
15
  }
18
-
19
16
  //#endregion
20
17
  export { RootProvider };
18
+
21
19
  //# sourceMappingURL=react-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-router.js","names":["BaseProvider"],"sources":["../../src/provider/react-router.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { ReactRouterProvider } from 'fumadocs-core/framework/react-router';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override React Router defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <ReactRouterProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </ReactRouterProvider>\n );\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC;EAAoB,MAAM,YAAY;EAAM,OAAO,YAAY;YAC9D,oBAACA;GAAa,GAAI;aAAQ,MAAM;IAAwB;GACpC"}
1
+ {"version":3,"file":"react-router.js","names":["BaseProvider"],"sources":["../../src/provider/react-router.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { ReactRouterProvider } from 'fumadocs-core/framework/react-router';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override React Router defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <ReactRouterProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </ReactRouterProvider>\n );\n}\n"],"mappings":";;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC,qBAAD;EAAqB,MAAM,YAAY;EAAM,OAAO,YAAY;YAC9D,oBAACA,gBAAD;GAAc,GAAI;aAAQ,MAAM;GAAwB,CAAA;EACpC,CAAA"}
@@ -1,9 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { RootProvider as RootProvider$1 } from "./base.js";
4
3
  import { jsx } from "react/jsx-runtime";
5
4
  import { TanstackProvider } from "fumadocs-core/framework/tanstack";
6
-
7
5
  //#region src/provider/tanstack.tsx
8
6
  function RootProvider({ components, ...props }) {
9
7
  return /* @__PURE__ */ jsx(TanstackProvider, {
@@ -15,7 +13,7 @@ function RootProvider({ components, ...props }) {
15
13
  })
16
14
  });
17
15
  }
18
-
19
16
  //#endregion
20
17
  export { RootProvider };
18
+
21
19
  //# sourceMappingURL=tanstack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack.js","names":["BaseProvider"],"sources":["../../src/provider/tanstack.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { TanstackProvider } from 'fumadocs-core/framework/tanstack';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override Tanstack Router defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <TanstackProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </TanstackProvider>\n );\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC;EAAiB,MAAM,YAAY;EAAM,OAAO,YAAY;YAC3D,oBAACA;GAAa,GAAI;aAAQ,MAAM;IAAwB;GACvC"}
1
+ {"version":3,"file":"tanstack.js","names":["BaseProvider"],"sources":["../../src/provider/tanstack.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { TanstackProvider } from 'fumadocs-core/framework/tanstack';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override Tanstack Router defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <TanstackProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </TanstackProvider>\n );\n}\n"],"mappings":";;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC,kBAAD;EAAkB,MAAM,YAAY;EAAM,OAAO,YAAY;YAC3D,oBAACA,gBAAD;GAAc,GAAI;aAAQ,MAAM;GAAwB,CAAA;EACvC,CAAA"}
@@ -1,9 +1,7 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { RootProvider as RootProvider$1 } from "./base.js";
4
3
  import { jsx } from "react/jsx-runtime";
5
4
  import { WakuProvider } from "fumadocs-core/framework/waku";
6
-
7
5
  //#region src/provider/waku.tsx
8
6
  function RootProvider({ components, ...props }) {
9
7
  return /* @__PURE__ */ jsx(WakuProvider, {
@@ -15,7 +13,7 @@ function RootProvider({ components, ...props }) {
15
13
  })
16
14
  });
17
15
  }
18
-
19
16
  //#endregion
20
17
  export { RootProvider };
18
+
21
19
  //# sourceMappingURL=waku.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"waku.js","names":["BaseProvider"],"sources":["../../src/provider/waku.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { WakuProvider } from 'fumadocs-core/framework/waku';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override Waku defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <WakuProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </WakuProvider>\n );\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC;EAAa,MAAM,YAAY;EAAM,OAAO,YAAY;YACvD,oBAACA;GAAa,GAAI;aAAQ,MAAM;IAAwB;GAC3C"}
1
+ {"version":3,"file":"waku.js","names":["BaseProvider"],"sources":["../../src/provider/waku.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps } from 'react';\nimport { RootProvider as BaseProvider } from '@/provider/base';\nimport { WakuProvider } from 'fumadocs-core/framework/waku';\nimport type { Framework } from 'fumadocs-core/framework';\n\nexport interface RootProviderProps extends ComponentProps<typeof BaseProvider> {\n /**\n * Custom framework components to override Waku defaults\n */\n components?: {\n Link?: Framework['Link'];\n Image?: Framework['Image'];\n };\n}\n\nexport function RootProvider({ components, ...props }: RootProviderProps) {\n return (\n <WakuProvider Link={components?.Link} Image={components?.Image}>\n <BaseProvider {...props}>{props.children}</BaseProvider>\n </WakuProvider>\n );\n}\n"],"mappings":";;;;;AAgBA,SAAgB,aAAa,EAAE,YAAY,GAAG,SAA4B;AACxE,QACE,oBAAC,cAAD;EAAc,MAAM,YAAY;EAAM,OAAO,YAAY;YACvD,oBAACA,gBAAD;GAAc,GAAI;aAAQ,MAAM;GAAwB,CAAA;EAC3C,CAAA"}
@@ -1,3 +1,2 @@
1
1
  import typography_default from "@fumadocs/tailwind/typography";
2
-
3
- export { typography_default as default };
2
+ export { typography_default as default };
package/dist/utils/cn.js CHANGED
@@ -1,3 +1,2 @@
1
1
  import { twMerge as cn } from "tailwind-merge";
2
-
3
- export { cn };
2
+ export { cn };
@@ -1,10 +1,8 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { isActive } from "./urls.js";
4
3
  import { usePathname } from "fumadocs-core/framework";
5
4
  import { jsx } from "react/jsx-runtime";
6
5
  import Link from "fumadocs-core/link";
7
-
8
6
  //#region src/utils/link-item.tsx
9
7
  function LinkItem({ ref, item, ...props }) {
10
8
  const active = useLinkItemActive(item);
@@ -23,7 +21,7 @@ function useLinkItemActive(link) {
23
21
  if (link.active === "none") return false;
24
22
  return isActive(link.url, pathname, link.active === "nested-url");
25
23
  }
26
-
27
24
  //#endregion
28
25
  export { LinkItem, useLinkItemActive };
26
+
29
27
  //# sourceMappingURL=link-item.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link-item.js","names":[],"sources":["../../src/utils/link-item.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { usePathname } from 'fumadocs-core/framework';\nimport { isActive } from './urls';\nimport Link from 'fumadocs-core/link';\n\ninterface Filterable {\n /**\n * Restrict where the item is displayed\n *\n * @defaultValue 'all'\n */\n on?: 'menu' | 'nav' | 'all';\n}\n\ninterface WithHref {\n url: string;\n /**\n * When the item is marked as active\n *\n * @defaultValue 'url'\n */\n active?: 'url' | 'nested-url' | 'none';\n external?: boolean;\n}\n\nexport interface MainItemType extends WithHref, Filterable {\n type?: 'main';\n icon?: ReactNode;\n text: ReactNode;\n description?: ReactNode;\n}\n\nexport interface IconItemType extends WithHref, Filterable {\n type: 'icon';\n /**\n * `aria-label` of icon button\n */\n label?: string;\n icon: ReactNode;\n text: ReactNode;\n /**\n * @defaultValue true\n */\n secondary?: boolean;\n}\n\nexport interface ButtonItemType extends WithHref, Filterable {\n type: 'button';\n icon?: ReactNode;\n text: ReactNode;\n /**\n * @defaultValue false\n */\n secondary?: boolean;\n}\n\nexport interface MenuItemType extends Partial<WithHref>, Filterable {\n type: 'menu';\n icon?: ReactNode;\n text: ReactNode;\n\n items: (\n | (MainItemType & {\n /**\n * Options when displayed on navigation menu\n */\n menu?: ComponentProps<'a'> & {\n banner?: ReactNode;\n };\n })\n | CustomItemType\n )[];\n\n /**\n * @defaultValue false\n */\n secondary?: boolean;\n}\n\nexport interface CustomItemType extends Filterable {\n type: 'custom';\n /**\n * @defaultValue false\n */\n secondary?: boolean;\n children: ReactNode;\n}\n\nexport type LinkItemType =\n | MainItemType\n | IconItemType\n | ButtonItemType\n | MenuItemType\n | CustomItemType;\n\nexport function LinkItem({\n ref,\n item,\n ...props\n}: Omit<ComponentProps<'a'>, 'href'> & { item: LinkItemType & WithHref }) {\n const active = useLinkItemActive(item);\n\n return (\n <Link ref={ref} href={item.url} external={item.external} {...props} data-active={active}>\n {props.children}\n </Link>\n );\n}\n\nexport function useLinkItemActive(link: LinkItemType) {\n const pathname = usePathname();\n\n if (link.type === 'custom' || !link.url) return false;\n if (link.active === 'none') return false;\n\n return isActive(link.url, pathname, link.active === 'nested-url');\n}\n"],"mappings":";;;;;;;;AAgGA,SAAgB,SAAS,EACvB,KACA,MACA,GAAG,SACqE;CACxE,MAAM,SAAS,kBAAkB,KAAK;AAEtC,QACE,oBAAC;EAAU;EAAK,MAAM,KAAK;EAAK,UAAU,KAAK;EAAU,GAAI;EAAO,eAAa;YAC9E,MAAM;GACF;;AAIX,SAAgB,kBAAkB,MAAoB;CACpD,MAAM,WAAW,aAAa;AAE9B,KAAI,KAAK,SAAS,YAAY,CAAC,KAAK,IAAK,QAAO;AAChD,KAAI,KAAK,WAAW,OAAQ,QAAO;AAEnC,QAAO,SAAS,KAAK,KAAK,UAAU,KAAK,WAAW,aAAa"}
1
+ {"version":3,"file":"link-item.js","names":[],"sources":["../../src/utils/link-item.tsx"],"sourcesContent":["'use client';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { usePathname } from 'fumadocs-core/framework';\nimport { isActive } from './urls';\nimport Link from 'fumadocs-core/link';\n\ninterface Filterable {\n /**\n * Restrict where the item is displayed\n *\n * @defaultValue 'all'\n */\n on?: 'menu' | 'nav' | 'all';\n}\n\ninterface WithHref {\n url: string;\n /**\n * When the item is marked as active\n *\n * @defaultValue 'url'\n */\n active?: 'url' | 'nested-url' | 'none';\n external?: boolean;\n}\n\nexport interface MainItemType extends WithHref, Filterable {\n type?: 'main';\n icon?: ReactNode;\n text: ReactNode;\n description?: ReactNode;\n}\n\nexport interface IconItemType extends WithHref, Filterable {\n type: 'icon';\n /**\n * `aria-label` of icon button\n */\n label?: string;\n icon: ReactNode;\n text: ReactNode;\n /**\n * @defaultValue true\n */\n secondary?: boolean;\n}\n\nexport interface ButtonItemType extends WithHref, Filterable {\n type: 'button';\n icon?: ReactNode;\n text: ReactNode;\n /**\n * @defaultValue false\n */\n secondary?: boolean;\n}\n\nexport interface MenuItemType extends Partial<WithHref>, Filterable {\n type: 'menu';\n icon?: ReactNode;\n text: ReactNode;\n\n items: (\n | (MainItemType & {\n /**\n * Options when displayed on navigation menu\n */\n menu?: ComponentProps<'a'> & {\n banner?: ReactNode;\n };\n })\n | CustomItemType\n )[];\n\n /**\n * @defaultValue false\n */\n secondary?: boolean;\n}\n\nexport interface CustomItemType extends Filterable {\n type: 'custom';\n /**\n * @defaultValue false\n */\n secondary?: boolean;\n children: ReactNode;\n}\n\nexport type LinkItemType =\n | MainItemType\n | IconItemType\n | ButtonItemType\n | MenuItemType\n | CustomItemType;\n\nexport function LinkItem({\n ref,\n item,\n ...props\n}: Omit<ComponentProps<'a'>, 'href'> & { item: LinkItemType & WithHref }) {\n const active = useLinkItemActive(item);\n\n return (\n <Link ref={ref} href={item.url} external={item.external} {...props} data-active={active}>\n {props.children}\n </Link>\n );\n}\n\nexport function useLinkItemActive(link: LinkItemType) {\n const pathname = usePathname();\n\n if (link.type === 'custom' || !link.url) return false;\n if (link.active === 'none') return false;\n\n return isActive(link.url, pathname, link.active === 'nested-url');\n}\n"],"mappings":";;;;;;AAgGA,SAAgB,SAAS,EACvB,KACA,MACA,GAAG,SACqE;CACxE,MAAM,SAAS,kBAAkB,KAAK;AAEtC,QACE,oBAAC,MAAD;EAAW;EAAK,MAAM,KAAK;EAAK,UAAU,KAAK;EAAU,GAAI;EAAO,eAAa;YAC9E,MAAM;EACF,CAAA;;AAIX,SAAgB,kBAAkB,MAAoB;CACpD,MAAM,WAAW,aAAa;AAE9B,KAAI,KAAK,SAAS,YAAY,CAAC,KAAK,IAAK,QAAO;AAChD,KAAI,KAAK,WAAW,OAAQ,QAAO;AAEnC,QAAO,SAAS,KAAK,KAAK,UAAU,KAAK,WAAW,aAAa"}
@@ -7,7 +7,7 @@ function mergeRefs(...refs) {
7
7
  });
8
8
  };
9
9
  }
10
-
11
10
  //#endregion
12
11
  export { mergeRefs };
12
+
13
13
  //# sourceMappingURL=merge-refs.js.map
@@ -11,7 +11,7 @@ function isActive(href, pathname, nested = false) {
11
11
  pathname = normalize(pathname);
12
12
  return href === pathname || nested && pathname.startsWith(`${href}/`);
13
13
  }
14
-
15
14
  //#endregion
16
15
  export { isActive, normalize };
16
+
17
17
  //# sourceMappingURL=urls.js.map
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useCallback, useEffect, useRef, useState } from "react";
4
-
5
3
  //#region src/utils/use-copy-button.ts
6
4
  function useCopyButton(onCopy) {
7
5
  const [checked, setChecked] = useState(false);
@@ -24,7 +22,7 @@ function useCopyButton(onCopy) {
24
22
  }, []);
25
23
  return [checked, onClick];
26
24
  }
27
-
28
25
  //#endregion
29
26
  export { useCopyButton };
27
+
30
28
  //# sourceMappingURL=use-copy-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-copy-button.js","names":[],"sources":["../../src/utils/use-copy-button.ts"],"sourcesContent":["'use client';\nimport { type MouseEventHandler, useCallback, useEffect, useRef, useState } from 'react';\n\nexport function useCopyButton(\n onCopy: () => void | Promise<void>,\n): [checked: boolean, onClick: MouseEventHandler] {\n const [checked, setChecked] = useState(false);\n const callbackRef = useRef(onCopy);\n const timeoutRef = useRef<number | null>(null);\n\n callbackRef.current = onCopy;\n\n const onClick: MouseEventHandler = useCallback(() => {\n if (timeoutRef.current) window.clearTimeout(timeoutRef.current);\n const res = Promise.resolve(callbackRef.current());\n\n void res.then(() => {\n setChecked(true);\n timeoutRef.current = window.setTimeout(() => {\n setChecked(false);\n }, 1500);\n });\n }, []);\n\n // Avoid updates after being unmounted\n useEffect(() => {\n return () => {\n if (timeoutRef.current) window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return [checked, onClick];\n}\n"],"mappings":";;;;;AAGA,SAAgB,cACd,QACgD;CAChD,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,cAAc,OAAO,OAAO;CAClC,MAAM,aAAa,OAAsB,KAAK;AAE9C,aAAY,UAAU;CAEtB,MAAM,UAA6B,kBAAkB;AACnD,MAAI,WAAW,QAAS,QAAO,aAAa,WAAW,QAAQ;AAG/D,EAFY,QAAQ,QAAQ,YAAY,SAAS,CAAC,CAEzC,WAAW;AAClB,cAAW,KAAK;AAChB,cAAW,UAAU,OAAO,iBAAiB;AAC3C,eAAW,MAAM;MAChB,KAAK;IACR;IACD,EAAE,CAAC;AAGN,iBAAgB;AACd,eAAa;AACX,OAAI,WAAW,QAAS,QAAO,aAAa,WAAW,QAAQ;;IAEhE,EAAE,CAAC;AAEN,QAAO,CAAC,SAAS,QAAQ"}
1
+ {"version":3,"file":"use-copy-button.js","names":[],"sources":["../../src/utils/use-copy-button.ts"],"sourcesContent":["'use client';\nimport { type MouseEventHandler, useCallback, useEffect, useRef, useState } from 'react';\n\nexport function useCopyButton(\n onCopy: () => void | Promise<void>,\n): [checked: boolean, onClick: MouseEventHandler] {\n const [checked, setChecked] = useState(false);\n const callbackRef = useRef(onCopy);\n const timeoutRef = useRef<number | null>(null);\n\n callbackRef.current = onCopy;\n\n const onClick: MouseEventHandler = useCallback(() => {\n if (timeoutRef.current) window.clearTimeout(timeoutRef.current);\n const res = Promise.resolve(callbackRef.current());\n\n void res.then(() => {\n setChecked(true);\n timeoutRef.current = window.setTimeout(() => {\n setChecked(false);\n }, 1500);\n });\n }, []);\n\n // Avoid updates after being unmounted\n useEffect(() => {\n return () => {\n if (timeoutRef.current) window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return [checked, onClick];\n}\n"],"mappings":";;;AAGA,SAAgB,cACd,QACgD;CAChD,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,cAAc,OAAO,OAAO;CAClC,MAAM,aAAa,OAAsB,KAAK;AAE9C,aAAY,UAAU;CAEtB,MAAM,UAA6B,kBAAkB;AACnD,MAAI,WAAW,QAAS,QAAO,aAAa,WAAW,QAAQ;AACnD,UAAQ,QAAQ,YAAY,SAAS,CAAC,CAEzC,WAAW;AAClB,cAAW,KAAK;AAChB,cAAW,UAAU,OAAO,iBAAiB;AAC3C,eAAW,MAAM;MAChB,KAAK;IACR;IACD,EAAE,CAAC;AAGN,iBAAgB;AACd,eAAa;AACX,OAAI,WAAW,QAAS,QAAO,aAAa,WAAW,QAAQ;;IAEhE,EAAE,CAAC;AAEN,QAAO,CAAC,SAAS,QAAQ"}
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useTreeContext } from "../contexts/tree.js";
4
-
5
3
  //#region src/utils/use-footer-items.ts
6
4
  const footerCache = /* @__PURE__ */ new Map();
7
5
  /**
@@ -22,7 +20,7 @@ function useFooterItems() {
22
20
  footerCache.set(root.$id, list);
23
21
  return list;
24
22
  }
25
-
26
23
  //#endregion
27
24
  export { useFooterItems };
25
+
28
26
  //# sourceMappingURL=use-footer-items.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-footer-items.js","names":[],"sources":["../../src/utils/use-footer-items.ts"],"sourcesContent":["'use client';\nimport { useTreeContext } from '@/contexts/tree';\nimport type * as PageTree from 'fumadocs-core/page-tree';\n\nconst footerCache = new Map<string, PageTree.Item[]>();\n\n/**\n * @returns a list of page tree items (linear), that you can obtain footer items\n */\nexport function useFooterItems(): PageTree.Item[] {\n const { root } = useTreeContext();\n const cached = footerCache.get(root.$id);\n if (cached) return cached;\n\n const list: PageTree.Item[] = [];\n function onNode(node: PageTree.Node) {\n if (node.type === 'folder') {\n if (node.index) onNode(node.index);\n for (const child of node.children) onNode(child);\n } else if (node.type === 'page' && !node.external) {\n list.push(node);\n }\n }\n\n for (const child of root.children) onNode(child);\n footerCache.set(root.$id, list);\n return list;\n}\n"],"mappings":";;;;;AAIA,MAAM,8BAAc,IAAI,KAA8B;;;;AAKtD,SAAgB,iBAAkC;CAChD,MAAM,EAAE,SAAS,gBAAgB;CACjC,MAAM,SAAS,YAAY,IAAI,KAAK,IAAI;AACxC,KAAI,OAAQ,QAAO;CAEnB,MAAM,OAAwB,EAAE;CAChC,SAAS,OAAO,MAAqB;AACnC,MAAI,KAAK,SAAS,UAAU;AAC1B,OAAI,KAAK,MAAO,QAAO,KAAK,MAAM;AAClC,QAAK,MAAM,SAAS,KAAK,SAAU,QAAO,MAAM;aACvC,KAAK,SAAS,UAAU,CAAC,KAAK,SACvC,MAAK,KAAK,KAAK;;AAInB,MAAK,MAAM,SAAS,KAAK,SAAU,QAAO,MAAM;AAChD,aAAY,IAAI,KAAK,KAAK,KAAK;AAC/B,QAAO"}
1
+ {"version":3,"file":"use-footer-items.js","names":[],"sources":["../../src/utils/use-footer-items.ts"],"sourcesContent":["'use client';\nimport { useTreeContext } from '@/contexts/tree';\nimport type * as PageTree from 'fumadocs-core/page-tree';\n\nconst footerCache = new Map<string, PageTree.Item[]>();\n\n/**\n * @returns a list of page tree items (linear), that you can obtain footer items\n */\nexport function useFooterItems(): PageTree.Item[] {\n const { root } = useTreeContext();\n const cached = footerCache.get(root.$id);\n if (cached) return cached;\n\n const list: PageTree.Item[] = [];\n function onNode(node: PageTree.Node) {\n if (node.type === 'folder') {\n if (node.index) onNode(node.index);\n for (const child of node.children) onNode(child);\n } else if (node.type === 'page' && !node.external) {\n list.push(node);\n }\n }\n\n for (const child of root.children) onNode(child);\n footerCache.set(root.$id, list);\n return list;\n}\n"],"mappings":";;;AAIA,MAAM,8BAAc,IAAI,KAA8B;;;;AAKtD,SAAgB,iBAAkC;CAChD,MAAM,EAAE,SAAS,gBAAgB;CACjC,MAAM,SAAS,YAAY,IAAI,KAAK,IAAI;AACxC,KAAI,OAAQ,QAAO;CAEnB,MAAM,OAAwB,EAAE;CAChC,SAAS,OAAO,MAAqB;AACnC,MAAI,KAAK,SAAS,UAAU;AAC1B,OAAI,KAAK,MAAO,QAAO,KAAK,MAAM;AAClC,QAAK,MAAM,SAAS,KAAK,SAAU,QAAO,MAAM;aACvC,KAAK,SAAS,UAAU,CAAC,KAAK,SACvC,MAAK,KAAK,KAAK;;AAInB,MAAK,MAAM,SAAS,KAAK,SAAU,QAAO,MAAM;AAChD,aAAY,IAAI,KAAK,KAAK,KAAK;AAC/B,QAAO"}
@@ -1,7 +1,5 @@
1
- 'use client';
2
-
1
+ "use client";
3
2
  import { useEffect, useState } from "react";
4
-
5
3
  //#region src/utils/use-is-scroll-top.ts
6
4
  function useIsScrollTop({ enabled = true }) {
7
5
  const [isTop, setIsTop] = useState();
@@ -18,7 +16,7 @@ function useIsScrollTop({ enabled = true }) {
18
16
  }, [enabled]);
19
17
  return isTop;
20
18
  }
21
-
22
19
  //#endregion
23
20
  export { useIsScrollTop };
21
+
24
22
  //# sourceMappingURL=use-is-scroll-top.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-is-scroll-top.js","names":[],"sources":["../../src/utils/use-is-scroll-top.ts"],"sourcesContent":["'use client';\nimport { useEffect, useState } from 'react';\n\nexport function useIsScrollTop({ enabled = true }: { enabled?: boolean }) {\n const [isTop, setIsTop] = useState<boolean | undefined>();\n\n useEffect(() => {\n if (!enabled) return;\n\n const listener = () => {\n setIsTop(window.scrollY < 10);\n };\n\n listener();\n window.addEventListener('scroll', listener);\n return () => {\n window.removeEventListener('scroll', listener);\n };\n }, [enabled]);\n\n return isTop;\n}\n"],"mappings":";;;;;AAGA,SAAgB,eAAe,EAAE,UAAU,QAA+B;CACxE,MAAM,CAAC,OAAO,YAAY,UAA+B;AAEzD,iBAAgB;AACd,MAAI,CAAC,QAAS;EAEd,MAAM,iBAAiB;AACrB,YAAS,OAAO,UAAU,GAAG;;AAG/B,YAAU;AACV,SAAO,iBAAiB,UAAU,SAAS;AAC3C,eAAa;AACX,UAAO,oBAAoB,UAAU,SAAS;;IAE/C,CAAC,QAAQ,CAAC;AAEb,QAAO"}
1
+ {"version":3,"file":"use-is-scroll-top.js","names":[],"sources":["../../src/utils/use-is-scroll-top.ts"],"sourcesContent":["'use client';\nimport { useEffect, useState } from 'react';\n\nexport function useIsScrollTop({ enabled = true }: { enabled?: boolean }) {\n const [isTop, setIsTop] = useState<boolean | undefined>();\n\n useEffect(() => {\n if (!enabled) return;\n\n const listener = () => {\n setIsTop(window.scrollY < 10);\n };\n\n listener();\n window.addEventListener('scroll', listener);\n return () => {\n window.removeEventListener('scroll', listener);\n };\n }, [enabled]);\n\n return isTop;\n}\n"],"mappings":";;;AAGA,SAAgB,eAAe,EAAE,UAAU,QAA+B;CACxE,MAAM,CAAC,OAAO,YAAY,UAA+B;AAEzD,iBAAgB;AACd,MAAI,CAAC,QAAS;EAEd,MAAM,iBAAiB;AACrB,YAAS,OAAO,UAAU,GAAG;;AAG/B,YAAU;AACV,SAAO,iBAAiB,UAAU,SAAS;AAC3C,eAAa;AACX,UAAO,oBAAoB,UAAU,SAAS;;IAE/C,CAAC,QAAQ,CAAC;AAEb,QAAO"}