robindoc 3.6.2 → 3.6.4

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 (28) hide show
  1. package/lib/components/blocks/code-section/index.d.ts.map +1 -1
  2. package/lib/components/blocks/code-section/index.js +1 -1
  3. package/lib/components/blocks/code-section/index.js.map +1 -1
  4. package/lib/components/blocks/contents/index.js +1 -1
  5. package/lib/components/blocks/contents/index.js.map +1 -1
  6. package/lib/components/blocks/theme-detector/index.js +1 -1
  7. package/lib/components/blocks/theme-detector/index.js.map +1 -1
  8. package/lib/components/elements/footer/index.js +1 -1
  9. package/lib/components/elements/footer/index.js.map +1 -1
  10. package/lib/components/elements/sidebar/sidebar-drop/index.d.ts.map +1 -1
  11. package/lib/components/elements/sidebar/sidebar-drop/index.js +1 -1
  12. package/lib/components/elements/sidebar/sidebar-drop/index.js.map +1 -1
  13. package/lib/components/stores/navigation/contexts.d.ts.map +1 -1
  14. package/lib/components/stores/navigation/contexts.js +1 -1
  15. package/lib/components/stores/navigation/contexts.js.map +1 -1
  16. package/lib/components/stores/navigation/stores.d.ts.map +1 -1
  17. package/lib/components/stores/navigation/stores.js +1 -1
  18. package/lib/components/stores/navigation/stores.js.map +1 -1
  19. package/lib/core/utils/parse-structure.d.ts +1 -1
  20. package/lib/core/utils/parse-structure.d.ts.map +1 -1
  21. package/lib/core/utils/parse-structure.js +1 -1
  22. package/lib/core/utils/parse-structure.js.map +1 -1
  23. package/lib/core/utils/structure-tools.d.ts +26 -0
  24. package/lib/core/utils/structure-tools.d.ts.map +1 -0
  25. package/lib/core/utils/structure-tools.js +2 -0
  26. package/lib/core/utils/structure-tools.js.map +1 -0
  27. package/lib/styles.css +171 -139
  28. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/code-section/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAa,KAAK,cAAc,EAAE,4BAAsC;AAC/E,OAAO,EAAc,KAAK,eAAe,EAAE,6BAAuC;AAClF,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;CAClF;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/code-section/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAa,KAAK,cAAc,EAAE,4BAAsC;AAC/E,OAAO,EAAc,KAAK,eAAe,EAAE,6BAAuC;AAClF,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAElE,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;CAClF;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"react";import{CodeBlock as c}from"../../ui/code-block/index.js";import{CopyButton as t}from"../../ui/copy-button/index.js";import{CopyText as o}from"../../ui/copy-text/index.js";const r=({filename:r,code:a,...m})=>e.createElement("div",{className:"r-code-section"},r?e.createElement("div",{className:"r-code-section-header"},e.createElement(o,{className:"r-code-section-filename",text:r}),e.createElement(t,{raw:a})):e.createElement(t,{raw:a,className:"r-code-section-copy"}),e.createElement(c,{className:"r-code-section-block"+(r?"":" _space-right"),code:a,...m}));export{r as CodeSection};
1
+ import e from"react";import c from"clsx";import{CodeBlock as t}from"../../ui/code-block/index.js";import{CopyButton as o}from"../../ui/copy-button/index.js";import{CopyText as r}from"../../ui/copy-text/index.js";const a=({filename:a,code:m,...i})=>e.createElement("div",{className:"r-code-section"},a?e.createElement("div",{className:"r-code-section-header"},e.createElement(r,{className:"r-code-section-filename",text:a}),e.createElement(o,{raw:m})):e.createElement(o,{raw:m,className:"r-code-section-copy"}),e.createElement(t,{className:c("r-code-section-block",!a&&"_space-right"),code:m,...i}));export{a as CodeSection};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/code-section/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { CodeBlock, type CodeBlockProps } from \"@src/components/ui/code-block\";\nimport { CopyButton, type CopyButtonProps } from \"@src/components/ui/copy-button\";\nimport { CopyText, type CopyTextProps } from \"../../ui/copy-text\";\n\nimport \"./code-section.scss\";\n\nexport interface CodeSectionProps extends CodeBlockProps {\n filename?: string;\n translations?: CopyButtonProps[\"translations\"] & CopyTextProps[\"translations\"];\n}\n\nexport const CodeSection: React.FC<CodeSectionProps> = ({ filename, code, ...props }) => (\n <div className=\"r-code-section\">\n {filename ? (\n <div className=\"r-code-section-header\">\n <CopyText className=\"r-code-section-filename\" text={filename} />\n <CopyButton raw={code} />\n </div>\n ) : (\n <CopyButton raw={code} className=\"r-code-section-copy\" />\n )}\n <CodeBlock className={`r-code-section-block${filename ? \"\" : \" _space-right\"}`} code={code} {...props} />\n </div>\n);\n"],"names":["CodeSection","filename","code","props","React","createElement","className","CopyText","text","CopyButton","raw","CodeBlock"],"mappings":"sMAYaA,EAA0C,EAAGC,WAAUC,UAASC,KACzEC,EAAAC,cAAA,MAAA,CAAKC,UAAU,kBACVL,EACGG,EAAAC,cAAA,MAAA,CAAKC,UAAU,yBACXF,EAAAC,cAACE,GAASD,UAAU,0BAA0BE,KAAMP,IACpDG,EAAAC,cAACI,GAAWC,IAAKR,KAGrBE,EAAAC,cAACI,EAAU,CAACC,IAAKR,EAAMI,UAAU,wBAErCF,EAAAC,cAACM,EAAS,CAACL,UAAW,wBAAuBL,EAAW,GAAK,iBAAmBC,KAAMA,KAAUC"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/code-section/index.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\n\nimport { CodeBlock, type CodeBlockProps } from \"@src/components/ui/code-block\";\nimport { CopyButton, type CopyButtonProps } from \"@src/components/ui/copy-button\";\nimport { CopyText, type CopyTextProps } from \"../../ui/copy-text\";\n\nimport \"./code-section.scss\";\n\nexport interface CodeSectionProps extends CodeBlockProps {\n filename?: string;\n translations?: CopyButtonProps[\"translations\"] & CopyTextProps[\"translations\"];\n}\n\nexport const CodeSection: React.FC<CodeSectionProps> = ({ filename, code, ...props }) => (\n <div className=\"r-code-section\">\n {filename ? (\n <div className=\"r-code-section-header\">\n <CopyText className=\"r-code-section-filename\" text={filename} />\n <CopyButton raw={code} />\n </div>\n ) : (\n <CopyButton raw={code} className=\"r-code-section-copy\" />\n )}\n <CodeBlock className={clsx(\"r-code-section-block\", !filename && \"_space-right\")} code={code} {...props} />\n </div>\n);\n"],"names":["CodeSection","filename","code","props","React","createElement","className","CopyText","text","CopyButton","raw","CodeBlock","clsx"],"mappings":"0NAcaA,EAA0C,EAAGC,WAAUC,UAASC,KACzEC,EAAAC,cAAA,MAAA,CAAKC,UAAU,kBACVL,EACGG,EAAAC,cAAA,MAAA,CAAKC,UAAU,yBACXF,EAAAC,cAACE,GAASD,UAAU,0BAA0BE,KAAMP,IACpDG,EAAAC,cAACI,GAAWC,IAAKR,KAGrBE,EAAAC,cAACI,EAAU,CAACC,IAAKR,EAAMI,UAAU,wBAErCF,EAAAC,cAACM,GAAUL,UAAWM,EAAK,wBAAyBX,GAAY,gBAAiBC,KAAMA,KAAUC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{useRef as t,useCallback as n,useEffect as r}from"react";import s from"clsx";import{useHeadingIndex as c}from"../../stores/contents/use-heading-index.js";import{detectGitType as o}from"../../../core/utils/git-tools.js";const a=({headings:a,hideContents:l,editUri:i,translations:m})=>{const d=t(null),h=t(null),p=t(null),{from:f,to:u}=c(),{onThisPage:g="On this page",editOnService:v="Edit on {service}"}=m||{},E=n(()=>{p.current&&h.current&&h.current.style.setProperty("--drop-height",p.current.offsetHeight+"px")},[]);return r(E,[]),e.createElement("div",{className:"r-contents"},e.createElement("div",{className:"r-contents-sticky",ref:d},a.length>0&&!l&&e.createElement(e.Fragment,null,e.createElement("input",{type:"checkbox",className:"r-contents-control",id:"r-contents",onClick:E}),e.createElement("div",{className:"r-contents-details"},e.createElement("label",{className:"r-contents-title",htmlFor:"r-contents"},g,e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"r-contents-chevron"},e.createElement("path",{d:"m6 9 6 6 6-6"}))),e.createElement("div",{className:"r-contents-list",ref:h},e.createElement("div",{className:"r-contents-list-content",ref:p},a.map((t,n)=>e.createElement("a",{href:`#${t.id}`,key:t.id,className:s("r-contents-link",t.nested&&"_nested",n<=f&&"_passed",n<=u&&"_visited",n>=f&&n<=u&&"_active"),ref:e=>{e?.offsetTop&&d.current&&d.current.scrollHeight>d.current.clientHeight&&f===n&&d.current.scrollTo({top:Math.max(e.offsetTop-Math.ceil(window.innerHeight/2),0)})}},t.title)))))),i?.match(/^https?:\/\//)&&e.createElement("div",{className:"r-contents-actions"},e.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"r-contents-git"},v.replace("{service}",o(i).name)))))};export{a as Contents};
2
+ import e,{useRef as t,useCallback as n,useEffect as r}from"react";import s from"clsx";import{useHeadingIndex as c}from"../../stores/contents/use-heading-index.js";import{detectGitType as o}from"../../../core/utils/git-tools.js";const a=({headings:a,hideContents:l,editUri:i,translations:m})=>{const d=t(null),h=t(null),p=t(null),{from:f,to:u}=c(),{onThisPage:g="On this page",editOnService:v="Edit on {service}"}=m||{},E=n(()=>{p.current&&h.current&&h.current.style.setProperty("--drop-height",p.current.offsetHeight+"px")},[]);return r(E,[]),e.createElement("div",{className:"r-contents"},e.createElement("div",{className:"r-contents-sticky",ref:d},a.length>0&&!l&&e.createElement(e.Fragment,null,e.createElement("input",{type:"checkbox",className:"r-contents-control",id:"r-contents",onClick:E}),e.createElement("div",{className:"r-contents-details"},e.createElement("label",{className:"r-contents-title",htmlFor:"r-contents"},g,e.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"r-contents-chevron"},e.createElement("path",{d:"m6 9 6 6 6-6"}))),e.createElement("div",{className:"r-contents-list",ref:h},e.createElement("div",{className:"r-contents-list-content",ref:p},a.map((t,n)=>e.createElement("a",{href:`#${t.id}`,key:t.id,className:s("r-contents-link",t.nested&&"_nested",n<=f&&"_passed",n<=u&&"_visited",n===f&&"_active"),ref:e=>{e?.offsetTop&&d.current&&d.current.scrollHeight>d.current.clientHeight&&f===n&&d.current.scrollTo({top:Math.max(e.offsetTop-Math.ceil(window.innerHeight/2),0)})}},t.title)))))),i?.match(/^https?:\/\//)&&e.createElement("div",{className:"r-contents-actions"},e.createElement("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:"r-contents-git"},v.replace("{service}",o(i).name)))))};export{a as Contents};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/contents/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useHeadingIndex } from \"@src/components/stores/contents/use-heading-index\";\nimport { detectGitType } from \"@src/core/utils/git-tools\";\n\nimport \"./contents.scss\";\n\nexport interface ContentsProps extends React.PropsWithChildren {\n headings: { id: string; nested: boolean; title: string | React.ReactNode }[];\n hideContents?: boolean;\n editUri?: string | null;\n translations?: {\n /** On this page */\n onThisPage?: string;\n /** Edit on {service} */\n editOnService?: string;\n };\n}\n\nexport const Contents: React.FC<ContentsProps> = ({ headings, hideContents, editUri, translations }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownContentRef = useRef<HTMLDivElement>(null);\n const { from, to } = useHeadingIndex();\n const { onThisPage = \"On this page\", editOnService = \"Edit on {service}\" } = translations || {};\n\n const recalculateOffset = useCallback(() => {\n if (dropdownContentRef.current && dropdownRef.current) {\n dropdownRef.current.style.setProperty(\"--drop-height\", dropdownContentRef.current.offsetHeight + \"px\");\n }\n }, []);\n\n useEffect(recalculateOffset, []);\n\n return (\n <div className=\"r-contents\">\n <div className=\"r-contents-sticky\" ref={containerRef}>\n {headings.length > 0 && !hideContents && (\n <>\n <input\n type=\"checkbox\"\n className=\"r-contents-control\"\n id=\"r-contents\"\n onClick={recalculateOffset}\n />\n <div className=\"r-contents-details\">\n <label className=\"r-contents-title\" htmlFor=\"r-contents\">\n {onThisPage}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"r-contents-chevron\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </label>\n <div className=\"r-contents-list\" ref={dropdownRef}>\n <div className=\"r-contents-list-content\" ref={dropdownContentRef}>\n {headings.map((heading, index) => (\n <a\n href={`#${heading.id}`}\n key={heading.id}\n className={clsx(\n \"r-contents-link\",\n heading.nested && \"_nested\",\n index <= from && \"_passed\",\n index <= to && \"_visited\",\n index >= from && index <= to && \"_active\",\n )}\n ref={(node) => {\n if (\n node?.offsetTop &&\n containerRef.current &&\n containerRef.current.scrollHeight >\n containerRef.current.clientHeight &&\n from === index\n ) {\n containerRef.current.scrollTo({\n top: Math.max(\n node.offsetTop - Math.ceil(window.innerHeight / 2),\n 0,\n ),\n });\n }\n }}\n >\n {heading.title}\n </a>\n ))}\n </div>\n </div>\n </div>\n </>\n )}\n {editUri?.match(/^https?:\\/\\//) && (\n <div className=\"r-contents-actions\">\n <a href={editUri} target=\"_blank\" rel=\"noopener noreferrer\" className=\"r-contents-git\">\n {editOnService.replace(\"{service}\", detectGitType(editUri).name)}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["Contents","headings","hideContents","editUri","translations","containerRef","useRef","dropdownRef","dropdownContentRef","from","to","useHeadingIndex","onThisPage","editOnService","recalculateOffset","useCallback","current","style","setProperty","offsetHeight","useEffect","React","createElement","className","ref","length","Fragment","type","id","onClick","htmlFor","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","map","heading","index","href","key","clsx","nested","node","offsetTop","scrollHeight","clientHeight","scrollTo","top","Math","max","ceil","window","innerHeight","title","match","target","rel","replace","detectGitType","name"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/contents/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport clsx from \"clsx\";\nimport { useHeadingIndex } from \"@src/components/stores/contents/use-heading-index\";\nimport { detectGitType } from \"@src/core/utils/git-tools\";\n\nimport \"./contents.scss\";\n\nexport interface ContentsProps extends React.PropsWithChildren {\n headings: { id: string; nested: boolean; title: string | React.ReactNode }[];\n hideContents?: boolean;\n editUri?: string | null;\n translations?: {\n /** On this page */\n onThisPage?: string;\n /** Edit on {service} */\n editOnService?: string;\n };\n}\n\nexport const Contents: React.FC<ContentsProps> = ({ headings, hideContents, editUri, translations }) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownContentRef = useRef<HTMLDivElement>(null);\n const { from, to } = useHeadingIndex();\n const { onThisPage = \"On this page\", editOnService = \"Edit on {service}\" } = translations || {};\n\n const recalculateOffset = useCallback(() => {\n if (dropdownContentRef.current && dropdownRef.current) {\n dropdownRef.current.style.setProperty(\"--drop-height\", dropdownContentRef.current.offsetHeight + \"px\");\n }\n }, []);\n\n useEffect(recalculateOffset, []);\n\n return (\n <div className=\"r-contents\">\n <div className=\"r-contents-sticky\" ref={containerRef}>\n {headings.length > 0 && !hideContents && (\n <>\n <input\n type=\"checkbox\"\n className=\"r-contents-control\"\n id=\"r-contents\"\n onClick={recalculateOffset}\n />\n <div className=\"r-contents-details\">\n <label className=\"r-contents-title\" htmlFor=\"r-contents\">\n {onThisPage}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"r-contents-chevron\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </label>\n <div className=\"r-contents-list\" ref={dropdownRef}>\n <div className=\"r-contents-list-content\" ref={dropdownContentRef}>\n {headings.map((heading, index) => (\n <a\n href={`#${heading.id}`}\n key={heading.id}\n className={clsx(\n \"r-contents-link\",\n heading.nested && \"_nested\",\n index <= from && \"_passed\",\n index <= to && \"_visited\",\n index === from && \"_active\",\n )}\n ref={(node) => {\n if (\n node?.offsetTop &&\n containerRef.current &&\n containerRef.current.scrollHeight >\n containerRef.current.clientHeight &&\n from === index\n ) {\n containerRef.current.scrollTo({\n top: Math.max(\n node.offsetTop - Math.ceil(window.innerHeight / 2),\n 0,\n ),\n });\n }\n }}\n >\n {heading.title}\n </a>\n ))}\n </div>\n </div>\n </div>\n </>\n )}\n {editUri?.match(/^https?:\\/\\//) && (\n <div className=\"r-contents-actions\">\n <a href={editUri} target=\"_blank\" rel=\"noopener noreferrer\" className=\"r-contents-git\">\n {editOnService.replace(\"{service}\", detectGitType(editUri).name)}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n};\n"],"names":["Contents","headings","hideContents","editUri","translations","containerRef","useRef","dropdownRef","dropdownContentRef","from","to","useHeadingIndex","onThisPage","editOnService","recalculateOffset","useCallback","current","style","setProperty","offsetHeight","useEffect","React","createElement","className","ref","length","Fragment","type","id","onClick","htmlFor","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","map","heading","index","href","key","clsx","nested","node","offsetTop","scrollHeight","clientHeight","scrollTo","top","Math","max","ceil","window","innerHeight","title","match","target","rel","replace","detectGitType","name"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import t,{useEffect as e}from"react";const s=()=>{const t=document.querySelector(".r-root");if(!t)return;const e=localStorage.getItem("theme");e&&["light","dark"].includes(e)?t.classList.add(`r-theme-${e}`):(t.classList.add("r-theme-system"),window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?t.classList.add("r-theme-dark"):t.classList.add("r-theme-light"));const s=localStorage.getItem("r-tabs"),r=s?.split(";").filter(t=>t&&/[\w-]+=[\w]+/.test(t))||[];Array.from(t.classList).forEach(e=>{e.startsWith("r-tabs-global")&&t.classList.remove(e)}),r.forEach(e=>{const[s,r]=e.split("=");t.classList.add(`r-tabs-global__${s}`,`r-tabs-global__${s}_${r}`)}),t.classList.add("r-ready")},r=()=>(e(()=>{const t=document.querySelector(".r-root");if(t&&!t.classList.contains("r-ready"))return s(),()=>{t.classList.remove("r-ready")}},[]),t.createElement("script",{id:"detect-theme",dangerouslySetInnerHTML:{__html:`(${s})()`},async:!0}));export{r as ThemeDetector};
2
+ import t,{useEffect as s}from"react";const e=()=>{const t=document.querySelector(".r-root");if(!t||t.classList.contains("r-ready"))return;t.classList.add("r-ready");const s=localStorage.getItem("theme");s&&["light","dark"].includes(s)?t.classList.add(`r-theme-${s}`):(t.classList.add("r-theme-system"),window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?t.classList.add("r-theme-dark"):t.classList.add("r-theme-light"));const e=localStorage.getItem("r-tabs"),r=e?.split(";").filter(t=>t&&/[\w-]+=[\w]+/.test(t))||[];Array.from(t.classList).forEach(s=>{s.startsWith("r-tabs-global")&&t.classList.remove(s)}),r.forEach(s=>{const[e,r]=s.split("=");t.classList.add(`r-tabs-global__${e}`,`r-tabs-global__${e}_${r}`)})},r=()=>(s(()=>{const t=document.querySelector(".r-root");if(t&&!t.classList.contains("r-ready"))return e(),()=>{t.classList.remove("r-ready")}},[]),t.createElement("script",{id:"detect-theme",dangerouslySetInnerHTML:{__html:`(${e})()`},async:!0}));export{r as ThemeDetector};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/theme-detector/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect } from \"react\";\n\nconst clientLogic = () => {\n const root = document.querySelector(\".r-root\");\n\n if (!root) return;\n\n const userTheme = localStorage.getItem(\"theme\");\n if (userTheme && [\"light\", \"dark\"].includes(userTheme)) {\n root.classList.add(`r-theme-${userTheme}`);\n } else {\n root.classList.add(`r-theme-system`);\n if (window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n root.classList.add(\"r-theme-dark\");\n } else {\n root.classList.add(\"r-theme-light\");\n }\n }\n\n const store = localStorage.getItem(\"r-tabs\");\n const items = store?.split(\";\").filter((item) => item && /[\\w-]+=[\\w]+/.test(item)) || [];\n const classNames = Array.from(root.classList);\n classNames.forEach((className) => {\n if (className.startsWith(`r-tabs-global`)) {\n root.classList.remove(className);\n }\n });\n items.forEach((item) => {\n const [tabsKey, tab] = item.split(\"=\");\n root.classList.add(`r-tabs-global__${tabsKey}`, `r-tabs-global__${tabsKey}_${tab}`);\n });\n root.classList.add(\"r-ready\");\n};\n\nexport const ThemeDetector: React.FC = () => {\n useEffect(() => {\n const root = document.querySelector(\".r-root\");\n if (!root || root.classList.contains(\"r-ready\")) return;\n clientLogic();\n\n return () => {\n root.classList.remove(\"r-ready\");\n };\n }, []);\n\n return (\n <script\n id=\"detect-theme\"\n dangerouslySetInnerHTML={{\n __html: `(${clientLogic})()`,\n }}\n async\n />\n );\n};\n"],"names":["clientLogic","root","document","querySelector","userTheme","localStorage","getItem","includes","classList","add","window","matchMedia","matches","store","items","split","filter","item","test","Array","from","forEach","className","startsWith","remove","tabsKey","tab","ThemeDetector","useEffect","contains","React","createElement","id","dangerouslySetInnerHTML","__html","async"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/theme-detector/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect } from \"react\";\n\nconst clientLogic = () => {\n const root = document.querySelector(\".r-root\");\n\n if (!root || root.classList.contains(\"r-ready\")) return;\n\n root.classList.add(\"r-ready\");\n const userTheme = localStorage.getItem(\"theme\");\n if (userTheme && [\"light\", \"dark\"].includes(userTheme)) {\n root.classList.add(`r-theme-${userTheme}`);\n } else {\n root.classList.add(`r-theme-system`);\n if (window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n root.classList.add(\"r-theme-dark\");\n } else {\n root.classList.add(\"r-theme-light\");\n }\n }\n\n const store = localStorage.getItem(\"r-tabs\");\n const items = store?.split(\";\").filter((item) => item && /[\\w-]+=[\\w]+/.test(item)) || [];\n const classNames = Array.from(root.classList);\n classNames.forEach((className) => {\n if (className.startsWith(`r-tabs-global`)) {\n root.classList.remove(className);\n }\n });\n items.forEach((item) => {\n const [tabsKey, tab] = item.split(\"=\");\n root.classList.add(`r-tabs-global__${tabsKey}`, `r-tabs-global__${tabsKey}_${tab}`);\n });\n};\n\nexport const ThemeDetector: React.FC = () => {\n useEffect(() => {\n const root = document.querySelector(\".r-root\");\n if (!root || root.classList.contains(\"r-ready\")) return;\n clientLogic();\n\n return () => {\n root.classList.remove(\"r-ready\");\n };\n }, []);\n\n return (\n <script\n id=\"detect-theme\"\n dangerouslySetInnerHTML={{\n __html: `(${clientLogic})()`,\n }}\n async\n />\n );\n};\n"],"names":["clientLogic","root","document","querySelector","classList","contains","add","userTheme","localStorage","getItem","includes","window","matchMedia","matches","store","items","split","filter","item","test","Array","from","forEach","className","startsWith","remove","tabsKey","tab","ThemeDetector","useEffect","React","createElement","id","dangerouslySetInnerHTML","__html","async"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from"react";import{ThemeSwitcher as r}from"../../blocks/theme-switcher/index.js";import{Container as t}from"../../ui/container/index.js";const o=({copyright:o,hidePoweredBy:a})=>e.createElement("footer",{className:"r-footer"},e.createElement(t,null,e.createElement("div",{className:"r-footer-row"},e.createElement("div",{className:"r-copyright"},o),e.createElement(r,null)),!a&&e.createElement("div",{className:"r-footer-row r-footer-additional"},e.createElement("div",{className:"r-powered"},"Powered by"," ",e.createElement("a",{href:"https://robindoc.com",className:"r-powered-link",target:"_blank",rel:"noopener noreferrer"},"ROBINDOC")))));export{o as Footer};
1
+ import e from"react";import{ThemeSwitcher as r}from"../../blocks/theme-switcher/index.js";import{Container as t}from"../../ui/container/index.js";const o=({copyright:o,hidePoweredBy:a})=>e.createElement("footer",{className:"r-footer"},e.createElement(t,{className:"r-footer-container"},e.createElement("div",{className:"r-footer-row"},e.createElement("div",{className:"r-copyright"},o),e.createElement(r,null)),!a&&e.createElement("div",{className:"r-footer-row r-footer-additional"},e.createElement("div",{className:"r-powered"},"Powered by"," ",e.createElement("a",{href:"https://robindoc.com",className:"r-powered-link",target:"_blank",rel:"noopener noreferrer"},"ROBINDOC")))));export{o as Footer};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/elements/footer/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ThemeSwitcher } from \"@src/components/blocks/theme-switcher\";\nimport { Container } from \"@src/components/ui/container\";\n\nimport \"./footer.scss\";\n\nexport type FooterProps = {\n copyright: string;\n hidePoweredBy?: boolean;\n};\n\nexport const Footer: React.FC<FooterProps> = ({ copyright, hidePoweredBy }) => (\n <footer className=\"r-footer\">\n <Container>\n <div className=\"r-footer-row\">\n <div className=\"r-copyright\">{copyright}</div>\n <ThemeSwitcher />\n </div>\n {!hidePoweredBy && (\n <div className=\"r-footer-row r-footer-additional\">\n <div className=\"r-powered\">\n Powered by{\" \"}\n <a\n href=\"https://robindoc.com\"\n className=\"r-powered-link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n ROBINDOC\n </a>\n </div>\n </div>\n )}\n </Container>\n </footer>\n);\n"],"names":["Footer","copyright","hidePoweredBy","React","createElement","className","Container","ThemeSwitcher","href","target","rel"],"mappings":"kJAYO,MAAMA,EAAgC,EAAGC,YAAWC,mBACvDC,EAAAC,cAAA,SAAA,CAAQC,UAAU,YACdF,EAAAC,cAACE,EAAS,KACNH,EAAAC,cAAA,MAAA,CAAKC,UAAU,gBACXF,EAAAC,cAAA,MAAA,CAAKC,UAAU,eAAeJ,GAC9BE,EAAAC,cAACG,UAEHL,GACEC,EAAAC,cAAA,MAAA,CAAKC,UAAU,oCACXF,EAAAC,cAAA,MAAA,CAAKC,UAAU,0BACA,IACXF,EAAAC,cAAA,IAAA,CACII,KAAK,uBACLH,UAAU,iBACVI,OAAO,SACPC,IAAI,uBAAqB"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/elements/footer/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ThemeSwitcher } from \"@src/components/blocks/theme-switcher\";\nimport { Container } from \"@src/components/ui/container\";\n\nimport \"./footer.scss\";\n\nexport type FooterProps = {\n copyright: string;\n hidePoweredBy?: boolean;\n};\n\nexport const Footer: React.FC<FooterProps> = ({ copyright, hidePoweredBy }) => (\n <footer className=\"r-footer\">\n <Container className=\"r-footer-container\">\n <div className=\"r-footer-row\">\n <div className=\"r-copyright\">{copyright}</div>\n <ThemeSwitcher />\n </div>\n {!hidePoweredBy && (\n <div className=\"r-footer-row r-footer-additional\">\n <div className=\"r-powered\">\n Powered by{\" \"}\n <a\n href=\"https://robindoc.com\"\n className=\"r-powered-link\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n ROBINDOC\n </a>\n </div>\n </div>\n )}\n </Container>\n </footer>\n);\n"],"names":["Footer","copyright","hidePoweredBy","React","createElement","className","Container","ThemeSwitcher","href","target","rel"],"mappings":"kJAYO,MAAMA,EAAgC,EAAGC,YAAWC,mBACvDC,EAAAC,cAAA,SAAA,CAAQC,UAAU,YACdF,EAAAC,cAACE,EAAS,CAACD,UAAU,sBACjBF,EAAAC,cAAA,MAAA,CAAKC,UAAU,gBACXF,EAAAC,cAAA,MAAA,CAAKC,UAAU,eAAeJ,GAC9BE,EAAAC,cAACG,UAEHL,GACEC,EAAAC,cAAA,MAAA,CAAKC,UAAU,oCACXF,EAAAC,cAAA,MAAA,CAAKC,UAAU,0BACA,IACXF,EAAAC,cAAA,IAAA,CACII,KAAK,uBACLH,UAAU,iBACVI,OAAO,SACPC,IAAI,uBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/elements/sidebar/sidebar-drop/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAyC3E,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/elements/sidebar/sidebar-drop/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAgC3E,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{useState as r,useRef as t,useEffect as s}from"react";import{usePathname as n}from"../../../stores/navigation/hooks.js";const o=({childHrefs:o,label:a,children:i})=>{const l=n(),c=o.includes(l),[d,m]=r(c),u=t(null),p=t(null);return s(()=>{c&&!d&&m(!0),c&&p.current&&!p.current?.open&&(p.current.open=!0)},[c]),s(()=>{p.current?.style.setProperty("--drop-height",(u.current?.offsetHeight||0).toString()+"px")},[]),e.createElement("details",{className:"r-sidebar-drop",open:d,ref:p},e.createElement("summary",{className:"r-sidebar-drop-btn","aria-label":a},e.createElement("svg",{className:"r-sidebar-drop-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("path",{d:"m9 18 6-6-6-6"}))),e.createElement("ul",{className:"r-sidebar-list r-sidebar-sublist",ref:u},i))};export{o as SidebarDrop};
2
+ import e,{useState as r}from"react";import t from"clsx";import{usePathname as s}from"../../../stores/navigation/hooks.js";const o=({childHrefs:o,label:a,children:i})=>{const l=s(),[n]=r(o.includes(l));return e.createElement("details",{className:t("r-sidebar-drop",!n&&"_starting-style"),open:!!n||void 0,ref:e=>{e&&o.includes(l)&&(e.open=!0)}},e.createElement("summary",{className:"r-sidebar-drop-btn","aria-label":a},e.createElement("svg",{className:"r-sidebar-drop-icon",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("path",{d:"m9 18 6-6-6-6"}))),e.createElement("ul",{className:"r-sidebar-list r-sidebar-sublist"},i))};export{o as SidebarDrop};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/elements/sidebar/sidebar-drop/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { usePathname } from \"@src/components/stores/navigation/hooks\";\n\nexport interface SidebarDropProps {\n childHrefs: string[];\n defaultOpen?: boolean;\n label: string;\n id: string;\n}\n\nexport const SidebarDrop: React.FC<React.PropsWithChildren<SidebarDropProps>> = ({ childHrefs, label, children }) => {\n const pathname = usePathname();\n const openedByDefault = childHrefs.includes(pathname);\n const [opened, setOpened] = useState(openedByDefault);\n const dropdownRef = useRef<HTMLUListElement>(null);\n const detailsRef = useRef<HTMLDetailsElement>(null);\n\n useEffect(() => {\n if (openedByDefault && !opened) setOpened(true);\n if (openedByDefault && detailsRef.current && !detailsRef.current?.open) detailsRef.current.open = true;\n }, [openedByDefault]);\n\n useEffect(() => {\n detailsRef.current?.style.setProperty(\n \"--drop-height\",\n (dropdownRef.current?.offsetHeight || 0).toString() + \"px\",\n );\n }, []);\n\n return (\n <details className=\"r-sidebar-drop\" open={opened} ref={detailsRef}>\n <summary className=\"r-sidebar-drop-btn\" aria-label={label}>\n <svg\n className=\"r-sidebar-drop-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </summary>\n <ul className=\"r-sidebar-list r-sidebar-sublist\" ref={dropdownRef}>\n {children}\n </ul>\n </details>\n );\n};\n"],"names":["SidebarDrop","childHrefs","label","children","pathname","usePathname","openedByDefault","includes","opened","setOpened","useState","dropdownRef","useRef","detailsRef","useEffect","current","open","style","setProperty","offsetHeight","toString","React","createElement","className","ref","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d"],"mappings":";iIAYO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAmE,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAWC,CAAAA,CAAAA,CAAAA,CACXC,CAAAA,CAAkBL,CAAAA,CAAWM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASH,CAAAA,CAAAA,CAAAA,CACrCI,CAAAA,CAAQC,CAAAA,CAAAA,CAAaC,CAAAA,CAASJ,CAAAA,CAAAA,CAC/BK,CAAAA,CAAcC,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CACvCC,CAAAA,CAAaD,CAAAA,CAA2B,MAc9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAZAE,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CACFR,CAAAA,CAAAA,CAAAA,CAAoBE,CAAAA,CAAAA,CAAQC,CAAAA,CAAAA,CAAU,CAAA,CAAA,CACtCH,CAAAA,CAAAA,CAAmBO,CAAAA,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYF,CAAAA,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMH,CAAAA,CAAWE,QAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CACnG,CAACV,CAAAA,CAAAA,CAAAA,CAEJQ,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CACND,CAAAA,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACCP,CAAAA,CAAYI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,GAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE3D,CAAA,CAAA,CAAA,CAGCC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBP,CAAAA,CAAAA,CAAAA,CAAAA,CAAMR,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAKX,CAAAA,CAAAA,CACnDQ,CAAAA,CAAAC,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAarB,CAAAA,CAAAA,CAChDmB,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACVE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CACNC,OAAO,CAAA,CAAA,CAAA,CAAA,CACPC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACRC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACLC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACPC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CACZC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEfX,CAAAA,CAAAC,cAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMW,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGhBZ,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmCC,CAAAA,CAAAA,CAAAA,CAAKb,CAAAA,CAAAA,CACjDR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/elements/sidebar/sidebar-drop/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport { usePathname } from \"@src/components/stores/navigation/hooks\";\n\nexport interface SidebarDropProps {\n childHrefs: string[];\n defaultOpen?: boolean;\n label: string;\n id: string;\n}\n\nexport const SidebarDrop: React.FC<React.PropsWithChildren<SidebarDropProps>> = ({ childHrefs, label, children }) => {\n const pathname = usePathname();\n const [openedByDefault] = useState(childHrefs.includes(pathname));\n\n return (\n <details\n className={clsx(\"r-sidebar-drop\", !openedByDefault && \"_starting-style\")}\n open={openedByDefault ? true : undefined}\n ref={(node) => {\n if (node && childHrefs.includes(pathname)) {\n node.open = true;\n }\n }}\n >\n <summary className=\"r-sidebar-drop-btn\" aria-label={label}>\n <svg\n className=\"r-sidebar-drop-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </summary>\n <ul className=\"r-sidebar-list r-sidebar-sublist\">{children}</ul>\n </details>\n );\n};\n"],"names":["SidebarDrop","childHrefs","label","children","pathname","usePathname","openedByDefault","useState","includes","React","createElement","className","clsx","open","undefined","ref","node","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/navigation/contexts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAclE,eAAO,MAAM,iBAAiB;iBACb,MAAM,MAAM;UACnB,CACF,KAAK,EAAE,IAAI,CACP,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,EACzF,MAAM,CACT,GAAG;QACA,IAAI,EAAE,MAAM,CAAC;KAChB,KACA,KAAK,CAAC,SAAS;EACkD,CAAC"}
1
+ {"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/navigation/contexts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAUnE,eAAO,MAAM,iBAAiB;iBACb,MAAM,MAAM;UACnB,CACF,KAAK,EAAE,IAAI,CACP,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,EACzF,MAAM,CACT,GAAG;QACA,IAAI,EAAE,MAAM,CAAC;KAChB,KACA,KAAK,CAAC,SAAS;EACkD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{createContext as t,useState as r,useEffect as o}from"react";import{navigationStore as s}from"./stores.js";const m=t({usePathname:()=>{const[e,t]=r("/");return o(()=>(t(s.get()),s.subscribe(t)),[]),e},link:t=>e.createElement("a",{...t})});export{m as NavigationContext};
2
+ import e,{createContext as t,useSyncExternalStore as r}from"react";import{navigationStore as o}from"./stores.js";const s=t({usePathname:()=>r(o.subscribe,o.get,()=>""),link:t=>e.createElement("a",{...t})});export{s as NavigationContext};
3
3
  //# sourceMappingURL=contexts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contexts.js","sources":["../../../../src/components/stores/navigation/contexts.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useEffect, useState } from \"react\";\nimport { navigationStore } from \"./stores\";\n\nconst usePathnameDefault = () => {\n const [pathname, setPathname] = useState(\"/\");\n\n useEffect(() => {\n setPathname(navigationStore.get());\n return navigationStore.subscribe(setPathname);\n }, []);\n\n return pathname;\n};\n\nexport const NavigationContext = createContext<{\n usePathname: () => string;\n link: (\n props: Omit<\n React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>,\n \"href\"\n > & {\n href: string;\n },\n ) => React.ReactNode;\n}>({ usePathname: usePathnameDefault, link: (props) => <a {...props} /> });\n"],"names":["NavigationContext","createContext","usePathname","pathname","setPathname","useState","useEffect","navigationStore","get","subscribe","link","props","React"],"mappings":";oHAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAWaA,CAAAA,CAAoBC,CAAAA,CAU9B,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CArBsB,CAAA,CAAA,CAAA,CAAA,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAUC,GAAeC,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAOzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALAC,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CACNF,CAAAA,CAAYG,CAAAA,CAAgBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBD,EAAgBE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUL,CAAAA,CAAAA,CAAAA,CAClC,CAAA,CAAA,CAAA,CAEID,CAAAA,CAAAA,CAa2BO,KAAOC,CAAAA,CAAAA,CAAUC,CAAAA,uBAAOD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
1
+ {"version":3,"file":"contexts.js","sources":["../../../../src/components/stores/navigation/contexts.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { createContext, useSyncExternalStore } from \"react\";\n\nimport { navigationStore } from \"./stores\";\n\nconst usePathnameDefault = () => {\n const pathname = useSyncExternalStore(navigationStore.subscribe, navigationStore.get, () => \"\");\n\n return pathname;\n};\n\nexport const NavigationContext = createContext<{\n usePathname: () => string;\n link: (\n props: Omit<\n React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>,\n \"href\"\n > & {\n href: string;\n },\n ) => React.ReactNode;\n}>({ usePathname: usePathnameDefault, link: (props) => <a {...props} /> });\n"],"names":["NavigationContext","createContext","usePathname","useSyncExternalStore","navigationStore","subscribe","get","link","props","React"],"mappings":";iHAMA,MAMaA,CAAAA,CAAoBC,CAAAA,CAU9B,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAhBsB,CAAA,CAAA,CAAA,CACNC,CAAAA,CAAqBC,EAAgBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWD,CAAAA,CAAgBE,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAe1DC,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,GAAUC,CAAAA,uBAAOD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/navigation/stores.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,qBAAqB;;0BASD,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;CAmC1D,CAAC;AAEF,eAAO,MAAM,eAAe;;0BArCK,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;CAqCL,CAAC"}
1
+ {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/navigation/stores.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,qBAAqB;;0BASD,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;CAkC1D,CAAC;AAEF,eAAO,MAAM,eAAe;;0BApCK,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;CAoCL,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- const t=()=>"undefined"==typeof window?"/":window.location.pathname,e=()=>{let e=t();const n=new Set,o=()=>{e=t(),n.forEach(t=>t(e))};return(()=>{if("undefined"==typeof window)return;const t=history.pushState,e=history.replaceState;history.pushState=(...e)=>{const n=t.apply(history,e);return window.dispatchEvent(new Event("locationchange")),n},history.replaceState=(...t)=>{const n=e.apply(history,t);return window.dispatchEvent(new Event("locationchange")),n},window.addEventListener("popstate",o),window.addEventListener("locationchange",o)})(),{get:()=>e,subscribe:t=>(n.add(t),()=>{n.delete(t)})}},n=e();export{e as createNavigationStore,n as navigationStore};
2
+ const t=()=>"undefined"==typeof window?"/":window.location.pathname,e=()=>{let e=t();const n=new Set,r=()=>{e=t(),n.forEach(t=>t(e))};return(()=>{if("undefined"==typeof window)return;const t=history.pushState,e=history.replaceState;history.pushState=(...e)=>{const n=t.apply(history,e);return requestAnimationFrame(r),n},history.replaceState=(...t)=>{const n=e.apply(history,t);return requestAnimationFrame(r),n},window.addEventListener("popstate",()=>requestAnimationFrame(r))})(),{get:()=>e,subscribe:t=>(n.add(t),()=>{n.delete(t)})}},n=e();export{e as createNavigationStore,n as navigationStore};
3
3
  //# sourceMappingURL=stores.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stores.js","sources":["../../../../src/components/stores/navigation/stores.ts"],"sourcesContent":["\"use client\";\n\nconst getPathname = () => {\n if (typeof window === \"undefined\") return \"/\";\n return window.location.pathname;\n};\n\nexport const createNavigationStore = () => {\n let pathname = getPathname();\n const listeners = new Set<(pathname: string) => void>();\n\n const notify = () => {\n pathname = getPathname();\n listeners.forEach((l) => l(pathname));\n };\n\n const subscribe = (listener: (pathname: string) => void) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n };\n\n const init = () => {\n if (typeof window === \"undefined\") return;\n\n const pushState = history.pushState;\n const replaceState = history.replaceState;\n\n history.pushState = (...args: Parameters<typeof history.pushState>) => {\n const ret = pushState.apply(history, args);\n window.dispatchEvent(new Event(\"locationchange\"));\n return ret;\n };\n\n history.replaceState = (...args: Parameters<typeof history.replaceState>) => {\n const ret = replaceState.apply(history, args);\n window.dispatchEvent(new Event(\"locationchange\"));\n return ret;\n };\n\n window.addEventListener(\"popstate\", notify);\n window.addEventListener(\"locationchange\", notify);\n };\n\n init();\n\n return {\n get: () => pathname,\n subscribe,\n };\n};\n\nexport const navigationStore = createNavigationStore();\n"],"names":["getPathname","window","location","pathname","createNavigationStore","listeners","Set","notify","forEach","l","pushState","history","replaceState","args","ret","apply","dispatchEvent","Event","addEventListener","init","get","subscribe","listener","add","delete","navigationStore"],"mappings":"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"}
1
+ {"version":3,"file":"stores.js","sources":["../../../../src/components/stores/navigation/stores.ts"],"sourcesContent":["\"use client\";\n\nconst getPathname = () => {\n if (typeof window === \"undefined\") return \"/\";\n return window.location.pathname;\n};\n\nexport const createNavigationStore = () => {\n let pathname = getPathname();\n const listeners = new Set<(pathname: string) => void>();\n\n const notify = () => {\n pathname = getPathname();\n listeners.forEach((l) => l(pathname));\n };\n\n const subscribe = (listener: (pathname: string) => void) => {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n };\n\n const init = () => {\n if (typeof window === \"undefined\") return;\n\n const pushState = history.pushState;\n const replaceState = history.replaceState;\n\n history.pushState = (...args: Parameters<typeof history.pushState>) => {\n const ret = pushState.apply(history, args);\n requestAnimationFrame(notify);\n return ret;\n };\n\n history.replaceState = (...args: Parameters<typeof history.replaceState>) => {\n const ret = replaceState.apply(history, args);\n requestAnimationFrame(notify);\n return ret;\n };\n\n window.addEventListener(\"popstate\", () => requestAnimationFrame(notify));\n };\n\n init();\n\n return {\n get: () => pathname,\n subscribe,\n };\n};\n\nexport const navigationStore = createNavigationStore();\n"],"names":["getPathname","window","location","pathname","createNavigationStore","listeners","Set","notify","forEach","l","pushState","history","replaceState","args","ret","apply","requestAnimationFrame","addEventListener","init","get","subscribe","listener","add","delete","navigationStore"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { type DocItem } from "../types/structure";
2
2
  import { type Pages, type Crumbs, type Configuration } from "../types/content";
3
3
  import { type TreeItem } from "../../components/elements/sidebar/types";
4
- export declare const parseStructure: (items: DocItem[] | "auto", parentConfiguration?: Configuration, crumbs?: Crumbs, pathname?: string, nestingLevel?: number) => Promise<{
4
+ export declare const parseStructure: (items: DocItem[] | "auto", configuration?: Configuration, crumbs?: Crumbs, pathname?: string, nestingLevel?: number) => Promise<{
5
5
  pages: Pages;
6
6
  tree: TreeItem[];
7
7
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"parse-structure.d.ts","sourceRoot":"","sources":["../../../src/core/utils/parse-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAgPxE,eAAO,MAAM,cAAc,GACvB,OAAO,OAAO,EAAE,GAAG,MAAM,EACzB,sBAAqB,aAAkB,EACvC,SAAQ,MAAW,EACnB,WAAU,MAAW,EACrB,eAAc,MAAU;WAjFjB,KAAK;UACN,QAAQ,EAAE;EAyFnB,CAAC"}
1
+ {"version":3,"file":"parse-structure.d.ts","sourceRoot":"","sources":["../../../src/core/utils/parse-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAyLxE,eAAO,MAAM,cAAc,GACvB,OAAO,OAAO,EAAE,GAAG,MAAM,EACzB,gBAAe,aAAkB,EACjC,SAAQ,MAAW,EACnB,WAAU,MAAW,EACrB,eAAc,MAAU;;;EAO3B,CAAC"}
@@ -1,2 +1,2 @@
1
- import{getConfiguration as t}from"./get-configuration.js";import{getMetadata as e}from"./get-metadata.js";import{mergePathname as r,normalizePathname as i,generatePseudoTitle as a,checkIsLinkExternal as s}from"./path-tools.js";import{loadContent as o}from"./load-content.js";const n=async(t={},c=[],p="",u)=>{const f={},h=[];if(!t.provider)return{pages:f,tree:h};const g=await t.provider.filesPromise;if(g.structures.includes(`${p}/structure.json`)){const e=await(async(t={},e="",a=[],c)=>{const p={},u=[];if(!t.provider)return{pages:p,tree:u};if((await t.provider.filesPromise).structures.includes(`${e}/structure.json`)){const f=await o(`${e}/structure.json`,t.provider);try{const o=JSON.parse(f.data);for(const f in o){const h=o[f],g=i("index"===f?e:e+"/"+f),l=r(t.basePath,g),d=i(l);if(!s(d)){const e=await(t.provider?.getPageSourcePathname(g,d));e&&(p[d]={title:h.title,uri:g,configuration:t,origPath:e,crumbs:a})}let m;if("index"!==f){const e=await n(t,[...a,d],g,c+1);m=e.tree,Object.assign(p,e.pages)}u.push({title:h.title,href:d,items:m,type:"row"})}}catch{throw new Error(`Can't parse structure "${e}/structure.json"`)}return{pages:p,tree:u}}})(t,p,c,u+1);if(e)return e}for await(const s of g.docs){const o=s.clientPath.split("/").filter(Boolean).length;if(!p&&!(o<2)||p&&!s.clientPath.match(new RegExp(`^${p.replace(/\/$/,"")}/[^/]+$`)))continue;const{clientPath:g}=s,l=r(t.basePath,g),d=i(l),m=(await e({provider:t.provider,uri:g})).title||a(d),w=await(t.provider?.getPageSourcePathname(g,d));w&&(f[d]={title:m,uri:g,configuration:t,origPath:w,crumbs:c});const P=await n(t,[...c,d],g,u+1);Object.assign(f,P.pages),u<(t.spreadedLevel||1)?h.push({title:m,href:d,type:0===u?"heading":"row"},...P.tree):h.push({title:m,href:d,items:P.tree,type:0===u?"heading":"row"})}return{pages:f,tree:h}},c=async(e,o={},p=[],u="",f=0)=>{if("auto"===e){return await n(o,p,u,f)}const h=await(async(e,o={},n=[],p,u)=>{const f={},h=[];for await(const g of e){if("string"==typeof g){const t=await c(g,o,n,p,u);Object.assign(f,t.pages),h.push(...t.tree);continue}if("separator"===g.type){h.push({type:"separator"});continue}let e=n;const l=t(g.configuration||{},o),d=g.href,m=r(l.basePath,d),w=i(m);if(!s(w)&&d){const t=await(l.provider?.getPageSourcePathname(d,w));t&&(f[w]={title:g.title||"",uri:d,configuration:l,origPath:t,crumbs:n},e=[...n,w])}let P=[];if(g.items){const t=await c(g.items,l,e,g.href,u+1);P=t.tree,Object.assign(f,t.pages)}g.hidden||(u<(o.spreadedLevel||1)?h.push({title:g.title||a(w),href:g.href?w:void 0,type:g.type},...P):h.push({title:g.title||a(w),href:g.href?w:void 0,items:P,type:g.type}))}return{pages:f,tree:h}})(e,o,p,u,f);return h};export{c as parseStructure};
1
+ import{getConfiguration as t}from"./get-configuration.js";import{getMetadata as e}from"./get-metadata.js";import{normalizePathname as r,mergePathname as a,generatePseudoTitle as s,checkIsLinkExternal as i}from"./path-tools.js";import{loadContent as o}from"./load-content.js";import{createPage as n,shouldSpread as p,createTreeItem as c}from"./structure-tools.js";const u=async(t,i,f,h)=>{if(!t.provider)return{pages:{},tree:[]};const l=await(async(t,e,s,i)=>{if(!t.provider)return null;const p=`${e}/structure.json`;if(!(await t.provider.filesPromise).structures.includes(p))return null;const f=await o(p,t.provider);let h;try{h=JSON.parse(f.data)}catch{throw new Error(`Can't parse structure "${p}"`)}const l={},g=[];for(const o in h){const{title:p}=h[o],f=r("index"===o?e:`${e}/${o}`),d=r(a(t.basePath,f)),m=await n(d,f,p,t,s);let w;if(m&&(l[m.pathname]=m.page),"index"!==o){const e=await u(t,m?[...s,d]:s,f,i+1);w=e.tree,Object.assign(l,e.pages)}g.push(c(p,d,"row",w))}return{pages:l,tree:g}})(t,f,i,h+1);if(l)return l;const g={},d=[],m=f.split("/"),w=await t.provider.filesPromise;for await(const{clientPath:o}of w.docs){const l=o.split("/").length===m.length+1,w=o.startsWith(f);if(!l||!w)continue;const j=r(a(t.basePath,o)),v=(await e({provider:t.provider,uri:o})).title||s(j),y=await n(j,o,v,t,i);y&&(g[y.pathname]=y.page);const b=await u(t,y?[...i,j]:i,o,h+1),P=0===h?"heading":"row";p(h,t.spreadedLevel)?d.push(c(v,j,P),...b.tree):d.push(c(v,j,P,b.tree)),Object.assign(g,b.pages)}return{pages:g,tree:d}},f=async(e,o={},h=[],l="",g=0)=>"auto"===e?u(o,h,l,g):(async(e,o,u,h,l)=>{const g={},d=[];for await(const m of e){if("string"==typeof m){const t=await f(m,o,u,h,l);Object.assign(g,t.pages),d.push(...t.tree);continue}if("separator"===m.type){d.push({type:"separator"});continue}const e=t(m.configuration||{},o),w=m.href||"",j=r(a(e.basePath,w));let v=u;if(w&&!i(j)){const t=await n(j,w,m.title||"",e,u);t&&(g[t.pathname]=t.page,v=[...u,j])}let y=[];if(m.items){const t=await f(m.items,e,v,m.href||"",l+1);y=t.tree,Object.assign(g,t.pages)}if(m.hidden)continue;const b=m.title||s(j),P=m.href?j:void 0;p(l,o.spreadedLevel)?d.push(c(b,P,m.type),...y):d.push(c(b,P,m.type,y))}return{pages:g,tree:d}})(e,o,h,l,g);export{f as parseStructure};
2
2
  //# sourceMappingURL=parse-structure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-structure.js","sources":["../../../src/core/utils/parse-structure.ts"],"sourcesContent":["import { type DocItem } from \"../types/structure\";\nimport { type Pages, type Crumbs, type Configuration } from \"../types/content\";\nimport { type TreeItem } from \"../../components/elements/sidebar/types\";\nimport { getConfiguration } from \"./get-configuration\";\nimport { getMetadata } from \"./get-metadata\";\nimport { generatePseudoTitle, checkIsLinkExternal, mergePathname, normalizePathname } from \"./path-tools\";\nimport { loadContent } from \"./load-content\";\n\nconst parseJSONStructure = async (\n parentConfiguration: Configuration = {},\n parentPathname = \"\",\n crumbs: Crumbs = [],\n nestingLevel: number,\n) => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n if (!parentConfiguration.provider) return { pages, tree };\n\n const branchFiles = await parentConfiguration.provider.filesPromise;\n\n if (branchFiles.structures.includes(`${parentPathname}/structure.json`)) {\n const content = await loadContent(`${parentPathname}/structure.json`, parentConfiguration.provider);\n try {\n const structure: { [segment: string]: { title: string } } = JSON.parse(content.data);\n for (const segment in structure) {\n const data = structure[segment];\n const clientPath = normalizePathname(\n segment === \"index\" ? parentPathname : parentPathname + \"/\" + segment,\n );\n const pathname = mergePathname(parentConfiguration.basePath, clientPath);\n const pathnameNormalized = normalizePathname(pathname);\n\n if (!checkIsLinkExternal(pathnameNormalized)) {\n const origPath = await parentConfiguration.provider?.getPageSourcePathname(\n clientPath,\n pathnameNormalized,\n );\n if (origPath) {\n pages[pathnameNormalized] = {\n title: data.title,\n uri: clientPath,\n configuration: parentConfiguration,\n origPath,\n crumbs,\n };\n }\n }\n\n let subTree: TreeItem[] | undefined;\n if (segment !== \"index\") {\n const subItemsData = await parseAutoStructure(\n parentConfiguration,\n [...crumbs, pathnameNormalized],\n clientPath,\n nestingLevel + 1,\n );\n subTree = subItemsData.tree;\n Object.assign(pages, subItemsData.pages);\n }\n\n tree.push({\n title: data.title,\n href: pathnameNormalized,\n items: subTree,\n type: \"row\",\n });\n }\n } catch {\n throw new Error(`Can't parse structure \"${parentPathname}/structure.json\"`);\n }\n return { pages, tree };\n }\n};\n\nconst parseAutoStructure = async (\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n parentPathname = \"\",\n nestingLevel: number,\n) => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n if (!parentConfiguration.provider) return { pages, tree };\n\n const branchFiles = await parentConfiguration.provider.filesPromise;\n\n if (branchFiles.structures.includes(`${parentPathname}/structure.json`)) {\n const jsonStructureData = await parseJSONStructure(\n parentConfiguration,\n parentPathname,\n crumbs,\n nestingLevel + 1,\n );\n if (jsonStructureData) {\n return jsonStructureData;\n }\n }\n\n for await (const generatedItem of branchFiles.docs) {\n const linkLevel = generatedItem.clientPath.split(\"/\").filter(Boolean).length;\n const topLevelLink = linkLevel < 2;\n\n if (\n (!parentPathname && !topLevelLink) ||\n (parentPathname &&\n !generatedItem.clientPath.match(new RegExp(`^${parentPathname.replace(/\\/$/, \"\")}/[^/]+$`)))\n ) {\n continue;\n }\n\n const { clientPath } = generatedItem;\n const pathname = mergePathname(parentConfiguration.basePath, clientPath);\n const pathnameNormalized = normalizePathname(pathname);\n\n const metadata = await getMetadata({ provider: parentConfiguration.provider, uri: clientPath });\n const title = metadata.title || generatePseudoTitle(pathnameNormalized);\n const origPath = await parentConfiguration.provider?.getPageSourcePathname(clientPath, pathnameNormalized);\n if (origPath) {\n pages[pathnameNormalized] = {\n title,\n uri: clientPath,\n configuration: parentConfiguration,\n origPath,\n crumbs,\n };\n }\n\n const subItemsData = await parseAutoStructure(\n parentConfiguration,\n [...crumbs, pathnameNormalized],\n clientPath,\n nestingLevel + 1,\n );\n Object.assign(pages, subItemsData.pages);\n\n if (nestingLevel < (parentConfiguration.spreadedLevel || 1)) {\n tree.push(\n {\n title,\n href: pathnameNormalized,\n type: nestingLevel === 0 ? \"heading\" : \"row\",\n },\n ...subItemsData.tree,\n );\n } else {\n tree.push({\n title,\n href: pathnameNormalized,\n items: subItemsData.tree,\n type: nestingLevel === 0 ? \"heading\" : \"row\",\n });\n }\n }\n\n return { pages, tree };\n};\n\nconst parseStaticStructure = async (\n items: DocItem[],\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n parentPathname: string,\n nestingLevel: number,\n): Promise<{\n pages: Pages;\n tree: TreeItem[];\n}> => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n for await (const item of items) {\n if (typeof item === \"string\") {\n const subItemsData = await parseStructure(item, parentConfiguration, crumbs, parentPathname, nestingLevel);\n Object.assign(pages, subItemsData.pages);\n tree.push(...subItemsData.tree);\n continue;\n }\n if (item.type === \"separator\") {\n tree.push({ type: \"separator\" });\n\n continue;\n }\n let subCrumbs = crumbs;\n const configuration = getConfiguration(item.configuration || {}, parentConfiguration);\n const clientPath = item.href;\n const pathname = mergePathname(configuration.basePath, clientPath);\n const pathnameNormalized = normalizePathname(pathname);\n\n if (!checkIsLinkExternal(pathnameNormalized) && clientPath) {\n const origPath = await configuration.provider?.getPageSourcePathname(clientPath, pathnameNormalized);\n\n if (origPath) {\n pages[pathnameNormalized] = {\n title: item.title || \"\",\n uri: clientPath,\n configuration,\n origPath,\n crumbs,\n };\n subCrumbs = [...crumbs, pathnameNormalized];\n }\n }\n\n let subTree: TreeItem[] = [];\n if (item.items) {\n const subItemsData = await parseStructure(\n item.items,\n configuration,\n subCrumbs,\n item.href,\n nestingLevel + 1,\n );\n subTree = subItemsData.tree;\n Object.assign(pages, subItemsData.pages);\n }\n\n if (!item.hidden) {\n if (nestingLevel < (parentConfiguration.spreadedLevel || 1)) {\n tree.push(\n {\n title: item.title || generatePseudoTitle(pathnameNormalized),\n href: item.href ? pathnameNormalized : undefined,\n type: item.type,\n },\n ...subTree,\n );\n } else {\n tree.push({\n title: item.title || generatePseudoTitle(pathnameNormalized),\n href: item.href ? pathnameNormalized : undefined,\n items: subTree,\n type: item.type,\n });\n }\n }\n }\n\n return { pages, tree };\n};\n\nexport const parseStructure = async (\n items: DocItem[] | \"auto\",\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n pathname: string = \"\",\n nestingLevel: number = 0,\n) => {\n if (items === \"auto\") {\n const structureParsed = await parseAutoStructure(parentConfiguration, crumbs, pathname, nestingLevel);\n return structureParsed;\n }\n\n const structureParsed = await parseStaticStructure(items, parentConfiguration, crumbs, pathname, nestingLevel);\n return structureParsed;\n};\n"],"names":["parseAutoStructure","async","parentConfiguration","crumbs","parentPathname","nestingLevel","pages","tree","provider","branchFiles","filesPromise","structures","includes","jsonStructureData","content","loadContent","structure","JSON","parse","data","segment","clientPath","normalizePathname","pathname","mergePathname","basePath","pathnameNormalized","checkIsLinkExternal","origPath","getPageSourcePathname","title","uri","configuration","subTree","subItemsData","Object","assign","push","href","items","type","Error","parseJSONStructure","generatedItem","docs","linkLevel","split","filter","Boolean","length","match","RegExp","replace","getMetadata","generatePseudoTitle","spreadedLevel","parseStructure","structureParsed","item","subCrumbs","getConfiguration","hidden","undefined","parseStaticStructure"],"mappings":"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"}
1
+ {"version":3,"file":"parse-structure.js","sources":["../../../src/core/utils/parse-structure.ts"],"sourcesContent":["import { type DocItem } from \"../types/structure\";\nimport { type Pages, type Crumbs, type Configuration } from \"../types/content\";\nimport { type TreeItem } from \"../../components/elements/sidebar/types\";\nimport { getConfiguration } from \"./get-configuration\";\nimport { getMetadata } from \"./get-metadata\";\nimport { generatePseudoTitle, checkIsLinkExternal, mergePathname, normalizePathname } from \"./path-tools\";\nimport { loadContent } from \"./load-content\";\nimport { createPage, createTreeItem, shouldSpread } from \"./structure-tools\";\n\nconst parseJSONStructure = async (\n configuration: Configuration,\n parentPathname: string,\n crumbs: Crumbs,\n nestingLevel: number,\n) => {\n if (!configuration.provider) return null;\n\n const branchFiles = await configuration.provider.filesPromise;\n const structurePath = `${parentPathname}/structure.json`;\n\n if (!branchFiles.structures.includes(structurePath)) return null;\n\n const content = await loadContent(structurePath, configuration.provider);\n let structure: { [segment: string]: { title: string } };\n\n try {\n structure = JSON.parse(content.data);\n } catch {\n throw new Error(`Can't parse structure \"${structurePath}\"`);\n }\n\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n for (const segment in structure) {\n const { title } = structure[segment];\n const clientPath = normalizePathname(segment === \"index\" ? parentPathname : `${parentPathname}/${segment}`);\n const pathnameNormalized = normalizePathname(mergePathname(configuration.basePath, clientPath));\n\n const pageData = await createPage(pathnameNormalized, clientPath, title, configuration, crumbs);\n if (pageData) {\n pages[pageData.pathname] = pageData.page;\n }\n\n let subTree: TreeItem[] | undefined;\n if (segment !== \"index\") {\n const subResult = await parseAutoStructure(\n configuration,\n pageData ? [...crumbs, pathnameNormalized] : crumbs,\n clientPath,\n nestingLevel + 1,\n );\n subTree = subResult.tree;\n Object.assign(pages, subResult.pages);\n }\n\n tree.push(createTreeItem(title, pathnameNormalized, \"row\", subTree));\n }\n\n return { pages, tree };\n};\n\nconst parseAutoStructure = async (\n configuration: Configuration,\n crumbs: Crumbs,\n parentPathname: string,\n nestingLevel: number,\n) => {\n if (!configuration.provider) return { pages: {}, tree: [] };\n\n const jsonResult = await parseJSONStructure(configuration, parentPathname, crumbs, nestingLevel + 1);\n if (jsonResult) return jsonResult;\n\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n const parentSegments = parentPathname.split(\"/\");\n\n const branchFiles = await configuration.provider.filesPromise;\n\n for await (const { clientPath } of branchFiles.docs) {\n const segments = clientPath.split(\"/\");\n const isDirectChild = segments.length === parentSegments.length + 1;\n const isUnderParent = clientPath.startsWith(parentPathname);\n\n if (!isDirectChild || !isUnderParent) {\n continue;\n }\n\n const pathnameNormalized = normalizePathname(mergePathname(configuration.basePath, clientPath));\n const metadata = await getMetadata({ provider: configuration.provider, uri: clientPath });\n const title = metadata.title || generatePseudoTitle(pathnameNormalized);\n\n const pageData = await createPage(pathnameNormalized, clientPath, title, configuration, crumbs);\n if (pageData) {\n pages[pageData.pathname] = pageData.page;\n }\n\n const subResult = await parseAutoStructure(\n configuration,\n pageData ? [...crumbs, pathnameNormalized] : crumbs,\n clientPath,\n nestingLevel + 1,\n );\n const itemType = nestingLevel === 0 ? \"heading\" : \"row\";\n\n if (shouldSpread(nestingLevel, configuration.spreadedLevel)) {\n tree.push(createTreeItem(title, pathnameNormalized, itemType), ...subResult.tree);\n } else {\n tree.push(createTreeItem(title, pathnameNormalized, itemType, subResult.tree));\n }\n\n Object.assign(pages, subResult.pages);\n }\n\n return { pages, tree };\n};\n\nconst parseStaticStructure = async (\n items: DocItem[],\n configuration: Configuration,\n crumbs: Crumbs,\n parentPathname: string,\n nestingLevel: number,\n) => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n for await (const item of items) {\n if (typeof item === \"string\") {\n const result = await parseStructure(item, configuration, crumbs, parentPathname, nestingLevel);\n Object.assign(pages, result.pages);\n tree.push(...result.tree);\n continue;\n }\n\n if (item.type === \"separator\") {\n tree.push({ type: \"separator\" });\n continue;\n }\n\n const itemConfiguration = getConfiguration(item.configuration || {}, configuration);\n const clientPath = item.href || \"\";\n const pathnameNormalized = normalizePathname(mergePathname(itemConfiguration.basePath, clientPath));\n\n let subCrumbs = crumbs;\n if (clientPath && !checkIsLinkExternal(pathnameNormalized)) {\n const pageData = await createPage(\n pathnameNormalized,\n clientPath,\n item.title || \"\",\n itemConfiguration,\n crumbs,\n );\n if (pageData) {\n pages[pageData.pathname] = pageData.page;\n subCrumbs = [...crumbs, pathnameNormalized];\n }\n }\n\n let subTree: TreeItem[] = [];\n if (item.items) {\n const result = await parseStructure(\n item.items,\n itemConfiguration,\n subCrumbs,\n item.href || \"\",\n nestingLevel + 1,\n );\n subTree = result.tree;\n Object.assign(pages, result.pages);\n }\n\n if (item.hidden) continue;\n\n const title = item.title || generatePseudoTitle(pathnameNormalized);\n const href = item.href ? pathnameNormalized : undefined;\n\n if (shouldSpread(nestingLevel, configuration.spreadedLevel)) {\n tree.push(createTreeItem(title, href, item.type), ...subTree);\n } else {\n tree.push(createTreeItem(title, href, item.type, subTree));\n }\n }\n\n return { pages, tree };\n};\n\nexport const parseStructure = async (\n items: DocItem[] | \"auto\",\n configuration: Configuration = {},\n crumbs: Crumbs = [],\n pathname: string = \"\",\n nestingLevel: number = 0,\n) => {\n if (items === \"auto\") {\n return parseAutoStructure(configuration, crumbs, pathname, nestingLevel);\n }\n\n return parseStaticStructure(items, configuration, crumbs, pathname, nestingLevel);\n};\n"],"names":["parseAutoStructure","async","configuration","crumbs","parentPathname","nestingLevel","provider","pages","tree","jsonResult","structurePath","filesPromise","structures","includes","content","loadContent","structure","JSON","parse","data","Error","segment","title","clientPath","normalizePathname","pathnameNormalized","mergePathname","basePath","pageData","createPage","subTree","pathname","page","subResult","Object","assign","push","createTreeItem","parseJSONStructure","parentSegments","split","branchFiles","docs","isDirectChild","length","isUnderParent","startsWith","getMetadata","uri","generatePseudoTitle","itemType","shouldSpread","spreadedLevel","parseStructure","items","item","result","type","itemConfiguration","getConfiguration","href","subCrumbs","checkIsLinkExternal","hidden","undefined","parseStaticStructure"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Configuration } from "../types/content";
2
+ import { type Crumbs } from "../types/content";
3
+ import { type TreeItem } from "../../components/elements/sidebar/types";
4
+ export declare const createPage: (pathnameNormalized: string, clientPath: string, title: string, configuration: Configuration, crumbs: Crumbs) => Promise<{
5
+ pathname: string;
6
+ page: {
7
+ title: string;
8
+ uri: string;
9
+ configuration: Configuration;
10
+ origPath: string;
11
+ crumbs: Crumbs;
12
+ };
13
+ } | null>;
14
+ export declare const createTreeItem: (title: string, href: string | undefined, type: "heading" | "row" | undefined, items?: TreeItem[]) => {
15
+ title: string;
16
+ href: string | undefined;
17
+ type: "heading" | "row" | undefined;
18
+ items: TreeItem[];
19
+ } | {
20
+ title: string;
21
+ href: string | undefined;
22
+ type: "heading" | "row" | undefined;
23
+ items?: undefined;
24
+ };
25
+ export declare const shouldSpread: (nestingLevel: number, spreadedLevel?: number) => boolean;
26
+ //# sourceMappingURL=structure-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-tools.d.ts","sourceRoot":"","sources":["../../../src/core/utils/structure-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAGxE,eAAO,MAAM,UAAU,GACnB,oBAAoB,MAAM,EAC1B,YAAY,MAAM,EAClB,OAAO,MAAM,EACb,eAAe,aAAa,EAC5B,QAAQ,MAAM;;;;;;;;;SAWjB,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,OAAO,MAAM,EACb,MAAM,MAAM,GAAG,SAAS,EACxB,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,EACnC,QAAQ,QAAQ,EAAE;;;;;;;;;;CAGrB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,cAAc,MAAM,EAAE,gBAAe,MAAU,YAE3E,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{checkIsLinkExternal as t}from"./path-tools.js";const e=async(e,r,a,i,o)=>{if(t(e))return null;const n=await(i.provider?.getPageSourcePathname(r,e));return n?{pathname:e,page:{title:a,uri:r,configuration:i,origPath:n,crumbs:o}}:null},r=(t,e,r,a)=>a?{title:t,href:e,type:r,items:a}:{title:t,href:e,type:r},a=(t,e=1)=>t<e;export{e as createPage,r as createTreeItem,a as shouldSpread};
2
+ //# sourceMappingURL=structure-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-tools.js","sources":["../../../src/core/utils/structure-tools.ts"],"sourcesContent":["import { type Configuration } from \"../types/content\";\nimport { type Crumbs } from \"../types/content\";\nimport { type TreeItem } from \"../../components/elements/sidebar/types\";\nimport { checkIsLinkExternal } from \"./path-tools\";\n\nexport const createPage = async (\n pathnameNormalized: string,\n clientPath: string,\n title: string,\n configuration: Configuration,\n crumbs: Crumbs,\n) => {\n if (checkIsLinkExternal(pathnameNormalized)) return null;\n\n const origPath = await configuration.provider?.getPageSourcePathname(clientPath, pathnameNormalized);\n if (!origPath) return null;\n\n return {\n pathname: pathnameNormalized,\n page: { title, uri: clientPath, configuration, origPath, crumbs },\n };\n};\n\nexport const createTreeItem = (\n title: string,\n href: string | undefined,\n type: \"heading\" | \"row\" | undefined,\n items?: TreeItem[],\n) => {\n return items ? { title, href, type, items } : { title, href, type };\n};\n\nexport const shouldSpread = (nestingLevel: number, spreadedLevel: number = 1) => {\n return nestingLevel < spreadedLevel;\n};\n"],"names":["createPage","async","pathnameNormalized","clientPath","title","configuration","crumbs","checkIsLinkExternal","origPath","provider","getPageSourcePathname","pathname","page","uri","createTreeItem","href","type","items","shouldSpread","nestingLevel","spreadedLevel"],"mappings":"sDAKO,MAAMA,EAAaC,MACtBC,EACAC,EACAC,EACAC,EACAC,KAEA,GAAIC,EAAoBL,GAAqB,OAAO,KAEpD,MAAMM,QAAiBH,EAAcI,UAAUC,sBAAsBP,EAAYD,IACjF,OAAKM,EAEE,CACHG,SAAUT,EACVU,KAAM,CAAER,QAAOS,IAAKV,EAAYE,gBAAeG,WAAUF,WAJvC,MAQbQ,EAAiB,CAC1BV,EACAW,EACAC,EACAC,IAEOA,EAAQ,CAAEb,QAAOW,OAAMC,OAAMC,SAAU,CAAEb,QAAOW,OAAMC,QAGpDE,EAAe,CAACC,EAAsBC,EAAwB,IAChED,EAAeC"}
package/lib/styles.css CHANGED
@@ -8,13 +8,15 @@
8
8
  box-sizing: border-box;
9
9
  }
10
10
 
11
- .r-header-body {
11
+ .r-header-body.r-header-body {
12
12
  height: 100%;
13
13
  display: flex;
14
14
  justify-content: space-between;
15
15
  align-items: center;
16
16
  gap: 24px;
17
17
  box-sizing: border-box;
18
+ padding-left: 24px;
19
+ padding-right: 24px;
18
20
  }
19
21
 
20
22
  .r-header-logo {
@@ -23,6 +25,9 @@
23
25
  color: var(--r-main-700);
24
26
  transition: color 0.2s;
25
27
  box-sizing: border-box;
28
+ font-size: 1.25rem;
29
+ font-weight: 600;
30
+ text-decoration: none;
26
31
  }
27
32
  .r-header-logo:hover, .r-header-logo:focus {
28
33
  color: var(--r-main-950);
@@ -89,8 +94,10 @@
89
94
  }
90
95
  }.r-footer {
91
96
  border-top: 1px solid var(--r-main-300);
92
- padding-top: 16px;
93
- padding-bottom: 16px;
97
+ }
98
+
99
+ .r-footer-container.r-footer-container {
100
+ padding: 16px 24px;
94
101
  }
95
102
 
96
103
  .r-footer-row {
@@ -374,7 +381,7 @@
374
381
  .r-docs-container {
375
382
  column-gap: 40px;
376
383
  grid-template-areas: "sidebar breadcrumbs contents" "sidebar content contents" "sidebar pagination contents";
377
- grid-template-columns: 200px 640px 1fr;
384
+ grid-template-columns: 200px 640px 238px;
378
385
  grid-template-rows: auto 1fr auto;
379
386
  }
380
387
  }.r-blog-container {
@@ -395,13 +402,13 @@
395
402
  min-height: calc(100dvh - var(--r-header-height));
396
403
  overflow-wrap: break-word;
397
404
  box-sizing: border-box;
405
+ }.r-keylink.keylink-to-navigation:focus {
406
+ margin-top: -40px;
398
407
  }.keylink-to-content {
399
408
  position: absolute !important;
400
409
  top: 8px;
401
410
  left: 12px;
402
411
  z-index: 1001;
403
- }.r-keylink.keylink-to-navigation:focus {
404
- margin-top: -40px;
405
412
  }.r-article {
406
413
  padding: 20px 0 40px;
407
414
  grid-area: content;
@@ -595,15 +602,9 @@
595
602
  box-sizing: border-box;
596
603
  }
597
604
 
598
- .r-sidebar-drop[open]::details-content {
599
- height: var(--drop-height, auto);
600
- box-sizing: border-box;
601
- }
602
-
603
605
  .r-sidebar-drop::details-content {
604
- height: 0;
605
606
  overflow: hidden;
606
- transition: height 0.3s, content-visibility 0.3s allow-discrete;
607
+ transition: content-visibility 0.4s allow-discrete;
607
608
  box-sizing: border-box;
608
609
  }
609
610
 
@@ -611,6 +612,30 @@
611
612
  margin-left: 12px;
612
613
  }
613
614
 
615
+ .r-sidebar-drop > .r-sidebar-sublist {
616
+ opacity: 0;
617
+ transition: opacity 0.2s ease;
618
+ }
619
+
620
+ .r-sidebar-drop[open] > .r-sidebar-sublist {
621
+ opacity: 1;
622
+ }
623
+
624
+ .r-sidebar-drop > .r-sidebar-sublist > .r-sidebar-li {
625
+ margin-top: -4rem;
626
+ transition: margin-top 0.3s ease;
627
+ }
628
+
629
+ @starting-style {
630
+ .r-sidebar-drop[open]._starting-style > .r-sidebar-sublist > .r-sidebar-li {
631
+ margin-top: -4rem;
632
+ }
633
+ }
634
+
635
+ .r-sidebar-drop[open] > .r-sidebar-sublist > .r-sidebar-li {
636
+ margin-top: 0;
637
+ }
638
+
614
639
  .r-sidebar-sublist .r-sidebar-link {
615
640
  position: relative;
616
641
  border-top-left-radius: 0;
@@ -622,7 +647,7 @@
622
647
  position: absolute;
623
648
  left: 0;
624
649
  top: -1px;
625
- width: 2px;
650
+ width: 1px;
626
651
  height: calc(100% + 4px);
627
652
  background-color: var(--r-main-200);
628
653
  transition: background-color 0.2s cubic-bezier(0, 0.66, 0.58, 1) 0.05s;
@@ -631,8 +656,6 @@
631
656
 
632
657
  .r-sidebar-li {
633
658
  position: relative;
634
- padding-top: 2px;
635
- padding-bottom: 2px;
636
659
  line-height: 1.5;
637
660
  }
638
661
 
@@ -664,12 +687,15 @@
664
687
  }
665
688
 
666
689
  .r-sidebar-link {
667
- display: block;
668
690
  padding: 4px 10px;
669
691
  color: inherit;
670
692
  border-bottom: 2px solid transparent;
671
693
  border-radius: 2px;
672
694
  text-decoration: none;
695
+ display: -webkit-box;
696
+ -webkit-box-orient: vertical;
697
+ -webkit-line-clamp: 3;
698
+ overflow: hidden;
673
699
  transition: background-color 0.2s cubic-bezier(0, 0.66, 0.58, 1) 0.05s, color 0.2s cubic-bezier(0, 0.66, 0.58, 1) 0.05s;
674
700
  }
675
701
 
@@ -814,85 +840,6 @@
814
840
  .r-header-input:checked ~ .r-header-burger .r-burger-line._bottom {
815
841
  transform: translateY(0) rotate(-45deg);
816
842
  margin-top: 0;
817
- }.r-dropdown {
818
- position: relative;
819
- color: var(--r-main-600);
820
- transition: color 0.2s 0.1s;
821
- }
822
- .r-dropdown:hover, .r-dropdown:focus-within {
823
- color: var(--r-main-950);
824
- }
825
- .r-dropdown:hover .r-dropdown-drop, .r-dropdown:focus-within .r-dropdown-drop {
826
- visibility: visible;
827
- pointer-events: all;
828
- transform: translateY(20px);
829
- opacity: 1;
830
- }
831
- .r-dropdown:hover .r-dropdown-chevron, .r-dropdown:focus-within .r-dropdown-chevron {
832
- transform: rotate(180deg);
833
- }
834
-
835
- .r-dropdown-summary {
836
- display: flex;
837
- justify-content: space-between;
838
- align-items: center;
839
- width: 100%;
840
- position: relative;
841
- color: inherit;
842
- cursor: pointer;
843
- padding: 10px 4px;
844
- font-size: 16px;
845
- border: 0;
846
- background: none;
847
- z-index: 1;
848
- box-sizing: border-box;
849
- }
850
-
851
- .r-dropdown-chevron {
852
- display: block;
853
- margin-left: 6px;
854
- transition: transform 0.3s 0.1s;
855
- box-sizing: border-box;
856
- }
857
-
858
- .r-dropdown-drop {
859
- list-style: none;
860
- position: absolute;
861
- top: 16px;
862
- left: -12px;
863
- visibility: hidden;
864
- pointer-events: none;
865
- opacity: 0;
866
- transition: transform 0.3s 0.1s, opacity 0.3s 0.1s, visibility 0.3s 0.1s;
867
- background-color: var(--r-main-50);
868
- border: 1px solid var(--r-main-100);
869
- border-radius: 8px;
870
- margin: 0;
871
- padding: 2px 6px;
872
- min-width: 120px;
873
- max-width: 180px;
874
- box-sizing: border-box;
875
- }
876
-
877
- .r-dropdown-link {
878
- display: block;
879
- width: 100%;
880
- text-decoration: none;
881
- color: var(--r-main-700);
882
- padding: 4px 8px;
883
- margin-top: 4px;
884
- margin-bottom: 4px;
885
- border-radius: 4px;
886
- transition: background-color 0.2s;
887
- box-sizing: border-box;
888
- }
889
- .r-dropdown-link:hover {
890
- color: var(--r-main-900);
891
- background-color: var(--r-main-100);
892
- }
893
-
894
- .r-dropdown-link._active {
895
- color: var(--r-primary-700);
896
843
  }.r-search-btn {
897
844
  position: relative;
898
845
  border-radius: 6px;
@@ -1076,6 +1023,85 @@
1076
1023
  font-size: 14px;
1077
1024
  color: var(--r-main-600);
1078
1025
  margin: 12px 0 0;
1026
+ }.r-dropdown {
1027
+ position: relative;
1028
+ color: var(--r-main-600);
1029
+ transition: color 0.2s 0.1s;
1030
+ }
1031
+ .r-dropdown:hover, .r-dropdown:focus-within {
1032
+ color: var(--r-main-950);
1033
+ }
1034
+ .r-dropdown:hover .r-dropdown-drop, .r-dropdown:focus-within .r-dropdown-drop {
1035
+ visibility: visible;
1036
+ pointer-events: all;
1037
+ transform: translateY(20px);
1038
+ opacity: 1;
1039
+ }
1040
+ .r-dropdown:hover .r-dropdown-chevron, .r-dropdown:focus-within .r-dropdown-chevron {
1041
+ transform: rotate(180deg);
1042
+ }
1043
+
1044
+ .r-dropdown-summary {
1045
+ display: flex;
1046
+ justify-content: space-between;
1047
+ align-items: center;
1048
+ width: 100%;
1049
+ position: relative;
1050
+ color: inherit;
1051
+ cursor: pointer;
1052
+ padding: 10px 4px;
1053
+ font-size: 16px;
1054
+ border: 0;
1055
+ background: none;
1056
+ z-index: 1;
1057
+ box-sizing: border-box;
1058
+ }
1059
+
1060
+ .r-dropdown-chevron {
1061
+ display: block;
1062
+ margin-left: 6px;
1063
+ transition: transform 0.3s 0.1s;
1064
+ box-sizing: border-box;
1065
+ }
1066
+
1067
+ .r-dropdown-drop {
1068
+ list-style: none;
1069
+ position: absolute;
1070
+ top: 16px;
1071
+ left: -12px;
1072
+ visibility: hidden;
1073
+ pointer-events: none;
1074
+ opacity: 0;
1075
+ transition: transform 0.3s 0.1s, opacity 0.3s 0.1s, visibility 0.3s 0.1s;
1076
+ background-color: var(--r-main-50);
1077
+ border: 1px solid var(--r-main-100);
1078
+ border-radius: 8px;
1079
+ margin: 0;
1080
+ padding: 2px 6px;
1081
+ min-width: 120px;
1082
+ max-width: 180px;
1083
+ box-sizing: border-box;
1084
+ }
1085
+
1086
+ .r-dropdown-link {
1087
+ display: block;
1088
+ width: 100%;
1089
+ text-decoration: none;
1090
+ color: var(--r-main-700);
1091
+ padding: 4px 8px;
1092
+ margin-top: 4px;
1093
+ margin-bottom: 4px;
1094
+ border-radius: 4px;
1095
+ transition: background-color 0.2s;
1096
+ box-sizing: border-box;
1097
+ }
1098
+ .r-dropdown-link:hover {
1099
+ color: var(--r-main-900);
1100
+ background-color: var(--r-main-100);
1101
+ }
1102
+
1103
+ .r-dropdown-link._active {
1104
+ color: var(--r-primary-700);
1079
1105
  }.r-header-social {
1080
1106
  display: flex;
1081
1107
  flex: 1;
@@ -1415,7 +1441,7 @@
1415
1441
 
1416
1442
  @media screen and (width >= 1180px) {
1417
1443
  .r-contents-link._visited {
1418
- color: var(--r-main-600);
1444
+ color: var(--r-main-900);
1419
1445
  }
1420
1446
  }
1421
1447
  @media screen and (width >= 1180px) {
@@ -1427,9 +1453,15 @@
1427
1453
  transition: mask-position 0.3s;
1428
1454
  }
1429
1455
 
1456
+ @media screen and (width >= 1180px) {
1457
+ .r-contents-link._passed {
1458
+ color: var(--r-main-700);
1459
+ }
1460
+ }
1461
+
1430
1462
  @media screen and (width >= 1180px) {
1431
1463
  .r-contents-link._active {
1432
- color: var(--r-main-900);
1464
+ color: var(--r-primary-800);
1433
1465
  }
1434
1466
  }
1435
1467
 
@@ -1719,6 +1751,19 @@
1719
1751
  }
1720
1752
  .r-blockquote-caution .r-blockquote-title {
1721
1753
  color: var(--r-caution);
1754
+ }.r-code-block {
1755
+ font-family: var(--monospace-font, monospace, monospace);
1756
+ font-size: 16px;
1757
+ line-height: 1.33;
1758
+ border-radius: 6px;
1759
+ padding: 16px 20px;
1760
+ margin: 0;
1761
+ color: var(--r-primary-800);
1762
+ background-color: var(--r-main-50);
1763
+ overflow-x: auto;
1764
+ scrollbar-width: thin;
1765
+ scrollbar-color: var(--r-main-200) transparent;
1766
+ box-sizing: border-box;
1722
1767
  }.r-code-span {
1723
1768
  font-family: var(--monospace-font, monospace, monospace);
1724
1769
  background-color: var(--r-main-100);
@@ -1733,19 +1778,6 @@
1733
1778
 
1734
1779
  .r-code-span + .r-content-link-external {
1735
1780
  margin-left: -12px;
1736
- }.r-code-block {
1737
- font-family: var(--monospace-font, monospace, monospace);
1738
- font-size: 16px;
1739
- line-height: 1.33;
1740
- border-radius: 6px;
1741
- padding: 16px 20px;
1742
- margin: 0;
1743
- color: var(--r-primary-800);
1744
- background-color: var(--r-main-50);
1745
- overflow-x: auto;
1746
- scrollbar-width: thin;
1747
- scrollbar-color: var(--r-main-200) transparent;
1748
- box-sizing: border-box;
1749
1781
  }.r-h1 {
1750
1782
  font-size: 32px;
1751
1783
  line-height: 1.4;
@@ -1850,6 +1882,34 @@
1850
1882
  min-width: 24px;
1851
1883
  text-align: center;
1852
1884
  box-sizing: border-box;
1885
+ }.r-copy-text {
1886
+ position: relative;
1887
+ cursor: pointer;
1888
+ background: none;
1889
+ border: 0;
1890
+ padding: 0;
1891
+ font: inherit;
1892
+ padding: 6px 0;
1893
+ }
1894
+ .r-copy-text:hover {
1895
+ color: var(--r-main-950);
1896
+ }
1897
+ .r-copy-text::before {
1898
+ content: "";
1899
+ position: absolute;
1900
+ bottom: 0;
1901
+ left: 0;
1902
+ width: 100%;
1903
+ height: 1px;
1904
+ background: linear-gradient(to right, currentColor 30%, transparent 0%, transparent 80%, currentColor 80%) repeat-x 0px/8px;
1905
+ transition: background 0.2s;
1906
+ box-sizing: border-box;
1907
+ opacity: 0.6;
1908
+ }
1909
+
1910
+ .r-copy-text:active,
1911
+ .r-copy-text._active {
1912
+ color: var(--r-success);
1853
1913
  }.r-copy-button {
1854
1914
  position: relative;
1855
1915
  padding: 6px;
@@ -1893,34 +1953,6 @@
1893
1953
 
1894
1954
  .r-copy-button-svg {
1895
1955
  display: block;
1896
- }.r-copy-text {
1897
- position: relative;
1898
- cursor: pointer;
1899
- background: none;
1900
- border: 0;
1901
- padding: 0;
1902
- font: inherit;
1903
- padding: 6px 0;
1904
- }
1905
- .r-copy-text:hover {
1906
- color: var(--r-main-950);
1907
- }
1908
- .r-copy-text::before {
1909
- content: "";
1910
- position: absolute;
1911
- bottom: 0;
1912
- left: 0;
1913
- width: 100%;
1914
- height: 1px;
1915
- background: linear-gradient(to right, currentColor 30%, transparent 0%, transparent 80%, currentColor 80%) repeat-x 0px/8px;
1916
- transition: background 0.2s;
1917
- box-sizing: border-box;
1918
- opacity: 0.6;
1919
- }
1920
-
1921
- .r-copy-text:active,
1922
- .r-copy-text._active {
1923
- color: var(--r-success);
1924
1956
  }.r-content-link {
1925
1957
  text-decoration: none;
1926
1958
  color: inherit;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robindoc",
3
- "version": "3.6.2",
3
+ "version": "3.6.4",
4
4
  "description": "Robindoc is a framework for automatically creating documentation websites based on markdown files, built on React.js Server Components",
5
5
  "main": "./lib/index.js",
6
6
  "scripts": {