robindoc 3.6.2 → 3.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/blocks/code-section/index.d.ts.map +1 -1
- package/lib/components/blocks/code-section/index.js +1 -1
- package/lib/components/blocks/code-section/index.js.map +1 -1
- package/lib/components/blocks/contents/index.js +1 -1
- package/lib/components/blocks/contents/index.js.map +1 -1
- package/lib/components/blocks/theme-detector/index.js +1 -1
- package/lib/components/blocks/theme-detector/index.js.map +1 -1
- package/lib/components/elements/footer/index.js +1 -1
- package/lib/components/elements/footer/index.js.map +1 -1
- package/lib/components/elements/sidebar/sidebar-drop/index.d.ts.map +1 -1
- package/lib/components/elements/sidebar/sidebar-drop/index.js +1 -1
- package/lib/components/elements/sidebar/sidebar-drop/index.js.map +1 -1
- package/lib/components/stores/navigation/contexts.d.ts.map +1 -1
- package/lib/components/stores/navigation/contexts.js +1 -1
- package/lib/components/stores/navigation/contexts.js.map +1 -1
- package/lib/components/stores/navigation/stores.d.ts.map +1 -1
- package/lib/components/stores/navigation/stores.js +1 -1
- package/lib/components/stores/navigation/stores.js.map +1 -1
- package/lib/core/utils/parse-structure.d.ts +1 -1
- package/lib/core/utils/parse-structure.d.ts.map +1 -1
- package/lib/core/utils/parse-structure.js +1 -1
- package/lib/core/utils/parse-structure.js.map +1 -1
- package/lib/core/utils/structure-tools.d.ts +26 -0
- package/lib/core/utils/structure-tools.d.ts.map +1 -0
- package/lib/core/utils/structure-tools.js +2 -0
- package/lib/core/utils/structure-tools.js.map +1 -0
- package/lib/styles.css +180 -148
- 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;
|
|
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
|
|
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={
|
|
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
|
|
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":";oOAqBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAoC,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAeC,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CACtCC,CAAAA,CAAcD,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CACrCE,CAAAA,CAAqBF,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5CG,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAIC,GAAEA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwBT,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAEvFU,CAAAA,CAAoBC,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAC9BP,CAAAA,CAAmBQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWT,CAAAA,CAAYS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1CT,CAAAA,CAAYS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiBV,CAAAA,CAAmBQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEtG,CAAA,CAAA,CAAA,CAIH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAC,CAAAA,CAAUN,EAAmB,CAAA,CAAA,CAAA,CAGzBO,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACXF,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,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,CAAoBC,CAAAA,CAAAA,CAAAA,CAAKnB,CAAAA,CAAAA,CACnCJ,CAAAA,CAASwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAMvB,CAAAA,CAAAA,CACrBmB,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAD,CAAAA,CAAAK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIL,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIK,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACLJ,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,CACVK,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACHC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASf,CAAAA,CAAAA,CAAAA,CAEbO,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,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,CACXF,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,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,CAAmBO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvClB,CAAAA,CACDS,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CACNC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,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,OACLC,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,CACff,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,CAEVF,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiB,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGhBlB,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,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,CAAkBC,CAAAA,CAAAA,CAAAA,CAAKjB,CAAAA,CAAAA,CAClCc,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,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,CAA0BC,IAAKhB,CAAAA,CAAAA,CACzCP,CAAAA,CAASuC,CAAAA,CAAAA,CAAAA,CAAI,CAACC,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CACpBrB,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAIF,CAAAA,CAAQb,CAAAA,CAAAA,CAAAA,CAAAA,CAClBgB,CAAAA,CAAAA,CAAAA,CAAKH,CAAAA,CAAQb,CAAAA,CAAAA,CACbL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWsB,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACAJ,CAAAA,CAAQK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClBJ,CAAAA,CAAAA,CAASjC,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjBiC,CAAAA,CAAAA,CAAShC,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACfgC,CAAAA,CAAAA,CAASjC,GAAQiC,CAAAA,CAAAA,CAAShC,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEpCc,CAAAA,CAAAA,CAAAA,CAAMuB,CAAAA,CAAAA,CAAAA,CAEEA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACN3C,CAAAA,CAAaW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACbX,CAAAA,CAAaW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjB5C,CAAAA,CAAaW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQkC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzBzC,CAAAA,CAAAA,CAAAA,CAASiC,CAAAA,CAAAA,CAETrC,CAAAA,CAAaW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQmC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAC1BC,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CACNP,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAMfhB,CAAAA,CAAQiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAQpCvD,CAAAA,CAAAA,CAASwD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZtC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKC,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,CACXF,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAGqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMxC,CAAAA,CAASyD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBtC,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,CACjEV,CAAAA,CAAciD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaC,CAAAA,CAAc5D,CAAAA,CAAAA,CAAS6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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, {
|
|
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,
|
|
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,
|
|
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,
|
|
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;
|
|
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,
|
|
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
|
|
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",
|
|
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;
|
|
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{
|
|
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":"2WASA,MAqDMA,EAAqBC,MACvBC,EACAC,EACAC,EACAC,KAEA,IAAKH,EAAcI,SAAU,MAAO,CAAEC,MAAO,GAAIC,KAAM,IAEvD,MAAMC,OA7DiBR,OACvBC,EACAE,EACAD,EACAE,KAEA,IAAKH,EAAcI,SAAU,OAAO,KAEpC,MACMI,EAAgB,GAAGN,mBAEzB,WAH0BF,EAAcI,SAASK,cAGhCC,WAAWC,SAASH,GAAgB,OAAO,KAE5D,MAAMI,QAAgBC,EAAYL,EAAeR,EAAcI,UAC/D,IAAIU,EAEJ,IACIA,EAAYC,KAAKC,MAAMJ,EAAQK,KACnC,CAAE,MACE,MAAM,IAAIC,MAAM,0BAA0BV,KAC9C,CAEA,MAAMH,EAAe,CAAA,EACfC,EAAmB,GAEzB,IAAK,MAAMa,KAAWL,EAAW,CAC7B,MAAMM,MAAEA,GAAUN,EAAUK,GACtBE,EAAaC,EAA8B,UAAZH,EAAsBjB,EAAiB,GAAGA,KAAkBiB,KAC3FI,EAAqBD,EAAkBE,EAAcxB,EAAcyB,SAAUJ,IAE7EK,QAAiBC,EAAWJ,EAAoBF,EAAYD,EAAOpB,EAAeC,GAKxF,IAAI2B,EACJ,GALIF,IACArB,EAAMqB,EAASG,UAAYH,EAASI,MAIxB,UAAZX,EAAqB,CACrB,MAAMY,QAAkBjC,EACpBE,EACA0B,EAAW,IAAIzB,EAAQsB,GAAsBtB,EAC7CoB,EACAlB,EAAe,GAEnByB,EAAUG,EAAUzB,KACpB0B,OAAOC,OAAO5B,EAAO0B,EAAU1B,MACnC,CAEAC,EAAK4B,KAAKC,EAAef,EAAOG,EAAoB,MAAOK,GAC/D,CAEA,MAAO,CAAEvB,QAAOC,SAWS8B,CAAmBpC,EAAeE,EAAgBD,EAAQE,EAAe,GAClG,GAAII,EAAY,OAAOA,EAEvB,MAAMF,EAAe,CAAA,EACfC,EAAmB,GACnB+B,EAAiBnC,EAAeoC,MAAM,KAEtCC,QAAoBvC,EAAcI,SAASK,aAEjD,UAAW,MAAMY,WAAEA,KAAgBkB,EAAYC,KAAM,CACjD,MACMC,EADWpB,EAAWiB,MAAM,KACHI,SAAWL,EAAeK,OAAS,EAC5DC,EAAgBtB,EAAWuB,WAAW1C,GAE5C,IAAKuC,IAAkBE,EACnB,SAGJ,MAAMpB,EAAqBD,EAAkBE,EAAcxB,EAAcyB,SAAUJ,IAE7ED,SADiByB,EAAY,CAAEzC,SAAUJ,EAAcI,SAAU0C,IAAKzB,KACrDD,OAAS2B,EAAoBxB,GAE9CG,QAAiBC,EAAWJ,EAAoBF,EAAYD,EAAOpB,EAAeC,GACpFyB,IACArB,EAAMqB,EAASG,UAAYH,EAASI,MAGxC,MAAMC,QAAkBjC,EACpBE,EACA0B,EAAW,IAAIzB,EAAQsB,GAAsBtB,EAC7CoB,EACAlB,EAAe,GAEb6C,EAA4B,IAAjB7C,EAAqB,UAAY,MAE9C8C,EAAa9C,EAAcH,EAAckD,eACzC5C,EAAK4B,KAAKC,EAAef,EAAOG,EAAoByB,MAAcjB,EAAUzB,MAE5EA,EAAK4B,KAAKC,EAAef,EAAOG,EAAoByB,EAAUjB,EAAUzB,OAG5E0B,OAAOC,OAAO5B,EAAO0B,EAAU1B,MACnC,CAEA,MAAO,CAAEA,QAAOC,SAyEP6C,EAAiBpD,MAC1BqD,EACApD,EAA+B,GAC/BC,EAAiB,GACjB4B,EAAmB,GACnB1B,EAAuB,IAET,SAAViD,EACOtD,EAAmBE,EAAeC,EAAQ4B,EAAU1B,GA9EtCJ,OACzBqD,EACApD,EACAC,EACAC,EACAC,KAEA,MAAME,EAAe,CAAA,EACfC,EAAmB,GAEzB,UAAW,MAAM+C,KAAQD,EAAO,CAC5B,GAAoB,iBAATC,EAAmB,CAC1B,MAAMC,QAAeH,EAAeE,EAAMrD,EAAeC,EAAQC,EAAgBC,GACjF6B,OAAOC,OAAO5B,EAAOiD,EAAOjD,OAC5BC,EAAK4B,QAAQoB,EAAOhD,MACpB,QACJ,CAEA,GAAkB,cAAd+C,EAAKE,KAAsB,CAC3BjD,EAAK4B,KAAK,CAAEqB,KAAM,cAClB,QACJ,CAEA,MAAMC,EAAoBC,EAAiBJ,EAAKrD,eAAiB,CAAA,EAAIA,GAC/DqB,EAAagC,EAAKK,MAAQ,GAC1BnC,EAAqBD,EAAkBE,EAAcgC,EAAkB/B,SAAUJ,IAEvF,IAAIsC,EAAY1D,EAChB,GAAIoB,IAAeuC,EAAoBrC,GAAqB,CACxD,MAAMG,QAAiBC,EACnBJ,EACAF,EACAgC,EAAKjC,OAAS,GACdoC,EACAvD,GAEAyB,IACArB,EAAMqB,EAASG,UAAYH,EAASI,KACpC6B,EAAY,IAAI1D,EAAQsB,GAEhC,CAEA,IAAIK,EAAsB,GAC1B,GAAIyB,EAAKD,MAAO,CACZ,MAAME,QAAeH,EACjBE,EAAKD,MACLI,EACAG,EACAN,EAAKK,MAAQ,GACbvD,EAAe,GAEnByB,EAAU0B,EAAOhD,KACjB0B,OAAOC,OAAO5B,EAAOiD,EAAOjD,MAChC,CAEA,GAAIgD,EAAKQ,OAAQ,SAEjB,MAAMzC,EAAQiC,EAAKjC,OAAS2B,EAAoBxB,GAC1CmC,EAAOL,EAAKK,KAAOnC,OAAqBuC,EAE1Cb,EAAa9C,EAAcH,EAAckD,eACzC5C,EAAK4B,KAAKC,EAAef,EAAOsC,EAAML,EAAKE,SAAU3B,GAErDtB,EAAK4B,KAAKC,EAAef,EAAOsC,EAAML,EAAKE,KAAM3B,GAEzD,CAEA,MAAO,CAAEvB,QAAOC,SAcTyD,CAAqBX,EAAOpD,EAAeC,EAAQ4B,EAAU1B"}
|
|
@@ -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);
|
|
@@ -87,41 +92,6 @@
|
|
|
87
92
|
width: 100%;
|
|
88
93
|
left: 0;
|
|
89
94
|
}
|
|
90
|
-
}.r-footer {
|
|
91
|
-
border-top: 1px solid var(--r-main-300);
|
|
92
|
-
padding-top: 16px;
|
|
93
|
-
padding-bottom: 16px;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.r-footer-row {
|
|
97
|
-
display: flex;
|
|
98
|
-
justify-content: space-between;
|
|
99
|
-
align-items: center;
|
|
100
|
-
gap: 32px;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.r-footer-additional {
|
|
104
|
-
margin-top: 20px;
|
|
105
|
-
justify-content: flex-end;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.r-copyright {
|
|
109
|
-
color: var(--r-main-800);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.r-powered {
|
|
113
|
-
font-size: 14px;
|
|
114
|
-
display: block;
|
|
115
|
-
color: var(--r-main-600);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.r-powered-link {
|
|
119
|
-
font-weight: 600;
|
|
120
|
-
text-decoration: none;
|
|
121
|
-
color: var(--r-main-950);
|
|
122
|
-
}
|
|
123
|
-
.r-powered-link:hover {
|
|
124
|
-
color: var(--r-primary-900);
|
|
125
95
|
}.r-root {
|
|
126
96
|
--r-header-height: 60px;
|
|
127
97
|
position: relative;
|
|
@@ -355,6 +325,43 @@
|
|
|
355
325
|
--r-cl-60: #86181d;
|
|
356
326
|
--r-cl-61: #144620;
|
|
357
327
|
--r-cl-62: #c24e00;
|
|
328
|
+
}.r-footer {
|
|
329
|
+
border-top: 1px solid var(--r-main-300);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.r-footer-container.r-footer-container {
|
|
333
|
+
padding: 16px 24px;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
.r-footer-row {
|
|
337
|
+
display: flex;
|
|
338
|
+
justify-content: space-between;
|
|
339
|
+
align-items: center;
|
|
340
|
+
gap: 32px;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.r-footer-additional {
|
|
344
|
+
margin-top: 20px;
|
|
345
|
+
justify-content: flex-end;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
.r-copyright {
|
|
349
|
+
color: var(--r-main-800);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.r-powered {
|
|
353
|
+
font-size: 14px;
|
|
354
|
+
display: block;
|
|
355
|
+
color: var(--r-main-600);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.r-powered-link {
|
|
359
|
+
font-weight: 600;
|
|
360
|
+
text-decoration: none;
|
|
361
|
+
color: var(--r-main-950);
|
|
362
|
+
}
|
|
363
|
+
.r-powered-link:hover {
|
|
364
|
+
color: var(--r-primary-900);
|
|
358
365
|
}.r-docs-container {
|
|
359
366
|
min-height: calc(100dvh - var(--r-header-height));
|
|
360
367
|
overflow-wrap: break-word;
|
|
@@ -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
|
|
384
|
+
grid-template-columns: 200px 640px 238px;
|
|
378
385
|
grid-template-rows: auto 1fr auto;
|
|
379
386
|
}
|
|
380
387
|
}.r-blog-container {
|
|
@@ -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:
|
|
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:
|
|
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
|
|
|
@@ -1076,6 +1102,13 @@
|
|
|
1076
1102
|
font-size: 14px;
|
|
1077
1103
|
color: var(--r-main-600);
|
|
1078
1104
|
margin: 12px 0 0;
|
|
1105
|
+
}.r-container {
|
|
1106
|
+
max-width: 1180px;
|
|
1107
|
+
padding-right: 12px;
|
|
1108
|
+
padding-left: 12px;
|
|
1109
|
+
margin-right: auto;
|
|
1110
|
+
margin-left: auto;
|
|
1111
|
+
box-sizing: border-box;
|
|
1079
1112
|
}.r-header-social {
|
|
1080
1113
|
display: flex;
|
|
1081
1114
|
flex: 1;
|
|
@@ -1094,13 +1127,6 @@
|
|
|
1094
1127
|
}
|
|
1095
1128
|
.r-header-social-git:hover, .r-header-social-git:focus {
|
|
1096
1129
|
color: var(--r-main-950);
|
|
1097
|
-
}.r-container {
|
|
1098
|
-
max-width: 1180px;
|
|
1099
|
-
padding-right: 12px;
|
|
1100
|
-
padding-left: 12px;
|
|
1101
|
-
margin-right: auto;
|
|
1102
|
-
margin-left: auto;
|
|
1103
|
-
box-sizing: border-box;
|
|
1104
1130
|
}.r-theme-switcher {
|
|
1105
1131
|
position: relative;
|
|
1106
1132
|
display: flex;
|
|
@@ -1187,47 +1213,6 @@
|
|
|
1187
1213
|
user-select: none;
|
|
1188
1214
|
pointer-events: none;
|
|
1189
1215
|
box-sizing: border-box;
|
|
1190
|
-
}.r-breadcrumbs {
|
|
1191
|
-
grid-area: breadcrumbs;
|
|
1192
|
-
list-style: none;
|
|
1193
|
-
margin: 0;
|
|
1194
|
-
padding: 20px 0 0;
|
|
1195
|
-
line-height: 2;
|
|
1196
|
-
}
|
|
1197
|
-
@media screen and (width >= 768px) {
|
|
1198
|
-
.r-breadcrumbs {
|
|
1199
|
-
padding: 32px 0 0;
|
|
1200
|
-
}
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
.r-breadcrumb {
|
|
1204
|
-
display: inline;
|
|
1205
|
-
}
|
|
1206
|
-
|
|
1207
|
-
.r-breadcrumb._previous::after {
|
|
1208
|
-
content: "/";
|
|
1209
|
-
font-weight: 600;
|
|
1210
|
-
margin-inline: 8px;
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1213
|
-
.r-breadcrumb-link {
|
|
1214
|
-
color: var(--r-main-700);
|
|
1215
|
-
text-decoration: none;
|
|
1216
|
-
}
|
|
1217
|
-
.r-breadcrumb-link:hover {
|
|
1218
|
-
color: var(--r-primary-800);
|
|
1219
|
-
}
|
|
1220
|
-
|
|
1221
|
-
.r-breadcrumb-link,
|
|
1222
|
-
.r-breadcrumb-title {
|
|
1223
|
-
display: inline;
|
|
1224
|
-
padding: 6px 0;
|
|
1225
|
-
margin: 0;
|
|
1226
|
-
}
|
|
1227
|
-
|
|
1228
|
-
.r-breadcrumb-title {
|
|
1229
|
-
color: var(--r-main-950);
|
|
1230
|
-
font-weight: 600;
|
|
1231
1216
|
}.r-contents {
|
|
1232
1217
|
grid-area: contents;
|
|
1233
1218
|
}
|
|
@@ -1415,7 +1400,7 @@
|
|
|
1415
1400
|
|
|
1416
1401
|
@media screen and (width >= 1180px) {
|
|
1417
1402
|
.r-contents-link._visited {
|
|
1418
|
-
color: var(--r-main-
|
|
1403
|
+
color: var(--r-main-900);
|
|
1419
1404
|
}
|
|
1420
1405
|
}
|
|
1421
1406
|
@media screen and (width >= 1180px) {
|
|
@@ -1427,9 +1412,15 @@
|
|
|
1427
1412
|
transition: mask-position 0.3s;
|
|
1428
1413
|
}
|
|
1429
1414
|
|
|
1415
|
+
@media screen and (width >= 1180px) {
|
|
1416
|
+
.r-contents-link._passed {
|
|
1417
|
+
color: var(--r-main-700);
|
|
1418
|
+
}
|
|
1419
|
+
}
|
|
1420
|
+
|
|
1430
1421
|
@media screen and (width >= 1180px) {
|
|
1431
1422
|
.r-contents-link._active {
|
|
1432
|
-
color: var(--r-
|
|
1423
|
+
color: var(--r-primary-800);
|
|
1433
1424
|
}
|
|
1434
1425
|
}
|
|
1435
1426
|
|
|
@@ -1461,6 +1452,47 @@
|
|
|
1461
1452
|
}
|
|
1462
1453
|
.r-contents-git:hover {
|
|
1463
1454
|
color: var(--r-main-900);
|
|
1455
|
+
}.r-breadcrumbs {
|
|
1456
|
+
grid-area: breadcrumbs;
|
|
1457
|
+
list-style: none;
|
|
1458
|
+
margin: 0;
|
|
1459
|
+
padding: 20px 0 0;
|
|
1460
|
+
line-height: 2;
|
|
1461
|
+
}
|
|
1462
|
+
@media screen and (width >= 768px) {
|
|
1463
|
+
.r-breadcrumbs {
|
|
1464
|
+
padding: 32px 0 0;
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
.r-breadcrumb {
|
|
1469
|
+
display: inline;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
.r-breadcrumb._previous::after {
|
|
1473
|
+
content: "/";
|
|
1474
|
+
font-weight: 600;
|
|
1475
|
+
margin-inline: 8px;
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
.r-breadcrumb-link {
|
|
1479
|
+
color: var(--r-main-700);
|
|
1480
|
+
text-decoration: none;
|
|
1481
|
+
}
|
|
1482
|
+
.r-breadcrumb-link:hover {
|
|
1483
|
+
color: var(--r-primary-800);
|
|
1484
|
+
}
|
|
1485
|
+
|
|
1486
|
+
.r-breadcrumb-link,
|
|
1487
|
+
.r-breadcrumb-title {
|
|
1488
|
+
display: inline;
|
|
1489
|
+
padding: 6px 0;
|
|
1490
|
+
margin: 0;
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
.r-breadcrumb-title {
|
|
1494
|
+
color: var(--r-main-950);
|
|
1495
|
+
font-weight: 600;
|
|
1464
1496
|
}.r-pagination {
|
|
1465
1497
|
grid-area: pagination;
|
|
1466
1498
|
display: grid;
|
|
@@ -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,18 +1778,8 @@
|
|
|
1733
1778
|
|
|
1734
1779
|
.r-code-span + .r-content-link-external {
|
|
1735
1780
|
margin-left: -12px;
|
|
1736
|
-
}.r-
|
|
1737
|
-
|
|
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;
|
|
1781
|
+
}.r-img {
|
|
1782
|
+
max-width: 100%;
|
|
1748
1783
|
box-sizing: border-box;
|
|
1749
1784
|
}.r-h1 {
|
|
1750
1785
|
font-size: 32px;
|
|
@@ -1786,9 +1821,6 @@
|
|
|
1786
1821
|
line-height: 1.4;
|
|
1787
1822
|
margin-block-start: 1.8em;
|
|
1788
1823
|
margin-block-end: 1.8em;
|
|
1789
|
-
}.r-img {
|
|
1790
|
-
max-width: 100%;
|
|
1791
|
-
box-sizing: border-box;
|
|
1792
1824
|
}.r-p {
|
|
1793
1825
|
line-height: 1.8;
|
|
1794
1826
|
margin-block-start: 1em;
|
|
@@ -1834,6 +1866,14 @@
|
|
|
1834
1866
|
|
|
1835
1867
|
.r-tab-header-code {
|
|
1836
1868
|
font-family: var(--monospace-font, monospace, monospace);
|
|
1869
|
+
}.r-kbd-key {
|
|
1870
|
+
background-color: var(--r-main-200);
|
|
1871
|
+
font-size: 12px;
|
|
1872
|
+
border-radius: 4px;
|
|
1873
|
+
padding: 5px 8px;
|
|
1874
|
+
min-width: 24px;
|
|
1875
|
+
text-align: center;
|
|
1876
|
+
box-sizing: border-box;
|
|
1837
1877
|
}.r-kbd-container {
|
|
1838
1878
|
display: flex;
|
|
1839
1879
|
gap: 4px;
|
|
@@ -1842,14 +1882,34 @@
|
|
|
1842
1882
|
}
|
|
1843
1883
|
.r-kbd-container:hover {
|
|
1844
1884
|
color: var(--r-main-950);
|
|
1845
|
-
}.r-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
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;
|
|
1852
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