robindoc 3.3.2 → 3.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/theme-detector/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAiC1B,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAQjC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/theme-detector/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAkCzC,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAoBjC,CAAC"}
@@ -1,2 +1,3 @@
1
- import t from"react";const e=()=>{const t=document.querySelector(".r-root");if(!t)return;const e=localStorage.getItem("theme");e&&["light","dark"].includes(e)?t.classList.add(`r-theme-${e}`):(t.classList.add("r-theme-system"),window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?t.classList.add("r-theme-dark"):t.classList.add("r-theme-light"));const s=localStorage.getItem("r-tabs"),a=s?.split(";").filter(t=>t&&/[\w-]+=[\w]+/.test(t))||[];Array.from(t.classList).forEach(e=>{e.startsWith("r-tabs-global")&&t.classList.remove(e)}),a.forEach(e=>{const[s,a]=e.split("=");t.classList.add(`r-tabs-global__${s}`,`r-tabs-global__${s}_${a}`)})},s=()=>t.createElement("script",{id:"detect-theme",dangerouslySetInnerHTML:{__html:`(${e})()`},async:!0});export{s as ThemeDetector};
1
+ 'use client';
2
+ import t,{useEffect as e}from"react";const s=()=>{const t=document.querySelector(".r-root");if(!t)return;const e=localStorage.getItem("theme");e&&["light","dark"].includes(e)?t.classList.add(`r-theme-${e}`):(t.classList.add("r-theme-system"),window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?t.classList.add("r-theme-dark"):t.classList.add("r-theme-light"));const s=localStorage.getItem("r-tabs"),r=s?.split(";").filter(t=>t&&/[\w-]+=[\w]+/.test(t))||[];Array.from(t.classList).forEach(e=>{e.startsWith("r-tabs-global")&&t.classList.remove(e)}),r.forEach(e=>{const[s,r]=e.split("=");t.classList.add(`r-tabs-global__${s}`,`r-tabs-global__${s}_${r}`)}),t.classList.add("r-ready")},r=()=>(e(()=>{const t=document.querySelector(".r-root");if(t&&!t.classList.contains("r-ready"))return s(),()=>{t.classList.remove("r-ready")}},[]),t.createElement("script",{id:"detect-theme",dangerouslySetInnerHTML:{__html:`(${s})()`},async:!0}));export{r as ThemeDetector};
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/theme-detector/index.tsx"],"sourcesContent":["import React 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};\n\nexport const ThemeDetector: React.FC = () => (\n <script\n id=\"detect-theme\"\n dangerouslySetInnerHTML={{\n __html: `(${clientLogic})()`,\n }}\n async\n />\n);\n"],"names":["clientLogic","root","document","querySelector","userTheme","localStorage","getItem","includes","classList","add","window","matchMedia","matches","store","items","split","filter","item","test","Array","from","forEach","className","startsWith","remove","tabsKey","tab","ThemeDetector","React","createElement","id","dangerouslySetInnerHTML","__html","async"],"mappings":"qBAEA,MAAMA,EAAc,KAChB,MAAMC,EAAOC,SAASC,cAAc,WAEpC,IAAKF,EAAM,OAEX,MAAMG,EAAYC,aAAaC,QAAQ,SACnCF,GAAa,CAAC,QAAS,QAAQG,SAASH,GACxCH,EAAKO,UAAUC,IAAI,WAAWL,MAE9BH,EAAKO,UAAUC,IAAI,kBACfC,OAAOC,YAAcD,OAAOC,WAAW,gCAAgCC,QACvEX,EAAKO,UAAUC,IAAI,gBAEnBR,EAAKO,UAAUC,IAAI,kBAI3B,MAAMI,EAAQR,aAAaC,QAAQ,UAC7BQ,EAAQD,GAAOE,MAAM,KAAKC,OAAQC,GAASA,GAAQ,eAAeC,KAAKD,KAAU,GACpEE,MAAMC,KAAKnB,EAAKO,WACxBa,QAASC,IACZA,EAAUC,WAAW,kBACrBtB,EAAKO,UAAUgB,OAAOF,KAG9BR,EAAMO,QAASJ,IACX,MAAOQ,EAASC,GAAOT,EAAKF,MAAM,KAClCd,EAAKO,UAAUC,IAAI,kBAAkBgB,IAAW,kBAAkBA,KAAWC,QAIxEC,EAA0B,IACnCC,EAAAC,cAAA,SAAA,CACIC,GAAG,eACHC,wBAAyB,CACrBC,OAAQ,IAAIhC,QAEhBiC,OAAK"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/theme-detector/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect } from \"react\";\n\nconst clientLogic = () => {\n const root = document.querySelector(\".r-root\");\n\n if (!root) return;\n\n const userTheme = localStorage.getItem(\"theme\");\n if (userTheme && [\"light\", \"dark\"].includes(userTheme)) {\n root.classList.add(`r-theme-${userTheme}`);\n } else {\n root.classList.add(`r-theme-system`);\n if (window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n root.classList.add(\"r-theme-dark\");\n } else {\n root.classList.add(\"r-theme-light\");\n }\n }\n\n const store = localStorage.getItem(\"r-tabs\");\n const items = store?.split(\";\").filter((item) => item && /[\\w-]+=[\\w]+/.test(item)) || [];\n const classNames = Array.from(root.classList);\n classNames.forEach((className) => {\n if (className.startsWith(`r-tabs-global`)) {\n root.classList.remove(className);\n }\n });\n items.forEach((item) => {\n const [tabsKey, tab] = item.split(\"=\");\n root.classList.add(`r-tabs-global__${tabsKey}`, `r-tabs-global__${tabsKey}_${tab}`);\n });\n root.classList.add(\"r-ready\");\n};\n\nexport const ThemeDetector: React.FC = () => {\n useEffect(() => {\n const root = document.querySelector(\".r-root\");\n if (!root || root.classList.contains(\"r-ready\")) return;\n clientLogic();\n\n return () => {\n root.classList.remove(\"r-ready\");\n };\n }, []);\n\n return (\n <script\n id=\"detect-theme\"\n dangerouslySetInnerHTML={{\n __html: `(${clientLogic})()`,\n }}\n async\n />\n );\n};\n"],"names":["clientLogic","root","document","querySelector","userTheme","localStorage","getItem","includes","classList","add","window","matchMedia","matches","store","items","split","filter","item","test","Array","from","forEach","className","startsWith","remove","tabsKey","tab","ThemeDetector","useEffect","contains","React","createElement","id","dangerouslySetInnerHTML","__html","async"],"mappings":"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"}
@@ -25,7 +25,7 @@ export declare const isNewCodeToken: (token: Token | Token[], codeQueue: {
25
25
  tabName: string;
26
26
  };
27
27
  }) => boolean;
28
- export declare const formatLinkHref: (href: string, pathname: string, pages?: PagesType) => {
28
+ export declare const formatLinkHref: (href: string, currentPathname: string, pages?: PagesType) => {
29
29
  href: string;
30
30
  external: boolean;
31
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/elements/article/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,KAAK,cAAc,EAAE,4BAAsC;AAGpE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM;;;CAmB5C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,YAEjD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM;;;;;CAmBxC,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,OAAO,KAAK,GAAG,KAAK,EAAE,EACtB,WAAW;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,YAa/E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,QAAQ,SAAS;;;CAiB/E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO;;;;;;;;;;;UAoBjC,cAAc;;;;CAKrD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/components/elements/article/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGxD,OAAO,EAAE,KAAK,cAAc,EAAE,4BAAsC;AAGpE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM;;;CAmB5C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,WAEnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,MAAM,YAEjD,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM;;;;;CAmBxC,CAAC;AAEF,eAAO,MAAM,cAAc,GACvB,OAAO,KAAK,GAAG,KAAK,EAAE,EACtB,WAAW;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,YAa/E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,iBAAiB,MAAM,EAAE,QAAQ,SAAS;;;CAmBtF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO;;;;;;;;;;;UAoBjC,cAAc;;;;CAKrD,CAAC"}
@@ -1,2 +1,2 @@
1
- import t from"github-slugger";import e from"gray-matter";import{lexer as r}from"marked";import{join as n,dirname as o}from"path";import{parseTokenText as s}from"../../../core/utils/content-tools.js";const i=n=>{const{content:o}=e(n),i=r(o.trim()),a=new t,c=i.reduce((t,e)=>{if("heading"===e.type&&(2===e.depth||3===e.depth)){const r=s(e);t.push({title:r,id:a.slug(r),token:e,nested:3===e.depth})}return t},[]);return{tokens:i,headings:c}},a=t=>t.toLowerCase().replace(/\W/g,"_").replace(/_+/g,"_"),c=t=>/^[A-Z][a-zA-Z0-9]+$/.test(t),g=t=>{let e={},r=t;const n=t.match(/[a-z]+=("[^"]+"|'[^']+'|[^ ]+)|[a-z]+/g);if(Array.isArray(n)){const[t,...o]=n;r=t,e=o.reduce((t,e)=>{const[r,...n]=e.split("=");return t[r]=!n||(0===n.length||n.join("=").replace(/(^["']|['"]$)/g,"")),t},{})}return{lang:r,configuration:e}},l=(t,e)=>{if(Array.isArray(t)||!Object.keys(e).length)return!1;if("code"===t.type){const{lang:r,configuration:n}=g(t.lang);if(e["string"==typeof n.tab?a(n.tab):r]||!n.switcher)return!0}return"space"!==t.type&&"code"!==t.type},p=(t,e,r)=>{let s=t;const i=/^(https?:\/\/|\/)/.test(t);if(r&&!i){const i=r.find(t=>t.clientPath===e);if(i){const e=n(o(i.origPath),t).replace(/\\/g,"/"),a=r.find(t=>t.origPath===e);a&&(s=a?.clientPath)}}return{href:s,external:i}},u=t=>{const e=t.raw.match(/^> \[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\n/);if(e){const[r,n]=e,o={...t,raw:t.raw.substring(r.length)};if(o.tokens){const t={...o.tokens[0]};if(t.raw=t.raw.substring(n.length+4),t.text=t.text.substring(n.length+4),t.tokens[0]){const e={...t.tokens[0]};e.raw=e.raw.substring(n.length+4),e.text=e.text.substring(n.length+4),t.tokens[0]=e}o.tokens[0]=t}return{token:o,type:n.toLowerCase()}}return{token:t,type:null}};export{a as formatId,p as formatLinkHref,l as isNewCodeToken,u as parseBlockqoute,g as parseCodeLang,i as parseMarkdown,c as validateComponentName};
1
+ import t from"github-slugger";import e from"gray-matter";import{lexer as r}from"marked";import{join as n,dirname as o}from"path";import{parseTokenText as s}from"../../../core/utils/content-tools.js";const a=n=>{const{content:o}=e(n),a=r(o.trim()),i=new t,c=a.reduce((t,e)=>{if("heading"===e.type&&(2===e.depth||3===e.depth)){const r=s(e);t.push({title:r,id:i.slug(r),token:e,nested:3===e.depth})}return t},[]);return{tokens:a,headings:c}},i=t=>t.toLowerCase().replace(/\W/g,"_").replace(/_+/g,"_"),c=t=>/^[A-Z][a-zA-Z0-9]+$/.test(t),g=t=>{let e={},r=t;const n=t.match(/[a-z]+=("[^"]+"|'[^']+'|[^ ]+)|[a-z]+/g);if(Array.isArray(n)){const[t,...o]=n;r=t,e=o.reduce((t,e)=>{const[r,...n]=e.split("=");return t[r]=!n||(0===n.length||n.join("=").replace(/(^["']|['"]$)/g,"")),t},{})}return{lang:r,configuration:e}},p=(t,e)=>{if(Array.isArray(t)||!Object.keys(e).length)return!1;if("code"===t.type){const{lang:r,configuration:n}=g(t.lang);if(e["string"==typeof n.tab?i(n.tab):r]||!n.switcher)return!0}return"space"!==t.type&&"code"!==t.type},h=(t,e,r)=>{let s=t;const a=/^(https?:\/\/|\/)/.test(t);if(r&&!a){const a=new URL(t,"http://r"),i=r.find(t=>t.clientPath===e);if(i){const t=n(o(i.origPath),a.pathname).replace(/\\/g,"/"),e=r.find(e=>e.origPath===t);e&&(a.pathname=e.clientPath,s=a.toString().replace("http://r",""))}}return{href:s,external:a}},l=t=>{const e=t.raw.match(/^> \[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\n/);if(e){const[r,n]=e,o={...t,raw:t.raw.substring(r.length)};if(o.tokens){const t={...o.tokens[0]};if(t.raw=t.raw.substring(n.length+4),t.text=t.text.substring(n.length+4),t.tokens[0]){const e={...t.tokens[0]};e.raw=e.raw.substring(n.length+4),e.text=e.text.substring(n.length+4),t.tokens[0]=e}o.tokens[0]=t}return{token:o,type:n.toLowerCase()}}return{token:t,type:null}};export{i as formatId,h as formatLinkHref,p as isNewCodeToken,l as parseBlockqoute,g as parseCodeLang,a as parseMarkdown,c as validateComponentName};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/components/elements/article/utils.ts"],"sourcesContent":["import GithubSlugger from \"github-slugger\";\nimport matter from \"gray-matter\";\nimport { lexer, type Tokens, type Token } from \"marked\";\nimport { dirname, join } from \"path\";\n\nimport { type BlockquoteType } from \"@src/components/ui/blockquote\";\nimport { parseTokenText } from \"@src/core/utils/content-tools\";\n\nimport { type PagesType } from \"./types\";\n\nexport type AnchorData = {\n title: string;\n id: string;\n nested: boolean;\n token: Token;\n};\n\nexport const parseMarkdown = (content: string) => {\n const { content: matterContent } = matter(content);\n const tokens = lexer(matterContent.trim());\n\n const slugger = new GithubSlugger();\n const headings = tokens.reduce<AnchorData[]>((acc, token) => {\n if (token.type === \"heading\" && (token.depth === 2 || token.depth === 3)) {\n const title = parseTokenText(token);\n acc.push({\n title,\n id: slugger.slug(title),\n token,\n nested: token.depth === 3,\n });\n }\n return acc;\n }, []);\n\n return { tokens, headings };\n};\n\nexport const formatId = (raw: string) => {\n return raw.toLowerCase().replace(/\\W/g, \"_\").replace(/_+/g, \"_\");\n};\n\nexport const validateComponentName = (name: string) => {\n return /^[A-Z][a-zA-Z0-9]+$/.test(name);\n};\n\nexport const parseCodeLang = (raw: string) => {\n let configuration: { [key: string]: string | boolean } = {};\n let lang: string = raw;\n\n const match = raw.match(/[a-z]+=(\"[^\"]+\"|'[^']+'|[^ ]+)|[a-z]+/g);\n if (Array.isArray(match)) {\n const [language, ...modifiers] = match as string[];\n lang = language;\n configuration = modifiers.reduce<{ [key: string]: string | boolean }>((acc, cur) => {\n const [key, ...value] = cur.split(\"=\");\n if (value) {\n acc[key] = value.length === 0 ? true : value.join(\"=\").replace(/(^[\"']|['\"]$)/g, \"\");\n } else {\n acc[key] = true;\n }\n return acc;\n }, {});\n }\n return { lang, configuration };\n};\n\nexport const isNewCodeToken = (\n token: Token | Token[],\n codeQueue: { [lang: string]: { element: React.ReactNode; tabName: string } },\n) => {\n if (Array.isArray(token) || !Object.keys(codeQueue).length) return false;\n\n if (token.type === \"code\") {\n const { lang, configuration } = parseCodeLang(token.lang);\n const tabKey = typeof configuration.tab === \"string\" ? formatId(configuration.tab) : lang;\n if (codeQueue[tabKey] || !configuration.switcher) return true;\n }\n\n if (token.type !== \"space\" && token.type !== \"code\") return true;\n\n return false;\n};\n\nexport const formatLinkHref = (href: string, pathname: string, pages?: PagesType) => {\n let finalHref: string = href;\n const external = /^(https?:\\/\\/|\\/)/.test(href);\n\n if (pages && !external) {\n const currentPageData = pages.find((item) => item.clientPath === pathname);\n\n if (currentPageData) {\n const linkOrigPath = join(dirname(currentPageData.origPath), href).replace(/\\\\/g, \"/\");\n const linkData = pages.find((item) => item.origPath === linkOrigPath);\n\n if (linkData) {\n finalHref = linkData?.clientPath;\n }\n }\n }\n return { href: finalHref, external };\n};\n\nexport const parseBlockqoute = (token: Tokens.Blockquote | Tokens.Generic) => {\n const typeMatch = token.raw.match(/^> \\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\]\\n/);\n if (typeMatch) {\n const [raw, type] = typeMatch;\n const newToken = { ...token, raw: token.raw.substring(raw.length) };\n if (newToken.tokens) {\n const firstToken = { ...newToken.tokens[0] } as Tokens.Paragraph;\n firstToken.raw = firstToken.raw.substring(type.length + 4);\n firstToken.text = firstToken.text.substring(type.length + 4);\n if (firstToken.tokens[0]) {\n const firstSubtoken = { ...firstToken.tokens[0] } as Tokens.Paragraph;\n firstSubtoken.raw = firstSubtoken.raw.substring(type.length + 4);\n firstSubtoken.text = firstSubtoken.text.substring(type.length + 4);\n firstToken.tokens[0] = firstSubtoken;\n }\n newToken.tokens[0] = firstToken;\n }\n\n return {\n token: newToken,\n type: type.toLowerCase() as BlockquoteType,\n };\n }\n\n return { token, type: null };\n};\n"],"names":["parseMarkdown","content","matterContent","matter","tokens","lexer","trim","slugger","GithubSlugger","headings","reduce","acc","token","type","depth","title","parseTokenText","push","id","slug","nested","formatId","raw","toLowerCase","replace","validateComponentName","name","test","parseCodeLang","configuration","lang","match","Array","isArray","language","modifiers","cur","key","value","split","length","join","isNewCodeToken","codeQueue","Object","keys","tab","switcher","formatLinkHref","href","pathname","pages","finalHref","external","currentPageData","find","item","clientPath","linkOrigPath","dirname","origPath","linkData","parseBlockqoute","typeMatch","newToken","substring","firstToken","text","firstSubtoken"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/components/elements/article/utils.ts"],"sourcesContent":["import GithubSlugger from \"github-slugger\";\nimport matter from \"gray-matter\";\nimport { lexer, type Tokens, type Token } from \"marked\";\nimport { dirname, join } from \"path\";\n\nimport { type BlockquoteType } from \"@src/components/ui/blockquote\";\nimport { parseTokenText } from \"@src/core/utils/content-tools\";\n\nimport { type PagesType } from \"./types\";\n\nexport type AnchorData = {\n title: string;\n id: string;\n nested: boolean;\n token: Token;\n};\n\nexport const parseMarkdown = (content: string) => {\n const { content: matterContent } = matter(content);\n const tokens = lexer(matterContent.trim());\n\n const slugger = new GithubSlugger();\n const headings = tokens.reduce<AnchorData[]>((acc, token) => {\n if (token.type === \"heading\" && (token.depth === 2 || token.depth === 3)) {\n const title = parseTokenText(token);\n acc.push({\n title,\n id: slugger.slug(title),\n token,\n nested: token.depth === 3,\n });\n }\n return acc;\n }, []);\n\n return { tokens, headings };\n};\n\nexport const formatId = (raw: string) => {\n return raw.toLowerCase().replace(/\\W/g, \"_\").replace(/_+/g, \"_\");\n};\n\nexport const validateComponentName = (name: string) => {\n return /^[A-Z][a-zA-Z0-9]+$/.test(name);\n};\n\nexport const parseCodeLang = (raw: string) => {\n let configuration: { [key: string]: string | boolean } = {};\n let lang: string = raw;\n\n const match = raw.match(/[a-z]+=(\"[^\"]+\"|'[^']+'|[^ ]+)|[a-z]+/g);\n if (Array.isArray(match)) {\n const [language, ...modifiers] = match as string[];\n lang = language;\n configuration = modifiers.reduce<{ [key: string]: string | boolean }>((acc, cur) => {\n const [key, ...value] = cur.split(\"=\");\n if (value) {\n acc[key] = value.length === 0 ? true : value.join(\"=\").replace(/(^[\"']|['\"]$)/g, \"\");\n } else {\n acc[key] = true;\n }\n return acc;\n }, {});\n }\n return { lang, configuration };\n};\n\nexport const isNewCodeToken = (\n token: Token | Token[],\n codeQueue: { [lang: string]: { element: React.ReactNode; tabName: string } },\n) => {\n if (Array.isArray(token) || !Object.keys(codeQueue).length) return false;\n\n if (token.type === \"code\") {\n const { lang, configuration } = parseCodeLang(token.lang);\n const tabKey = typeof configuration.tab === \"string\" ? formatId(configuration.tab) : lang;\n if (codeQueue[tabKey] || !configuration.switcher) return true;\n }\n\n if (token.type !== \"space\" && token.type !== \"code\") return true;\n\n return false;\n};\n\nexport const formatLinkHref = (href: string, currentPathname: string, pages?: PagesType) => {\n let finalHref: string = href;\n const external = /^(https?:\\/\\/|\\/)/.test(href);\n\n if (pages && !external) {\n const pseudoUrl = new URL(href, \"http://r\");\n const currentPageData = pages.find((item) => item.clientPath === currentPathname);\n\n if (currentPageData) {\n const linkOrigPath = join(dirname(currentPageData.origPath), pseudoUrl.pathname).replace(/\\\\/g, \"/\");\n const linkData = pages.find((item) => item.origPath === linkOrigPath);\n\n if (linkData) {\n pseudoUrl.pathname = linkData.clientPath;\n finalHref = pseudoUrl.toString().replace(\"http://r\", \"\");\n }\n }\n }\n return { href: finalHref, external };\n};\n\nexport const parseBlockqoute = (token: Tokens.Blockquote | Tokens.Generic) => {\n const typeMatch = token.raw.match(/^> \\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\]\\n/);\n if (typeMatch) {\n const [raw, type] = typeMatch;\n const newToken = { ...token, raw: token.raw.substring(raw.length) };\n if (newToken.tokens) {\n const firstToken = { ...newToken.tokens[0] } as Tokens.Paragraph;\n firstToken.raw = firstToken.raw.substring(type.length + 4);\n firstToken.text = firstToken.text.substring(type.length + 4);\n if (firstToken.tokens[0]) {\n const firstSubtoken = { ...firstToken.tokens[0] } as Tokens.Paragraph;\n firstSubtoken.raw = firstSubtoken.raw.substring(type.length + 4);\n firstSubtoken.text = firstSubtoken.text.substring(type.length + 4);\n firstToken.tokens[0] = firstSubtoken;\n }\n newToken.tokens[0] = firstToken;\n }\n\n return {\n token: newToken,\n type: type.toLowerCase() as BlockquoteType,\n };\n }\n\n return { token, type: null };\n};\n"],"names":["parseMarkdown","content","matterContent","matter","tokens","lexer","trim","slugger","GithubSlugger","headings","reduce","acc","token","type","depth","title","parseTokenText","push","id","slug","nested","formatId","raw","toLowerCase","replace","validateComponentName","name","test","parseCodeLang","configuration","lang","match","Array","isArray","language","modifiers","cur","key","value","split","length","join","isNewCodeToken","codeQueue","Object","keys","tab","switcher","formatLinkHref","href","currentPathname","pages","finalHref","external","pseudoUrl","URL","currentPageData","find","item","clientPath","linkOrigPath","dirname","origPath","pathname","linkData","toString","parseBlockqoute","typeMatch","newToken","substring","firstToken","text","firstSubtoken"],"mappings":"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"}
package/lib/styles.css CHANGED
@@ -422,20 +422,6 @@
422
422
  --r-cl-60: #86181d;
423
423
  --r-cl-61: #144620;
424
424
  --r-cl-62: #c24e00;
425
- }.r-blog-container {
426
- min-height: calc(100dvh - var(--r-header-height));
427
- overflow-wrap: break-word;
428
- box-sizing: border-box;
429
- }
430
- @media screen and (width >= 1180px) {
431
- .r-blog-container {
432
- display: grid;
433
- justify-content: space-between;
434
- column-gap: 40px;
435
- grid-template-areas: "breadcrumbs contents" "content contents" "pagination contents";
436
- grid-template-columns: 760px 220px;
437
- grid-template-rows: auto 1fr auto;
438
- }
439
425
  }.r-page-container {
440
426
  min-height: calc(100dvh - var(--r-header-height));
441
427
  overflow-wrap: break-word;
@@ -462,6 +448,20 @@
462
448
  grid-template-columns: 1fr 640px 1fr;
463
449
  grid-template-rows: auto 1fr auto;
464
450
  }
451
+ }.r-blog-container {
452
+ min-height: calc(100dvh - var(--r-header-height));
453
+ overflow-wrap: break-word;
454
+ box-sizing: border-box;
455
+ }
456
+ @media screen and (width >= 1180px) {
457
+ .r-blog-container {
458
+ display: grid;
459
+ justify-content: space-between;
460
+ column-gap: 40px;
461
+ grid-template-areas: "breadcrumbs contents" "content contents" "pagination contents";
462
+ grid-template-columns: 760px 220px;
463
+ grid-template-rows: auto 1fr auto;
464
+ }
465
465
  }.keylink-to-content {
466
466
  position: absolute !important;
467
467
  top: 8px;
@@ -469,55 +469,6 @@
469
469
  z-index: 1001;
470
470
  }.keylink-to-navigation {
471
471
  margin-top: -40px;
472
- }.r-article {
473
- padding: 20px 0 80px;
474
- grid-area: content;
475
- }
476
- @media screen and (width >= 1180px) {
477
- .r-article {
478
- padding: 32px 0 80px;
479
- }
480
- }
481
- .r-article > *:first-child {
482
- margin-top: 0;
483
- }
484
-
485
- .r-checkbox {
486
- cursor: pointer;
487
- width: 20px;
488
- height: 20px;
489
- margin: 4px;
490
- vertical-align: middle;
491
- box-sizing: border-box;
492
- }
493
-
494
- .r-label {
495
- cursor: pointer;
496
- }
497
-
498
- .r-task-ol,
499
- .r-task-ul {
500
- list-style: none;
501
- }
502
-
503
- .r-task-label {
504
- display: block;
505
- width: 100%;
506
- padding-top: 2px;
507
- padding-bottom: 2px;
508
- box-sizing: border-box;
509
- }
510
- .r-task-label:hover .r-checkbox {
511
- filter: brightness(0.8);
512
- }
513
-
514
- .r-task-li.r-task-li {
515
- margin-block-start: 2px;
516
- margin-block-end: 2px;
517
- }
518
-
519
- .r-label-text {
520
- vertical-align: middle;
521
472
  }.r-sidebar {
522
473
  grid-area: sidebar;
523
474
  box-sizing: border-box;
@@ -792,6 +743,55 @@
792
743
 
793
744
  .r-sidebar-drop[open] > .r-sidebar-drop-btn > .r-sidebar-drop-icon {
794
745
  transform: rotate(90deg);
746
+ }.r-article {
747
+ padding: 20px 0 80px;
748
+ grid-area: content;
749
+ }
750
+ @media screen and (width >= 1180px) {
751
+ .r-article {
752
+ padding: 32px 0 80px;
753
+ }
754
+ }
755
+ .r-article > *:first-child {
756
+ margin-top: 0;
757
+ }
758
+
759
+ .r-checkbox {
760
+ cursor: pointer;
761
+ width: 20px;
762
+ height: 20px;
763
+ margin: 4px;
764
+ vertical-align: middle;
765
+ box-sizing: border-box;
766
+ }
767
+
768
+ .r-label {
769
+ cursor: pointer;
770
+ }
771
+
772
+ .r-task-ol,
773
+ .r-task-ul {
774
+ list-style: none;
775
+ }
776
+
777
+ .r-task-label {
778
+ display: block;
779
+ width: 100%;
780
+ padding-top: 2px;
781
+ padding-bottom: 2px;
782
+ box-sizing: border-box;
783
+ }
784
+ .r-task-label:hover .r-checkbox {
785
+ filter: brightness(0.8);
786
+ }
787
+
788
+ .r-task-li.r-task-li {
789
+ margin-block-start: 2px;
790
+ margin-block-end: 2px;
791
+ }
792
+
793
+ .r-label-text {
794
+ vertical-align: middle;
795
795
  }.r-header-menu {
796
796
  display: flex;
797
797
  justify-content: flex-end;
@@ -880,103 +880,6 @@
880
880
  .r-header-input:checked ~ .r-header-burger .r-burger-line._bottom {
881
881
  transform: translateY(0) rotate(-45deg);
882
882
  margin-top: 0;
883
- }.r-dropdown {
884
- position: relative;
885
- color: var(--r-neutral-600);
886
- transition: color 0.2s 0.1s;
887
- }
888
- .r-dropdown:hover, .r-dropdown:focus-within {
889
- color: var(--r-neutral-950);
890
- }
891
- .r-dropdown:hover .r-dropdown-drop, .r-dropdown:focus-within .r-dropdown-drop {
892
- visibility: visible;
893
- pointer-events: all;
894
- transform: translateY(20px);
895
- opacity: 1;
896
- }
897
- .r-dropdown:hover .r-dropdown-chevron, .r-dropdown:focus-within .r-dropdown-chevron {
898
- transform: rotate(180deg);
899
- }
900
-
901
- .r-dropdown-summary {
902
- display: flex;
903
- justify-content: space-between;
904
- align-items: center;
905
- width: 100%;
906
- position: relative;
907
- color: inherit;
908
- cursor: pointer;
909
- padding: 10px 4px;
910
- font-size: 16px;
911
- border: 0;
912
- background: none;
913
- z-index: 1;
914
- box-sizing: border-box;
915
- }
916
-
917
- .r-dropdown-chevron {
918
- display: block;
919
- margin-left: 6px;
920
- transition: transform 0.3s 0.1s;
921
- box-sizing: border-box;
922
- }
923
-
924
- .r-dropdown-drop {
925
- list-style: none;
926
- position: absolute;
927
- top: 16px;
928
- left: -12px;
929
- visibility: hidden;
930
- pointer-events: none;
931
- opacity: 0;
932
- transition: transform 0.3s 0.1s, opacity 0.3s 0.1s, visibility 0.3s 0.1s;
933
- background-color: var(--r-neutral-50);
934
- border: 1px solid var(--r-neutral-100);
935
- border-radius: 8px;
936
- margin: 0;
937
- padding: 2px 6px;
938
- min-width: 120px;
939
- max-width: 180px;
940
- box-sizing: border-box;
941
- }
942
-
943
- .r-dropdown-link {
944
- display: block;
945
- width: 100%;
946
- text-decoration: none;
947
- color: var(--r-neutral-700);
948
- padding: 4px 8px;
949
- margin-top: 4px;
950
- margin-bottom: 4px;
951
- border-radius: 4px;
952
- transition: background-color 0.2s;
953
- box-sizing: border-box;
954
- }
955
- .r-dropdown-link:hover {
956
- color: var(--r-neutral-900);
957
- background-color: var(--r-neutral-100);
958
- }
959
-
960
- .r-dropdown-link._active {
961
- color: var(--r-primary-700);
962
- }.r-header-social {
963
- display: flex;
964
- flex: 1;
965
- justify-content: flex-end;
966
- }
967
- @media screen and (width >= 1024px) {
968
- .r-header-social {
969
- flex: none;
970
- justify-content: unset;
971
- }
972
- }
973
-
974
- .r-header-social-git {
975
- color: var(--r-neutral-700);
976
- transition: color 0.2s;
977
- }
978
- .r-header-social-git:hover, .r-header-social-git:focus {
979
- color: var(--r-neutral-950);
980
883
  }.r-search-btn {
981
884
  position: relative;
982
885
  border-radius: 6px;
@@ -1093,6 +996,24 @@
1093
996
  font-size: 14px;
1094
997
  color: var(--r-neutral-600);
1095
998
  margin: 12px 0 0;
999
+ }.r-header-social {
1000
+ display: flex;
1001
+ flex: 1;
1002
+ justify-content: flex-end;
1003
+ }
1004
+ @media screen and (width >= 1024px) {
1005
+ .r-header-social {
1006
+ flex: none;
1007
+ justify-content: unset;
1008
+ }
1009
+ }
1010
+
1011
+ .r-header-social-git {
1012
+ color: var(--r-neutral-700);
1013
+ transition: color 0.2s;
1014
+ }
1015
+ .r-header-social-git:hover, .r-header-social-git:focus {
1016
+ color: var(--r-neutral-950);
1096
1017
  }.r-container {
1097
1018
  max-width: 1180px;
1098
1019
  padding-right: 12px;
@@ -1100,6 +1021,85 @@
1100
1021
  margin-right: auto;
1101
1022
  margin-left: auto;
1102
1023
  box-sizing: border-box;
1024
+ }.r-dropdown {
1025
+ position: relative;
1026
+ color: var(--r-neutral-600);
1027
+ transition: color 0.2s 0.1s;
1028
+ }
1029
+ .r-dropdown:hover, .r-dropdown:focus-within {
1030
+ color: var(--r-neutral-950);
1031
+ }
1032
+ .r-dropdown:hover .r-dropdown-drop, .r-dropdown:focus-within .r-dropdown-drop {
1033
+ visibility: visible;
1034
+ pointer-events: all;
1035
+ transform: translateY(20px);
1036
+ opacity: 1;
1037
+ }
1038
+ .r-dropdown:hover .r-dropdown-chevron, .r-dropdown:focus-within .r-dropdown-chevron {
1039
+ transform: rotate(180deg);
1040
+ }
1041
+
1042
+ .r-dropdown-summary {
1043
+ display: flex;
1044
+ justify-content: space-between;
1045
+ align-items: center;
1046
+ width: 100%;
1047
+ position: relative;
1048
+ color: inherit;
1049
+ cursor: pointer;
1050
+ padding: 10px 4px;
1051
+ font-size: 16px;
1052
+ border: 0;
1053
+ background: none;
1054
+ z-index: 1;
1055
+ box-sizing: border-box;
1056
+ }
1057
+
1058
+ .r-dropdown-chevron {
1059
+ display: block;
1060
+ margin-left: 6px;
1061
+ transition: transform 0.3s 0.1s;
1062
+ box-sizing: border-box;
1063
+ }
1064
+
1065
+ .r-dropdown-drop {
1066
+ list-style: none;
1067
+ position: absolute;
1068
+ top: 16px;
1069
+ left: -12px;
1070
+ visibility: hidden;
1071
+ pointer-events: none;
1072
+ opacity: 0;
1073
+ transition: transform 0.3s 0.1s, opacity 0.3s 0.1s, visibility 0.3s 0.1s;
1074
+ background-color: var(--r-neutral-50);
1075
+ border: 1px solid var(--r-neutral-100);
1076
+ border-radius: 8px;
1077
+ margin: 0;
1078
+ padding: 2px 6px;
1079
+ min-width: 120px;
1080
+ max-width: 180px;
1081
+ box-sizing: border-box;
1082
+ }
1083
+
1084
+ .r-dropdown-link {
1085
+ display: block;
1086
+ width: 100%;
1087
+ text-decoration: none;
1088
+ color: var(--r-neutral-700);
1089
+ padding: 4px 8px;
1090
+ margin-top: 4px;
1091
+ margin-bottom: 4px;
1092
+ border-radius: 4px;
1093
+ transition: background-color 0.2s;
1094
+ box-sizing: border-box;
1095
+ }
1096
+ .r-dropdown-link:hover {
1097
+ color: var(--r-neutral-900);
1098
+ background-color: var(--r-neutral-100);
1099
+ }
1100
+
1101
+ .r-dropdown-link._active {
1102
+ color: var(--r-primary-700);
1103
1103
  }.r-theme-switcher {
1104
1104
  position: relative;
1105
1105
  display: flex;
@@ -1191,6 +1191,47 @@
1191
1191
  user-select: none;
1192
1192
  pointer-events: none;
1193
1193
  box-sizing: border-box;
1194
+ }.r-breadcrumbs {
1195
+ grid-area: breadcrumbs;
1196
+ list-style: none;
1197
+ margin: 0;
1198
+ padding: 20px 0 0;
1199
+ line-height: 2;
1200
+ }
1201
+ @media screen and (width >= 768px) {
1202
+ .r-breadcrumbs {
1203
+ padding: 32px 0 0;
1204
+ }
1205
+ }
1206
+
1207
+ .r-breadcrumb {
1208
+ display: inline;
1209
+ }
1210
+
1211
+ .r-breadcrumb._previous::after {
1212
+ content: "/";
1213
+ font-weight: 600;
1214
+ margin-inline: 8px;
1215
+ }
1216
+
1217
+ .r-breadcrumb-link {
1218
+ color: var(--r-neutral-700);
1219
+ text-decoration: none;
1220
+ }
1221
+ .r-breadcrumb-link:hover {
1222
+ color: var(--r-primary-800);
1223
+ }
1224
+
1225
+ .r-breadcrumb-link,
1226
+ .r-breadcrumb-title {
1227
+ display: inline;
1228
+ padding: 6px 0;
1229
+ margin: 0;
1230
+ }
1231
+
1232
+ .r-breadcrumb-title {
1233
+ color: var(--r-neutral-950);
1234
+ font-weight: 600;
1194
1235
  }.r-contents {
1195
1236
  grid-area: contents;
1196
1237
  }
@@ -1424,47 +1465,6 @@
1424
1465
  }
1425
1466
  .r-contents-git:hover {
1426
1467
  color: var(--r-neutral-900);
1427
- }.r-breadcrumbs {
1428
- grid-area: breadcrumbs;
1429
- list-style: none;
1430
- margin: 0;
1431
- padding: 20px 0 0;
1432
- line-height: 2;
1433
- }
1434
- @media screen and (width >= 768px) {
1435
- .r-breadcrumbs {
1436
- padding: 32px 0 0;
1437
- }
1438
- }
1439
-
1440
- .r-breadcrumb {
1441
- display: inline;
1442
- }
1443
-
1444
- .r-breadcrumb._previous::after {
1445
- content: "/";
1446
- font-weight: 600;
1447
- margin-inline: 8px;
1448
- }
1449
-
1450
- .r-breadcrumb-link {
1451
- color: var(--r-neutral-700);
1452
- text-decoration: none;
1453
- }
1454
- .r-breadcrumb-link:hover {
1455
- color: var(--r-primary-800);
1456
- }
1457
-
1458
- .r-breadcrumb-link,
1459
- .r-breadcrumb-title {
1460
- display: inline;
1461
- padding: 6px 0;
1462
- margin: 0;
1463
- }
1464
-
1465
- .r-breadcrumb-title {
1466
- color: var(--r-neutral-950);
1467
- font-weight: 600;
1468
1468
  }.r-pagination {
1469
1469
  grid-area: pagination;
1470
1470
  display: grid;
@@ -1819,6 +1819,22 @@
1819
1819
 
1820
1820
  .r-tab-header-code {
1821
1821
  font-family: var(--monospace-font, monospace, monospace);
1822
+ }.r-kbd-container {
1823
+ display: flex;
1824
+ gap: 4px;
1825
+ font-size: 14px;
1826
+ cursor: pointer;
1827
+ }
1828
+ .r-kbd-container:hover {
1829
+ color: var(--r-neutral-950);
1830
+ }.r-kbd-key {
1831
+ background-color: var(--r-neutral-200);
1832
+ font-size: 12px;
1833
+ border-radius: 4px;
1834
+ padding: 5px 8px;
1835
+ min-width: 24px;
1836
+ text-align: center;
1837
+ box-sizing: border-box;
1822
1838
  }.r-modal {
1823
1839
  position: fixed;
1824
1840
  left: 0;
@@ -1854,22 +1870,6 @@
1854
1870
  .r-modal._visible {
1855
1871
  transform: translateX(-50%) scale(1);
1856
1872
  }
1857
- }.r-kbd-container {
1858
- display: flex;
1859
- gap: 4px;
1860
- font-size: 14px;
1861
- cursor: pointer;
1862
- }
1863
- .r-kbd-container:hover {
1864
- color: var(--r-neutral-950);
1865
- }.r-kbd-key {
1866
- background-color: var(--r-neutral-200);
1867
- font-size: 12px;
1868
- border-radius: 4px;
1869
- padding: 5px 8px;
1870
- min-width: 24px;
1871
- text-align: center;
1872
- box-sizing: border-box;
1873
1873
  }.r-copy-button {
1874
1874
  position: relative;
1875
1875
  padding: 8px;
@@ -1915,32 +1915,6 @@
1915
1915
 
1916
1916
  .r-copy-button-svg {
1917
1917
  display: block;
1918
- }.r-copy-text {
1919
- position: relative;
1920
- cursor: pointer;
1921
- background: none;
1922
- border: 0;
1923
- padding: 0;
1924
- font: inherit;
1925
- }
1926
- .r-copy-text:hover {
1927
- color: var(--r-neutral-950);
1928
- }
1929
- .r-copy-text::before {
1930
- content: "";
1931
- position: absolute;
1932
- bottom: -2px;
1933
- left: 0;
1934
- width: 100%;
1935
- height: 1px;
1936
- background: linear-gradient(to right, currentColor 30%, transparent 0%, transparent 80%, currentColor 80%) repeat-x 0px/8px;
1937
- transition: background 0.2s;
1938
- box-sizing: border-box;
1939
- }
1940
-
1941
- .r-copy-text:active,
1942
- .r-copy-text._active {
1943
- color: var(--r-success);
1944
1918
  }.r-content-link {
1945
1919
  text-decoration: none;
1946
1920
  color: var(--r-link);
@@ -1983,11 +1957,32 @@
1983
1957
  background-color: currentColor;
1984
1958
  border-radius: 0 0 0 4px;
1985
1959
  box-sizing: border-box;
1986
- }.r-ol {
1987
- padding-inline-start: 0;
1988
- list-style-position: inside;
1989
- margin-block-start: 1em;
1990
- margin-block-end: 1em;
1960
+ }.r-copy-text {
1961
+ position: relative;
1962
+ cursor: pointer;
1963
+ background: none;
1964
+ border: 0;
1965
+ padding: 0;
1966
+ font: inherit;
1967
+ }
1968
+ .r-copy-text:hover {
1969
+ color: var(--r-neutral-950);
1970
+ }
1971
+ .r-copy-text::before {
1972
+ content: "";
1973
+ position: absolute;
1974
+ bottom: -2px;
1975
+ left: 0;
1976
+ width: 100%;
1977
+ height: 1px;
1978
+ background: linear-gradient(to right, currentColor 30%, transparent 0%, transparent 80%, currentColor 80%) repeat-x 0px/8px;
1979
+ transition: background 0.2s;
1980
+ box-sizing: border-box;
1981
+ }
1982
+
1983
+ .r-copy-text:active,
1984
+ .r-copy-text._active {
1985
+ color: var(--r-success);
1991
1986
  }.r-li {
1992
1987
  line-height: 1.8;
1993
1988
  margin-block-start: 6px;
@@ -1999,6 +1994,11 @@
1999
1994
  padding-inline-start: 20px;
2000
1995
  margin-block-start: 6px;
2001
1996
  margin-block-end: 6px;
1997
+ }.r-ol {
1998
+ padding-inline-start: 0;
1999
+ list-style-position: inside;
2000
+ margin-block-start: 1em;
2001
+ margin-block-end: 1em;
2002
2002
  }.r-ul {
2003
2003
  padding-inline-start: 0;
2004
2004
  list-style-position: inside;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robindoc",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "description": "Robindoc is a framework for automatically creating documentation websites based on markdown files, built on React.js Server Components",
5
5
  "main": "./lib/index.js",
6
6
  "scripts": {