robindoc 3.6.0 → 3.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.d.ts +2 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +2 -0
- package/lib/client.js.map +1 -0
- package/lib/components/blocks/anchor-heading/index.js +1 -1
- package/lib/components/blocks/anchor-heading/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/header-menu/index.js +1 -1
- package/lib/components/blocks/header-menu/index.js.map +1 -1
- package/lib/components/blocks/nav-content-link/index.js +1 -1
- package/lib/components/blocks/nav-content-link/index.js.map +1 -1
- package/lib/components/blocks/nav-link/index.d.ts +5 -5
- package/lib/components/blocks/nav-link/index.d.ts.map +1 -1
- package/lib/components/blocks/nav-link/index.js +1 -1
- package/lib/components/blocks/nav-link/index.js.map +1 -1
- package/lib/components/blocks/no-js/index.d.ts.map +1 -1
- package/lib/components/blocks/no-js/index.js +1 -1
- package/lib/components/blocks/no-js/index.js.map +1 -1
- package/lib/components/elements/article/index.js +1 -1
- package/lib/components/elements/article/index.js.map +1 -1
- package/lib/components/elements/robin-provider/index.js +1 -1
- package/lib/components/elements/robin-provider/index.js.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/elements/sidebar/sidebar-link/index.js +1 -1
- package/lib/components/elements/sidebar/sidebar-link/index.js.map +1 -1
- package/lib/components/elements/sidebar/sidebar-menu/index.js +1 -1
- package/lib/components/elements/sidebar/sidebar-menu/index.js.map +1 -1
- package/lib/components/stores/contents/context.d.ts.map +1 -0
- package/lib/components/stores/contents/context.js.map +1 -0
- package/lib/components/stores/contents/provider.d.ts.map +1 -0
- package/lib/components/stores/contents/provider.js.map +1 -0
- package/lib/components/stores/contents/use-heading-index.d.ts.map +1 -0
- package/lib/components/stores/contents/use-heading-index.js.map +1 -0
- package/lib/components/stores/contents/use-heading-register.d.ts.map +1 -0
- package/lib/components/stores/contents/use-heading-register.js.map +1 -0
- package/lib/components/stores/navigate/context.d.ts.map +1 -0
- package/lib/components/stores/navigate/context.js.map +1 -0
- package/lib/components/stores/navigate/provider.d.ts.map +1 -0
- package/lib/components/stores/navigate/provider.js.map +1 -0
- package/lib/components/stores/navigate/types.d.ts.map +1 -0
- package/lib/components/stores/navigate/use-navigate.d.ts.map +1 -0
- package/lib/components/stores/navigate/use-navigate.js.map +1 -0
- package/lib/components/stores/navigation/contexts.d.ts +8 -0
- package/lib/components/stores/navigation/contexts.d.ts.map +1 -0
- package/lib/components/stores/navigation/contexts.js +3 -0
- package/lib/components/stores/navigation/contexts.js.map +1 -0
- package/lib/components/stores/navigation/hooks.d.ts +5 -0
- package/lib/components/stores/navigation/hooks.d.ts.map +1 -0
- package/lib/components/stores/navigation/hooks.js +3 -0
- package/lib/components/stores/navigation/hooks.js.map +1 -0
- package/lib/components/stores/navigation/stores.d.ts +9 -0
- package/lib/components/stores/navigation/stores.d.ts.map +1 -0
- package/lib/components/stores/navigation/stores.js +3 -0
- package/lib/components/stores/navigation/stores.js.map +1 -0
- package/lib/components/stores/reference/context.d.ts.map +1 -0
- package/lib/components/stores/reference/context.js.map +1 -0
- package/lib/components/stores/reference/provider.d.ts.map +1 -0
- package/lib/components/stores/reference/provider.js.map +1 -0
- package/lib/components/stores/reference/use-reference.d.ts.map +1 -0
- package/lib/components/stores/reference/use-reference.js.map +1 -0
- package/lib/components/ui/content-link/index.d.ts +2 -2
- package/lib/components/ui/content-link/index.d.ts.map +1 -1
- package/lib/components/ui/content-link/index.js +2 -1
- package/lib/components/ui/content-link/index.js.map +1 -1
- package/lib/styles.css +258 -257
- package/package.json +1 -3
- package/lib/components/blocks/theme-styles/index.d.ts +0 -7
- package/lib/components/blocks/theme-styles/index.d.ts.map +0 -1
- package/lib/components/contexts/contents/context.d.ts.map +0 -1
- package/lib/components/contexts/contents/context.js.map +0 -1
- package/lib/components/contexts/contents/provider.d.ts.map +0 -1
- package/lib/components/contexts/contents/provider.js.map +0 -1
- package/lib/components/contexts/contents/use-heading-index.d.ts.map +0 -1
- package/lib/components/contexts/contents/use-heading-index.js.map +0 -1
- package/lib/components/contexts/contents/use-heading-register.d.ts.map +0 -1
- package/lib/components/contexts/contents/use-heading-register.js.map +0 -1
- package/lib/components/contexts/navigate/context.d.ts.map +0 -1
- package/lib/components/contexts/navigate/context.js.map +0 -1
- package/lib/components/contexts/navigate/provider.d.ts.map +0 -1
- package/lib/components/contexts/navigate/provider.js.map +0 -1
- package/lib/components/contexts/navigate/types.d.ts.map +0 -1
- package/lib/components/contexts/navigate/use-navigate.d.ts.map +0 -1
- package/lib/components/contexts/navigate/use-navigate.js.map +0 -1
- package/lib/components/contexts/reference/context.d.ts.map +0 -1
- package/lib/components/contexts/reference/context.js.map +0 -1
- package/lib/components/contexts/reference/provider.d.ts.map +0 -1
- package/lib/components/contexts/reference/provider.js.map +0 -1
- package/lib/components/contexts/reference/use-reference.d.ts.map +0 -1
- package/lib/components/contexts/reference/use-reference.js.map +0 -1
- package/lib/core/types/theme.d.ts +0 -49
- package/lib/core/types/theme.d.ts.map +0 -1
- /package/lib/components/{contexts → stores}/contents/context.d.ts +0 -0
- /package/lib/components/{contexts → stores}/contents/context.js +0 -0
- /package/lib/components/{contexts → stores}/contents/provider.d.ts +0 -0
- /package/lib/components/{contexts → stores}/contents/provider.js +0 -0
- /package/lib/components/{contexts → stores}/contents/use-heading-index.d.ts +0 -0
- /package/lib/components/{contexts → stores}/contents/use-heading-index.js +0 -0
- /package/lib/components/{contexts → stores}/contents/use-heading-register.d.ts +0 -0
- /package/lib/components/{contexts → stores}/contents/use-heading-register.js +0 -0
- /package/lib/components/{contexts → stores}/navigate/context.d.ts +0 -0
- /package/lib/components/{contexts → stores}/navigate/context.js +0 -0
- /package/lib/components/{contexts → stores}/navigate/provider.d.ts +0 -0
- /package/lib/components/{contexts → stores}/navigate/provider.js +0 -0
- /package/lib/components/{contexts → stores}/navigate/types.d.ts +0 -0
- /package/lib/components/{contexts → stores}/navigate/use-navigate.d.ts +0 -0
- /package/lib/components/{contexts → stores}/navigate/use-navigate.js +0 -0
- /package/lib/components/{contexts → stores}/reference/context.d.ts +0 -0
- /package/lib/components/{contexts → stores}/reference/context.js +0 -0
- /package/lib/components/{contexts → stores}/reference/provider.d.ts +0 -0
- /package/lib/components/{contexts → stores}/reference/provider.js +0 -0
- /package/lib/components/{contexts → stores}/reference/use-reference.d.ts +0 -0
- /package/lib/components/{contexts → stores}/reference/use-reference.js +0 -0
package/lib/client.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/lib/client.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import e from"react";import{useHeadingRegister as
|
|
2
|
+
import e from"react";import{useHeadingRegister as r}from"../../stores/contents/use-heading-register.js";import{Heading as n}from"../../ui/heading/index.js";const t=({component:t,id:o,children:a})=>{const i=r();return e.createElement(n,{component:t,id:o,className:"r-anchor-heading",ref:i},a," ",e.createElement("a",{href:`#${o}`,className:"r-anchor-heading-link"}))};export{t as AnchorHeading};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/anchor-heading/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { useHeadingRegister } from \"@src/components/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/anchor-heading/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { useHeadingRegister } from \"@src/components/stores/contents/use-heading-register\";\nimport { Heading } from \"@src/components/ui/heading\";\n\nimport \"./anchor-heading.scss\";\n\ninterface AnchorHeadingProps extends React.PropsWithChildren {\n id: string;\n component: \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n}\n\nexport const AnchorHeading: React.FC<AnchorHeadingProps> = ({ component: Component, id, children }) => {\n const register = useHeadingRegister();\n\n return (\n <Heading component={Component} id={id} className=\"r-anchor-heading\" ref={register}>\n {children} \n <a href={`#${id}`} className=\"r-anchor-heading-link\" />\n </Heading>\n );\n};\n"],"names":["AnchorHeading","component","Component","id","children","register","useHeadingRegister","React","createElement","Heading","className","ref","href"],"mappings":";4JAaO,MAAMA,CAAAA,CAA8C,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAWC,KAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAWC,CAAAA,CAAAA,CAAAA,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,EAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAA,EAAQR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,EAAWC,CAAAA,CAAAA,CAAIA,CAAAA,CAAIO,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,CAAmBC,IAAKN,CAAAA,CAAAA,CACpED,CAAAA,KACDG,CAAAA,CAAAC,cAAA,CAAA,CAAA,CAAA,CAAA,CAAGI,KAAM,CAAA,CAAA,CAAA,CAAIT,CAAAA,CAAAA,CAAAA,CAAMO,UAAU,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"}
|
|
@@ -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"../../
|
|
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};
|
|
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/contexts/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 && 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,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import e,{useState as r,useEffect as t}from"react";import{useNavigate as a}from"../../
|
|
2
|
+
import e,{useState as r,useEffect as t}from"react";import{useNavigate as a}from"../../stores/navigate/use-navigate.js";const o=({children:o,translations:n})=>{const{menu:s="Menu"}=n||{},{addListener:c,removeListener:l}=a(),[m,d]=r(!1),i=()=>{const e=document.querySelector(".r-root");e&&e.classList.remove("r-root-tablet-lock"),d(!1),l("closeHeaderMenu")};return t(()=>()=>{i()},[]),e.createElement("div",{className:"r-header-menu"},e.createElement("input",{onChange:()=>{m?i():(()=>{const e=document.querySelector(".r-root");e&&e.classList.add("r-root-tablet-lock"),d(!0),c("closeHeaderMenu",i)})()},checked:m,id:"header-burger",type:"checkbox",className:"r-header-input",hidden:!0}),e.createElement("label",{className:"r-header-burger",htmlFor:"header-burger","aria-label":s,role:"button",tabIndex:0},e.createElement("span",{className:"r-burger-line _top"}),e.createElement("span",{className:"r-burger-line _bottom"})),e.createElement("div",{className:"r-header-responsive"},o))};export{o as HeaderMenu};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/header-menu/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { useNavigate } from \"@src/components/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/header-menu/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\n\nimport { useNavigate } from \"@src/components/stores/navigate/use-navigate\";\n\nimport \"./header-menu.scss\";\n\nexport type HeaderMenuProps = React.PropsWithChildren<{\n translations?: {\n /** Menu */\n menu?: string;\n };\n}>;\n\nexport const HeaderMenu: React.FC<HeaderMenuProps> = ({ children, translations }) => {\n const { menu = \"Menu\" } = translations || {};\n const { addListener, removeListener } = useNavigate();\n const [opened, setOpened] = useState(false);\n\n const openHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.add(\"r-root-tablet-lock\");\n }\n setOpened(true);\n addListener(\"closeHeaderMenu\", closeHandler);\n };\n\n const closeHandler = () => {\n const root = document.querySelector(\".r-root\");\n if (root) {\n root.classList.remove(\"r-root-tablet-lock\");\n }\n setOpened(false);\n removeListener(\"closeHeaderMenu\");\n };\n\n const toggleHandler = () => {\n if (opened) {\n closeHandler();\n } else {\n openHandler();\n }\n };\n\n useEffect(\n () => () => {\n closeHandler();\n },\n [],\n );\n\n return (\n <div className=\"r-header-menu\">\n <input\n onChange={toggleHandler}\n checked={opened}\n id=\"header-burger\"\n type=\"checkbox\"\n className=\"r-header-input\"\n hidden\n />\n <label className=\"r-header-burger\" htmlFor=\"header-burger\" aria-label={menu} role=\"button\" tabIndex={0}>\n <span className=\"r-burger-line _top\" />\n <span className=\"r-burger-line _bottom\" />\n </label>\n <div className=\"r-header-responsive\">{children}</div>\n </div>\n );\n};\n"],"names":["HeaderMenu","children","translations","menu","addListener","removeListener","useNavigate","opened","setOpened","useState","closeHandler","root","document","querySelector","classList","remove","useEffect","React","createElement","className","onChange","add","openHandler","checked","id","type","hidden","htmlFor","role","tabIndex"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import
|
|
2
|
+
import e from"react";import{useNavigate as t}from"../../stores/navigate/use-navigate.js";import{ContentLink as r}from"../../ui/content-link/index.js";const n=({onClick:n,...o})=>{const{listeners:i}=t();return e.createElement(r,{onClick:e=>{[...i].forEach(e=>e.listener()),n&&n(e)},...o})};export{n as NavContentLink};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-content-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nimport { useNavigate } from \"@src/components/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-content-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\nimport { useNavigate } from \"@src/components/stores/navigate/use-navigate\";\nimport { ContentLink, type ContentLinkProps } from \"@src/components/ui/content-link\";\n\ntype NavContentLinkProps = ContentLinkProps;\n\nexport const NavContentLink: React.FC<NavContentLinkProps> = ({ onClick, ...props }) => {\n const { listeners } = useNavigate();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n\n return <ContentLink onClick={clickHandler} {...props} />;\n};\n"],"names":["NavContentLink","onClick","props","listeners","useNavigate","React","createElement","ContentLink","e","forEach","el","listener"],"mappings":";sJASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAgD,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAcC,CAAAA,CAAAA,CAAAA,CAOtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAA,CAAW,CAACN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CALEO,CAAAA,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAIL,CAAAA,CAAAA,CAAWM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAOA,CAAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BV,CAAAA,CAAAA,CAASA,CAAAA,CAAQO,OAGsBN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
3
|
-
export declare const NavLink: React.ForwardRefExoticComponent<React.AnchorHTMLAttributes<HTMLAnchorElement> & LinkProps<any> & {
|
|
4
|
-
children?: React.ReactNode | undefined;
|
|
5
|
-
} & {
|
|
2
|
+
interface NavLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
6
3
|
activeClassName?: string;
|
|
7
4
|
targetClassName?: string;
|
|
8
|
-
|
|
5
|
+
href: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const NavLink: React.ForwardRefExoticComponent<NavLinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
8
|
+
export {};
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAQ1C,UAAU,YAAa,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACxE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,wFA+BnB,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import e,{forwardRef as r}from"react";import t from"
|
|
2
|
+
import e,{forwardRef as r}from"react";import t from"clsx";import{useNavigate as o}from"../../stores/navigate/use-navigate.js";import{ExternalMark as s}from"../../ui/external-mark/index.js";import{checkIsLinkExternal as a}from"../../../core/utils/path-tools.js";import{usePathname as n,useLink as i}from"../../stores/navigation/hooks.js";const l=r(({onClick:r,className:l,href:m,targetClassName:c,activeClassName:f,children:p,...h},g)=>{const{listeners:k}=o(),u=n(),j=i(),v=a(m),x=v?{target:"_blank",rel:"noopener noreferrer"}:{};return e.createElement(j,{href:m,className:t(u.startsWith(m)&&c,u===m&&f,l),ref:g,onClick:e=>{[...k].forEach(e=>e.listener()),r&&r(e)},...x,...h},p,v&&e.createElement(s,null))});export{l as NavLink};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef } from \"react\";\nimport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef } from \"react\";\nimport clsx from \"clsx\";\n\nimport { useNavigate } from \"@src/components/stores/navigate/use-navigate\";\nimport { ExternalMark } from \"@src/components/ui/external-mark\";\nimport { checkIsLinkExternal } from \"@src/core/utils/path-tools\";\nimport { usePathname, useLink } from \"@src/components/stores/navigation/hooks\";\n\ninterface NavLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n activeClassName?: string;\n targetClassName?: string;\n href: string;\n}\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(\n ({ onClick, className, href, targetClassName, activeClassName, children, ...props }, ref) => {\n const { listeners } = useNavigate();\n const pathname = usePathname();\n const Link = useLink();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\n const isLinkExternal = checkIsLinkExternal(href);\n const additionalProps = isLinkExternal ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n\n return (\n <Link\n href={href}\n className={clsx(\n pathname.startsWith(href) && targetClassName,\n pathname === href && activeClassName,\n className,\n )}\n ref={ref}\n onClick={clickHandler}\n {...additionalProps}\n {...props}\n >\n {children}\n {isLinkExternal && <ExternalMark />}\n </Link>\n );\n },\n);\n"],"names":["NavLink","forwardRef","onClick","className","href","targetClassName","activeClassName","children","props","ref","listeners","useNavigate","pathname","usePathname","Link","useLink","isLinkExternal","checkIsLinkExternal","additionalProps","target","rel","React","createElement","clsx","startsWith","e","forEach","el","listener","ExternalMark"],"mappings":";iVAgBO,MAAMA,CAAAA,CAAUC,CAAAA,CACnB,EAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBC,kBAAiBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaC,CAAAA,CAAAA,CAASC,KACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,GAAcC,CAAAA,CAAAA,CAAAA,CAChBC,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CACXC,CAAAA,CAAOC,IAMPC,CAAAA,CAAiBC,CAAAA,CAAoBb,GACrCc,CAAAA,CAAkBF,CAAAA,CAAiB,CAAEG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAE5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACR,GACGV,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CACND,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWoB,EACPX,CAAAA,CAASY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWpB,IAASC,CAAAA,CAC7BO,CAAAA,CAAAA,CAAAA,CAAaR,GAAQE,CAAAA,CACrBH,CAAAA,CAAAA,CAEJM,CAAAA,CAAAA,CAAAA,CAAKA,CAAAA,CACLP,QAhBcuB,CAAAA,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAIf,GAAWgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAOA,EAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9B1B,CAAAA,CAAAA,CAASA,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAebP,KACAV,CAAAA,CAAAA,CAEHD,CAAAA,CACAS,GAAkBK,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACO,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/no-js/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/no-js/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,IAAI,yBA4ChB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import n from"react";const o=()=>n.createElement("noscript",null,n.createElement("style",null,'\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: "Please enable JavaScript";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n '));export{o as NoJs};
|
|
1
|
+
import n from"react";const o=()=>n.createElement("noscript",null,n.createElement("style",null,'\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n text-wrap: wrap;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: "Please enable JavaScript";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n '));export{o as NoJs};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/no-js/index.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const NoJs = () => (\n <noscript>\n <style>\n {`\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: \"Please enable JavaScript\";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n `}\n </style>\n </noscript>\n);\n"],"names":["NoJs","React","createElement"],"mappings":"qBAEO,MAAMA,EAAO,IAChBC,EAAAC,cAAA,WAAA,KACID,EAAAC,cAAA,QAAA,KACK"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/blocks/no-js/index.tsx"],"sourcesContent":["import React from \"react\";\n\nexport const NoJs = () => (\n <noscript>\n <style>\n {`\n .r-no-js {\n cursor: not-allowed;\n box-sizing: border-box;\n text-wrap: wrap;\n }\n .r-no-js:hover,\n .r-no-js:focus,\n .r-no-js:focus-within {\n z-index: 10;\n }\n .r-no-js::after {\n content: \"Please enable JavaScript\";\n display: none;\n position: absolute;\n top: 50%;\n right: 0;\n font-family: var(--monospace-font, monospace, monospace);\n font-size: 12px;\n width: 100%;\n min-width: 120px;\n transform: translateY(-50%);\n background-color: var(--r-main-900);\n color: var(--r-main-100);\n border-radius: 4px;\n padding: 4px 12px;\n pointer-events: none;\n box-sizing: border-box;\n }\n .r-no-js._to-right::after {\n right: auto;\n left: 0;\n }\n .r-no-js:hover::after,\n .r-no-js:focus::after,\n .r-no-js:focus-within::after {\n display: block;\n }\n `}\n </style>\n </noscript>\n);\n"],"names":["NoJs","React","createElement"],"mappings":"qBAEO,MAAMA,EAAO,IAChBC,EAAAC,cAAA,WAAA,KACID,EAAAC,cAAA,QAAA,KACK"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{loadContent as t}from"../../../core/utils/load-content.js";import{ContentsProvider as r}from"../../
|
|
1
|
+
import e from"react";import{loadContent as t}from"../../../core/utils/load-content.js";import{ContentsProvider as r}from"../../stores/contents/provider.js";import{Contents as o}from"../../blocks/contents/index.js";import{Breadcrumbs as i}from"../../blocks/breadcrumbs/index.js";import{Pagination as n}from"../../blocks/pagination/index.js";import{parseMarkdown as a}from"./utils.js";import{Document as s}from"./document.js";import{LastModified as d}from"../../blocks/last-modified/index.js";const m=async({components:m,content:c,uri:l,config:p={},provider:f,hideContents:g,editUri:u,pathname:v,title:b,breadcrumbs:h,prev:E,next:j,pages:x=[],translations:k})=>{const{lastModifiedOn:w="Last modified on",editOnService:P,onThisPage:O}=k||{},{data:U,provider:C}=c||!l?{data:c,provider:null}:await t(l,f);if(!U)throw new Error("Robindoc: Please provide content or valid uri");const{headings:L,tokens:M}=a(U),S=l&&C&&await C.getEditUri(l),T=l&&C&&await C.getLastModifiedDate(l);return e.createElement(r,null,h&&h.length>0&&e.createElement(i,{breadcrumbs:h,title:b}),e.createElement(o,{editUri:null===u?null:u||S,hideContents:g,headings:L,translations:{editOnService:P,onThisPage:O}}),e.createElement("div",{className:"r-article"},e.createElement(s,{headings:L,tokens:M,pages:x,components:m,config:p,targetProvider:C,pathname:v,uri:l}),T&&e.createElement(d,{date:T},w)),(E||j)&&e.createElement(n,{prev:E,next:j}))};export{m as Article};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/elements/article/index.tsx"],"sourcesContent":["import \"./article.scss\";\nimport React from \"react\";\n\nimport { type Components } from \"@src/core/types/content\";\nimport { type BaseProvider } from \"@src/core/providers/base\";\nimport { loadContent } from \"@src/core/utils/load-content\";\nimport { ContentsProvider } from \"@src/components/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/elements/article/index.tsx"],"sourcesContent":["import \"./article.scss\";\nimport React from \"react\";\n\nimport { type Components } from \"@src/core/types/content\";\nimport { type BaseProvider } from \"@src/core/providers/base\";\nimport { loadContent } from \"@src/core/utils/load-content\";\nimport { ContentsProvider } from \"@src/components/stores/contents/provider\";\nimport { Contents, type ContentsProps } from \"@src/components/blocks/contents\";\nimport { Breadcrumbs, type BreadcrumbsProps } from \"@src/components/blocks/breadcrumbs\";\nimport { Pagination, type PaginationProps } from \"@src/components/blocks/pagination\";\nimport { parseMarkdown } from \"./utils\";\nimport { Document } from \"./document\";\nimport { LastModified } from \"@src/components/blocks/last-modified\";\n\nexport type ContentProps = {\n title: string;\n components?: Components;\n config?: {\n publicDirs?: string[];\n };\n provider?: BaseProvider;\n pathname: string;\n pages?: { clientPath: string; origPath: string }[];\n translations?: {\n /** Last modified on */\n lastModifiedOn?: string;\n };\n} & ({ content: string; uri?: undefined } | { uri: string; content?: undefined });\n\nexport type ArticleProps = Partial<PaginationProps> &\n Partial<BreadcrumbsProps> &\n Omit<ContentsProps, \"headings\"> &\n ContentProps;\n\nexport const Article: React.FC<ArticleProps> = async ({\n components,\n content,\n uri,\n config = {},\n provider,\n hideContents,\n editUri: editUriProp,\n pathname,\n title,\n breadcrumbs,\n prev,\n next,\n pages = [],\n translations,\n}) => {\n const { lastModifiedOn = \"Last modified on\", editOnService, onThisPage } = translations || {};\n const { data, provider: targetProvider } =\n content || !uri ? { data: content, provider: null } : await loadContent(uri, provider);\n\n if (!data) {\n throw new Error(\"Robindoc: Please provide content or valid uri\");\n }\n\n const { headings, tokens } = parseMarkdown(data);\n const editUri = uri && targetProvider && (await targetProvider.getEditUri(uri));\n const lastModified = uri && targetProvider && (await targetProvider.getLastModifiedDate(uri));\n\n return (\n <ContentsProvider>\n {breadcrumbs && breadcrumbs.length > 0 && <Breadcrumbs breadcrumbs={breadcrumbs} title={title} />}\n <Contents\n editUri={editUriProp === null ? null : editUriProp || editUri}\n hideContents={hideContents}\n headings={headings}\n translations={{ editOnService, onThisPage }}\n />\n <div className=\"r-article\">\n <Document\n headings={headings}\n tokens={tokens}\n pages={pages}\n components={components}\n config={config}\n targetProvider={targetProvider}\n pathname={pathname}\n uri={uri}\n />\n {lastModified && <LastModified date={lastModified}>{lastModifiedOn}</LastModified>}\n </div>\n {(prev || next) && <Pagination prev={prev} next={next} />}\n </ContentsProvider>\n );\n};\n"],"names":["Article","async","components","content","uri","config","provider","hideContents","editUri","editUriProp","pathname","title","breadcrumbs","prev","next","pages","translations","lastModifiedOn","editOnService","onThisPage","data","targetProvider","loadContent","Error","headings","tokens","parseMarkdown","getEditUri","lastModified","getLastModifiedDate","React","ContentsProvider","length","createElement","Breadcrumbs","Contents","className","Document","LastModified","date","Pagination"],"mappings":"2eAkCO,MAAMA,EAAkCC,OAC3CC,aACAC,UACAC,MACAC,SAAS,CAAA,EACTC,WACAC,eACAC,QAASC,EACTC,WACAC,QACAC,cACAC,OACAC,OACAC,QAAQ,GACRC,mBAEA,MAAMC,eAAEA,EAAiB,mBAAkBC,cAAEA,EAAaC,WAAEA,GAAeH,GAAgB,CAAA,GACrFI,KAAEA,EAAMd,SAAUe,GACpBlB,IAAYC,EAAM,CAAEgB,KAAMjB,EAASG,SAAU,YAAegB,EAAYlB,EAAKE,GAEjF,IAAKc,EACD,MAAM,IAAIG,MAAM,iDAGpB,MAAMC,SAAEA,EAAQC,OAAEA,GAAWC,EAAcN,GACrCZ,EAAUJ,GAAOiB,SAAyBA,EAAeM,WAAWvB,GACpEwB,EAAexB,GAAOiB,SAAyBA,EAAeQ,oBAAoBzB,GAExF,OACI0B,gBAACC,EAAgB,KACZnB,GAAeA,EAAYoB,OAAS,GAAKF,EAAAG,cAACC,EAAW,CAACtB,YAAaA,EAAaD,MAAOA,IACxFmB,EAAAG,cAACE,EAAQ,CACL3B,QAAyB,OAAhBC,EAAuB,KAAOA,GAAeD,EACtDD,aAAcA,EACdiB,SAAUA,EACVR,aAAc,CAAEE,gBAAeC,gBAEnCW,EAAAG,cAAA,MAAA,CAAKG,UAAU,aACXN,EAAAG,cAACI,EAAQ,CACLb,SAAUA,EACVC,OAAQA,EACRV,MAAOA,EACPb,WAAYA,EACZG,OAAQA,EACRgB,eAAgBA,EAChBX,SAAUA,EACVN,IAAKA,IAERwB,GAAgBE,EAAAG,cAACK,EAAY,CAACC,KAAMX,GAAeX,KAEtDJ,GAAQC,IAASgB,EAAAG,cAACO,EAAU,CAAC3B,KAAMA,EAAMC,KAAMA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{NavigateProvider as
|
|
1
|
+
import e from"react";import{NavigateProvider as r}from"../../stores/navigate/provider.js";import{ThemeDetector as t}from"../../blocks/theme-detector/index.js";import{NoJs as o}from"../../blocks/no-js/index.js";const n=({children:n,component:m="div"})=>e.createElement(m,{suppressHydrationWarning:!0,className:"r-root"},e.createElement(t,null),e.createElement(r,null,n),e.createElement(o,null));export{n as RobinProvider};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/elements/robin-provider/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { NavigateProvider } from \"@src/components/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/elements/robin-provider/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { NavigateProvider } from \"@src/components/stores/navigate/provider\";\nimport { ThemeDetector } from \"@src/components/blocks/theme-detector\";\nimport { NoJs } from \"@src/components/blocks/no-js\";\n\nimport \"./robin-provider.scss\";\n\ninterface RobinProviderProps {\n component?: React.ElementType;\n}\n\nexport const RobinProvider: React.FC<React.PropsWithChildren<RobinProviderProps>> = ({\n children,\n component: Component = \"div\",\n}) => (\n <Component suppressHydrationWarning className=\"r-root\">\n <ThemeDetector />\n <NavigateProvider>{children}</NavigateProvider>\n <NoJs />\n </Component>\n);\n"],"names":["RobinProvider","children","component","Component","React","createElement","suppressHydrationWarning","className","ThemeDetector","NavigateProvider","NoJs"],"mappings":"kNAYO,MAAMA,EAAuE,EAChFC,WACAC,UAAWC,EAAY,SAEvBC,EAAAC,cAACF,EAAS,CAACG,0BAAwB,EAACC,UAAU,UAC1CH,EAAAC,cAACG,EAAa,MACdJ,EAAAC,cAACI,EAAgB,KAAER,GACnBG,EAAAC,cAACK,EAAI"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import e,{useState as r,useRef as t,useEffect as
|
|
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};
|
|
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 \"
|
|
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":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import e,{useRef as r}from"react";import
|
|
2
|
+
import e,{useRef as r}from"react";import t from"clsx";import{useReference as o}from"../../../stores/reference/use-reference.js";import{NavLink as n}from"../../../blocks/nav-link/index.js";import{usePathname as s}from"../../../stores/navigation/hooks.js";import{checkIsTargetPathname as i,collectItems as l}from"../tools.js";const c=({branch:c})=>{const m=s(),f=i(c.href,m),a=l(c).includes(m),p=r(null),h=o();return e.createElement(n,{href:c.href,className:t("r-sidebar-link",f&&"_active",a&&"_target"),ref:e=>{a&&h&&h.scrollHeight>window.innerHeight-60&&(p.current=null,e?.parentElement?.scrollIntoViewIfNeeded?.())}},c.title)};export{c as SidebarLink};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/elements/sidebar/sidebar-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useRef } from \"react\";\nimport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/elements/sidebar/sidebar-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useRef } from \"react\";\nimport clsx from \"clsx\";\n\nimport { useReference } from \"@src/components/stores/reference/use-reference\";\nimport { NavLink } from \"@src/components/blocks/nav-link\";\nimport { usePathname } from \"@src/components/stores/navigation/hooks\";\n\nimport { type TreeItem } from \"../types\";\nimport { checkIsTargetPathname, collectItems } from \"../tools\";\n\ntype SidebarLinkProps = {\n branch: Exclude<TreeItem, { type: \"separator\" }> & { href: string };\n};\n\nexport const SidebarLink: React.FC<SidebarLinkProps> = ({ branch }) => {\n const pathname = usePathname();\n const isActive = checkIsTargetPathname(branch.href, pathname);\n const isTarget = collectItems(branch).includes(pathname);\n const scrollTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n const sidebar = useReference();\n\n return (\n <NavLink\n href={branch.href}\n className={clsx(\"r-sidebar-link\", isActive && \"_active\", isTarget && \"_target\")}\n ref={(node) => {\n if (isTarget && sidebar && sidebar.scrollHeight > window.innerHeight - 60) {\n scrollTimeoutRef.current = null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (node as any)?.parentElement?.scrollIntoViewIfNeeded?.();\n }\n }}\n >\n {branch.title}\n </NavLink>\n );\n};\n"],"names":["SidebarLink","branch","pathname","usePathname","isActive","checkIsTargetPathname","href","isTarget","collectItems","includes","scrollTimeoutRef","useRef","sidebar","useReference","React","createElement","NavLink","className","clsx","ref","node","scrollHeight","window","innerHeight","current","parentElement","scrollIntoViewIfNeeded","title"],"mappings":";0UAgBaA,CAAAA,CAA0C,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CACXC,CAAAA,CAAWC,EAAsBJ,CAAAA,CAAOK,CAAAA,CAAAA,CAAAA,CAAAA,CAAMJ,CAAAA,CAAAA,CAC9CK,CAAAA,CAAWC,CAAAA,CAAaP,CAAAA,CAAAA,CAAQQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASP,CAAAA,CAAAA,CACzCQ,EAAmBC,CAAAA,CAA8B,CAAA,CAAA,CAAA,CAAA,CAAA,CACjDC,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAA,CAAO,CACJV,CAAAA,CAAAA,CAAAA,CAAAA,CAAML,CAAAA,CAAOK,CAAAA,CAAAA,CAAAA,CAAAA,CACbW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBd,CAAAA,CAAAA,CAAY,UAAWG,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrEY,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CACEb,CAAAA,CAAAA,CAAYK,CAAAA,CAAAA,CAAWA,CAAAA,CAAQS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,OAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CACnEb,CAAAA,CAAiBc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAE1BJ,CAAAA,CAAAA,CAAcK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIrCzB,EAAO0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import e,{useState as r,useRef as t,useEffect as n}from"react";import{useNavigate as o}from"../../../
|
|
2
|
+
import e,{useState as r,useRef as t,useEffect as n}from"react";import{useNavigate as o}from"../../../stores/navigate/use-navigate.js";import{ReferenceProvider as a}from"../../../stores/reference/provider.js";const s=({children:s,translations:i})=>{const{menu:c="Menu"}=i||{},{addListener:l,removeListener:d}=o(),[m,u]=r(!1),b=t(null),p=()=>{const e=document.querySelector(".r-root");e?.classList.remove("body-mobile-lock"),u(!1),d("closeSidebarMenu")};return n(()=>()=>{p()},[]),e.createElement("div",{className:"r-sidebar"},e.createElement("input",{type:"checkbox",id:"sidebar-input",className:"r-sidebar-input",hidden:!0,onChange:()=>{m?p():(()=>{const e=document.querySelector(".r-root");e?.classList.add("body-mobile-lock"),u(!0),l("closeSidebarMenu",p)})()},checked:m}),e.createElement("label",{htmlFor:"sidebar-input",className:"r-sidebar-btn",role:"button",tabIndex:0},e.createElement("svg",{className:"r-sidebar-chevron",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("span",null,c)),e.createElement("nav",{ref:b,className:"r-sidebar-nav",id:"navigation"},e.createElement(a,{reference:b},s)))};export{s as SidebarMenu};
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/elements/sidebar/sidebar-menu/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport { useNavigate } from \"@src/components/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/elements/sidebar/sidebar-menu/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport { useNavigate } from \"@src/components/stores/navigate/use-navigate\";\nimport { ReferenceProvider } from \"@src/components/stores/reference/provider\";\n\nexport type SidebarMenuProps = React.PropsWithChildren<{\n translations?: {\n menu?: string;\n };\n}>;\n\nexport const SidebarMenu: React.FC<SidebarMenuProps> = ({ children, translations }) => {\n const { menu = \"Menu\" } = translations || {};\n const { addListener, removeListener } = useNavigate();\n const [opened, setOpened] = useState(false);\n const sidebarNavRef = useRef<HTMLElement | null>(null);\n\n const openHandler = () => {\n const rootElement = document.querySelector<HTMLElement>(\".r-root\");\n rootElement?.classList.add(\"body-mobile-lock\");\n setOpened(true);\n addListener(\"closeSidebarMenu\", closeHandler);\n };\n\n const closeHandler = () => {\n const rootElement = document.querySelector<HTMLElement>(\".r-root\");\n rootElement?.classList.remove(\"body-mobile-lock\");\n setOpened(false);\n removeListener(\"closeSidebarMenu\");\n };\n\n const toggleHandler = () => {\n if (opened) {\n closeHandler();\n } else {\n openHandler();\n }\n };\n\n useEffect(\n () => () => {\n closeHandler();\n },\n [],\n );\n\n return (\n <div className=\"r-sidebar\">\n <input\n type=\"checkbox\"\n id=\"sidebar-input\"\n className=\"r-sidebar-input\"\n hidden\n onChange={toggleHandler}\n checked={opened}\n />\n <label htmlFor=\"sidebar-input\" className=\"r-sidebar-btn\" role=\"button\" tabIndex={0}>\n <svg\n className=\"r-sidebar-chevron\"\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 <span>{menu}</span>\n </label>\n <nav ref={sidebarNavRef} className=\"r-sidebar-nav\" id=\"navigation\">\n <ReferenceProvider reference={sidebarNavRef}>{children}</ReferenceProvider>\n </nav>\n </div>\n );\n};\n"],"names":["SidebarMenu","children","translations","menu","addListener","removeListener","useNavigate","opened","setOpened","useState","sidebarNavRef","useRef","closeHandler","rootElement","document","querySelector","classList","remove","useEffect","React","createElement","className","type","id","hidden","onChange","add","openHandler","checked","htmlFor","role","tabIndex","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","ref","ReferenceProvider","reference"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/contents/context.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,eAAe,+CAA0C,CAAC;AACvE,eAAO,MAAM,qBAAqB;UAAyB,MAAM;QAAM,MAAM;EAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../../src/components/stores/contents/context.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext } from \"react\";\n\nexport const HeadingsContext = createContext<HTMLHeadingElement[]>([]);\nexport const CurrentHeadingContext = createContext<{ from: number; to: number }>({ from: 0, to: 0 });\n"],"names":["HeadingsContext","createContext","CurrentHeadingContext","from","to"],"mappings":";4CAIaA,CAAAA,CAAkBC,CAAAA,CAAoC,CAAA,CAAA,CAAA,CACtDC,CAAAA,CAAwBD,CAAAA,CAA4C,CAAEE,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAGC,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/contents/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAoD9D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../../../../src/components/stores/contents/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { CurrentHeadingContext, HeadingsContext } from \"./context\";\n\nexport const ContentsProvider: React.FC<React.PropsWithChildren> = ({ children }) => {\n const [activeIndex, setActiveIndex] = useState<{ from: number; to: number }>({ from: 0, to: 0 });\n const headings = useRef<HTMLHeadingElement[]>([]);\n\n const updateTargetSection = useCallback(() => {\n const fromIndex = headings.current.findLastIndex((el) => el.getBoundingClientRect().top < 40);\n const searchToStartIndex = fromIndex + 1;\n let toIndex = headings.current.length - 1;\n\n for (let i = searchToStartIndex; i < headings.current.length; i++) {\n if (headings.current[i].getBoundingClientRect().top > window.innerHeight) {\n toIndex = i - 1;\n break;\n }\n }\n\n setActiveIndex((prev) =>\n prev.from !== fromIndex || prev.to !== toIndex ? { from: fromIndex, to: toIndex } : prev,\n );\n }, []);\n\n useEffect(() => {\n let scheduledAnimationFrame = false;\n const rootElement = document.querySelector<HTMLElement>(\".r-root\");\n\n if (!rootElement) return;\n\n const scrollElement = rootElement === document.documentElement ? window : rootElement;\n\n const scrollHandler = () => {\n if (!scheduledAnimationFrame && window.innerWidth > 1080) {\n scheduledAnimationFrame = true;\n setTimeout(() => {\n updateTargetSection();\n scheduledAnimationFrame = false;\n }, 100);\n }\n };\n\n updateTargetSection();\n scrollElement.addEventListener(\"scroll\", scrollHandler);\n\n return () => {\n scrollElement.removeEventListener(\"scroll\", scrollHandler);\n };\n }, []);\n\n return (\n <HeadingsContext.Provider value={headings.current}>\n <CurrentHeadingContext.Provider value={activeIndex}>{children}</CurrentHeadingContext.Provider>\n </HeadingsContext.Provider>\n );\n};\n"],"names":["ContentsProvider","children","activeIndex","setActiveIndex","useState","from","to","headings","useRef","updateTargetSection","useCallback","fromIndex","current","findLastIndex","el","getBoundingClientRect","top","searchToStartIndex","toIndex","length","i","window","innerHeight","prev","useEffect","scheduledAnimationFrame","rootElement","document","querySelector","scrollElement","documentElement","scrollHandler","innerWidth","setTimeout","addEventListener","removeEventListener","React","createElement","HeadingsContext","Provider","value","CurrentHeadingContext"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-heading-index.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/contents/use-heading-index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;CAI3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-heading-index.js","sources":["../../../../src/components/stores/contents/use-heading-index.ts"],"sourcesContent":["\"use client\";\n\nimport { useContext } from \"react\";\nimport { CurrentHeadingContext } from \"./context\";\n\nexport const useHeadingIndex = () => {\n const headingIndex = useContext(CurrentHeadingContext);\n\n return headingIndex;\n};\n"],"names":["useHeadingIndex","useContext","CurrentHeadingContext"],"mappings":";wFAKO,MAAMA,CAAAA,CAAkB,CAAA,CAAA,CAAA,CACNC,EAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-heading-register.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/contents/use-heading-register.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,kBAAkB,cAGe,kBAAkB,SAO/D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-heading-register.js","sources":["../../../../src/components/stores/contents/use-heading-register.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useContext } from \"react\";\nimport { HeadingsContext } from \"./context\";\n\nexport const useHeadingRegister = () => {\n const headings = useContext(HeadingsContext);\n\n const headingRegister = useCallback((ref: HTMLHeadingElement) => {\n if (ref?.id && !headings.find((el) => el.id === ref.id)) {\n headings.push(ref);\n }\n }, []);\n\n return headingRegister;\n};\n"],"names":["useHeadingRegister","headings","useContext","HeadingsContext","useCallback","ref","id","find","el","push"],"mappings":";mGAKO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAWC,CAAAA,CAAWC,CAAAA,CAAAA,CAQ5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CANwBC,CAAAA,CAAaC,IAC7BA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAOL,CAAAA,CAASM,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAOA,CAAAA,CAAGF,CAAAA,CAAAA,CAAAA,CAAAA,CAAOD,CAAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAChDL,CAAAA,CAASQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKJ,CAAAA,CAAAA,CAAAA,CAEnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/navigate/context.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,eAAe,8CAAyC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../../src/components/stores/navigate/context.ts"],"sourcesContent":["\"use client\";\n\nimport { createContext } from \"react\";\n\nimport { type NavigateContextType } from \"./types\";\n\nexport const NavigateContext = createContext<NavigateContextType>([]);\n"],"names":["NavigateContext","createContext"],"mappings":";4CAMaA,CAAAA,CAAkBC,CAAAA,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/components/stores/navigate/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAe9D,CAAC"}
|