specra 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/app/docs-page.js +164 -148
  2. package/dist/app/docs-page.js.map +1 -1
  3. package/dist/app/docs-page.mjs +3 -3
  4. package/dist/app/layout.js +84 -5
  5. package/dist/app/layout.js.map +1 -1
  6. package/dist/app/layout.mjs +3 -3
  7. package/dist/{chunk-NXRIAL7T.mjs → chunk-4QHOMV5A.mjs} +8 -5
  8. package/dist/chunk-4QHOMV5A.mjs.map +1 -0
  9. package/dist/{chunk-IZFGEAD6.mjs → chunk-5AYOV2KD.mjs} +5 -4
  10. package/dist/chunk-5AYOV2KD.mjs.map +1 -0
  11. package/dist/chunk-I3ELVEK2.mjs +56 -0
  12. package/dist/chunk-I3ELVEK2.mjs.map +1 -0
  13. package/dist/{chunk-INL2EC72.mjs → chunk-RLMSINLY.mjs} +2 -5
  14. package/dist/{chunk-INL2EC72.mjs.map → chunk-RLMSINLY.mjs.map} +1 -1
  15. package/dist/components/index.d.mts +39 -3
  16. package/dist/components/index.d.ts +39 -3
  17. package/dist/components/index.js +100 -62
  18. package/dist/components/index.js.map +1 -1
  19. package/dist/components/index.mjs +83 -48
  20. package/dist/components/index.mjs.map +1 -1
  21. package/dist/index.d.mts +39 -3
  22. package/dist/index.d.ts +39 -3
  23. package/dist/index.js +129 -94
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +10 -4
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/lib/index.d.mts +7 -0
  28. package/dist/lib/index.d.ts +7 -0
  29. package/dist/lib/index.js +1 -4
  30. package/dist/lib/index.js.map +1 -1
  31. package/dist/lib/index.mjs +1 -1
  32. package/package.json +2 -2
  33. package/src/app/layout.tsx +6 -3
  34. package/src/components/docs/header.tsx +7 -3
  35. package/src/components/docs/index.ts +3 -0
  36. package/src/lib/config.context.tsx +65 -0
  37. package/src/lib/config.server.ts +9 -5
  38. package/src/lib/index.ts +1 -0
  39. package/dist/chunk-IZFGEAD6.mjs.map +0 -1
  40. package/dist/chunk-MZJHJ6BV.mjs +0 -21
  41. package/dist/chunk-MZJHJ6BV.mjs.map +0 -1
  42. package/dist/chunk-NXRIAL7T.mjs.map +0 -1
package/dist/index.d.mts CHANGED
@@ -173,9 +173,9 @@ interface HeaderProps {
173
173
  currentVersion: string;
174
174
  versions: string[];
175
175
  onMenuClick?: () => void;
176
- config: SpecraConfig;
176
+ config?: SpecraConfig;
177
177
  }
178
- declare function Header({ currentVersion, versions, onMenuClick, config }: HeaderProps): react_jsx_runtime.JSX.Element;
178
+ declare function Header({ currentVersion, versions, onMenuClick, config: configProp }: HeaderProps): react_jsx_runtime.JSX.Element;
179
179
 
180
180
  declare function HotReloadIndicator(): react_jsx_runtime.JSX.Element | null;
181
181
 
@@ -508,6 +508,42 @@ interface VersionSwitcherProps {
508
508
  }
509
509
  declare function VersionSwitcher({ currentVersion, versions }: VersionSwitcherProps): react_jsx_runtime.JSX.Element;
510
510
 
511
+ interface ConfigProviderProps {
512
+ config: SpecraConfig;
513
+ children: React$1.ReactNode;
514
+ }
515
+ /**
516
+ * Provider component that makes Specra config available to all client components
517
+ * Usage: Wrap your app with this provider in your root layout
518
+ */
519
+ declare function ConfigProvider({ config, children }: ConfigProviderProps): react_jsx_runtime.JSX.Element;
520
+ /**
521
+ * Hook to access Specra configuration in any client component
522
+ * @returns The current Specra configuration
523
+ * @example
524
+ * ```tsx
525
+ * function MyComponent() {
526
+ * const config = useConfig()
527
+ * return <div>{config.site.title}</div>
528
+ * }
529
+ * ```
530
+ */
531
+ declare function useConfig(): SpecraConfig;
532
+ /**
533
+ * Hook to access a specific configuration value by path
534
+ * @param path - Dot-separated path to the config value (e.g., "site.title")
535
+ * @returns The configuration value at the specified path
536
+ * @example
537
+ * ```tsx
538
+ * function MyComponent() {
539
+ * const title = useConfigValue<string>("site.title")
540
+ * const showSidebar = useConfigValue<boolean>("navigation.showSidebar")
541
+ * return <div>{title}</div>
542
+ * }
543
+ * ```
544
+ */
545
+ declare function useConfigValue<T = any>(path: string): T | undefined;
546
+
511
547
  declare const badgeVariants: (props?: ({
512
548
  variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
513
549
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -542,4 +578,4 @@ declare function Textarea({ className, ...props }: React$1.ComponentProps<"texta
542
578
 
543
579
  declare function VersionNotFound(): react_jsx_runtime.JSX.Element;
544
580
 
545
- export { Accordion, AccordionItem, ApiEndpoint, ApiParams, ApiPlayground, ApiReference, ApiResponse as ApiResponseDisplay, Badge, Breadcrumb, Button, COMPONENT_TEXT_PROPS, Callout, Card, CardGrid, CategoryIndex, CodeBlock, Column, Columns, DevModeBadge, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Doc, Badge$1 as DocBadge, DocLayout, DocLayoutWrapper, DocLoading, DocMeta, DocMetadata, DocNavigation, DocTags, DraftBadge, Footer, Frame, Header, HotReloadIndicator, Icon, Image, ImageCard, ImageCardGrid, Input, Math, MdxHotReload, Mermaid, MobileDocLayout, NotFoundContent, ParserType, SearchHighlight, SearchModal, Sidebar, SidebarSkeleton, SiteBanner, SpecraConfig, Step, Steps, Tab, TabGroup, TabGroups, TabProvider, TableOfContents, Tabs, Textarea, ThemeToggle, Tooltip, VersionNotFound, VersionSwitcher, Video, badgeVariants, buttonVariants, extractComponentPropsText, extractSearchText, mdxComponents, useTabContext };
581
+ export { Accordion, AccordionItem, ApiEndpoint, ApiParams, ApiPlayground, ApiReference, ApiResponse as ApiResponseDisplay, Badge, Breadcrumb, Button, COMPONENT_TEXT_PROPS, Callout, Card, CardGrid, CategoryIndex, CodeBlock, Column, Columns, ConfigProvider, DevModeBadge, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Doc, Badge$1 as DocBadge, DocLayout, DocLayoutWrapper, DocLoading, DocMeta, DocMetadata, DocNavigation, DocTags, DraftBadge, Footer, Frame, Header, HotReloadIndicator, Icon, Image, ImageCard, ImageCardGrid, Input, Math, MdxHotReload, Mermaid, MobileDocLayout, NotFoundContent, ParserType, SearchHighlight, SearchModal, Sidebar, SidebarSkeleton, SiteBanner, SpecraConfig, Step, Steps, Tab, TabGroup, TabGroups, TabProvider, TableOfContents, Tabs, Textarea, ThemeToggle, Tooltip, VersionNotFound, VersionSwitcher, Video, badgeVariants, buttonVariants, extractComponentPropsText, extractSearchText, mdxComponents, useConfig, useConfigValue, useTabContext };
package/dist/index.d.ts CHANGED
@@ -173,9 +173,9 @@ interface HeaderProps {
173
173
  currentVersion: string;
174
174
  versions: string[];
175
175
  onMenuClick?: () => void;
176
- config: SpecraConfig;
176
+ config?: SpecraConfig;
177
177
  }
178
- declare function Header({ currentVersion, versions, onMenuClick, config }: HeaderProps): react_jsx_runtime.JSX.Element;
178
+ declare function Header({ currentVersion, versions, onMenuClick, config: configProp }: HeaderProps): react_jsx_runtime.JSX.Element;
179
179
 
180
180
  declare function HotReloadIndicator(): react_jsx_runtime.JSX.Element | null;
181
181
 
@@ -508,6 +508,42 @@ interface VersionSwitcherProps {
508
508
  }
509
509
  declare function VersionSwitcher({ currentVersion, versions }: VersionSwitcherProps): react_jsx_runtime.JSX.Element;
510
510
 
511
+ interface ConfigProviderProps {
512
+ config: SpecraConfig;
513
+ children: React$1.ReactNode;
514
+ }
515
+ /**
516
+ * Provider component that makes Specra config available to all client components
517
+ * Usage: Wrap your app with this provider in your root layout
518
+ */
519
+ declare function ConfigProvider({ config, children }: ConfigProviderProps): react_jsx_runtime.JSX.Element;
520
+ /**
521
+ * Hook to access Specra configuration in any client component
522
+ * @returns The current Specra configuration
523
+ * @example
524
+ * ```tsx
525
+ * function MyComponent() {
526
+ * const config = useConfig()
527
+ * return <div>{config.site.title}</div>
528
+ * }
529
+ * ```
530
+ */
531
+ declare function useConfig(): SpecraConfig;
532
+ /**
533
+ * Hook to access a specific configuration value by path
534
+ * @param path - Dot-separated path to the config value (e.g., "site.title")
535
+ * @returns The configuration value at the specified path
536
+ * @example
537
+ * ```tsx
538
+ * function MyComponent() {
539
+ * const title = useConfigValue<string>("site.title")
540
+ * const showSidebar = useConfigValue<boolean>("navigation.showSidebar")
541
+ * return <div>{title}</div>
542
+ * }
543
+ * ```
544
+ */
545
+ declare function useConfigValue<T = any>(path: string): T | undefined;
546
+
511
547
  declare const badgeVariants: (props?: ({
512
548
  variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
513
549
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -542,4 +578,4 @@ declare function Textarea({ className, ...props }: React$1.ComponentProps<"texta
542
578
 
543
579
  declare function VersionNotFound(): react_jsx_runtime.JSX.Element;
544
580
 
545
- export { Accordion, AccordionItem, ApiEndpoint, ApiParams, ApiPlayground, ApiReference, ApiResponse as ApiResponseDisplay, Badge, Breadcrumb, Button, COMPONENT_TEXT_PROPS, Callout, Card, CardGrid, CategoryIndex, CodeBlock, Column, Columns, DevModeBadge, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Doc, Badge$1 as DocBadge, DocLayout, DocLayoutWrapper, DocLoading, DocMeta, DocMetadata, DocNavigation, DocTags, DraftBadge, Footer, Frame, Header, HotReloadIndicator, Icon, Image, ImageCard, ImageCardGrid, Input, Math, MdxHotReload, Mermaid, MobileDocLayout, NotFoundContent, ParserType, SearchHighlight, SearchModal, Sidebar, SidebarSkeleton, SiteBanner, SpecraConfig, Step, Steps, Tab, TabGroup, TabGroups, TabProvider, TableOfContents, Tabs, Textarea, ThemeToggle, Tooltip, VersionNotFound, VersionSwitcher, Video, badgeVariants, buttonVariants, extractComponentPropsText, extractSearchText, mdxComponents, useTabContext };
581
+ export { Accordion, AccordionItem, ApiEndpoint, ApiParams, ApiPlayground, ApiReference, ApiResponse as ApiResponseDisplay, Badge, Breadcrumb, Button, COMPONENT_TEXT_PROPS, Callout, Card, CardGrid, CategoryIndex, CodeBlock, Column, Columns, ConfigProvider, DevModeBadge, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Doc, Badge$1 as DocBadge, DocLayout, DocLayoutWrapper, DocLoading, DocMeta, DocMetadata, DocNavigation, DocTags, DraftBadge, Footer, Frame, Header, HotReloadIndicator, Icon, Image, ImageCard, ImageCardGrid, Input, Math, MdxHotReload, Mermaid, MobileDocLayout, NotFoundContent, ParserType, SearchHighlight, SearchModal, Sidebar, SidebarSkeleton, SiteBanner, SpecraConfig, Step, Steps, Tab, TabGroup, TabGroups, TabProvider, TableOfContents, Tabs, Textarea, ThemeToggle, Tooltip, VersionNotFound, VersionSwitcher, Video, badgeVariants, buttonVariants, extractComponentPropsText, extractSearchText, mdxComponents, useConfig, useConfigValue, useTabContext };
package/dist/index.js CHANGED
@@ -49,6 +49,7 @@ __export(src_exports, {
49
49
  CodeBlock: () => CodeBlock,
50
50
  Column: () => Column,
51
51
  Columns: () => Columns,
52
+ ConfigProvider: () => ConfigProvider,
52
53
  DevModeBadge: () => DevModeBadge,
53
54
  Dialog: () => Dialog,
54
55
  DialogClose: () => DialogClose,
@@ -149,6 +150,8 @@ __export(src_exports, {
149
150
  replaceEnvVariables: () => replaceEnvVariables,
150
151
  sortSidebarGroups: () => sortSidebarGroups,
151
152
  sortSidebarItems: () => sortSidebarItems,
153
+ useConfig: () => useConfig,
154
+ useConfigValue: () => useConfigValue,
152
155
  useTabContext: () => useTabContext,
153
156
  validateConfig: () => validateConfig
154
157
  });
@@ -830,15 +833,12 @@ function validateConfig(config) {
830
833
  }
831
834
  var configInstance = null;
832
835
  function initConfig(userConfig) {
833
- if (configInstance) {
834
- throw new Error("Specra config has already been initialized");
835
- }
836
836
  configInstance = loadConfig(userConfig);
837
837
  return configInstance;
838
838
  }
839
839
  function getConfig() {
840
840
  if (!configInstance) {
841
- throw new Error("Specra config has not been initialized");
841
+ configInstance = loadConfig({});
842
842
  }
843
843
  return configInstance;
844
844
  }
@@ -4003,8 +4003,40 @@ function SearchModal({ isOpen, onClose, config }) {
4003
4003
 
4004
4004
  // src/components/docs/header.tsx
4005
4005
  var import_react21 = require("react");
4006
+
4007
+ // src/lib/config.context.tsx
4008
+ var React2 = __toESM(require("react"));
4006
4009
  var import_jsx_runtime47 = require("react/jsx-runtime");
4007
- function Header({ currentVersion, versions, onMenuClick, config }) {
4010
+ var ConfigContext = React2.createContext(defaultConfig);
4011
+ function ConfigProvider({ config, children }) {
4012
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ConfigContext.Provider, { value: config, children });
4013
+ }
4014
+ function useConfig() {
4015
+ const config = React2.useContext(ConfigContext);
4016
+ if (!config) {
4017
+ throw new Error("useConfig must be used within a ConfigProvider");
4018
+ }
4019
+ return config;
4020
+ }
4021
+ function useConfigValue(path3) {
4022
+ const config = useConfig();
4023
+ const keys = path3.split(".");
4024
+ let value = config;
4025
+ for (const key of keys) {
4026
+ if (value && typeof value === "object" && key in value) {
4027
+ value = value[key];
4028
+ } else {
4029
+ return void 0;
4030
+ }
4031
+ }
4032
+ return value;
4033
+ }
4034
+
4035
+ // src/components/docs/header.tsx
4036
+ var import_jsx_runtime48 = require("react/jsx-runtime");
4037
+ function Header({ currentVersion, versions, onMenuClick, config: configProp }) {
4038
+ const contextConfig = useConfig();
4039
+ const config = configProp || contextConfig;
4008
4040
  const [searchOpen, setSearchOpen] = (0, import_react21.useState)(false);
4009
4041
  (0, import_react21.useEffect)(() => {
4010
4042
  const handleKeyDown = (e) => {
@@ -4016,38 +4048,38 @@ function Header({ currentVersion, versions, onMenuClick, config }) {
4016
4048
  window.addEventListener("keydown", handleKeyDown);
4017
4049
  return () => window.removeEventListener("keydown", handleKeyDown);
4018
4050
  }, []);
4019
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("header", { className: "sticky top-0 z-50 w-full border-b border-border bg-background/95 backdrop-blur supports-backdrop-filter:bg-background/60", children: [
4020
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "container flex h-16 items-center justify-between px-6 mx-auto", children: [
4021
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2", children: [
4022
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4051
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("header", { className: "sticky top-0 z-50 w-full border-b border-border bg-background/95 backdrop-blur supports-backdrop-filter:bg-background/60", children: [
4052
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "container flex h-16 items-center justify-between px-6 mx-auto", children: [
4053
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center gap-2", children: [
4054
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4023
4055
  "button",
4024
4056
  {
4025
4057
  onClick: onMenuClick,
4026
4058
  className: "lg:hidden hover:bg-muted p-2 rounded-md transition-colors",
4027
4059
  "aria-label": "Toggle menu",
4028
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react23.Menu, { className: "h-5 w-5" })
4060
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react23.Menu, { className: "h-5 w-5" })
4029
4061
  }
4030
4062
  ),
4031
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(import_link8.default, { href: "/", className: "flex items-center gap-2", children: [
4032
- config.site.logo ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("img", { src: getAssetPath(config.site.logo), alt: config.site.title, className: "h-8 w-auto" }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "h-8 w-8 rounded-xl bg-primary flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "text-primary-foreground font-bold text-lg", children: config.site.title.charAt(0).toUpperCase() }) }),
4033
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "font-semibold text-lg text-foreground", children: "Specra" })
4063
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_link8.default, { href: "/", className: "flex items-center gap-2", children: [
4064
+ config.site.logo ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("img", { src: getAssetPath(config.site.logo), alt: config.site.title, className: "h-8 w-auto" }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "h-8 w-8 rounded-xl bg-primary flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "text-primary-foreground font-bold text-lg", children: config.site.title.charAt(0).toUpperCase() }) }),
4065
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "font-semibold text-lg text-foreground", children: config.site.title ?? "Specra" })
4034
4066
  ] })
4035
4067
  ] }),
4036
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2", children: [
4037
- config.search?.enabled && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
4068
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex items-center gap-2", children: [
4069
+ config.search?.enabled && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
4038
4070
  "button",
4039
4071
  {
4040
4072
  onClick: () => setSearchOpen(true),
4041
4073
  className: "flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground hover:text-foreground bg-muted rounded-md transition-colors",
4042
4074
  children: [
4043
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react23.Search, { className: "h-4 w-4" }),
4044
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "hidden sm:inline", children: config.search.placeholder || "Search" }),
4045
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("kbd", { className: "hidden sm:inline-flex h-5 select-none items-center gap-1 rounded border border-border bg-background px-1.5 font-mono text-xs font-medium", children: "\u2318K" })
4075
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react23.Search, { className: "h-4 w-4" }),
4076
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "hidden sm:inline", children: config.search.placeholder || "Search" }),
4077
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("kbd", { className: "hidden sm:inline-flex h-5 select-none items-center gap-1 rounded border border-border bg-background px-1.5 font-mono text-xs font-medium", children: "\u2318K" })
4046
4078
  ]
4047
4079
  }
4048
4080
  ),
4049
- config.features?.versioning && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(VersionSwitcher, { currentVersion, versions }),
4050
- config.social?.github && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4081
+ config.features?.versioning && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(VersionSwitcher, { currentVersion, versions }),
4082
+ config.social?.github && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4051
4083
  "a",
4052
4084
  {
4053
4085
  href: config.social.github,
@@ -4055,10 +4087,10 @@ function Header({ currentVersion, versions, onMenuClick, config }) {
4055
4087
  rel: "noopener noreferrer",
4056
4088
  className: "hidden md:flex items-center justify-center h-9 w-9 rounded-md hover:bg-muted transition-colors",
4057
4089
  "aria-label": "GitHub",
4058
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react23.Github, { className: "h-4 w-4" })
4090
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react23.Github, { className: "h-4 w-4" })
4059
4091
  }
4060
4092
  ),
4061
- config.social?.twitter && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4093
+ config.social?.twitter && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4062
4094
  "a",
4063
4095
  {
4064
4096
  href: config.social.twitter,
@@ -4066,10 +4098,10 @@ function Header({ currentVersion, versions, onMenuClick, config }) {
4066
4098
  rel: "noopener noreferrer",
4067
4099
  className: "hidden md:flex items-center justify-center h-9 w-9 rounded-md hover:bg-muted transition-colors",
4068
4100
  "aria-label": "Twitter",
4069
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react23.Twitter, { className: "h-4 w-4" })
4101
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react23.Twitter, { className: "h-4 w-4" })
4070
4102
  }
4071
4103
  ),
4072
- config.social?.discord && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
4104
+ config.social?.discord && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4073
4105
  "a",
4074
4106
  {
4075
4107
  href: config.social.discord,
@@ -4077,13 +4109,13 @@ function Header({ currentVersion, versions, onMenuClick, config }) {
4077
4109
  rel: "noopener noreferrer",
4078
4110
  className: "hidden md:flex items-center justify-center h-9 w-9 rounded-md hover:bg-muted transition-colors",
4079
4111
  "aria-label": "Discord",
4080
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_lucide_react23.MessageCircle, { className: "h-4 w-4" })
4112
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react23.MessageCircle, { className: "h-4 w-4" })
4081
4113
  }
4082
4114
  ),
4083
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(ThemeToggle, {})
4115
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(ThemeToggle, {})
4084
4116
  ] })
4085
4117
  ] }),
4086
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(SearchModal, { isOpen: searchOpen, onClose: () => setSearchOpen(false), config })
4118
+ /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(SearchModal, { isOpen: searchOpen, onClose: () => setSearchOpen(false), config })
4087
4119
  ] });
4088
4120
  }
4089
4121
 
@@ -4091,7 +4123,7 @@ function Header({ currentVersion, versions, onMenuClick, config }) {
4091
4123
  var import_react22 = require("react");
4092
4124
  var import_navigation5 = require("next/navigation");
4093
4125
  var import_lucide_react24 = require("lucide-react");
4094
- var import_jsx_runtime48 = require("react/jsx-runtime");
4126
+ var import_jsx_runtime49 = require("react/jsx-runtime");
4095
4127
  function HotReloadIndicator() {
4096
4128
  const [isReloading, setIsReloading] = (0, import_react22.useState)(false);
4097
4129
  const [lastReload, setLastReload] = (0, import_react22.useState)(null);
@@ -4126,14 +4158,14 @@ function HotReloadIndicator() {
4126
4158
  };
4127
4159
  }, []);
4128
4160
  if (process.env.NODE_ENV !== "development") return null;
4129
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
4130
- isReloading && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "fixed bottom-4 right-4 z-50 flex items-center gap-2 px-4 py-2 bg-primary text-primary-foreground rounded-xl shadow-lg animate-in slide-in-from-bottom-2", children: [
4131
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react24.RefreshCw, { className: "h-4 w-4 animate-spin" }),
4132
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "text-sm font-medium", children: "Reloading..." })
4161
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
4162
+ isReloading && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "fixed bottom-4 right-4 z-50 flex items-center gap-2 px-4 py-2 bg-primary text-primary-foreground rounded-xl shadow-lg animate-in slide-in-from-bottom-2", children: [
4163
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react24.RefreshCw, { className: "h-4 w-4 animate-spin" }),
4164
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-sm font-medium", children: "Reloading..." })
4133
4165
  ] }),
4134
- lastReload && !isReloading && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "fixed bottom-4 right-4 z-50 flex items-center gap-2 px-4 py-2 bg-green-500 text-white rounded-xl shadow-lg animate-in slide-in-from-bottom-2", children: [
4135
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_lucide_react24.RefreshCw, { className: "h-4 w-4" }),
4136
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("span", { className: "text-sm font-medium", children: [
4166
+ lastReload && !isReloading && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "fixed bottom-4 right-4 z-50 flex items-center gap-2 px-4 py-2 bg-green-500 text-white rounded-xl shadow-lg animate-in slide-in-from-bottom-2", children: [
4167
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react24.RefreshCw, { className: "h-4 w-4" }),
4168
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("span", { className: "text-sm font-medium", children: [
4137
4169
  "Updated at ",
4138
4170
  lastReload.toLocaleTimeString()
4139
4171
  ] })
@@ -4172,63 +4204,63 @@ function MdxHotReload() {
4172
4204
  // src/components/docs/not-found-content.tsx
4173
4205
  var import_link9 = __toESM(require("next/link"));
4174
4206
  var import_lucide_react25 = require("lucide-react");
4175
- var import_jsx_runtime49 = require("react/jsx-runtime");
4207
+ var import_jsx_runtime50 = require("react/jsx-runtime");
4176
4208
  function NotFoundContent({ version }) {
4177
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex min-h-[calc(100vh-12rem)] items-center justify-center px-4 py-12", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full max-w-2xl text-center", children: [
4178
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "mb-6 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "rounded-full bg-yellow-500/10 p-4", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react25.AlertTriangle, { className: "h-16 w-16 text-yellow-500" }) }) }),
4179
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h1", { className: "mb-3 text-5xl font-bold tracking-tight", children: "404" }),
4180
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h2", { className: "mb-4 text-2xl font-semibold", children: "Page Not Found" }),
4181
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("p", { className: "mb-8 text-base text-muted-foreground", children: [
4209
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex min-h-[calc(100vh-12rem)] items-center justify-center px-4 py-12", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "w-full max-w-2xl text-center", children: [
4210
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "mb-6 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "rounded-full bg-yellow-500/10 p-4", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react25.AlertTriangle, { className: "h-16 w-16 text-yellow-500" }) }) }),
4211
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("h1", { className: "mb-3 text-5xl font-bold tracking-tight", children: "404" }),
4212
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("h2", { className: "mb-4 text-2xl font-semibold", children: "Page Not Found" }),
4213
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("p", { className: "mb-8 text-base text-muted-foreground", children: [
4182
4214
  "The documentation page you're looking for doesn't exist or may have been moved.",
4183
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("br", {}),
4215
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("br", {}),
4184
4216
  "Try using the sidebar to find what you're looking for, or return to the documentation home."
4185
4217
  ] }),
4186
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-col items-center justify-center gap-3 sm:flex-row", children: [
4187
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
4218
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex flex-col items-center justify-center gap-3 sm:flex-row", children: [
4219
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
4188
4220
  import_link9.default,
4189
4221
  {
4190
4222
  href: `/docs/${version}`,
4191
4223
  className: "inline-flex items-center gap-2 rounded-lg bg-primary px-6 py-3 text-sm font-medium text-primary-foreground hover:bg-primary/90 transition-colors",
4192
4224
  children: [
4193
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react25.ArrowLeft, { className: "h-4 w-4" }),
4225
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react25.ArrowLeft, { className: "h-4 w-4" }),
4194
4226
  "Back to Documentation"
4195
4227
  ]
4196
4228
  }
4197
4229
  ),
4198
- /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
4230
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
4199
4231
  import_link9.default,
4200
4232
  {
4201
4233
  href: "/",
4202
4234
  className: "inline-flex items-center gap-2 rounded-lg border border-border bg-background px-6 py-3 text-sm font-medium hover:bg-muted transition-colors",
4203
4235
  children: [
4204
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react25.Home, { className: "h-4 w-4" }),
4236
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react25.Home, { className: "h-4 w-4" }),
4205
4237
  "Go to Homepage"
4206
4238
  ]
4207
4239
  }
4208
4240
  )
4209
4241
  ] }),
4210
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "mt-12 rounded-lg border border-border bg-muted/30 p-6", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
4211
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("strong", { className: "font-medium text-foreground", children: "Tip:" }),
4242
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "mt-12 rounded-lg border border-border bg-muted/30 p-6", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("p", { className: "text-sm text-muted-foreground", children: [
4243
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("strong", { className: "font-medium text-foreground", children: "Tip:" }),
4212
4244
  " Use the sidebar navigation on the left to browse all available documentation pages."
4213
4245
  ] }) })
4214
4246
  ] }) });
4215
4247
  }
4216
4248
 
4217
4249
  // src/components/docs/sidebar-skeleton.tsx
4218
- var import_jsx_runtime50 = require("react/jsx-runtime");
4250
+ var import_jsx_runtime51 = require("react/jsx-runtime");
4219
4251
  function SidebarSkeleton() {
4220
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("aside", { className: "w-64 pr-8 py-6", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "space-y-6", children: [
4221
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "px-2", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "h-5 w-32 bg-muted/50 rounded animate-pulse" }) }),
4222
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "space-y-1", children: [...Array(8)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "px-3 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
4252
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("aside", { className: "w-64 pr-8 py-6", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-6", children: [
4253
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "px-2", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "h-5 w-32 bg-muted/50 rounded animate-pulse" }) }),
4254
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "space-y-1", children: [...Array(8)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "px-3 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
4223
4255
  "div",
4224
4256
  {
4225
4257
  className: "h-4 bg-muted/50 rounded animate-pulse",
4226
4258
  style: { width: `${60 + Math.random() * 40}%` }
4227
4259
  }
4228
4260
  ) }, i)) }),
4229
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "space-y-1", children: [
4230
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "px-2 mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "h-4 w-24 bg-muted/50 rounded animate-pulse" }) }),
4231
- [...Array(5)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "px-3 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
4261
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "space-y-1", children: [
4262
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "px-2 mb-2", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "h-4 w-24 bg-muted/50 rounded animate-pulse" }) }),
4263
+ [...Array(5)].map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "px-3 py-2", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
4232
4264
  "div",
4233
4265
  {
4234
4266
  className: "h-4 bg-muted/50 rounded animate-pulse",
@@ -4241,7 +4273,7 @@ function SidebarSkeleton() {
4241
4273
 
4242
4274
  // src/components/docs/table-of-contents.tsx
4243
4275
  var import_react24 = require("react");
4244
- var import_jsx_runtime51 = require("react/jsx-runtime");
4276
+ var import_jsx_runtime52 = require("react/jsx-runtime");
4245
4277
  function TableOfContents({ items, config }) {
4246
4278
  const [activeId, setActiveId] = (0, import_react24.useState)("");
4247
4279
  if (!config.navigation?.showTableOfContents) {
@@ -4286,9 +4318,9 @@ function TableOfContents({ items, config }) {
4286
4318
  };
4287
4319
  const stickyTop = hasTabGroups ? "top-[7.5rem]" : "top-24";
4288
4320
  const maxHeight = hasTabGroups ? "max-h-[calc(100vh-10rem)]" : "max-h-[calc(100vh-7rem)]";
4289
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("aside", { className: `w-64 hidden xl:block shrink-0 sticky ${stickyTop} self-start`, children: filteredItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: `${maxHeight} overflow-y-auto bg-muted/30 dark:bg-muted/10 rounded-2xl p-4 border border-border/50`, children: [
4290
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("h3", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-4 px-2", children: "On this page" }),
4291
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("nav", { className: "space-y-1", children: filteredItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
4321
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("aside", { className: `w-64 hidden xl:block shrink-0 sticky ${stickyTop} self-start`, children: filteredItems.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: `${maxHeight} overflow-y-auto bg-muted/30 dark:bg-muted/10 rounded-2xl p-4 border border-border/50`, children: [
4322
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("h3", { className: "text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-4 px-2", children: "On this page" }),
4323
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("nav", { className: "space-y-1", children: filteredItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
4292
4324
  "a",
4293
4325
  {
4294
4326
  href: `#${item.id}`,
@@ -4304,13 +4336,13 @@ function TableOfContents({ items, config }) {
4304
4336
  // src/components/global/version-not-found.tsx
4305
4337
  var import_lucide_react26 = require("lucide-react");
4306
4338
  var import_link10 = __toESM(require("next/link"));
4307
- var import_jsx_runtime52 = require("react/jsx-runtime");
4339
+ var import_jsx_runtime53 = require("react/jsx-runtime");
4308
4340
  function VersionNotFound() {
4309
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_jsx_runtime52.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex min-h-screen items-center justify-center px-4", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "text-center", children: [
4310
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "mb-4 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_lucide_react26.AlertTriangle, { className: "h-16 w-16 text-yellow-500" }) }),
4311
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("h1", { className: "mb-2 text-4xl font-bold", children: "Version Not Found" }),
4312
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "mb-6 text-muted-foreground", children: "The documentation version you're looking for doesn't exist." }),
4313
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
4341
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_jsx_runtime53.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex min-h-screen items-center justify-center px-4", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "text-center", children: [
4342
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "mb-4 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react26.AlertTriangle, { className: "h-16 w-16 text-yellow-500" }) }),
4343
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("h1", { className: "mb-2 text-4xl font-bold", children: "Version Not Found" }),
4344
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "mb-6 text-muted-foreground", children: "The documentation version you're looking for doesn't exist." }),
4345
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
4314
4346
  import_link10.default,
4315
4347
  {
4316
4348
  href: "/docs/v1.0.0",
@@ -4323,7 +4355,7 @@ function VersionNotFound() {
4323
4355
 
4324
4356
  // src/app/layout.tsx
4325
4357
  var import_google = require("next/font/google");
4326
- var import_jsx_runtime53 = require("react/jsx-runtime");
4358
+ var import_jsx_runtime54 = require("react/jsx-runtime");
4327
4359
  var geist = (0, import_google.Geist)({ subsets: ["latin"] });
4328
4360
  var geistMono = (0, import_google.Geist_Mono)({ subsets: ["latin"] });
4329
4361
  function generateMetadata() {
@@ -4365,12 +4397,12 @@ function RootLayout({
4365
4397
  }) {
4366
4398
  const config = getConfig();
4367
4399
  const defaultTab = config.navigation?.tabGroups?.[0]?.id || "";
4368
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("html", { lang: config.site.language || "en", suppressHydrationWarning: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("body", { className: `${geist.className} font-sans antialiased`, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TabProvider, { defaultTab, children }) }) });
4400
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("html", { lang: config.site.language || "en", suppressHydrationWarning: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("body", { className: `${geist.className} font-sans antialiased`, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ConfigProvider, { config, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TabProvider, { defaultTab, children }) }) }) });
4369
4401
  }
4370
4402
 
4371
4403
  // src/app/docs-page.tsx
4372
4404
  var import_react25 = require("react");
4373
- var import_jsx_runtime54 = require("react/jsx-runtime");
4405
+ var import_jsx_runtime55 = require("react/jsx-runtime");
4374
4406
  async function generateMetadata2({ params }) {
4375
4407
  const { version, slug: slugArray } = await params;
4376
4408
  const slug = slugArray.join("/");
@@ -4430,14 +4462,14 @@ async function DocPage({ params }) {
4430
4462
  if (!doc && isCategory) {
4431
4463
  const categoryDoc = allDocs.find((d) => d.slug.startsWith(slug + "/"));
4432
4464
  const categoryTabGroup = categoryDoc?.meta?.tab_group || categoryDoc?.categoryTabGroup;
4433
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
4434
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4465
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
4466
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4435
4467
  DocLayoutWrapper,
4436
4468
  {
4437
- header: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Header, { currentVersion: version, versions, config }),
4469
+ header: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Header, { currentVersion: version, versions, config }),
4438
4470
  docs: allDocs,
4439
4471
  version,
4440
- content: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4472
+ content: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4441
4473
  CategoryIndex,
4442
4474
  {
4443
4475
  categoryPath: slug,
@@ -4448,47 +4480,47 @@ async function DocPage({ params }) {
4448
4480
  config
4449
4481
  }
4450
4482
  ),
4451
- toc: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", {}),
4483
+ toc: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", {}),
4452
4484
  config,
4453
4485
  currentPageTabGroup: categoryTabGroup
4454
4486
  }
4455
4487
  ),
4456
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(MdxHotReload, {}),
4457
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(HotReloadIndicator, {}),
4458
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DevModeBadge, {})
4488
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(MdxHotReload, {}),
4489
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(HotReloadIndicator, {}),
4490
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(DevModeBadge, {})
4459
4491
  ] });
4460
4492
  }
4461
4493
  if (!doc) {
4462
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_jsx_runtime54.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react25.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DocLoading, {}), children: [
4463
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4494
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_jsx_runtime55.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_react25.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(DocLoading, {}), children: [
4495
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4464
4496
  DocLayoutWrapper,
4465
4497
  {
4466
- header: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Header, { currentVersion: version, versions, config }),
4498
+ header: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Header, { currentVersion: version, versions, config }),
4467
4499
  docs: allDocs,
4468
4500
  version,
4469
- content: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(NotFoundContent, { version }),
4470
- toc: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", {}),
4501
+ content: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(NotFoundContent, { version }),
4502
+ toc: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", {}),
4471
4503
  config,
4472
4504
  currentPageTabGroup: void 0
4473
4505
  }
4474
4506
  ),
4475
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(MdxHotReload, {}),
4476
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(HotReloadIndicator, {}),
4477
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DevModeBadge, {})
4507
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(MdxHotReload, {}),
4508
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(HotReloadIndicator, {}),
4509
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(DevModeBadge, {})
4478
4510
  ] }) });
4479
4511
  }
4480
4512
  const toc = extractTableOfContents(doc.content);
4481
4513
  const { previous, next } = getAdjacentDocs(slug, allDocs);
4482
4514
  const showCategoryIndex = isCategory && doc;
4483
4515
  const currentPageTabGroup = doc.meta?.tab_group || doc.categoryTabGroup;
4484
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_jsx_runtime54.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_react25.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DocLoading, {}), children: [
4485
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4516
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_jsx_runtime55.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_react25.Suspense, { fallback: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(DocLoading, {}), children: [
4517
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4486
4518
  DocLayoutWrapper,
4487
4519
  {
4488
- header: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Header, { currentVersion: version, versions, config }),
4520
+ header: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Header, { currentVersion: version, versions, config }),
4489
4521
  docs: allDocs,
4490
4522
  version,
4491
- content: showCategoryIndex ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4523
+ content: showCategoryIndex ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4492
4524
  CategoryIndex,
4493
4525
  {
4494
4526
  categoryPath: slug,
@@ -4499,7 +4531,7 @@ async function DocPage({ params }) {
4499
4531
  content: doc.content,
4500
4532
  config
4501
4533
  }
4502
- ) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
4534
+ ) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
4503
4535
  DocLayout,
4504
4536
  {
4505
4537
  meta: doc.meta,
@@ -4511,14 +4543,14 @@ async function DocPage({ params }) {
4511
4543
  config
4512
4544
  }
4513
4545
  ),
4514
- toc: showCategoryIndex ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", {}) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TableOfContents, { items: toc, config }),
4546
+ toc: showCategoryIndex ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", {}) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TableOfContents, { items: toc, config }),
4515
4547
  config,
4516
4548
  currentPageTabGroup
4517
4549
  }
4518
4550
  ),
4519
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(MdxHotReload, {}),
4520
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(HotReloadIndicator, {}),
4521
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(DevModeBadge, {})
4551
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(MdxHotReload, {}),
4552
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(HotReloadIndicator, {}),
4553
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(DevModeBadge, {})
4522
4554
  ] }) });
4523
4555
  }
4524
4556
  // Annotate the CommonJS export names for ESM import in node:
@@ -4542,6 +4574,7 @@ async function DocPage({ params }) {
4542
4574
  CodeBlock,
4543
4575
  Column,
4544
4576
  Columns,
4577
+ ConfigProvider,
4545
4578
  DevModeBadge,
4546
4579
  Dialog,
4547
4580
  DialogClose,
@@ -4642,6 +4675,8 @@ async function DocPage({ params }) {
4642
4675
  replaceEnvVariables,
4643
4676
  sortSidebarGroups,
4644
4677
  sortSidebarItems,
4678
+ useConfig,
4679
+ useConfigValue,
4645
4680
  useTabContext,
4646
4681
  validateConfig
4647
4682
  });