robindoc 2.1.7 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/components/blocks/code-section/index.d.ts.map +1 -1
  2. package/lib/components/blocks/code-section/index.js +1 -1
  3. package/lib/components/blocks/code-section/index.js.map +1 -1
  4. package/lib/components/blocks/nav-link/index.d.ts.map +1 -1
  5. package/lib/components/blocks/nav-link/index.js +1 -1
  6. package/lib/components/blocks/nav-link/index.js.map +1 -1
  7. package/lib/components/elements/article/document.js +1 -1
  8. package/lib/components/elements/article/document.js.map +1 -1
  9. package/lib/components/elements/sidebar/sidebar-link/index.d.ts.map +1 -1
  10. package/lib/components/elements/sidebar/sidebar-link/index.js.map +1 -1
  11. package/lib/components/ui/content-link/index.d.ts.map +1 -1
  12. package/lib/components/ui/content-link/index.js +1 -1
  13. package/lib/components/ui/content-link/index.js.map +1 -1
  14. package/lib/components/ui/copy-button/index.d.ts +3 -0
  15. package/lib/components/ui/copy-button/index.d.ts.map +1 -1
  16. package/lib/components/ui/copy-button/index.js +1 -1
  17. package/lib/components/ui/copy-button/index.js.map +1 -1
  18. package/lib/components/ui/copy-text/index.d.ts +12 -0
  19. package/lib/components/ui/copy-text/index.d.ts.map +1 -0
  20. package/lib/components/ui/copy-text/index.js +3 -0
  21. package/lib/components/ui/copy-text/index.js.map +1 -0
  22. package/lib/components/ui/external-mark/index.d.ts +4 -0
  23. package/lib/components/ui/external-mark/index.d.ts.map +1 -0
  24. package/lib/components/ui/external-mark/index.js +2 -0
  25. package/lib/components/ui/external-mark/index.js.map +1 -0
  26. package/lib/components/ui/tabs/index.d.ts +2 -0
  27. package/lib/components/ui/tabs/index.d.ts.map +1 -1
  28. package/lib/components/ui/tabs/index.js +1 -1
  29. package/lib/components/ui/tabs/index.js.map +1 -1
  30. package/lib/components/ui/tabs/tabs-header/index.d.ts +4 -2
  31. package/lib/components/ui/tabs/tabs-header/index.d.ts.map +1 -1
  32. package/lib/components/ui/tabs/tabs-header/index.js +1 -1
  33. package/lib/components/ui/tabs/tabs-header/index.js.map +1 -1
  34. package/lib/components/ui/tooltip/index.d.ts +14 -0
  35. package/lib/components/ui/tooltip/index.d.ts.map +1 -0
  36. package/lib/components/ui/tooltip/index.js +2 -0
  37. package/lib/components/ui/tooltip/index.js.map +1 -0
  38. package/lib/core/utils/parse-structure.d.ts.map +1 -1
  39. package/lib/core/utils/parse-structure.js +1 -1
  40. package/lib/core/utils/parse-structure.js.map +1 -1
  41. package/lib/core/utils/path-tools.d.ts +2 -0
  42. package/lib/core/utils/path-tools.d.ts.map +1 -1
  43. package/lib/core/utils/path-tools.js +1 -1
  44. package/lib/core/utils/path-tools.js.map +1 -1
  45. package/lib/styles.css +1 -1
  46. package/lib/styles.css.map +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/code-section/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAa,KAAK,cAAc,EAAE,4BAAsC;AAG/E,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/blocks/code-section/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAa,KAAK,cAAc,EAAE,4BAAsC;AAI/E,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"react";import{CodeBlock as c}from"../../ui/code-block/index.js";import{CopyButton as o}from"../../ui/copy-button/index.js";const t=({filename:t,code:r,...a})=>e.createElement("div",{className:"r-code-section"},t&&e.createElement("div",{className:"r-code-section-header"},e.createElement("span",null,t),e.createElement(o,{raw:r})),e.createElement(c,{className:"r-code-section-block",code:r,...a}));export{t as CodeSection};
1
+ import e from"react";import{CodeBlock as c}from"../../ui/code-block/index.js";import{CopyButton as t}from"../../ui/copy-button/index.js";import{CopyText as o}from"../../ui/copy-text/index.js";const r=({filename:r,code:a,...m})=>e.createElement("div",{className:"r-code-section"},r?e.createElement("div",{className:"r-code-section-header"},e.createElement(o,{className:"r-code-section-filename",text:r}),e.createElement(t,{raw:a})):e.createElement(t,{raw:a,className:"r-code-section-copy"}),e.createElement(c,{className:"r-code-section-block",code:a,...m}));export{r as CodeSection};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/code-section/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { CodeBlock, type CodeBlockProps } from \"@src/components/ui/code-block\";\nimport { CopyButton } from \"@src/components/ui/copy-button\";\n\nimport \"./code-section.scss\";\n\nexport interface CodeSectionProps extends CodeBlockProps {\n filename?: string;\n}\n\nexport const CodeSection: React.FC<CodeSectionProps> = ({ filename, code, ...props }) => {\n return (\n <div className=\"r-code-section\">\n {filename && (\n <div className=\"r-code-section-header\">\n <span>{filename}</span>\n <CopyButton raw={code} />\n </div>\n )}\n <CodeBlock className=\"r-code-section-block\" code={code} {...props} />\n </div>\n );\n};\n"],"names":["CodeSection","filename","code","props","React","createElement","className","CopyButton","raw","CodeBlock"],"mappings":"yIAUO,MAAMA,EAA0C,EAAGC,WAAUC,UAASC,KAErEC,EAAAC,cAAA,MAAA,CAAKC,UAAU,kBACVL,GACGG,EAAKC,cAAA,MAAA,CAAAC,UAAU,yBACXF,EAAAC,cAAA,OAAA,KAAOJ,GACPG,EAAAC,cAACE,EAAW,CAAAC,IAAKN,KAGzBE,EAAAC,cAACI,EAAS,CAACH,UAAU,uBAAuBJ,KAAMA,KAAUC"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/code-section/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { CodeBlock, type CodeBlockProps } from \"@src/components/ui/code-block\";\nimport { CopyButton } from \"@src/components/ui/copy-button\";\nimport { CopyText } from \"../../ui/copy-text\";\n\nimport \"./code-section.scss\";\n\nexport interface CodeSectionProps extends CodeBlockProps {\n filename?: string;\n}\n\nexport const CodeSection: React.FC<CodeSectionProps> = ({ filename, code, ...props }) => (\n <div className=\"r-code-section\">\n {filename ? (\n <div className=\"r-code-section-header\">\n <CopyText className=\"r-code-section-filename\" text={filename} />\n <CopyButton raw={code} />\n </div>\n ) : (\n <CopyButton raw={code} className=\"r-code-section-copy\" />\n )}\n <CodeBlock className=\"r-code-section-block\" code={code} {...props} />\n </div>\n);\n"],"names":["CodeSection","filename","code","props","React","createElement","className","CopyText","text","CopyButton","raw","CodeBlock"],"mappings":"sMAWaA,EAA0C,EAAGC,WAAUC,UAASC,KACzEC,EAAKC,cAAA,MAAA,CAAAC,UAAU,kBACVL,EACGG,EAAKC,cAAA,MAAA,CAAAC,UAAU,yBACXF,EAACC,cAAAE,GAASD,UAAU,0BAA0BE,KAAMP,IACpDG,EAACC,cAAAI,GAAWC,IAAKR,KAGrBE,EAACC,cAAAI,EAAW,CAAAC,IAAKR,EAAMI,UAAU,wBAErCF,EAAAC,cAACM,EAAS,CAACL,UAAU,uBAAuBJ,KAAMA,KAAUC"}
@@ -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;AAa1C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;2CAwBnB,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;AAe1C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;2CA8BnB,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import t,{forwardRef as e}from"react";import r from"next/link";import{usePathname as a}from"next/navigation";import s from"clsx";import{useNavigate as o}from"../../contexts/navigate/use-navigate.js";const i=e((({onClick:e,className:i,href:n,targetClassName:m,activeClassName:c,...l},f)=>{const{listeners:p}=o(),x=a();return t.createElement(r,{href:n,className:s(x.startsWith(n)&&m,x===n&&c,i),ref:f,onClick:t=>{[...p].forEach((t=>t.listener())),e&&e(t)},...l})}));export{i as NavLink};
2
+ import e,{forwardRef as r}from"react";import t from"next/link";import{usePathname as o}from"next/navigation";import a from"clsx";import{useNavigate as n}from"../../contexts/navigate/use-navigate.js";import{ExternalMark as s}from"../../ui/external-mark/index.js";import{checkIsLinkExternal as i}from"../../../core/utils/path-tools.js";const m=r((({onClick:r,className:m,href:l,targetClassName:c,activeClassName:f,children:p,...x},h)=>{const{listeners:g}=n(),k=o(),u=i(l),v=u?{target:"_blank",rel:"noopener noreferrer"}:{};return e.createElement(t,{href:l,className:a(k.startsWith(l)&&c,k===l&&f,m),ref:h,onClick:e=>{[...g].forEach((e=>e.listener())),r&&r(e)},...v,...x},p,u&&e.createElement(s,null))}));export{m 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 Link, { type LinkProps } from \"next/link\";\nimport { usePathname } from \"next/navigation\";\nimport clsx from \"clsx\";\n\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\n\ntype NavLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> &\n React.PropsWithChildren<LinkProps> & {\n activeClassName?: string;\n targetClassName?: string;\n };\n\nexport const NavLink = forwardRef<HTMLAnchorElement, NavLinkProps>(\n ({ onClick, className, href, targetClassName, activeClassName, ...props }, ref) => {\n const { listeners } = useNavigate();\n const pathname = usePathname();\n\n const clickHandler = (e: React.MouseEvent<HTMLAnchorElement>) => {\n [...listeners].forEach((el) => el.listener());\n if (onClick) onClick(e);\n };\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 {...props}\n />\n );\n },\n);\n"],"names":["NavLink","forwardRef","onClick","className","href","targetClassName","activeClassName","props","ref","listeners","useNavigate","pathname","usePathname","React","createElement","Link","clsx","startsWith","e","forEach","el","listener"],"mappings":";8JAea,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CACnB,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAiBC,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,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBC,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvE,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBC,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAOjB,CACIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EACGX,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CACND,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWa,CACPL,CAAAA,CAAAA,CAASM,CAAWb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAC7BM,CAAAA,CAAAA,CAAAA,CAAAA,CAAaP,CAAQE,CAAAA,CAAAA,CAAAA,CACrBH,CAEJK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKA,CACLN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAdcgB,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIT,CAAWU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAOA,CAAAA,CAAAA,CAAAA,CAAGC,CAC9BnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAAQgB,CAAAA,CAAAA,CAAE,CAafX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEX"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/blocks/nav-link/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { forwardRef } from \"react\";\nimport Link, { type LinkProps } from \"next/link\";\nimport { usePathname } from \"next/navigation\";\nimport clsx from \"clsx\";\n\nimport { useNavigate } from \"@src/components/contexts/navigate/use-navigate\";\nimport { ExternalMark } from \"@src/components/ui/external-mark\";\nimport { checkIsLinkExternal } from \"@src/core/utils/path-tools\";\n\ntype NavLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> &\n React.PropsWithChildren<LinkProps> & {\n activeClassName?: string;\n targetClassName?: 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\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","isLinkExternal","checkIsLinkExternal","additionalProps","target","rel","React","createElement","Link","clsx","startsWith","e","forEach","el","listener","ExternalMark"],"mappings":";8UAiBa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,GACnB,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,kBAAiBC,CAAiBC,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,CAAAA,CAAaC,GAASC,CACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,UAAEA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBC,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAMXC,EAAiBC,CAAoBX,CAAAA,CAAAA,CAAAA,CACrCY,EAAkBF,CAAiB,CAAA,CAAEG,OAAQ,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAE5F,CACIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,cAAAC,GACGjB,KAAMA,CACND,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWmB,CACPV,CAAAA,CAAAA,CAASW,WAAWnB,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAC7BO,IAAaR,CAAQE,CAAAA,CAAAA,CAAAA,CACrBH,GAEJM,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CACLP,CAhBcsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClB,IAAId,CAAWe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,GAAOA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BzB,GAASA,CAAQsB,CAAAA,CAAAA,CAAE,CAefR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAR,GAEHD,CACAO,CAAAA,CAAAA,CAAAA,CAAkBK,EAACC,CAAAQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,MAE1C"}
@@ -1,2 +1,2 @@
1
- import e from"react";import t,{Text as n,attributesToProps as r,domToReact as o}from"html-react-parser";import{NavContentLink as a}from"../../blocks/nav-content-link/index.js";import{AnchorHeading as s}from"../../blocks/anchor-heading/index.js";import{CodeSection as i}from"../../blocks/code-section/index.js";import{Table as l}from"../../ui/table/table/index.js";import{Tbody as m}from"../../ui/table/tbody/index.js";import{Td as c}from"../../ui/table/td/index.js";import{Th as u}from"../../ui/table/th/index.js";import{Thead as p}from"../../ui/table/thead/index.js";import{Tr as d}from"../../ui/table/tr/index.js";import{CodeSpan as k}from"../../ui/code-span/index.js";import{Img as f}from"../../ui/img/index.js";import{Block as h}from"../../ui/block/index.js";import{Blockquote as E}from"../../ui/blockquote/index.js";import{Paragraph as x}from"../../ui/paragraph/index.js";import{Strong as w}from"../../ui/strong/index.js";import{Del as y}from"../../ui/del/index.js";import{Em as b}from"../../ui/em/index.js";import{Hr as g}from"../../ui/hr/index.js";import{Heading as j}from"../../ui/heading/index.js";import{Tabs as v}from"../../ui/tabs/index.js";import{ListItem as $}from"../../ui/list/list-item/index.js";import{OrderedList as A}from"../../ui/list/ordered-list/index.js";import{UnorderedList as T}from"../../ui/list/unordered-list/index.js";import{TaskListItem as C}from"../../ui/task-list/task-list-item/index.js";import{TaskOrderedList as U}from"../../ui/task-list/task-ordered-list/index.js";import{TaskUnorderedList as D}from"../../ui/task-list/task-unordered-list/index.js";import{isNewCodeToken as F,validateComponentName as N,parseCodeLang as P,formatLinkHref as W,parseMarkdown as q}from"./utils.js";const I=({raw:s,components:i,...l})=>{const m={replace(t){if(t instanceof n&&t.data){const{headings:n,tokens:r}=q(t.data);return e.createElement(K,{headings:n,tokens:r,components:i,subtree:!0,...l})}if(!("name"in t))return e.createElement(e.Fragment,null);if("a"===t.name&&"attribs"in t){const{href:n,external:s}=W(t.attribs.href,l.pathname,l.pages);return e.createElement(a,{...r(t.attribs),href:n,external:s},o(t.children,m))}if(!N(t.name))return t;if(!i||!(t.name in i))return console.warn(`Unknown component: "${t.name}"`),e.createElement(e.Fragment,null);const s="attribs"in t?r(t.attribs):{},c=i[t.name],u="children"in t?t.children:null;return e.createElement(c,{...s},u?o(u,m):null)},htmlparser2:{lowerCaseTags:!1,lowerCaseAttributeNames:!1}};return t(s,m)},K=({pathname:t,components:n,uri:r,targetProvider:o,tokens:q,headings:K,config:O={},subtree:R,pages:S})=>{const{publicDirs:z}=O;let B=null,G={};const H=[],J=({token:q})=>{if(!q)return null;if(F(q,G)){const t=G;G={};const n=Object.keys(t).sort().join("-"),r=H.includes(n);return r||H.push(n),e.createElement(e.Fragment,null,e.createElement(v,{tabsData:t,insertStyles:!r,blockKey:n}),e.createElement(J,{token:q}))}if(B){if(Array.isArray(q)||"html"!==q.type||"\x3c!---/robin--\x3e"!==q.raw.trim())return"dummy"===B.type||(Array.isArray(q)?B.childTokens.push(...q):B.childTokens.push(q)),null;{if("dummy"===B.type)return B=null,null;const{componentName:t,childTokens:r,props:o}=B,a=n[t];return B=null,e.createElement(a,{...o},e.createElement(J,{token:r}))}}if(Array.isArray(q))return q.map(((t,n)=>e.createElement(J,{token:t,key:t.raw||n})));switch(q.type){case"heading":const v=`h${q.depth}`,F=K.find((e=>e.token===q));return F?.id?e.createElement(s,{component:v,id:F.id},q.tokens?e.createElement(J,{token:q.tokens}):q.raw):e.createElement(j,{component:v,id:1===q.depth?"main-content":void 0},q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"table":return e.createElement(h,null,e.createElement(l,null,e.createElement(p,null,e.createElement(d,null,q.header.map(((t,n)=>e.createElement(u,{key:t.text+n},t.tokens?e.createElement(J,{token:t.tokens}):t.text))))),e.createElement(m,null,q.rows.map(((t,n)=>e.createElement(d,{key:n},t.map(((t,n)=>e.createElement(c,{key:t.text+n},t.tokens?e.createElement(J,{token:t.tokens}):t.text)))))))));case"link":const{href:H,external:L}=W(q.href,t,S);return e.createElement(a,{href:H,external:L},q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"space":return null;case"hr":return e.createElement(g,null);case"image":return e.createElement(f,{src:q.href,publicDirs:z,provider:o,uri:r,alt:q.title||""});case"paragraph":return R?q.tokens?e.createElement(J,{token:q.tokens}):q.raw:q.tokens?.some((e=>"html"===e.type))&&q.tokens?.every((e=>"html"===e.type||"text"===e.type||"\n"===e.raw))?e.createElement(J,{token:{...q,type:"html"}}):e.createElement(x,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"strong":return e.createElement(w,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"del":return e.createElement(y,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"em":return e.createElement(b,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"blockquote":return e.createElement(E,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"codespan":return e.createElement(k,null,q.raw.replace(/^`|`$/g,""));case"code":const{lang:M,configuration:Q}=P(q.lang);if(Q.switcher){const t="string"==typeof Q.tab?Q.tab:M;return G[t]=e.createElement(i,{lang:M,code:q.text,...Q}),null}return e.createElement(i,{lang:M,code:q.text,...Q});case"escape":return q.text;case"list":if(q.items.every((e=>e.task))){const t=q.ordered?U:D;return e.createElement(t,{start:q.start},q.items.map(((t,n)=>e.createElement(C,{key:t.raw+n,defaultChecked:t.checked},t.tokens?e.createElement(J,{token:t.tokens}):t.raw))))}const V=q.ordered?A:T;return e.createElement(V,{start:q.start},q.items.map(((t,n)=>e.createElement($,{key:t.raw+n},t.tokens?e.createElement(J,{token:t.tokens}):t.raw))));case"html":const X=q.raw.trim();if(X.startsWith("\x3c!---robin")&&X.endsWith("--\x3e")){const t=X.endsWith("/--\x3e"),r=X.match(/<!---robin ([\w]+)/)?.[1];if(!r)return t||(B={type:"dummy"}),null;if(!N(r))return console.warn(`"${r}" is using incorrect casing. Use PascalCase for Robin components`),t||(B={type:"dummy"}),null;if(!n||!(r in n))return console.warn(`Unknown component: "${r}"`),t||(B={type:"dummy"}),null;const o=X.split(/\r?\n/).slice(1,-1).reduce(((e,t)=>{const[n,r,o]=t.match(/^([\w]+)(?:="(.+)")?$/)||[];return n?(e[r]=o??!0,e):(console.warn(`Invalid component attribute: "${t}"`),e)}),{});if(t){const t=n[r];return e.createElement(t,{...o})}return B={props:o,componentName:r,childTokens:[],type:"base"},null}return e.createElement(I,{raw:q.raw,components:n,config:O,targetProvider:o,pathname:t,uri:r,pages:S});case"text":return"tokens"in q?e.createElement(J,{token:q.tokens||[]}):q.raw;default:return!q.type&&"raw"in q?q.raw:(console.warn(`Unknown token ${q.type}`,q),null)}};return q.push({type:"text",raw:""}),e.createElement(J,{token:q})};export{K as Document,I as DocumentJSX};
1
+ import e from"react";import t,{Text as n,attributesToProps as r,domToReact as o}from"html-react-parser";import{NavContentLink as a}from"../../blocks/nav-content-link/index.js";import{AnchorHeading as s}from"../../blocks/anchor-heading/index.js";import{CodeSection as i}from"../../blocks/code-section/index.js";import{Table as l}from"../../ui/table/table/index.js";import{Tbody as m}from"../../ui/table/tbody/index.js";import{Td as c}from"../../ui/table/td/index.js";import{Th as u}from"../../ui/table/th/index.js";import{Thead as p}from"../../ui/table/thead/index.js";import{Tr as d}from"../../ui/table/tr/index.js";import{CodeSpan as k}from"../../ui/code-span/index.js";import{Img as f}from"../../ui/img/index.js";import{Block as h}from"../../ui/block/index.js";import{Blockquote as E}from"../../ui/blockquote/index.js";import{Paragraph as x}from"../../ui/paragraph/index.js";import{Strong as w}from"../../ui/strong/index.js";import{Del as y}from"../../ui/del/index.js";import{Em as b}from"../../ui/em/index.js";import{Hr as g}from"../../ui/hr/index.js";import{Heading as j}from"../../ui/heading/index.js";import{Tabs as v}from"../../ui/tabs/index.js";import{ListItem as $}from"../../ui/list/list-item/index.js";import{OrderedList as A}from"../../ui/list/ordered-list/index.js";import{UnorderedList as T}from"../../ui/list/unordered-list/index.js";import{TaskListItem as C}from"../../ui/task-list/task-list-item/index.js";import{TaskOrderedList as U}from"../../ui/task-list/task-ordered-list/index.js";import{TaskUnorderedList as D}from"../../ui/task-list/task-unordered-list/index.js";import{isNewCodeToken as F,validateComponentName as N,parseCodeLang as P,formatLinkHref as W,parseMarkdown as q}from"./utils.js";const I=({raw:s,components:i,...l})=>{const m={replace(t){if(t instanceof n&&t.data){const{headings:n,tokens:r}=q(t.data);return e.createElement(K,{headings:n,tokens:r,components:i,subtree:!0,...l})}if(!("name"in t))return e.createElement(e.Fragment,null);if("a"===t.name&&"attribs"in t){const{href:n,external:s}=W(t.attribs.href,l.pathname,l.pages);return e.createElement(a,{...r(t.attribs),href:n,external:s},o(t.children,m))}if(!N(t.name))return t;if(!i||!(t.name in i))return console.warn(`Unknown component: "${t.name}"`),e.createElement(e.Fragment,null);const s="attribs"in t?r(t.attribs):{},c=i[t.name],u="children"in t?t.children:null;return e.createElement(c,{...s},u?o(u,m):null)},htmlparser2:{lowerCaseTags:!1,lowerCaseAttributeNames:!1}};return t(s,m)},K=({pathname:t,components:n,uri:r,targetProvider:o,tokens:q,headings:K,config:O={},subtree:R,pages:S})=>{const{publicDirs:z}=O;let B=null,G={};const H=[],J=({token:q})=>{if(!q)return null;if(F(q,G)){const t=G;G={};const n=Object.keys(t).sort().join("-"),r=H.includes(n);return r||H.push(n),e.createElement(e.Fragment,null,e.createElement(v,{type:"code",tabsData:t,insertStyles:!r,blockKey:n}),e.createElement(J,{token:q}))}if(B){if(Array.isArray(q)||"html"!==q.type||"\x3c!---/robin--\x3e"!==q.raw.trim())return"dummy"===B.type||(Array.isArray(q)?B.childTokens.push(...q):B.childTokens.push(q)),null;{if("dummy"===B.type)return B=null,null;const{componentName:t,childTokens:r,props:o}=B,a=n[t];return B=null,e.createElement(a,{...o},e.createElement(J,{token:r}))}}if(Array.isArray(q))return q.map(((t,n)=>e.createElement(J,{token:t,key:t.raw||n})));switch(q.type){case"heading":const v=`h${q.depth}`,F=K.find((e=>e.token===q));return F?.id?e.createElement(s,{component:v,id:F.id},q.tokens?e.createElement(J,{token:q.tokens}):q.raw):e.createElement(j,{component:v,id:1===q.depth?"main-content":void 0},q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"table":return e.createElement(h,null,e.createElement(l,null,e.createElement(p,null,e.createElement(d,null,q.header.map(((t,n)=>e.createElement(u,{key:t.text+n},t.tokens?e.createElement(J,{token:t.tokens}):t.text))))),e.createElement(m,null,q.rows.map(((t,n)=>e.createElement(d,{key:n},t.map(((t,n)=>e.createElement(c,{key:t.text+n},t.tokens?e.createElement(J,{token:t.tokens}):t.text)))))))));case"link":const{href:H,external:L}=W(q.href,t,S);return e.createElement(a,{href:H,external:L},q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"space":return null;case"hr":return e.createElement(g,null);case"image":return e.createElement(f,{src:q.href,publicDirs:z,provider:o,uri:r,alt:q.title||""});case"paragraph":return R?q.tokens?e.createElement(J,{token:q.tokens}):q.raw:q.tokens?.some((e=>"html"===e.type))&&q.tokens?.every((e=>"html"===e.type||"text"===e.type||"\n"===e.raw))?e.createElement(J,{token:{...q,type:"html"}}):e.createElement(x,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"strong":return e.createElement(w,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"del":return e.createElement(y,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"em":return e.createElement(b,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"blockquote":return e.createElement(E,null,q.tokens?e.createElement(J,{token:q.tokens}):q.raw);case"codespan":return e.createElement(k,null,q.raw.replace(/^`|`$/g,""));case"code":const{lang:M,configuration:Q}=P(q.lang);if(Q.switcher){const t="string"==typeof Q.tab?Q.tab:M;return G[t]=e.createElement(i,{lang:M,code:q.text,...Q}),null}return e.createElement(i,{lang:M,code:q.text,...Q});case"escape":return q.text;case"list":if(q.items.every((e=>e.task))){const t=q.ordered?U:D;return e.createElement(t,{start:q.start},q.items.map(((t,n)=>e.createElement(C,{key:t.raw+n,defaultChecked:t.checked},t.tokens?e.createElement(J,{token:t.tokens}):t.raw))))}const V=q.ordered?A:T;return e.createElement(V,{start:q.start},q.items.map(((t,n)=>e.createElement($,{key:t.raw+n},t.tokens?e.createElement(J,{token:t.tokens}):t.raw))));case"html":const X=q.raw.trim();if(X.startsWith("\x3c!---robin")&&X.endsWith("--\x3e")){const t=X.endsWith("/--\x3e"),r=X.match(/<!---robin ([\w]+)/)?.[1];if(!r)return t||(B={type:"dummy"}),null;if(!N(r))return console.warn(`"${r}" is using incorrect casing. Use PascalCase for Robin components`),t||(B={type:"dummy"}),null;if(!n||!(r in n))return console.warn(`Unknown component: "${r}"`),t||(B={type:"dummy"}),null;const o=X.split(/\r?\n/).slice(1,-1).reduce(((e,t)=>{const[n,r,o]=t.match(/^([\w]+)(?:="(.+)")?$/)||[];return n?(e[r]=o??!0,e):(console.warn(`Invalid component attribute: "${t}"`),e)}),{});if(t){const t=n[r];return e.createElement(t,{...o})}return B={props:o,componentName:r,childTokens:[],type:"base"},null}return e.createElement(I,{raw:q.raw,components:n,config:O,targetProvider:o,pathname:t,uri:r,pages:S});case"text":return"tokens"in q?e.createElement(J,{token:q.tokens||[]}):q.raw;default:return!q.type&&"raw"in q?q.raw:(console.warn(`Unknown token ${q.type}`,q),null)}};return q.push({type:"text",raw:""}),e.createElement(J,{token:q})};export{K as Document,I as DocumentJSX};
2
2
  //# sourceMappingURL=document.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sources":["../../../../src/components/elements/article/document.tsx"],"sourcesContent":["import React from \"react\";\nimport parse, { attributesToProps, DOMNode, domToReact, HTMLReactParserOptions, Text } from \"html-react-parser\";\nimport { type TokensList, type Token, type Tokens } from \"marked\";\nimport { type RobinProps, type Components } from \"@src/core/types/content\";\nimport { type BaseProvider } from \"@src/core/providers/base\";\nimport { NavContentLink } from \"@src/components/blocks/nav-content-link\";\nimport { AnchorHeading } from \"@src/components/blocks/anchor-heading\";\nimport { CodeSection } from \"@src/components/blocks/code-section\";\nimport { Table, Thead, Tr, Th, Tbody, Td } from \"@src/components/ui/table\";\nimport { CodeSpan } from \"@src/components/ui/code-span\";\nimport { Img } from \"@src/components/ui/img\";\nimport { Block } from \"@src/components/ui/block\";\nimport { Blockquote } from \"@src/components/ui/blockquote\";\nimport { Paragraph } from \"@src/components/ui/paragraph\";\nimport { Strong } from \"@src/components/ui/strong\";\nimport { Del } from \"@src/components/ui/del\";\nimport { Em } from \"@src/components/ui/em\";\nimport { Hr } from \"@src/components/ui/hr\";\nimport { Heading } from \"@src/components/ui/heading\";\nimport { Tabs } from \"@src/components/ui/tabs\";\nimport { ListItem, OrderedList, UnorderedList } from \"@src/components/ui/list\";\nimport { TaskListItem, TaskOrderedList, TaskUnorderedList } from \"@src/components/ui/task-list\";\n\nimport { type PagesType } from \"./types\";\nimport {\n formatLinkHref,\n isNewCodeToken,\n parseCodeLang,\n parseMarkdown,\n validateComponentName,\n type AnchorData,\n} from \"./utils\";\n\ninterface DocumentJSXProps extends Omit<ContentProps, \"tokens\" | \"headings\"> {\n raw: string;\n pages?: PagesType;\n}\n\nexport const DocumentJSX: React.FC<DocumentJSXProps> = ({ raw, components, ...baseProps }) => {\n const parseOptions: HTMLReactParserOptions = {\n replace(domNode) {\n if (domNode instanceof Text && domNode.data) {\n const { headings, tokens } = parseMarkdown(domNode.data);\n\n return <Document headings={headings} tokens={tokens} components={components} subtree {...baseProps} />;\n }\n\n if (!(\"name\" in domNode)) return <></>;\n\n if (domNode.name === \"a\" && \"attribs\" in domNode) {\n const { href, external } = formatLinkHref(domNode.attribs.href, baseProps.pathname, baseProps.pages);\n return (\n <NavContentLink {...attributesToProps(domNode.attribs)} href={href} external={external}>\n {domToReact(domNode.children as DOMNode[], parseOptions)}\n </NavContentLink>\n );\n }\n\n if (!validateComponentName(domNode.name)) return domNode;\n\n if (!components || !(domNode.name in components)) {\n console.warn(`Unknown component: \"${domNode.name}\"`);\n return <></>;\n }\n\n const props = \"attribs\" in domNode ? attributesToProps(domNode.attribs) : {};\n const Component = components[domNode.name];\n const children = \"children\" in domNode ? domNode.children : null;\n\n return (\n <Component {...props}>{children ? domToReact(children as DOMNode[], parseOptions) : null}</Component>\n );\n },\n htmlparser2: {\n lowerCaseTags: false,\n lowerCaseAttributeNames: false,\n },\n };\n return parse(raw, parseOptions);\n};\n\nexport type ContentProps = {\n pathname: string;\n components?: Components;\n config?: {\n publicDirs?: string[];\n };\n uri?: string;\n targetProvider?: BaseProvider | null;\n tokens: TokensList;\n headings: AnchorData[];\n subtree?: boolean;\n pages?: PagesType;\n};\n\nexport const Document: React.FC<ContentProps> = ({\n pathname,\n components,\n uri,\n targetProvider,\n tokens,\n headings,\n config = {},\n subtree,\n pages,\n}) => {\n const { publicDirs } = config;\n\n let robin:\n | null\n | { props: RobinProps; childTokens: Token[]; componentName: string; type: \"base\" }\n | { type: \"dummy\" } = null;\n let codeQueue: { [lang: string]: JSX.Element } = {};\n const insertedCodeKeys: string[] = [];\n const DocumentToken: React.FC<{ token: Token | Token[] }> = ({ token }) => {\n if (!token) return null;\n\n if (isNewCodeToken(token, codeQueue)) {\n const tabsData = codeQueue;\n codeQueue = {};\n const tabsKey = Object.keys(tabsData).sort().join(\"-\");\n const isInsertedKey = insertedCodeKeys.includes(tabsKey);\n if (!isInsertedKey) insertedCodeKeys.push(tabsKey);\n\n return (\n <>\n <Tabs tabsData={tabsData} insertStyles={!isInsertedKey} blockKey={tabsKey} />\n <DocumentToken token={token} />\n </>\n );\n }\n\n if (robin) {\n if (!Array.isArray(token) && token.type === \"html\" && token.raw.trim() === \"<!---/robin-->\") {\n if (robin.type === \"dummy\") {\n robin = null;\n return null;\n }\n\n const { componentName, childTokens, props } = robin;\n const RobinComponent = components![componentName];\n robin = null;\n return (\n <RobinComponent {...props}>\n <DocumentToken token={childTokens} />\n </RobinComponent>\n );\n } else {\n if (robin.type === \"dummy\") return null;\n\n if (Array.isArray(token)) {\n robin.childTokens.push(...token);\n } else {\n robin.childTokens.push(token);\n }\n return null;\n }\n }\n\n if (Array.isArray(token))\n return token.map((t, index) => <DocumentToken token={t} key={(t as Tokens.Text).raw || index} />);\n\n switch (token.type) {\n case \"heading\":\n const Component = `h${token.depth}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n const predefinedData = headings.find((heading) => heading.token === token);\n if (predefinedData?.id) {\n return (\n <AnchorHeading component={Component} id={predefinedData.id}>\n {token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}\n </AnchorHeading>\n );\n } else {\n return (\n <Heading component={Component} id={token.depth === 1 ? \"main-content\" : undefined}>\n {token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}\n </Heading>\n );\n }\n case \"table\":\n return (\n <Block>\n <Table>\n <Thead>\n <Tr>\n {token.header.map((t: Tokens.Text, index: number) => (\n <Th key={t.text + index}>\n {t.tokens ? <DocumentToken token={t.tokens} /> : t.text}\n </Th>\n ))}\n </Tr>\n </Thead>\n <Tbody>\n {token.rows.map((row: Tokens.Text[], rowIndex: number) => (\n <Tr key={rowIndex}>\n {row.map((elem, elemIndex) => (\n <Td key={elem.text + elemIndex}>\n {elem.tokens ? <DocumentToken token={elem.tokens} /> : elem.text}\n </Td>\n ))}\n </Tr>\n ))}\n </Tbody>\n </Table>\n </Block>\n );\n case \"link\":\n const { href, external } = formatLinkHref(token.href, pathname, pages);\n\n return (\n <NavContentLink href={href} external={external}>\n {token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}\n </NavContentLink>\n );\n case \"space\":\n return null;\n case \"hr\":\n return <Hr />;\n case \"image\":\n return (\n <Img\n src={token.href}\n publicDirs={publicDirs}\n provider={targetProvider}\n uri={uri}\n alt={token.title || \"\"}\n />\n );\n case \"paragraph\":\n if (subtree) return token.tokens ? <DocumentToken token={token.tokens} /> : token.raw;\n if (\n token.tokens?.some((t) => t.type === \"html\") &&\n token.tokens?.every((t) => t.type === \"html\" || t.type === \"text\" || t.raw === \"\\n\")\n ) {\n return <DocumentToken token={{ ...token, type: \"html\" }} />;\n }\n\n return <Paragraph>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Paragraph>;\n case \"strong\":\n return <Strong>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Strong>;\n case \"del\":\n return <Del>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Del>;\n case \"em\":\n return <Em>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Em>;\n case \"blockquote\":\n return <Blockquote>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Blockquote>;\n case \"codespan\":\n return <CodeSpan>{token.raw.replace(/^`|`$/g, \"\")}</CodeSpan>;\n case \"code\":\n const { lang, configuration } = parseCodeLang(token.lang);\n if (configuration.switcher) {\n const tabKey = typeof configuration.tab === \"string\" ? configuration.tab : lang;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n codeQueue[tabKey] = <CodeSection lang={lang as any} code={token.text} {...configuration} />;\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return <CodeSection lang={lang as any} code={token.text} {...configuration} />;\n case \"escape\":\n return token.text;\n case \"list\":\n const isTaskList = token.items.every((i: Tokens.ListItem) => i.task);\n if (isTaskList) {\n const ListComponent = token.ordered ? TaskOrderedList : TaskUnorderedList;\n return (\n <ListComponent start={token.start}>\n {token.items.map((elem: Tokens.ListItem, index: number) => (\n <TaskListItem key={elem.raw + index} defaultChecked={elem.checked}>\n {elem.tokens ? <DocumentToken token={elem.tokens} /> : elem.raw}\n </TaskListItem>\n ))}\n </ListComponent>\n );\n }\n\n const ListComponent = token.ordered ? OrderedList : UnorderedList;\n return (\n <ListComponent start={token.start}>\n {token.items.map((elem: Tokens.ListItem, index: number) => (\n <ListItem key={elem.raw + index}>\n {elem.tokens ? <DocumentToken token={elem.tokens} /> : elem.raw}\n </ListItem>\n ))}\n </ListComponent>\n );\n case \"html\":\n const text = token.raw.trim();\n\n if (text.startsWith(\"<!---robin\") && text.endsWith(\"-->\")) {\n const selfClosed = text.endsWith(\"/-->\");\n const componentName = text.match(/<!---robin ([\\w]+)/)?.[1];\n\n if (!componentName) {\n if (!selfClosed) robin = { type: \"dummy\" };\n return null;\n }\n\n if (!validateComponentName(componentName)) {\n console.warn(\n `\"${componentName}\" is using incorrect casing. Use PascalCase for Robin components`,\n );\n if (!selfClosed) robin = { type: \"dummy\" };\n return null;\n }\n\n if (!components || !(componentName in components)) {\n console.warn(`Unknown component: \"${componentName}\"`);\n if (!selfClosed) robin = { type: \"dummy\" };\n return null;\n }\n const propRows = text.split(/\\r?\\n/).slice(1, -1);\n const props = propRows.reduce<{ [key: string]: string | true }>((acc, cur) => {\n const [_match, key, value] = cur.match(/^([\\w]+)(?:=\"(.+)\")?$/) || [];\n\n if (!_match) {\n console.warn(`Invalid component attribute: \"${cur}\"`);\n return acc;\n }\n\n acc[key] = value ?? true;\n return acc;\n }, {});\n\n if (selfClosed) {\n const Component = components[componentName as keyof typeof components];\n return <Component {...props} />;\n }\n\n robin = { props, componentName, childTokens: [], type: \"base\" };\n return null;\n }\n\n return (\n <DocumentJSX\n raw={token.raw}\n components={components}\n config={config}\n targetProvider={targetProvider}\n pathname={pathname}\n uri={uri}\n pages={pages}\n />\n );\n case \"text\":\n if (\"tokens\" in token) {\n return <DocumentToken token={token.tokens || []} />;\n }\n return token.raw;\n default:\n if (!token.type && \"raw\" in token) return token.raw;\n\n console.warn(`Unknown token ${token.type}`, token);\n return null;\n }\n };\n\n tokens.push({ type: \"text\", raw: \"\" });\n return <DocumentToken token={tokens} />;\n};\n"],"names":["DocumentJSX","raw","components","baseProps","parseOptions","replace","domNode","Text","data","headings","tokens","parseMarkdown","React","Document","subtree","name","href","external","formatLinkHref","attribs","pathname","pages","createElement","NavContentLink","attributesToProps","domToReact","children","validateComponentName","console","warn","props","Component","htmlparser2","lowerCaseTags","lowerCaseAttributeNames","parse","uri","targetProvider","config","publicDirs","robin","codeQueue","insertedCodeKeys","DocumentToken","token","isNewCodeToken","tabsData","tabsKey","Object","keys","sort","join","isInsertedKey","includes","push","Fragment","Tabs","insertStyles","blockKey","Array","isArray","type","trim","childTokens","componentName","RobinComponent","map","t","index","key","depth","predefinedData","find","heading","id","AnchorHeading","component","Heading","undefined","Block","Table","Thead","Tr","header","Th","text","Tbody","rows","row","rowIndex","elem","elemIndex","Td","Hr","Img","src","provider","alt","title","some","every","Paragraph","Strong","Del","Em","Blockquote","CodeSpan","lang","configuration","parseCodeLang","switcher","tabKey","tab","CodeSection","code","items","i","task","ListComponent","ordered","TaskOrderedList","TaskUnorderedList","start","TaskListItem","defaultChecked","checked","OrderedList","UnorderedList","ListItem","startsWith","endsWith","selfClosed","match","split","slice","reduce","acc","cur","_match","value"],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sources":["../../../../src/components/elements/article/document.tsx"],"sourcesContent":["import React from \"react\";\nimport parse, { attributesToProps, DOMNode, domToReact, HTMLReactParserOptions, Text } from \"html-react-parser\";\nimport { type TokensList, type Token, type Tokens } from \"marked\";\nimport { type RobinProps, type Components } from \"@src/core/types/content\";\nimport { type BaseProvider } from \"@src/core/providers/base\";\nimport { NavContentLink } from \"@src/components/blocks/nav-content-link\";\nimport { AnchorHeading } from \"@src/components/blocks/anchor-heading\";\nimport { CodeSection } from \"@src/components/blocks/code-section\";\nimport { Table, Thead, Tr, Th, Tbody, Td } from \"@src/components/ui/table\";\nimport { CodeSpan } from \"@src/components/ui/code-span\";\nimport { Img } from \"@src/components/ui/img\";\nimport { Block } from \"@src/components/ui/block\";\nimport { Blockquote } from \"@src/components/ui/blockquote\";\nimport { Paragraph } from \"@src/components/ui/paragraph\";\nimport { Strong } from \"@src/components/ui/strong\";\nimport { Del } from \"@src/components/ui/del\";\nimport { Em } from \"@src/components/ui/em\";\nimport { Hr } from \"@src/components/ui/hr\";\nimport { Heading } from \"@src/components/ui/heading\";\nimport { Tabs } from \"@src/components/ui/tabs\";\nimport { ListItem, OrderedList, UnorderedList } from \"@src/components/ui/list\";\nimport { TaskListItem, TaskOrderedList, TaskUnorderedList } from \"@src/components/ui/task-list\";\n\nimport { type PagesType } from \"./types\";\nimport {\n formatLinkHref,\n isNewCodeToken,\n parseCodeLang,\n parseMarkdown,\n validateComponentName,\n type AnchorData,\n} from \"./utils\";\n\ninterface DocumentJSXProps extends Omit<ContentProps, \"tokens\" | \"headings\"> {\n raw: string;\n pages?: PagesType;\n}\n\nexport const DocumentJSX: React.FC<DocumentJSXProps> = ({ raw, components, ...baseProps }) => {\n const parseOptions: HTMLReactParserOptions = {\n replace(domNode) {\n if (domNode instanceof Text && domNode.data) {\n const { headings, tokens } = parseMarkdown(domNode.data);\n\n return <Document headings={headings} tokens={tokens} components={components} subtree {...baseProps} />;\n }\n\n if (!(\"name\" in domNode)) return <></>;\n\n if (domNode.name === \"a\" && \"attribs\" in domNode) {\n const { href, external } = formatLinkHref(domNode.attribs.href, baseProps.pathname, baseProps.pages);\n return (\n <NavContentLink {...attributesToProps(domNode.attribs)} href={href} external={external}>\n {domToReact(domNode.children as DOMNode[], parseOptions)}\n </NavContentLink>\n );\n }\n\n if (!validateComponentName(domNode.name)) return domNode;\n\n if (!components || !(domNode.name in components)) {\n console.warn(`Unknown component: \"${domNode.name}\"`);\n return <></>;\n }\n\n const props = \"attribs\" in domNode ? attributesToProps(domNode.attribs) : {};\n const Component = components[domNode.name];\n const children = \"children\" in domNode ? domNode.children : null;\n\n return (\n <Component {...props}>{children ? domToReact(children as DOMNode[], parseOptions) : null}</Component>\n );\n },\n htmlparser2: {\n lowerCaseTags: false,\n lowerCaseAttributeNames: false,\n },\n };\n return parse(raw, parseOptions);\n};\n\nexport type ContentProps = {\n pathname: string;\n components?: Components;\n config?: {\n publicDirs?: string[];\n };\n uri?: string;\n targetProvider?: BaseProvider | null;\n tokens: TokensList;\n headings: AnchorData[];\n subtree?: boolean;\n pages?: PagesType;\n};\n\nexport const Document: React.FC<ContentProps> = ({\n pathname,\n components,\n uri,\n targetProvider,\n tokens,\n headings,\n config = {},\n subtree,\n pages,\n}) => {\n const { publicDirs } = config;\n\n let robin:\n | null\n | { props: RobinProps; childTokens: Token[]; componentName: string; type: \"base\" }\n | { type: \"dummy\" } = null;\n let codeQueue: { [lang: string]: JSX.Element } = {};\n const insertedCodeKeys: string[] = [];\n const DocumentToken: React.FC<{ token: Token | Token[] }> = ({ token }) => {\n if (!token) return null;\n\n if (isNewCodeToken(token, codeQueue)) {\n const tabsData = codeQueue;\n codeQueue = {};\n const tabsKey = Object.keys(tabsData).sort().join(\"-\");\n const isInsertedKey = insertedCodeKeys.includes(tabsKey);\n if (!isInsertedKey) insertedCodeKeys.push(tabsKey);\n\n return (\n <>\n <Tabs type=\"code\" tabsData={tabsData} insertStyles={!isInsertedKey} blockKey={tabsKey} />\n <DocumentToken token={token} />\n </>\n );\n }\n\n if (robin) {\n if (!Array.isArray(token) && token.type === \"html\" && token.raw.trim() === \"<!---/robin-->\") {\n if (robin.type === \"dummy\") {\n robin = null;\n return null;\n }\n\n const { componentName, childTokens, props } = robin;\n const RobinComponent = components![componentName];\n robin = null;\n return (\n <RobinComponent {...props}>\n <DocumentToken token={childTokens} />\n </RobinComponent>\n );\n } else {\n if (robin.type === \"dummy\") return null;\n\n if (Array.isArray(token)) {\n robin.childTokens.push(...token);\n } else {\n robin.childTokens.push(token);\n }\n return null;\n }\n }\n\n if (Array.isArray(token))\n return token.map((t, index) => <DocumentToken token={t} key={(t as Tokens.Text).raw || index} />);\n\n switch (token.type) {\n case \"heading\":\n const Component = `h${token.depth}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n const predefinedData = headings.find((heading) => heading.token === token);\n if (predefinedData?.id) {\n return (\n <AnchorHeading component={Component} id={predefinedData.id}>\n {token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}\n </AnchorHeading>\n );\n } else {\n return (\n <Heading component={Component} id={token.depth === 1 ? \"main-content\" : undefined}>\n {token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}\n </Heading>\n );\n }\n case \"table\":\n return (\n <Block>\n <Table>\n <Thead>\n <Tr>\n {token.header.map((t: Tokens.Text, index: number) => (\n <Th key={t.text + index}>\n {t.tokens ? <DocumentToken token={t.tokens} /> : t.text}\n </Th>\n ))}\n </Tr>\n </Thead>\n <Tbody>\n {token.rows.map((row: Tokens.Text[], rowIndex: number) => (\n <Tr key={rowIndex}>\n {row.map((elem, elemIndex) => (\n <Td key={elem.text + elemIndex}>\n {elem.tokens ? <DocumentToken token={elem.tokens} /> : elem.text}\n </Td>\n ))}\n </Tr>\n ))}\n </Tbody>\n </Table>\n </Block>\n );\n case \"link\":\n const { href, external } = formatLinkHref(token.href, pathname, pages);\n\n return (\n <NavContentLink href={href} external={external}>\n {token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}\n </NavContentLink>\n );\n case \"space\":\n return null;\n case \"hr\":\n return <Hr />;\n case \"image\":\n return (\n <Img\n src={token.href}\n publicDirs={publicDirs}\n provider={targetProvider}\n uri={uri}\n alt={token.title || \"\"}\n />\n );\n case \"paragraph\":\n if (subtree) return token.tokens ? <DocumentToken token={token.tokens} /> : token.raw;\n if (\n token.tokens?.some((t) => t.type === \"html\") &&\n token.tokens?.every((t) => t.type === \"html\" || t.type === \"text\" || t.raw === \"\\n\")\n ) {\n return <DocumentToken token={{ ...token, type: \"html\" }} />;\n }\n\n return <Paragraph>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Paragraph>;\n case \"strong\":\n return <Strong>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Strong>;\n case \"del\":\n return <Del>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Del>;\n case \"em\":\n return <Em>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Em>;\n case \"blockquote\":\n return <Blockquote>{token.tokens ? <DocumentToken token={token.tokens} /> : token.raw}</Blockquote>;\n case \"codespan\":\n return <CodeSpan>{token.raw.replace(/^`|`$/g, \"\")}</CodeSpan>;\n case \"code\":\n const { lang, configuration } = parseCodeLang(token.lang);\n if (configuration.switcher) {\n const tabKey = typeof configuration.tab === \"string\" ? configuration.tab : lang;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n codeQueue[tabKey] = <CodeSection lang={lang as any} code={token.text} {...configuration} />;\n return null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return <CodeSection lang={lang as any} code={token.text} {...configuration} />;\n case \"escape\":\n return token.text;\n case \"list\":\n const isTaskList = token.items.every((i: Tokens.ListItem) => i.task);\n if (isTaskList) {\n const ListComponent = token.ordered ? TaskOrderedList : TaskUnorderedList;\n return (\n <ListComponent start={token.start}>\n {token.items.map((elem: Tokens.ListItem, index: number) => (\n <TaskListItem key={elem.raw + index} defaultChecked={elem.checked}>\n {elem.tokens ? <DocumentToken token={elem.tokens} /> : elem.raw}\n </TaskListItem>\n ))}\n </ListComponent>\n );\n }\n\n const ListComponent = token.ordered ? OrderedList : UnorderedList;\n return (\n <ListComponent start={token.start}>\n {token.items.map((elem: Tokens.ListItem, index: number) => (\n <ListItem key={elem.raw + index}>\n {elem.tokens ? <DocumentToken token={elem.tokens} /> : elem.raw}\n </ListItem>\n ))}\n </ListComponent>\n );\n case \"html\":\n const text = token.raw.trim();\n\n if (text.startsWith(\"<!---robin\") && text.endsWith(\"-->\")) {\n const selfClosed = text.endsWith(\"/-->\");\n const componentName = text.match(/<!---robin ([\\w]+)/)?.[1];\n\n if (!componentName) {\n if (!selfClosed) robin = { type: \"dummy\" };\n return null;\n }\n\n if (!validateComponentName(componentName)) {\n console.warn(\n `\"${componentName}\" is using incorrect casing. Use PascalCase for Robin components`,\n );\n if (!selfClosed) robin = { type: \"dummy\" };\n return null;\n }\n\n if (!components || !(componentName in components)) {\n console.warn(`Unknown component: \"${componentName}\"`);\n if (!selfClosed) robin = { type: \"dummy\" };\n return null;\n }\n const propRows = text.split(/\\r?\\n/).slice(1, -1);\n const props = propRows.reduce<{ [key: string]: string | true }>((acc, cur) => {\n const [_match, key, value] = cur.match(/^([\\w]+)(?:=\"(.+)\")?$/) || [];\n\n if (!_match) {\n console.warn(`Invalid component attribute: \"${cur}\"`);\n return acc;\n }\n\n acc[key] = value ?? true;\n return acc;\n }, {});\n\n if (selfClosed) {\n const Component = components[componentName as keyof typeof components];\n return <Component {...props} />;\n }\n\n robin = { props, componentName, childTokens: [], type: \"base\" };\n return null;\n }\n\n return (\n <DocumentJSX\n raw={token.raw}\n components={components}\n config={config}\n targetProvider={targetProvider}\n pathname={pathname}\n uri={uri}\n pages={pages}\n />\n );\n case \"text\":\n if (\"tokens\" in token) {\n return <DocumentToken token={token.tokens || []} />;\n }\n return token.raw;\n default:\n if (!token.type && \"raw\" in token) return token.raw;\n\n console.warn(`Unknown token ${token.type}`, token);\n return null;\n }\n };\n\n tokens.push({ type: \"text\", raw: \"\" });\n return <DocumentToken token={tokens} />;\n};\n"],"names":["DocumentJSX","raw","components","baseProps","parseOptions","replace","domNode","Text","data","headings","tokens","parseMarkdown","React","Document","subtree","name","href","external","formatLinkHref","attribs","pathname","pages","createElement","NavContentLink","attributesToProps","domToReact","children","validateComponentName","console","warn","props","Component","htmlparser2","lowerCaseTags","lowerCaseAttributeNames","parse","uri","targetProvider","config","publicDirs","robin","codeQueue","insertedCodeKeys","DocumentToken","token","isNewCodeToken","tabsData","tabsKey","Object","keys","sort","join","isInsertedKey","includes","push","Fragment","Tabs","type","insertStyles","blockKey","Array","isArray","trim","childTokens","componentName","RobinComponent","map","t","index","key","depth","predefinedData","find","heading","id","AnchorHeading","component","Heading","undefined","Block","Table","Thead","Tr","header","Th","text","Tbody","rows","row","rowIndex","elem","elemIndex","Td","Hr","Img","src","provider","alt","title","some","every","Paragraph","Strong","Del","Em","Blockquote","CodeSpan","lang","configuration","parseCodeLang","switcher","tabKey","tab","CodeSection","code","items","i","task","ListComponent","ordered","TaskOrderedList","TaskUnorderedList","start","TaskListItem","defaultChecked","checked","OrderedList","UnorderedList","ListItem","startsWith","endsWith","selfClosed","match","split","slice","reduce","acc","cur","_match","value"],"mappings":"orDAsCO,MAAMA,EAA0C,EAAGC,MAAKC,gBAAeC,MAC1E,MAAMC,EAAuC,CACzC,OAAAC,CAAQC,GACJ,GAAIA,aAAmBC,GAAQD,EAAQE,KAAM,CACzC,MAAMC,SAAEA,EAAQC,OAAEA,GAAWC,EAAcL,EAAQE,MAEnD,OAAOI,gBAACC,EAAQ,CAACJ,SAAUA,EAAUC,OAAQA,EAAQR,WAAYA,EAAYY,SAAY,KAAAX,GAC5F,CAED,KAAM,SAAUG,GAAU,OAAOM,iCAEjC,GAAqB,MAAjBN,EAAQS,MAAgB,YAAaT,EAAS,CAC9C,MAAMU,KAAEA,EAAIC,SAAEA,GAAaC,EAAeZ,EAAQa,QAAQH,KAAMb,EAAUiB,SAAUjB,EAAUkB,OAC9F,OACIT,EAAAU,cAACC,EAAc,IAAKC,EAAkBlB,EAAQa,SAAUH,KAAMA,EAAMC,SAAUA,GACzEQ,EAAWnB,EAAQoB,SAAuBtB,GAGtD,CAED,IAAKuB,EAAsBrB,EAAQS,MAAO,OAAOT,EAEjD,IAAKJ,KAAgBI,EAAQS,QAAQb,GAEjC,OADA0B,QAAQC,KAAK,uBAAuBvB,EAAQS,SACrCH,iCAGX,MAAMkB,EAAQ,YAAaxB,EAAUkB,EAAkBlB,EAAQa,SAAW,GACpEY,EAAY7B,EAAWI,EAAQS,MAC/BW,EAAW,aAAcpB,EAAUA,EAAQoB,SAAW,KAE5D,OACId,gBAACmB,EAAS,IAAKD,GAAQJ,EAAWD,EAAWC,EAAuBtB,GAAgB,KAE3F,EACD4B,YAAa,CACTC,eAAe,EACfC,yBAAyB,IAGjC,OAAOC,EAAMlC,EAAKG,EAAa,EAiBtBS,EAAmC,EAC5CO,WACAlB,aACAkC,MACAC,iBACA3B,SACAD,WACA6B,SAAS,CAAA,EACTxB,UACAO,YAEA,MAAMkB,WAAEA,GAAeD,EAEvB,IAAIE,EAGsB,KACtBC,EAA6C,CAAA,EACjD,MAAMC,EAA6B,GAC7BC,EAAsD,EAAGC,YAC3D,IAAKA,EAAO,OAAO,KAEnB,GAAIC,EAAeD,EAAOH,GAAY,CAClC,MAAMK,EAAWL,EACjBA,EAAY,CAAA,EACZ,MAAMM,EAAUC,OAAOC,KAAKH,GAAUI,OAAOC,KAAK,KAC5CC,EAAgBV,EAAiBW,SAASN,GAGhD,OAFKK,GAAeV,EAAiBY,KAAKP,GAGtCnC,EAAAU,cAAAV,EAAA2C,SAAA,KACI3C,EAAAU,cAACkC,EAAK,CAAAC,KAAK,OAAOX,SAAUA,EAAUY,cAAeN,EAAeO,SAAUZ,IAC9EnC,EAACU,cAAAqB,GAAcC,MAAOA,IAGjC,CAED,GAAIJ,EAAO,CACP,GAAKoB,MAAMC,QAAQjB,IAAyB,SAAfA,EAAMa,MAAwC,yBAArBb,EAAM3C,IAAI6D,OAe5D,MAAmB,UAAftB,EAAMiB,OAENG,MAAMC,QAAQjB,GACdJ,EAAMuB,YAAYT,QAAQV,GAE1BJ,EAAMuB,YAAYT,KAAKV,IALQ,KAfsD,CACzF,GAAmB,UAAfJ,EAAMiB,KAEN,OADAjB,EAAQ,KACD,KAGX,MAAMwB,cAAEA,EAAaD,YAAEA,EAAWjC,MAAEA,GAAUU,EACxCyB,EAAiB/D,EAAY8D,GAEnC,OADAxB,EAAQ,KAEJ5B,EAAAU,cAAC2C,EAAc,IAAKnC,GAChBlB,EAACU,cAAAqB,GAAcC,MAAOmB,IAGjC,CAUJ,CAED,GAAIH,MAAMC,QAAQjB,GACd,OAAOA,EAAMsB,KAAI,CAACC,EAAGC,IAAUxD,EAACU,cAAAqB,EAAc,CAAAC,MAAOuB,EAAGE,IAAMF,EAAkBlE,KAAOmE,MAE3F,OAAQxB,EAAMa,MACV,IAAK,UACD,MAAM1B,EAAY,IAAIa,EAAM0B,QACtBC,EAAiB9D,EAAS+D,MAAMC,GAAYA,EAAQ7B,QAAUA,IACpE,OAAI2B,GAAgBG,GAEZ9D,EAACU,cAAAqD,EAAc,CAAAC,UAAW7C,EAAW2C,GAAIH,EAAeG,IACnD9B,EAAMlC,OAASE,gBAAC+B,EAAa,CAACC,MAAOA,EAAMlC,SAAakC,EAAM3C,KAKnEW,gBAACiE,EAAO,CAACD,UAAW7C,EAAW2C,GAAoB,IAAhB9B,EAAM0B,MAAc,oBAAiBQ,GACnElC,EAAMlC,OAASE,EAACU,cAAAqB,EAAc,CAAAC,MAAOA,EAAMlC,SAAakC,EAAM3C,KAI/E,IAAK,QACD,OACIW,gBAACmE,EAAK,KACFnE,EAAAU,cAAC0D,EAAK,KACFpE,EAAAU,cAAC2D,EAAK,KACFrE,EAACU,cAAA4D,EACI,KAAAtC,EAAMuC,OAAOjB,KAAI,CAACC,EAAgBC,IAC/BxD,EAAAU,cAAC8D,EAAE,CAACf,IAAKF,EAAEkB,KAAOjB,GACbD,EAAEzD,OAASE,gBAAC+B,EAAa,CAACC,MAAOuB,EAAEzD,SAAayD,EAAEkB,UAKnEzE,EAAAU,cAACgE,EACI,KAAA1C,EAAM2C,KAAKrB,KAAI,CAACsB,EAAoBC,IACjC7E,EAACU,cAAA4D,EAAG,CAAAb,IAAKoB,GACJD,EAAItB,KAAI,CAACwB,EAAMC,IACZ/E,gBAACgF,EAAE,CAACvB,IAAKqB,EAAKL,KAAOM,GAChBD,EAAKhF,OAASE,EAAAU,cAACqB,EAAa,CAACC,MAAO8C,EAAKhF,SAAagF,EAAKL,cAShG,IAAK,OACD,MAAMrE,KAAEA,EAAIC,SAAEA,GAAaC,EAAe0B,EAAM5B,KAAMI,EAAUC,GAEhE,OACIT,EAAAU,cAACC,EAAc,CAACP,KAAMA,EAAMC,SAAUA,GACjC2B,EAAMlC,OAASE,EAAAU,cAACqB,EAAc,CAAAC,MAAOA,EAAMlC,SAAakC,EAAM3C,KAG3E,IAAK,QACD,OAAO,KACX,IAAK,KACD,OAAOW,EAAAU,cAACuE,EAAE,MACd,IAAK,QACD,OACIjF,EAAAU,cAACwE,EAAG,CACAC,IAAKnD,EAAM5B,KACXuB,WAAYA,EACZyD,SAAU3D,EACVD,IAAKA,EACL6D,IAAKrD,EAAMsD,OAAS,KAGhC,IAAK,YACD,OAAIpF,EAAgB8B,EAAMlC,OAASE,EAAAU,cAACqB,EAAc,CAAAC,MAAOA,EAAMlC,SAAakC,EAAM3C,IAE9E2C,EAAMlC,QAAQyF,MAAMhC,GAAiB,SAAXA,EAAEV,QAC5Bb,EAAMlC,QAAQ0F,OAAOjC,GAAiB,SAAXA,EAAEV,MAA8B,SAAXU,EAAEV,MAA6B,OAAVU,EAAElE,MAEhEW,EAACU,cAAAqB,EAAc,CAAAC,MAAO,IAAKA,EAAOa,KAAM,UAG5C7C,EAAAU,cAAC+E,EAAS,KAAEzD,EAAMlC,OAASE,EAAAU,cAACqB,EAAa,CAACC,MAAOA,EAAMlC,SAAakC,EAAM3C,KACrF,IAAK,SACD,OAAOW,EAAAU,cAACgF,EAAM,KAAE1D,EAAMlC,OAASE,EAAAU,cAACqB,EAAa,CAACC,MAAOA,EAAMlC,SAAakC,EAAM3C,KAClF,IAAK,MACD,OAAOW,EAAAU,cAACiF,EAAG,KAAE3D,EAAMlC,OAASE,EAAAU,cAACqB,EAAa,CAACC,MAAOA,EAAMlC,SAAakC,EAAM3C,KAC/E,IAAK,KACD,OAAOW,EAAAU,cAACkF,EAAE,KAAE5D,EAAMlC,OAASE,EAAAU,cAACqB,EAAa,CAACC,MAAOA,EAAMlC,SAAakC,EAAM3C,KAC9E,IAAK,aACD,OAAOW,EAAAU,cAACmF,EAAU,KAAE7D,EAAMlC,OAASE,EAAAU,cAACqB,EAAa,CAACC,MAAOA,EAAMlC,SAAakC,EAAM3C,KACtF,IAAK,WACD,OAAOW,EAACU,cAAAoF,EAAU,KAAA9D,EAAM3C,IAAII,QAAQ,SAAU,KAClD,IAAK,OACD,MAAMsG,KAAEA,EAAIC,cAAEA,GAAkBC,EAAcjE,EAAM+D,MACpD,GAAIC,EAAcE,SAAU,CACxB,MAAMC,EAAsC,iBAAtBH,EAAcI,IAAmBJ,EAAcI,IAAML,EAG3E,OADAlE,EAAUsE,GAAUnG,EAACU,cAAA2F,GAAYN,KAAMA,EAAaO,KAAMtE,EAAMyC,QAAUuB,IACnE,IACV,CAGD,OAAOhG,EAACU,cAAA2F,EAAY,CAAAN,KAAMA,EAAaO,KAAMtE,EAAMyC,QAAUuB,IACjE,IAAK,SACD,OAAOhE,EAAMyC,KACjB,IAAK,OAED,GADmBzC,EAAMuE,MAAMf,OAAOgB,GAAuBA,EAAEC,OAC/C,CACZ,MAAMC,EAAgB1E,EAAM2E,QAAUC,EAAkBC,EACxD,OACI7G,EAAAU,cAACgG,EAAa,CAACI,MAAO9E,EAAM8E,OACvB9E,EAAMuE,MAAMjD,KAAI,CAACwB,EAAuBtB,IACrCxD,EAACU,cAAAqG,EAAa,CAAAtD,IAAKqB,EAAKzF,IAAMmE,EAAOwD,eAAgBlC,EAAKmC,SACrDnC,EAAKhF,OAASE,EAAAU,cAACqB,EAAc,CAAAC,MAAO8C,EAAKhF,SAAagF,EAAKzF,OAK/E,CAED,MAAMqH,EAAgB1E,EAAM2E,QAAUO,EAAcC,EACpD,OACInH,EAAAU,cAACgG,EAAa,CAACI,MAAO9E,EAAM8E,OACvB9E,EAAMuE,MAAMjD,KAAI,CAACwB,EAAuBtB,IACrCxD,EAACU,cAAA0G,EAAS,CAAA3D,IAAKqB,EAAKzF,IAAMmE,GACrBsB,EAAKhF,OAASE,EAAAU,cAACqB,EAAa,CAACC,MAAO8C,EAAKhF,SAAagF,EAAKzF,QAKhF,IAAK,OACD,MAAMoF,EAAOzC,EAAM3C,IAAI6D,OAEvB,GAAIuB,EAAK4C,WAAW,kBAAiB5C,EAAK6C,SAAS,UAAQ,CACvD,MAAMC,EAAa9C,EAAK6C,SAAS,WAC3BlE,EAAgBqB,EAAK+C,MAAM,wBAAwB,GAEzD,IAAKpE,EAED,OADKmE,IAAY3F,EAAQ,CAAEiB,KAAM,UAC1B,KAGX,IAAK9B,EAAsBqC,GAKvB,OAJApC,QAAQC,KACJ,IAAImC,qEAEHmE,IAAY3F,EAAQ,CAAEiB,KAAM,UAC1B,KAGX,IAAKvD,KAAgB8D,KAAiB9D,GAGlC,OAFA0B,QAAQC,KAAK,uBAAuBmC,MAC/BmE,IAAY3F,EAAQ,CAAEiB,KAAM,UAC1B,KAEX,MACM3B,EADWuD,EAAKgD,MAAM,SAASC,MAAM,GAAI,GACxBC,QAAyC,CAACC,EAAKC,KAClE,MAAOC,EAAQrE,EAAKsE,GAASF,EAAIL,MAAM,0BAA4B,GAEnE,OAAKM,GAKLF,EAAInE,GAAOsE,IAAS,EACbH,IALH5G,QAAQC,KAAK,iCAAiC4G,MACvCD,EAID,GACX,CAAE,GAEL,GAAIL,EAAY,CACZ,MAAMpG,EAAY7B,EAAW8D,GAC7B,OAAOpD,EAACU,cAAAS,EAAc,IAAAD,GACzB,CAGD,OADAU,EAAQ,CAAEV,QAAOkC,gBAAeD,YAAa,GAAIN,KAAM,QAChD,IACV,CAED,OACI7C,EAAAU,cAACtB,EAAW,CACRC,IAAK2C,EAAM3C,IACXC,WAAYA,EACZoC,OAAQA,EACRD,eAAgBA,EAChBjB,SAAUA,EACVgB,IAAKA,EACLf,MAAOA,IAGnB,IAAK,OACD,MAAI,WAAYuB,EACLhC,EAAAU,cAACqB,EAAa,CAACC,MAAOA,EAAMlC,QAAU,KAE1CkC,EAAM3C,IACjB,QACI,OAAK2C,EAAMa,MAAQ,QAASb,EAAcA,EAAM3C,KAEhD2B,QAAQC,KAAK,iBAAiBe,EAAMa,OAAQb,GACrC,MACd,EAIL,OADAlC,EAAO4C,KAAK,CAAEG,KAAM,OAAQxD,IAAK,KAC1BW,gBAAC+B,EAAa,CAACC,MAAOlC,GAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/elements/sidebar/sidebar-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAKtC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,KAAK,gBAAgB,GAAG;IACpB,MAAM,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqBlD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/elements/sidebar/sidebar-link/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAMtC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,KAAK,gBAAgB,GAAG;IACpB,MAAM,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqBlD,CAAC"}
@@ -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 { usePathname } from \"next/navigation\";\nimport clsx from \"clsx\";\n\nimport { NavLink } from \"@src/components/blocks/nav-link\";\nimport { type TreeItem } from \"../types\";\nimport { checkIsTargetPathname, collectItems } from \"../tools\";\n\ntype SidebarLinkProps = {\n branch: TreeItem & { 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\n return (\n <NavLink\n href={branch.href}\n className={clsx(\"r-sidebar-link\", isActive && \"_active\", isTarget && \"_target\")}\n ref={(node) => {\n if (isTarget) {\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","React","createElement","NavLink","className","clsx","ref","node","current","parentElement","scrollIntoViewIfNeeded","title"],"mappings":";uOAcaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0C,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtD,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CACXC,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAsBJ,CAAAA,CAAAA,CAAOK,CAAMJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9CK,CAAWC,CAAAA,CAAAA,CAAaP,CAAQQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASP,CACzCQ,CAAAA,CAAAA,CAAAA,CAAmBC,EAA8B,CAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAO,CAAA,CACJR,CAAML,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOK,CACbS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBZ,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrEU,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACEX,CACAG,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBS,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE1BD,CAAcE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,CAClC,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,CAGHpB,CAAOqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEf"}
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 { usePathname } from \"next/navigation\";\nimport clsx from \"clsx\";\n\nimport { NavLink } from \"@src/components/blocks/nav-link\";\n\nimport { type TreeItem } from \"../types\";\nimport { checkIsTargetPathname, collectItems } from \"../tools\";\n\ntype SidebarLinkProps = {\n branch: TreeItem & { 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\n return (\n <NavLink\n href={branch.href}\n className={clsx(\"r-sidebar-link\", isActive && \"_active\", isTarget && \"_target\")}\n ref={(node) => {\n if (isTarget) {\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","React","createElement","NavLink","className","clsx","ref","node","current","parentElement","scrollIntoViewIfNeeded","title"],"mappings":";uOAeaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0C,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtD,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CACXC,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAsBJ,CAAAA,CAAAA,CAAOK,CAAMJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9CK,CAAWC,CAAAA,CAAAA,CAAaP,CAAQQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASP,CACzCQ,CAAAA,CAAAA,CAAAA,CAAmBC,EAA8B,CAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACIC,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAACC,CAAO,CAAA,CACJR,CAAML,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOK,CACbS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBZ,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWG,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrEU,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACEX,CACAG,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBS,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE1BD,CAAcE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,CAClC,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,CAGHpB,CAAOqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/content-link/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBACb,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,EAC/D,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAalD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/content-link/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAa,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAKjD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBACb,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,EAC/D,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CASlD,CAAC"}
@@ -1,2 +1,2 @@
1
- import e from"react";import r from"next/link";import n from"clsx";const t=({className:t,external:l,children:a,...o})=>{const c=l?{target:"_blank",rel:"noopener noreferrer"}:{};return e.createElement(r,{className:n("r-content-link",t),...c,...o},a,l&&e.createElement(e.Fragment,null," ",e.createElement("span",{className:"r-content-link-external"})))};export{t as ContentLink};
1
+ import e from"react";import r from"next/link";import t from"clsx";import{ExternalMark as n}from"../external-mark/index.js";const o=({className:o,external:l,children:m,...a})=>{const c=l?{target:"_blank",rel:"noopener noreferrer"}:{};return e.createElement(r,{className:t("r-content-link",o),...c,...a},m,l&&e.createElement(n,null))};export{o as ContentLink};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ui/content-link/index.tsx"],"sourcesContent":["import React from \"react\";\nimport Link, { type LinkProps } from \"next/link\";\nimport clsx from \"clsx\";\n\nimport \"./content-link.scss\";\n\nexport interface ContentLinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">,\n React.PropsWithChildren<LinkProps> {\n external?: boolean;\n}\n\nexport const ContentLink: React.FC<ContentLinkProps> = ({ className, external, children, ...props }) => {\n const additionalProps = external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n return (\n <Link className={clsx(\"r-content-link\", className)} {...additionalProps} {...props}>\n {children}\n {external && (\n <>\n &nbsp;\n <span className=\"r-content-link-external\" />\n </>\n )}\n </Link>\n );\n};\n"],"names":["ContentLink","className","external","children","props","additionalProps","target","rel","React","createElement","Link","clsx","Fragment"],"mappings":"kEAYa,MAAAA,EAA0C,EAAGC,YAAWC,WAAUC,cAAaC,MACxF,MAAMC,EAAkBH,EAAW,CAAEI,OAAQ,SAAUC,IAAK,uBAA0B,GACtF,OACIC,EAAAC,cAACC,EAAI,CAACT,UAAWU,EAAK,iBAAkBV,MAAgBI,KAAqBD,GACxED,EACAD,GACGM,EAAAC,cAAAD,EAAAI,SAAA,SAEIJ,EAAMC,cAAA,OAAA,CAAAR,UAAU,6BAI9B"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ui/content-link/index.tsx"],"sourcesContent":["import React from \"react\";\nimport Link, { type LinkProps } from \"next/link\";\nimport clsx from \"clsx\";\n\nimport { ExternalMark } from \"../external-mark\";\n\nimport \"./content-link.scss\";\n\nexport interface ContentLinkProps\n extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"href\">,\n React.PropsWithChildren<LinkProps> {\n external?: boolean;\n}\n\nexport const ContentLink: React.FC<ContentLinkProps> = ({ className, external, children, ...props }) => {\n const additionalProps = external ? { target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n\n return (\n <Link className={clsx(\"r-content-link\", className)} {...additionalProps} {...props}>\n {children}\n {external && <ExternalMark />}\n </Link>\n );\n};\n"],"names":["ContentLink","className","external","children","props","additionalProps","target","rel","React","createElement","Link","clsx","ExternalMark"],"mappings":"2HAca,MAAAA,EAA0C,EAAGC,YAAWC,WAAUC,cAAaC,MACxF,MAAMC,EAAkBH,EAAW,CAAEI,OAAQ,SAAUC,IAAK,uBAA0B,GAEtF,OACIC,EAAAC,cAACC,EAAI,CAACT,UAAWU,EAAK,iBAAkBV,MAAgBI,KAAqBD,GACxED,EACAD,GAAYM,EAACC,cAAAG,EAAe,MAEnC"}
@@ -2,9 +2,12 @@ import React from "react";
2
2
  import "./copy-button.scss";
3
3
  interface CopyButtonProps {
4
4
  raw: string;
5
+ className?: string;
5
6
  translations?: {
6
7
  /** Copy */
7
8
  copy?: string;
9
+ /** Code Copied */
10
+ codeCopied?: string;
8
11
  };
9
12
  }
10
13
  export declare const CopyButton: React.FC<CopyButtonProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/copy-button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,oBAAoB,CAAC;AAE5B,UAAU,eAAe;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE;QACX,WAAW;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoChD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/copy-button/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,OAAO,oBAAoB,CAAC;AAG5B,UAAU,eAAe;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACX,WAAW;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kBAAkB;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACL;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA2ChD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e,{useState as t}from"react";import r from"clsx";const o=({translations:o,raw:c})=>{const{copy:n="Copy"}=o||{},[a,l]=t(null);return e.createElement("button",{tabIndex:-1,onClick:()=>{a&&clearTimeout(a),l(setTimeout((()=>{l(null)}),1500)),navigator.clipboard.writeText(c)},className:r("copy-button",a&&"_active")},e.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("title",null,n),e.createElement("g",{className:"copy-button-success"},e.createElement("path",{d:"M20 6 9 17l-5-5"})),e.createElement("g",{className:"copy-button-base"},e.createElement("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}),e.createElement("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}))))};export{o as CopyButton};
2
+ import e,{useState as t}from"react";import o from"clsx";import{Tooltip as r}from"../tooltip/index.js";const n=({translations:n,raw:c,className:a})=>{const{copy:l="Copy",codeCopied:i="Code Copied"}=n||{},[s,m]=t(null);return e.createElement("button",{tabIndex:-1,onClick:()=>{s&&clearTimeout(s),m(setTimeout((()=>{m(null)}),1500)),navigator.clipboard.writeText(c)},className:o("copy-button",s&&"_active",a)},e.createElement("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},e.createElement("title",null,l),e.createElement("g",{className:"copy-button-success"},e.createElement("path",{d:"M20 6 9 17l-5-5"})),e.createElement("g",{className:"copy-button-base"},e.createElement("path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"}),e.createElement("rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2"}))),e.createElement(r,{position:"bottom-end",visible:Boolean(s)},i))};export{n as CopyButton};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ui/copy-button/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./copy-button.scss\";\n\ninterface CopyButtonProps {\n raw: string;\n translations?: {\n /** Copy */\n copy?: string;\n };\n}\n\nexport const CopyButton: React.FC<CopyButtonProps> = ({ translations, raw }) => {\n const { copy = \"Copy\" } = translations || {};\n const [copyTimeout, setCopyTimeout] = useState<NodeJS.Timeout | null>(null);\n const clickHandler = () => {\n if (copyTimeout) clearTimeout(copyTimeout);\n setCopyTimeout(\n setTimeout(() => {\n setCopyTimeout(null);\n }, 1500),\n );\n navigator.clipboard.writeText(raw);\n };\n\n return (\n <button tabIndex={-1} onClick={clickHandler} className={clsx(\"copy-button\", copyTimeout && \"_active\")}>\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <title>{copy}</title>\n <g className=\"copy-button-success\">\n <path d=\"M20 6 9 17l-5-5\" />\n </g>\n <g className=\"copy-button-base\">\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n </g>\n </svg>\n </button>\n );\n};\n"],"names":["CopyButton","translations","raw","copy","copyTimeout","setCopyTimeout","useState","React","tabIndex","onClick","clearTimeout","setTimeout","navigator","clipboard","writeText","className","clsx","createElement","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","x","y","rx","ry"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ui/copy-button/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./copy-button.scss\";\nimport { Tooltip } from \"../tooltip\";\n\ninterface CopyButtonProps {\n raw: string;\n className?: string;\n translations?: {\n /** Copy */\n copy?: string;\n /** Code Copied */\n codeCopied?: string;\n };\n}\n\nexport const CopyButton: React.FC<CopyButtonProps> = ({ translations, raw, className }) => {\n const { copy = \"Copy\", codeCopied = \"Code Copied\" } = translations || {};\n const [copyTimeout, setCopyTimeout] = useState<NodeJS.Timeout | null>(null);\n const clickHandler = () => {\n if (copyTimeout) clearTimeout(copyTimeout);\n setCopyTimeout(\n setTimeout(() => {\n setCopyTimeout(null);\n }, 1500),\n );\n navigator.clipboard.writeText(raw);\n };\n\n return (\n <button\n tabIndex={-1}\n onClick={clickHandler}\n className={clsx(\"copy-button\", copyTimeout && \"_active\", className)}\n >\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <title>{copy}</title>\n <g className=\"copy-button-success\">\n <path d=\"M20 6 9 17l-5-5\" />\n </g>\n <g className=\"copy-button-base\">\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n </g>\n </svg>\n <Tooltip position=\"bottom-end\" visible={Boolean(copyTimeout)}>\n {codeCopied}\n </Tooltip>\n </button>\n );\n};\n"],"names":["CopyButton","translations","raw","className","copy","codeCopied","copyTimeout","setCopyTimeout","useState","React","tabIndex","onClick","clearTimeout","setTimeout","navigator","clipboard","writeText","clsx","createElement","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","d","x","y","rx","ry","Tooltip","position","visible","Boolean"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import "./copy-text.scss";
3
+ export interface CopyTextProps {
4
+ text: string;
5
+ className?: string;
6
+ translations?: {
7
+ /** Filename Copied */
8
+ filenameCopied?: string;
9
+ };
10
+ }
11
+ export declare const CopyText: React.FC<CopyTextProps>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/copy-text/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,kBAAkB,CAAC;AAE1B,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACX,sBAAsB;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACL;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqB5C,CAAC"}
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import t,{useState as e}from"react";import o from"clsx";import{Tooltip as i}from"../tooltip/index.js";const a=({translations:a,text:l,className:n})=>{const{filenameCopied:r="Filename Copied"}=a||{},[m,s]=e(null);return t.createElement("button",{tabIndex:-1,onClick:()=>{m&&clearTimeout(m),s(setTimeout((()=>{s(null)}),1500)),navigator.clipboard.writeText(l)},className:o("copy-text",m&&"_active",n)},l,t.createElement(i,{position:"bottom-start",visible:Boolean(m)},r))};export{a as CopyText};
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ui/copy-text/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState } from \"react\";\nimport clsx from \"clsx\";\n\nimport { Tooltip } from \"../tooltip\";\n\nimport \"./copy-text.scss\";\n\nexport interface CopyTextProps {\n text: string;\n className?: string;\n translations?: {\n /** Filename Copied */\n filenameCopied?: string;\n };\n}\n\nexport const CopyText: React.FC<CopyTextProps> = ({ translations, text, className }) => {\n const { filenameCopied = \"Filename Copied\" } = translations || {};\n const [copyTimeout, setCopyTimeout] = useState<NodeJS.Timeout | null>(null);\n const clickHandler = () => {\n if (copyTimeout) clearTimeout(copyTimeout);\n setCopyTimeout(\n setTimeout(() => {\n setCopyTimeout(null);\n }, 1500),\n );\n navigator.clipboard.writeText(text);\n };\n\n return (\n <button tabIndex={-1} onClick={clickHandler} className={clsx(\"copy-text\", copyTimeout && \"_active\", className)}>\n {text}\n <Tooltip position=\"bottom-start\" visible={Boolean(copyTimeout)}>\n {filenameCopied}\n </Tooltip>\n </button>\n );\n};\n"],"names":["CopyText","translations","text","className","filenameCopied","copyTimeout","setCopyTimeout","useState","React","tabIndex","onClick","clearTimeout","setTimeout","navigator","clipboard","writeText","clsx","createElement","Tooltip","position","visible","Boolean"],"mappings":";sGAkBO,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoC,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpE,MAAMC,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAsBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAA,CACxDI,CAAaC,CAAAA,CAAAA,CAAAA,CAAkBC,CAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAWtE,CACIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,yBAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,EAAGC,CAXL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACbL,CAAaM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaN,CAC9BC,CAAAA,CAAAA,CAAAA,CACIM,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACPN,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEPO,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAUb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAIUC,CAAWa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAaX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAWF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/FD,CACDM,CAAAA,CAAAA,CAAAS,CAACC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAeC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAQhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7CD,GAGZ"}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import "./external-mark.scss";
3
+ export declare const ExternalMark: () => React.JSX.Element;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/external-mark/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,sBAAsB,CAAC;AAE9B,eAAO,MAAM,YAAY,yBAKxB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import e from"react";const r=()=>e.createElement(e.Fragment,null," ",e.createElement("span",{className:"r-external-mark"}));export{r as ExternalMark};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ui/external-mark/index.tsx"],"sourcesContent":["import React from \"react\";\n\nimport \"./external-mark.scss\";\n\nexport const ExternalMark = () => (\n <>\n &nbsp;\n <span className=\"r-external-mark\" />\n </>\n);\n"],"names":["ExternalMark","React","createElement","Fragment","className"],"mappings":"qBAIa,MAAAA,EAAe,IACxBC,EAAAC,cAAAD,EAAAE,SAAA,SAEIF,EAAAC,cAAA,OAAA,CAAME,UAAU"}
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { type TabsHeaderProps } from "./tabs-header";
2
3
  import "./tabs.scss";
3
4
  export interface TabsProps {
4
5
  insertStyles?: boolean;
@@ -6,6 +7,7 @@ export interface TabsProps {
6
7
  [tabKey: string]: JSX.Element;
7
8
  };
8
9
  blockKey?: string;
10
+ type?: TabsHeaderProps["type"];
9
11
  }
10
12
  export declare const Tabs: React.FC<TabsProps>;
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,aAAa,CAAC;AAGrB,MAAM,WAAW,SAAS;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;KAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAsBpC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,SAAS;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;KAAE,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAsBpC,CAAC"}
@@ -1,2 +1,2 @@
1
- import t from"react";import{TabsHeader as e}from"./tabs-header/index.js";import{TabsStyles as a}from"./tabs-styles/index.js";const s=({insertStyles:s,tabsData:r,blockKey:b})=>{const m=Object.keys(r);if(1===m.length)return r[m[0]];const n=b||m.sort().join("-");return t.createElement("div",{className:`r-tabs r-tabs__${n}`},s&&t.createElement(a,{tabs:m,tabsKey:n}),t.createElement(e,{tabs:m,tabsKey:n}),t.createElement("div",{className:`r-tab-list r-tab-list__${n}`},m.map((e=>t.createElement("div",{key:e,className:`r-tab r-tab_${e}`},r[e])))))};export{s as Tabs};
1
+ import t from"react";import{TabsHeader as e}from"./tabs-header/index.js";import{TabsStyles as a}from"./tabs-styles/index.js";const s=({insertStyles:s,tabsData:r,blockKey:b,type:m})=>{const n=Object.keys(r);if(1===n.length)return r[n[0]];const c=b||n.sort().join("-");return t.createElement("div",{className:`r-tabs r-tabs__${c}`},s&&t.createElement(a,{tabs:n,tabsKey:c}),t.createElement(e,{tabs:n,tabsKey:c,type:m}),t.createElement("div",{className:`r-tab-list r-tab-list__${c}`},n.map((e=>t.createElement("div",{key:e,className:`r-tab r-tab_${e}`},r[e])))))};export{s as Tabs};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ui/tabs/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { TabsHeader } from \"./tabs-header\";\n\nimport \"./tabs.scss\";\nimport { TabsStyles } from \"./tabs-styles\";\n\nexport interface TabsProps {\n insertStyles?: boolean;\n tabsData: { [tabKey: string]: JSX.Element };\n blockKey?: string;\n}\n\nexport const Tabs: React.FC<TabsProps> = ({ insertStyles, tabsData, blockKey }) => {\n const tabs = Object.keys(tabsData);\n\n if (tabs.length === 1) {\n return tabsData[tabs[0]];\n }\n\n const tabsKey = blockKey || tabs.sort().join(\"-\");\n\n return (\n <div className={`r-tabs r-tabs__${tabsKey}`}>\n {insertStyles && <TabsStyles tabs={tabs} tabsKey={tabsKey} />}\n <TabsHeader tabs={tabs} tabsKey={tabsKey} />\n <div className={`r-tab-list r-tab-list__${tabsKey}`}>\n {tabs.map((tabKey) => (\n <div key={tabKey} className={`r-tab r-tab_${tabKey}`}>\n {tabsData[tabKey]}\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["Tabs","insertStyles","tabsData","blockKey","tabs","Object","keys","length","tabsKey","sort","join","React","createElement","className","TabsStyles","TabsHeader","map","tabKey","key"],"mappings":"6HAYO,MAAMA,EAA4B,EAAGC,eAAcC,WAAUC,eAChE,MAAMC,EAAOC,OAAOC,KAAKJ,GAEzB,GAAoB,IAAhBE,EAAKG,OACL,OAAOL,EAASE,EAAK,IAGzB,MAAMI,EAAUL,GAAYC,EAAKK,OAAOC,KAAK,KAE7C,OACIC,EAAKC,cAAA,MAAA,CAAAC,UAAW,kBAAkBL,KAC7BP,GAAgBU,EAACC,cAAAE,EAAW,CAAAV,KAAMA,EAAMI,QAASA,IAClDG,EAACC,cAAAG,GAAWX,KAAMA,EAAMI,QAASA,IACjCG,EAAAC,cAAA,MAAA,CAAKC,UAAW,0BAA0BL,KACrCJ,EAAKY,KAAKC,GACPN,EAAKC,cAAA,MAAA,CAAAM,IAAKD,EAAQJ,UAAW,eAAeI,KACvCf,EAASe,OAK5B"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ui/tabs/index.tsx"],"sourcesContent":["import React from \"react\";\nimport { TabsHeader, type TabsHeaderProps } from \"./tabs-header\";\nimport { TabsStyles } from \"./tabs-styles\";\n\nimport \"./tabs.scss\";\n\nexport interface TabsProps {\n insertStyles?: boolean;\n tabsData: { [tabKey: string]: JSX.Element };\n blockKey?: string;\n type?: TabsHeaderProps[\"type\"];\n}\n\nexport const Tabs: React.FC<TabsProps> = ({ insertStyles, tabsData, blockKey, type }) => {\n const tabs = Object.keys(tabsData);\n\n if (tabs.length === 1) {\n return tabsData[tabs[0]];\n }\n\n const tabsKey = blockKey || tabs.sort().join(\"-\");\n\n return (\n <div className={`r-tabs r-tabs__${tabsKey}`}>\n {insertStyles && <TabsStyles tabs={tabs} tabsKey={tabsKey} />}\n <TabsHeader tabs={tabs} tabsKey={tabsKey} type={type} />\n <div className={`r-tab-list r-tab-list__${tabsKey}`}>\n {tabs.map((tabKey) => (\n <div key={tabKey} className={`r-tab r-tab_${tabKey}`}>\n {tabsData[tabKey]}\n </div>\n ))}\n </div>\n </div>\n );\n};\n"],"names":["Tabs","insertStyles","tabsData","blockKey","type","tabs","Object","keys","length","tabsKey","sort","join","React","createElement","className","TabsStyles","TabsHeader","map","tabKey","key"],"mappings":"6HAaO,MAAMA,EAA4B,EAAGC,eAAcC,WAAUC,WAAUC,WAC1E,MAAMC,EAAOC,OAAOC,KAAKL,GAEzB,GAAoB,IAAhBG,EAAKG,OACL,OAAON,EAASG,EAAK,IAGzB,MAAMI,EAAUN,GAAYE,EAAKK,OAAOC,KAAK,KAE7C,OACIC,EAAKC,cAAA,MAAA,CAAAC,UAAW,kBAAkBL,KAC7BR,GAAgBW,EAACC,cAAAE,EAAW,CAAAV,KAAMA,EAAMI,QAASA,IAClDG,EAAAC,cAACG,EAAU,CAACX,KAAMA,EAAMI,QAASA,EAASL,KAAMA,IAChDQ,EAAAC,cAAA,MAAA,CAAKC,UAAW,0BAA0BL,KACrCJ,EAAKY,KAAKC,GACPN,EAAKC,cAAA,MAAA,CAAAM,IAAKD,EAAQJ,UAAW,eAAeI,KACvChB,EAASgB,OAK5B"}
@@ -1,6 +1,8 @@
1
1
  import React from "react";
2
- export declare const TabsHeader: React.FC<{
2
+ export interface TabsHeaderProps {
3
3
  tabs: string[];
4
4
  tabsKey: string;
5
- }>;
5
+ type?: "code";
6
+ }
7
+ export declare const TabsHeader: React.FC<TabsHeaderProps>;
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/tabs/tabs-header/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqBpE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/tabs/tabs-header/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyBhD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  'use client';
2
- import e from"react";import{saveTab as t}from"../../../../core/utils/tabs-store.js";const a=({tabs:a,tabsKey:s})=>e.createElement("div",{className:"r-tabs-header"},a.map((a=>e.createElement("div",{key:a,className:`r-tab-header r-tab-header_${a}`,onClick:()=>(e=>{Array.from(document.documentElement.classList).forEach((e=>{e.startsWith(`r-tabs-global__${s}`)&&document.documentElement.classList.remove(e)})),document.documentElement.classList.add(`r-tabs-global__${s}`,`r-tabs-global__${s}_${e}`),t(s,e)})(a)},a))));export{a as TabsHeader};
2
+ import e from"react";import t from"clsx";import{saveTab as a}from"../../../../core/utils/tabs-store.js";const r={code:"r-tab-header-code"},s=({tabs:s,tabsKey:o,type:m})=>e.createElement("div",{className:"r-tabs-header"},s.map((s=>e.createElement("div",{key:s,className:t(`r-tab-header r-tab-header_${s}`,m&&r[m]),onClick:()=>(e=>{Array.from(document.documentElement.classList).forEach((e=>{e.startsWith(`r-tabs-global__${o}`)&&document.documentElement.classList.remove(e)})),document.documentElement.classList.add(`r-tabs-global__${o}`,`r-tabs-global__${o}_${e}`),a(o,e)})(s)},s))));export{s as TabsHeader};
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/ui/tabs/tabs-header/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { saveTab } from \"@src/core/utils/tabs-store\";\n\nexport const TabsHeader: React.FC<{ tabs: string[]; tabsKey: string }> = ({ tabs, tabsKey }) => {\n const changeTabHandler = (tab: string) => {\n const classNames = Array.from(document.documentElement.classList);\n classNames.forEach((className) => {\n if (className.startsWith(`r-tabs-global__${tabsKey}`)) {\n document.documentElement.classList.remove(className);\n }\n });\n document.documentElement.classList.add(`r-tabs-global__${tabsKey}`, `r-tabs-global__${tabsKey}_${tab}`);\n saveTab(tabsKey, tab);\n };\n\n return (\n <div className=\"r-tabs-header\">\n {tabs.map((tab) => (\n <div key={tab} className={`r-tab-header r-tab-header_${tab}`} onClick={() => changeTabHandler(tab)}>\n {tab}\n </div>\n ))}\n </div>\n );\n};\n"],"names":["TabsHeader","tabs","tabsKey","React","createElement","className","map","tab","key","onClick","Array","from","document","documentElement","classList","forEach","startsWith","remove","add","saveTab","changeTabHandler"],"mappings":";8CAKa,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,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAA,CAA4D,CAAA,CAAA,CAAGC,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAa1EC,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACVJ,CAAKK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CACPJ,CAAAA,CAAAA,CAAAA,CAAKC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAI,CAAAA,CAAAA,CAAAA,CAAKD,CAAKF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAA6BE,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,CAAAA,CAAAA,CAAOE,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAd1D,CAACF,CACHG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAgBC,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,CAC5CC,CAASV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZA,CAAUW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAkBd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvCU,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBC,CAAUG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOZ,CAC9C,CAAA,CAAA,CAAA,CAAA,CAEJO,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBC,CAAUI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAkBhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAkBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWK,CACjGY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQjB,CAASK,CAAAA,CAAAA,CAAI,CAMgEa,CAAAA,CAAiBb,IACzFA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/ui/tabs/tabs-header/index.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport clsx from \"clsx\";\nimport { saveTab } from \"@src/core/utils/tabs-store\";\n\nexport interface TabsHeaderProps {\n tabs: string[];\n tabsKey: string;\n type?: \"code\";\n}\n\nconst typeClassNames = {\n code: \"r-tab-header-code\",\n};\n\nexport const TabsHeader: React.FC<TabsHeaderProps> = ({ tabs, tabsKey, type }) => {\n const changeTabHandler = (tab: string) => {\n const classNames = Array.from(document.documentElement.classList);\n classNames.forEach((className) => {\n if (className.startsWith(`r-tabs-global__${tabsKey}`)) {\n document.documentElement.classList.remove(className);\n }\n });\n document.documentElement.classList.add(`r-tabs-global__${tabsKey}`, `r-tabs-global__${tabsKey}_${tab}`);\n saveTab(tabsKey, tab);\n };\n\n return (\n <div className=\"r-tabs-header\">\n {tabs.map((tab) => (\n <div\n key={tab}\n className={clsx(`r-tab-header r-tab-header_${tab}`, type && typeClassNames[type])}\n onClick={() => changeTabHandler(tab)}\n >\n {tab}\n </div>\n ))}\n </div>\n );\n};\n"],"names":["typeClassNames","code","TabsHeader","tabs","tabsKey","type","React","createElement","className","map","tab","key","clsx","onClick","Array","from","document","documentElement","classList","forEach","startsWith","remove","add","saveTab","changeTabHandler"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import "./tooltip.scss";
3
+ export type TooltipProps = React.PropsWithChildren<{
4
+ className?: string;
5
+ position: keyof typeof positionClassNames;
6
+ visible?: boolean;
7
+ }>;
8
+ declare const positionClassNames: {
9
+ "bottom-start": string;
10
+ "bottom-end": string;
11
+ };
12
+ export declare const Tooltip: React.FC<TooltipProps>;
13
+ export {};
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tooltip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,OAAO,kBAAkB,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;CAGvB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAI1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ import t from"react";import o from"clsx";const e={"bottom-start":"_bottom-start","bottom-end":"_bottom-end"},s=({className:s,position:m,children:r,visible:i})=>t.createElement("span",{className:o("r-tooltip",e[m],i&&"_visible",s)},r);export{s as Tooltip};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/ui/tooltip/index.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./tooltip.scss\";\n\nexport type TooltipProps = React.PropsWithChildren<{\n className?: string;\n position: keyof typeof positionClassNames;\n visible?: boolean;\n}>;\n\nconst positionClassNames = {\n \"bottom-start\": \"_bottom-start\",\n \"bottom-end\": \"_bottom-end\",\n};\n\nexport const Tooltip: React.FC<TooltipProps> = ({ className, position, children, visible }) => (\n <span className={clsx(\"r-tooltip\", positionClassNames[position], visible && \"_visible\", className)}>\n {children}\n </span>\n);\n"],"names":["positionClassNames","Tooltip","className","position","children","visible","React","createElement","clsx"],"mappings":"yCAWA,MAAMA,EAAqB,CACvB,eAAgB,gBAChB,aAAc,eAGLC,EAAkC,EAAGC,YAAWC,WAAUC,WAAUC,aAC7EC,EAAMC,cAAA,OAAA,CAAAL,UAAWM,EAAK,YAAaR,EAAmBG,GAAWE,GAAW,WAAYH,IACnFE"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-structure.d.ts","sourceRoot":"","sources":["../../../src/core/utils/parse-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AAyOxE,eAAO,MAAM,cAAc,UAChB,OAAO,EAAE,GAAG,MAAM,wBACJ,aAAa,8BAExB,MAAM,iBACF,MAAM;WA5Eb,KAAK;UACN,QAAQ,EAAE;EAoFnB,CAAC"}
1
+ {"version":3,"file":"parse-structure.d.ts","sourceRoot":"","sources":["../../../src/core/utils/parse-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yCAAyC,CAAC;AA2OxE,eAAO,MAAM,cAAc,UAChB,OAAO,EAAE,GAAG,MAAM,wBACJ,aAAa,8BAExB,MAAM,iBACF,MAAM;WA5Eb,KAAK;UACN,QAAQ,EAAE;EAoFnB,CAAC"}
@@ -1,2 +1,2 @@
1
- import{getConfiguration as t}from"./get-configuration.js";import{getMeta as e}from"./get-meta.js";import{normalizePathname as r,generatePseudoTitle as i}from"./path-tools.js";import{loadContent as a}from"./load-content.js";const s=async(t={},o=[],n="",c)=>{const u={},p=[];if(!t.provider)return{pages:u,tree:p};const f=await t.provider.filesPromise;if(f.structures.includes(`${n}/structure.json`)){const e=await(async(t={},e="",i=[],o)=>{const n={},c=[];if(!t.provider)return{pages:n,tree:c};if((await t.provider.filesPromise).structures.includes(`${e}/structure.json`)){const u=await a(`${e}/structure.json`,t.provider);try{const a=JSON.parse(u.data);for(const u in a){const p=a[u],f=r("index"===u?e:e+"/"+u),h=(t.basePath||"")+f,g=r(h),l=await(t.provider?.getPageSourcePathname(f,g));let d;if(l&&(n[g]={title:p.title,uri:f,configuration:t,origPath:l,crumbs:i}),"index"!==u){const e=await s(t,[...i,g],f,o+1);d=e.tree,Object.assign(n,e.pages)}c.push({title:p.title,href:g,items:d,type:"row"})}}catch{throw new Error(`Can't parse structure "${e}/structure.json"`)}return{pages:n,tree:c}}})(t,n,o,c+1);if(e)return e}for await(const a of f.docs){const f=a.clientPath.split("/").filter(Boolean).length;if(!n&&!(f<2)||n&&!a.clientPath.match(new RegExp(`^${n.replace(/\/$/,"")}/[^/]+$`)))continue;const{clientPath:h}=a,g=(t.basePath||"")+h,l=r(g),d=(await e({provider:t.provider,uri:h})).title||i(l),m=await(t.provider?.getPageSourcePathname(h,l));m&&(u[l]={title:d,uri:h,configuration:t,origPath:m,crumbs:o});const w=await s(t,[...o,l],h,c+1);Object.assign(u,w.pages),c<(t.spreadedLevel||1)?p.push({title:d,href:l,type:0===c?"heading":"row"},...w.tree):p.push({title:d,href:l,items:w.tree,type:0===c?"heading":"row"})}return{pages:u,tree:p}},o=async(e,a={},n=[],c="",u=0)=>{if("auto"===e){return await s(a,n,c,u)}const p=await(async(e,a={},s=[],n,c)=>{const u={},p=[];for await(const f of e){if("string"==typeof f){const t=await o(f,a,s,n,c);Object.assign(u,t.pages),p.push(...t.tree);continue}let e=s;const h=t(f.configuration||{},a),g=f.href,l=g&&h.basePath?h.basePath+g:g,d=r(l);if(g){const t=await(h.provider?.getPageSourcePathname(g,d));t&&(u[d]={title:f.title||"",uri:g,configuration:h,origPath:t,crumbs:s},e=[...s,d])}let m=[];if(f.items){const t=await o(f.items,h,e,f.href,c+1);m=t.tree,Object.assign(u,t.pages)}f.hidden||(c<(a.spreadedLevel||1)?p.push({title:f.title||i(d),href:f.href?d:void 0,type:f.type},...m):p.push({title:f.title||i(d),href:f.href?d:void 0,items:m,type:f.type}))}return{pages:u,tree:p}})(e,a,n,c,u);return p};export{o as parseStructure};
1
+ import{getConfiguration as t}from"./get-configuration.js";import{getMeta as e}from"./get-meta.js";import{mergePathname as r,normalizePathname as i,generatePseudoTitle as a,checkIsLinkExternal as s}from"./path-tools.js";import{loadContent as o}from"./load-content.js";const n=async(t={},c=[],u="",p)=>{const f={},h=[];if(!t.provider)return{pages:f,tree:h};const g=await t.provider.filesPromise;if(g.structures.includes(`${u}/structure.json`)){const e=await(async(t={},e="",a=[],c)=>{const u={},p=[];if(!t.provider)return{pages:u,tree:p};if((await t.provider.filesPromise).structures.includes(`${e}/structure.json`)){const f=await o(`${e}/structure.json`,t.provider);try{const o=JSON.parse(f.data);for(const f in o){const h=o[f],g=i("index"===f?e:e+"/"+f),l=r(t.basePath,g),d=i(l);if(!s(d)){const e=await(t.provider?.getPageSourcePathname(g,d));e&&(u[d]={title:h.title,uri:g,configuration:t,origPath:e,crumbs:a})}let m;if("index"!==f){const e=await n(t,[...a,d],g,c+1);m=e.tree,Object.assign(u,e.pages)}p.push({title:h.title,href:d,items:m,type:"row"})}}catch{throw new Error(`Can't parse structure "${e}/structure.json"`)}return{pages:u,tree:p}}})(t,u,c,p+1);if(e)return e}for await(const s of g.docs){const o=s.clientPath.split("/").filter(Boolean).length;if(!u&&!(o<2)||u&&!s.clientPath.match(new RegExp(`^${u.replace(/\/$/,"")}/[^/]+$`)))continue;const{clientPath:g}=s,l=r(t.basePath,g),d=i(l),m=(await e({provider:t.provider,uri:g})).title||a(d),w=await(t.provider?.getPageSourcePathname(g,d));w&&(f[d]={title:m,uri:g,configuration:t,origPath:w,crumbs:c});const P=await n(t,[...c,d],g,p+1);Object.assign(f,P.pages),p<(t.spreadedLevel||1)?h.push({title:m,href:d,type:0===p?"heading":"row"},...P.tree):h.push({title:m,href:d,items:P.tree,type:0===p?"heading":"row"})}return{pages:f,tree:h}},c=async(e,o={},u=[],p="",f=0)=>{if("auto"===e){return await n(o,u,p,f)}const h=await(async(e,o={},n=[],u,p)=>{const f={},h=[];for await(const g of e){if("string"==typeof g){const t=await c(g,o,n,u,p);Object.assign(f,t.pages),h.push(...t.tree);continue}let e=n;const l=t(g.configuration||{},o),d=g.href,m=r(l.basePath,d),w=i(m);if(!s(w)&&d){const t=await(l.provider?.getPageSourcePathname(d,w));t&&(f[w]={title:g.title||"",uri:d,configuration:l,origPath:t,crumbs:n},e=[...n,w])}let P=[];if(g.items){const t=await c(g.items,l,e,g.href,p+1);P=t.tree,Object.assign(f,t.pages)}g.hidden||(p<(o.spreadedLevel||1)?h.push({title:g.title||a(w),href:g.href?w:void 0,type:g.type},...P):h.push({title:g.title||a(w),href:g.href?w:void 0,items:P,type:g.type}))}return{pages:f,tree:h}})(e,o,u,p,f);return h};export{c as parseStructure};
2
2
  //# sourceMappingURL=parse-structure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-structure.js","sources":["../../../src/core/utils/parse-structure.ts"],"sourcesContent":["import { type DocItem } from \"../types/structure\";\nimport { type Pages, type Crumbs, type Configuration } from \"../types/content\";\nimport { type TreeItem } from \"../../components/elements/sidebar/types\";\nimport { getConfiguration } from \"./get-configuration\";\nimport { getMeta } from \"./get-meta\";\nimport { generatePseudoTitle, normalizePathname } from \"./path-tools\";\nimport { loadContent } from \"./load-content\";\n\nconst parseJSONStructure = async (\n parentConfiguration: Configuration = {},\n parentPathname = \"\",\n crumbs: Crumbs = [],\n nestingLevel: number,\n) => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n if (!parentConfiguration.provider) return { pages, tree };\n\n const branchFiles = await parentConfiguration.provider.filesPromise;\n\n if (branchFiles.structures.includes(`${parentPathname}/structure.json`)) {\n const content = await loadContent(`${parentPathname}/structure.json`, parentConfiguration.provider);\n try {\n const structure: { [segment: string]: { title: string } } = JSON.parse(content.data);\n for (const segment in structure) {\n const data = structure[segment];\n const clientPath = normalizePathname(\n segment === \"index\" ? parentPathname : parentPathname + \"/\" + segment,\n );\n const pathname = (parentConfiguration.basePath || \"\") + clientPath;\n const pathnameNormalized = normalizePathname(pathname);\n\n const origPath = await parentConfiguration.provider?.getPageSourcePathname(\n clientPath,\n pathnameNormalized,\n );\n if (origPath) {\n pages[pathnameNormalized] = {\n title: data.title,\n uri: clientPath,\n configuration: parentConfiguration,\n origPath,\n crumbs,\n };\n }\n\n let subTree: TreeItem[] | undefined;\n if (segment !== \"index\") {\n const subItemsData = await parseAutoStructure(\n parentConfiguration,\n [...crumbs, pathnameNormalized],\n clientPath,\n nestingLevel + 1,\n );\n subTree = subItemsData.tree;\n Object.assign(pages, subItemsData.pages);\n }\n\n tree.push({\n title: data.title,\n href: pathnameNormalized,\n items: subTree,\n type: \"row\",\n });\n }\n } catch {\n throw new Error(`Can't parse structure \"${parentPathname}/structure.json\"`);\n }\n return { pages, tree };\n }\n};\n\nconst parseAutoStructure = async (\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n parentPathname = \"\",\n nestingLevel: number,\n) => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n if (!parentConfiguration.provider) return { pages, tree };\n\n const branchFiles = await parentConfiguration.provider.filesPromise;\n\n if (branchFiles.structures.includes(`${parentPathname}/structure.json`)) {\n const jsonStructureData = await parseJSONStructure(\n parentConfiguration,\n parentPathname,\n crumbs,\n nestingLevel + 1,\n );\n if (jsonStructureData) {\n return jsonStructureData;\n }\n }\n\n for await (const generatedItem of branchFiles.docs) {\n const linkLevel = generatedItem.clientPath.split(\"/\").filter(Boolean).length;\n const topLevelLink = linkLevel < 2;\n\n if (\n (!parentPathname && !topLevelLink) ||\n (parentPathname &&\n !generatedItem.clientPath.match(new RegExp(`^${parentPathname.replace(/\\/$/, \"\")}/[^/]+$`)))\n ) {\n continue;\n }\n\n const { clientPath } = generatedItem;\n const pathname = (parentConfiguration.basePath || \"\") + clientPath;\n const pathnameNormalized = normalizePathname(pathname);\n\n const meta = await getMeta({ provider: parentConfiguration.provider, uri: clientPath });\n const title = meta.title || generatePseudoTitle(pathnameNormalized);\n const origPath = await parentConfiguration.provider?.getPageSourcePathname(clientPath, pathnameNormalized);\n if (origPath) {\n pages[pathnameNormalized] = {\n title,\n uri: clientPath,\n configuration: parentConfiguration,\n origPath,\n crumbs,\n };\n }\n\n const subItemsData = await parseAutoStructure(\n parentConfiguration,\n [...crumbs, pathnameNormalized],\n clientPath,\n nestingLevel + 1,\n );\n Object.assign(pages, subItemsData.pages);\n\n if (nestingLevel < (parentConfiguration.spreadedLevel || 1)) {\n tree.push(\n {\n title,\n href: pathnameNormalized,\n type: nestingLevel === 0 ? \"heading\" : \"row\",\n },\n ...subItemsData.tree,\n );\n } else {\n tree.push({\n title,\n href: pathnameNormalized,\n items: subItemsData.tree,\n type: nestingLevel === 0 ? \"heading\" : \"row\",\n });\n }\n }\n\n return { pages, tree };\n};\n\nconst parseStaticStructure = async (\n items: DocItem[],\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n parentPathname: string,\n nestingLevel: number,\n): Promise<{\n pages: Pages;\n tree: TreeItem[];\n}> => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n for await (const item of items) {\n if (typeof item === \"string\") {\n const subItemsData = await parseStructure(item, parentConfiguration, crumbs, parentPathname, nestingLevel);\n Object.assign(pages, subItemsData.pages);\n tree.push(...subItemsData.tree);\n continue;\n }\n let subCrumbs = crumbs;\n const configuration = getConfiguration(item.configuration || {}, parentConfiguration);\n const clientPath = item.href;\n const pathname = clientPath && configuration.basePath ? configuration.basePath + clientPath : clientPath;\n const pathnameNormalized = normalizePathname(pathname);\n\n if (clientPath) {\n const origPath = await configuration.provider?.getPageSourcePathname(clientPath, pathnameNormalized);\n\n if (origPath) {\n pages[pathnameNormalized] = {\n title: item.title || \"\",\n uri: clientPath,\n configuration,\n origPath,\n crumbs,\n };\n subCrumbs = [...crumbs, pathnameNormalized];\n }\n }\n\n let subTree: TreeItem[] = [];\n if (item.items) {\n const subItemsData = await parseStructure(\n item.items,\n configuration,\n subCrumbs,\n item.href,\n nestingLevel + 1,\n );\n subTree = subItemsData.tree;\n Object.assign(pages, subItemsData.pages);\n }\n\n if (!item.hidden) {\n if (nestingLevel < (parentConfiguration.spreadedLevel || 1)) {\n tree.push(\n {\n title: item.title || generatePseudoTitle(pathnameNormalized),\n href: item.href ? pathnameNormalized : undefined,\n type: item.type,\n },\n ...subTree,\n );\n } else {\n tree.push({\n title: item.title || generatePseudoTitle(pathnameNormalized),\n href: item.href ? pathnameNormalized : undefined,\n items: subTree,\n type: item.type,\n });\n }\n }\n }\n\n return { pages, tree };\n};\n\nexport const parseStructure = async (\n items: DocItem[] | \"auto\",\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n pathname: string = \"\",\n nestingLevel: number = 0,\n) => {\n if (items === \"auto\") {\n const structureData = await parseAutoStructure(parentConfiguration, crumbs, pathname, nestingLevel);\n return structureData;\n }\n\n const structureData = await parseStaticStructure(items, parentConfiguration, crumbs, pathname, nestingLevel);\n return structureData;\n};\n"],"names":["parseAutoStructure","async","parentConfiguration","crumbs","parentPathname","nestingLevel","pages","tree","provider","branchFiles","filesPromise","structures","includes","jsonStructureData","content","loadContent","structure","JSON","parse","data","segment","clientPath","normalizePathname","pathname","basePath","pathnameNormalized","origPath","getPageSourcePathname","subTree","title","uri","configuration","subItemsData","Object","assign","push","href","items","type","Error","parseJSONStructure","generatedItem","docs","linkLevel","split","filter","Boolean","length","match","RegExp","replace","getMeta","generatePseudoTitle","spreadedLevel","parseStructure","structureData","item","subCrumbs","getConfiguration","hidden","undefined","parseStaticStructure"],"mappings":"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"}
1
+ {"version":3,"file":"parse-structure.js","sources":["../../../src/core/utils/parse-structure.ts"],"sourcesContent":["import { type DocItem } from \"../types/structure\";\nimport { type Pages, type Crumbs, type Configuration } from \"../types/content\";\nimport { type TreeItem } from \"../../components/elements/sidebar/types\";\nimport { getConfiguration } from \"./get-configuration\";\nimport { getMeta } from \"./get-meta\";\nimport { generatePseudoTitle, checkIsLinkExternal, mergePathname, normalizePathname } from \"./path-tools\";\nimport { loadContent } from \"./load-content\";\n\nconst parseJSONStructure = async (\n parentConfiguration: Configuration = {},\n parentPathname = \"\",\n crumbs: Crumbs = [],\n nestingLevel: number,\n) => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n if (!parentConfiguration.provider) return { pages, tree };\n\n const branchFiles = await parentConfiguration.provider.filesPromise;\n\n if (branchFiles.structures.includes(`${parentPathname}/structure.json`)) {\n const content = await loadContent(`${parentPathname}/structure.json`, parentConfiguration.provider);\n try {\n const structure: { [segment: string]: { title: string } } = JSON.parse(content.data);\n for (const segment in structure) {\n const data = structure[segment];\n const clientPath = normalizePathname(\n segment === \"index\" ? parentPathname : parentPathname + \"/\" + segment,\n );\n const pathname = mergePathname(parentConfiguration.basePath, clientPath);\n const pathnameNormalized = normalizePathname(pathname);\n\n if (!checkIsLinkExternal(pathnameNormalized)) {\n const origPath = await parentConfiguration.provider?.getPageSourcePathname(\n clientPath,\n pathnameNormalized,\n );\n if (origPath) {\n pages[pathnameNormalized] = {\n title: data.title,\n uri: clientPath,\n configuration: parentConfiguration,\n origPath,\n crumbs,\n };\n }\n }\n\n let subTree: TreeItem[] | undefined;\n if (segment !== \"index\") {\n const subItemsData = await parseAutoStructure(\n parentConfiguration,\n [...crumbs, pathnameNormalized],\n clientPath,\n nestingLevel + 1,\n );\n subTree = subItemsData.tree;\n Object.assign(pages, subItemsData.pages);\n }\n\n tree.push({\n title: data.title,\n href: pathnameNormalized,\n items: subTree,\n type: \"row\",\n });\n }\n } catch {\n throw new Error(`Can't parse structure \"${parentPathname}/structure.json\"`);\n }\n return { pages, tree };\n }\n};\n\nconst parseAutoStructure = async (\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n parentPathname = \"\",\n nestingLevel: number,\n) => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n if (!parentConfiguration.provider) return { pages, tree };\n\n const branchFiles = await parentConfiguration.provider.filesPromise;\n\n if (branchFiles.structures.includes(`${parentPathname}/structure.json`)) {\n const jsonStructureData = await parseJSONStructure(\n parentConfiguration,\n parentPathname,\n crumbs,\n nestingLevel + 1,\n );\n if (jsonStructureData) {\n return jsonStructureData;\n }\n }\n\n for await (const generatedItem of branchFiles.docs) {\n const linkLevel = generatedItem.clientPath.split(\"/\").filter(Boolean).length;\n const topLevelLink = linkLevel < 2;\n\n if (\n (!parentPathname && !topLevelLink) ||\n (parentPathname &&\n !generatedItem.clientPath.match(new RegExp(`^${parentPathname.replace(/\\/$/, \"\")}/[^/]+$`)))\n ) {\n continue;\n }\n\n const { clientPath } = generatedItem;\n const pathname = mergePathname(parentConfiguration.basePath, clientPath);\n const pathnameNormalized = normalizePathname(pathname);\n\n const meta = await getMeta({ provider: parentConfiguration.provider, uri: clientPath });\n const title = meta.title || generatePseudoTitle(pathnameNormalized);\n const origPath = await parentConfiguration.provider?.getPageSourcePathname(clientPath, pathnameNormalized);\n if (origPath) {\n pages[pathnameNormalized] = {\n title,\n uri: clientPath,\n configuration: parentConfiguration,\n origPath,\n crumbs,\n };\n }\n\n const subItemsData = await parseAutoStructure(\n parentConfiguration,\n [...crumbs, pathnameNormalized],\n clientPath,\n nestingLevel + 1,\n );\n Object.assign(pages, subItemsData.pages);\n\n if (nestingLevel < (parentConfiguration.spreadedLevel || 1)) {\n tree.push(\n {\n title,\n href: pathnameNormalized,\n type: nestingLevel === 0 ? \"heading\" : \"row\",\n },\n ...subItemsData.tree,\n );\n } else {\n tree.push({\n title,\n href: pathnameNormalized,\n items: subItemsData.tree,\n type: nestingLevel === 0 ? \"heading\" : \"row\",\n });\n }\n }\n\n return { pages, tree };\n};\n\nconst parseStaticStructure = async (\n items: DocItem[],\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n parentPathname: string,\n nestingLevel: number,\n): Promise<{\n pages: Pages;\n tree: TreeItem[];\n}> => {\n const pages: Pages = {};\n const tree: TreeItem[] = [];\n\n for await (const item of items) {\n if (typeof item === \"string\") {\n const subItemsData = await parseStructure(item, parentConfiguration, crumbs, parentPathname, nestingLevel);\n Object.assign(pages, subItemsData.pages);\n tree.push(...subItemsData.tree);\n continue;\n }\n let subCrumbs = crumbs;\n const configuration = getConfiguration(item.configuration || {}, parentConfiguration);\n const clientPath = item.href;\n const pathname = mergePathname(configuration.basePath, clientPath);\n const pathnameNormalized = normalizePathname(pathname);\n\n if (!checkIsLinkExternal(pathnameNormalized) && clientPath) {\n const origPath = await configuration.provider?.getPageSourcePathname(clientPath, pathnameNormalized);\n\n if (origPath) {\n pages[pathnameNormalized] = {\n title: item.title || \"\",\n uri: clientPath,\n configuration,\n origPath,\n crumbs,\n };\n subCrumbs = [...crumbs, pathnameNormalized];\n }\n }\n\n let subTree: TreeItem[] = [];\n if (item.items) {\n const subItemsData = await parseStructure(\n item.items,\n configuration,\n subCrumbs,\n item.href,\n nestingLevel + 1,\n );\n subTree = subItemsData.tree;\n Object.assign(pages, subItemsData.pages);\n }\n\n if (!item.hidden) {\n if (nestingLevel < (parentConfiguration.spreadedLevel || 1)) {\n tree.push(\n {\n title: item.title || generatePseudoTitle(pathnameNormalized),\n href: item.href ? pathnameNormalized : undefined,\n type: item.type,\n },\n ...subTree,\n );\n } else {\n tree.push({\n title: item.title || generatePseudoTitle(pathnameNormalized),\n href: item.href ? pathnameNormalized : undefined,\n items: subTree,\n type: item.type,\n });\n }\n }\n }\n\n return { pages, tree };\n};\n\nexport const parseStructure = async (\n items: DocItem[] | \"auto\",\n parentConfiguration: Configuration = {},\n crumbs: Crumbs = [],\n pathname: string = \"\",\n nestingLevel: number = 0,\n) => {\n if (items === \"auto\") {\n const structureData = await parseAutoStructure(parentConfiguration, crumbs, pathname, nestingLevel);\n return structureData;\n }\n\n const structureData = await parseStaticStructure(items, parentConfiguration, crumbs, pathname, nestingLevel);\n return structureData;\n};\n"],"names":["parseAutoStructure","async","parentConfiguration","crumbs","parentPathname","nestingLevel","pages","tree","provider","branchFiles","filesPromise","structures","includes","jsonStructureData","content","loadContent","structure","JSON","parse","data","segment","clientPath","normalizePathname","pathname","mergePathname","basePath","pathnameNormalized","checkIsLinkExternal","origPath","getPageSourcePathname","title","uri","configuration","subTree","subItemsData","Object","assign","push","href","items","type","Error","parseJSONStructure","generatedItem","docs","linkLevel","split","filter","Boolean","length","match","RegExp","replace","getMeta","generatePseudoTitle","spreadedLevel","parseStructure","structureData","item","subCrumbs","getConfiguration","hidden","undefined","parseStaticStructure"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export declare const getFileUrl: (path: string) => string;
2
2
  export declare const normalizePathname: (path?: string | null) => string;
3
3
  export declare const generatePseudoTitle: (path?: string | null) => string;
4
+ export declare const checkIsLinkExternal: (href: string) => boolean;
5
+ export declare const mergePathname: (basePath?: string, href?: string) => string | undefined;
4
6
  //# sourceMappingURL=path-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-tools.d.ts","sourceRoot":"","sources":["../../../src/core/utils/path-tools.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,SAAU,MAAM,WAMtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,GAAG,IAAI,WAIrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW,MAAM,GAAG,IAAI,WASvD,CAAC"}
1
+ {"version":3,"file":"path-tools.d.ts","sourceRoot":"","sources":["../../../src/core/utils/path-tools.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,SAAU,MAAM,WAMtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,GAAG,IAAI,WAIrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW,MAAM,GAAG,IAAI,WASvD,CAAC;AAEF,eAAO,MAAM,mBAAmB,SAAU,MAAM,YAG/C,CAAC;AAEF,eAAO,MAAM,aAAa,cAAe,MAAM,SAAS,MAAM,uBAE7D,CAAC"}
@@ -1,2 +1,2 @@
1
- const e=e=>{const[,t,n]=e.match(/(?:^|\/)([^/]+)(\.mdx?)$/)||[];return e.replace(new RegExp(`((/|^)(readme|README|index|${t}/${t}))?${n}$`),"")},t=e=>e&&e.replace(/\/$/,"")||"/",n=e=>{const n=t(e).split("/").filter(Boolean);if(0===n.length)return"Index";return n[n.length-1].split("-").map((e=>e[0].toUpperCase()+e.substring(1))).join(" ")};export{n as generatePseudoTitle,e as getFileUrl,t as normalizePathname};
1
+ const e=e=>{const[,t,n]=e.match(/(?:^|\/)([^/]+)(\.mdx?)$/)||[];return e.replace(new RegExp(`((/|^)(readme|README|index|${t}/${t}))?${n}$`),"")},t=e=>e&&e.replace(/\/$/,"")||"/",n=e=>{const n=t(e).split("/").filter(Boolean);if(0===n.length)return"Index";return n[n.length-1].split("-").map((e=>e[0].toUpperCase()+e.substring(1))).join(" ")},r=e=>"r"!==new URL(e,"http://r").host,p=(e,t)=>!t||r(t)?t:(e||"")+t;export{r as checkIsLinkExternal,n as generatePseudoTitle,e as getFileUrl,p as mergePathname,t as normalizePathname};
2
2
  //# sourceMappingURL=path-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-tools.js","sources":["../../../src/core/utils/path-tools.ts"],"sourcesContent":["export const getFileUrl = (path: string) => {\n const [, filename, ext] = path.match(/(?:^|\\/)([^/]+)(\\.mdx?)$/) || [];\n\n const clientPath = path.replace(new RegExp(`((\\/|^)(readme|README|index|${filename}/${filename}))?${ext}$`), \"\");\n\n return clientPath;\n};\n\nexport const normalizePathname = (path?: string | null) => {\n if (!path) return \"/\";\n\n return path.replace(/\\/$/, \"\") || \"/\";\n};\n\nexport const generatePseudoTitle = (path?: string | null) => {\n const pathname = normalizePathname(path);\n const pathnameSegments = pathname.split(\"/\").filter(Boolean);\n\n if (pathnameSegments.length === 0) return \"Index\";\n\n const lastSegment = pathnameSegments[pathnameSegments.length - 1];\n const lastSegmentWords = lastSegment.split(\"-\");\n return lastSegmentWords.map((word) => word[0].toUpperCase() + word.substring(1)).join(\" \");\n};\n"],"names":["getFileUrl","path","filename","ext","match","replace","RegExp","normalizePathname","generatePseudoTitle","pathnameSegments","split","filter","Boolean","length","map","word","toUpperCase","substring","join"],"mappings":"AAAa,MAAAA,EAAcC,IACvB,MAAM,CAAGC,EAAUC,GAAOF,EAAKG,MAAM,6BAA+B,GAIpE,OAFmBH,EAAKI,QAAQ,IAAIC,OAAO,8BAA+BJ,KAAYA,OAAcC,MAAS,GAE5F,EAGRI,EAAqBN,GACzBA,GAEEA,EAAKI,QAAQ,MAAO,KAFT,IAKTG,EAAuBP,IAChC,MACMQ,EADWF,EAAkBN,GACDS,MAAM,KAAKC,OAAOC,SAEpD,GAAgC,IAA5BH,EAAiBI,OAAc,MAAO,QAI1C,OAFoBJ,EAAiBA,EAAiBI,OAAS,GAC1BH,MAAM,KACnBI,KAAKC,GAASA,EAAK,GAAGC,cAAgBD,EAAKE,UAAU,KAAIC,KAAK,IAAI"}
1
+ {"version":3,"file":"path-tools.js","sources":["../../../src/core/utils/path-tools.ts"],"sourcesContent":["export const getFileUrl = (path: string) => {\n const [, filename, ext] = path.match(/(?:^|\\/)([^/]+)(\\.mdx?)$/) || [];\n\n const clientPath = path.replace(new RegExp(`((\\/|^)(readme|README|index|${filename}/${filename}))?${ext}$`), \"\");\n\n return clientPath;\n};\n\nexport const normalizePathname = (path?: string | null) => {\n if (!path) return \"/\";\n\n return path.replace(/\\/$/, \"\") || \"/\";\n};\n\nexport const generatePseudoTitle = (path?: string | null) => {\n const pathname = normalizePathname(path);\n const pathnameSegments = pathname.split(\"/\").filter(Boolean);\n\n if (pathnameSegments.length === 0) return \"Index\";\n\n const lastSegment = pathnameSegments[pathnameSegments.length - 1];\n const lastSegmentWords = lastSegment.split(\"-\");\n return lastSegmentWords.map((word) => word[0].toUpperCase() + word.substring(1)).join(\" \");\n};\n\nexport const checkIsLinkExternal = (href: string) => {\n const url = new URL(href, \"http://r\");\n return url.host !== \"r\";\n};\n\nexport const mergePathname = (basePath?: string, href?: string) => {\n return !href || checkIsLinkExternal(href) ? href : (basePath || \"\") + href;\n};\n"],"names":["getFileUrl","path","filename","ext","match","replace","RegExp","normalizePathname","generatePseudoTitle","pathnameSegments","split","filter","Boolean","length","map","word","toUpperCase","substring","join","checkIsLinkExternal","href","URL","host","mergePathname","basePath"],"mappings":"AAAa,MAAAA,EAAcC,IACvB,MAAM,CAAGC,EAAUC,GAAOF,EAAKG,MAAM,6BAA+B,GAIpE,OAFmBH,EAAKI,QAAQ,IAAIC,OAAO,8BAA+BJ,KAAYA,OAAcC,MAAS,GAE5F,EAGRI,EAAqBN,GACzBA,GAEEA,EAAKI,QAAQ,MAAO,KAFT,IAKTG,EAAuBP,IAChC,MACMQ,EADWF,EAAkBN,GACDS,MAAM,KAAKC,OAAOC,SAEpD,GAAgC,IAA5BH,EAAiBI,OAAc,MAAO,QAI1C,OAFoBJ,EAAiBA,EAAiBI,OAAS,GAC1BH,MAAM,KACnBI,KAAKC,GAASA,EAAK,GAAGC,cAAgBD,EAAKE,UAAU,KAAIC,KAAK,IAAI,EAGjFC,EAAuBC,GAEZ,MADR,IAAIC,IAAID,EAAM,YACfE,KAGFC,EAAgB,CAACC,EAAmBJ,KACrCA,GAAQD,EAAoBC,GAAQA,GAAQI,GAAY,IAAMJ"}
package/lib/styles.css CHANGED
@@ -1,3 +1,3 @@
1
- :root{overflow:hidden;--accent50: #fff7ed;--accent100: #ffedd5;--accent200: #fed7aa;--accent300: #fdba74;--accent400: #fb923c;--accent500: #f97316;--accent600: #ea580c;--accent700: #c2410c;--accent800: #9a3412;--accent900: #7c2d12;--accent950: #27130d}body{--header-height: 60px;position:relative;padding:0;margin:0;accent-color:var(--primary600, #ea580c);box-sizing:border-box;background-color:var(--body);color:var(--neutral950);height:100vh;overflow:hidden auto;scroll-padding-top:calc(var(--header-height) + 20px);scrollbar-color:var(--neutral400) var(--neutral200)}@media screen and (width < 768px){body{scroll-padding-top:calc(var(--header-height) + 60px)}}@media screen and (width > 1180px){body{scroll-behavior:smooth;scrollbar-gutter:stable}}*,*:before,*:after{box-sizing:inherit}@media(prefers-reduced-motion: reduce){*,::before,::after{animation-delay:-1ms !important;animation-duration:1ms !important;animation-iteration-count:1 !important;background-attachment:initial !important;scroll-behavior:auto !important;transition-duration:1ms !important;transition-delay:-1ms !important}}svg{display:block}@media screen and (width < 768px){.body-mobile-lock{overflow:hidden}}@media screen and (width < 1024px){.body-tablet-lock{overflow:hidden}}.body-lock{overflow:hidden}.theme-light{color-scheme:light;--body: #ffffff;--neutral50: #f8fafc;--neutral100: #f1f5f9;--neutral200: #e2e8f0;--neutral300: #cbd5e1;--neutral400: #94a3b8;--neutral500: #64748b;--neutral600: #475569;--neutral700: #334155;--neutral800: #1e293b;--neutral900: #0f172a;--neutral950: #020617;--primary50: var(--accent50, #fff7ed);--primary100: var(--accent100, #ffedd5);--primary200: var(--accent200, #fed7aa);--primary300: var(--accent300, #fdba74);--primary400: var(--accent400, #fb923c);--primary500: var(--accent500, #f97316);--primary600: var(--accent600, #ea580c);--primary700: var(--accent700, #c2410c);--primary800: var(--accent800, #9a3412);--primary900: var(--accent900, #7c2d12);--primary950: var(--accent950, #27130d);--success: #15803d;--link-base: #2563eb;--link-base-hovered: #1e3a8a;--link-visited: #4f46e5;--link-visited-hovered: #3730a3;--link-active: #6b21a8;--r-cl-1: #f9826c;--r-cl-2: var(--neutral100);--r-cl-3: #e1e4e8;--r-cl-4: #2f363d;--r-cl-5: #959da5;--r-cl-6: #2188ff;--r-cl-7: #dbedff;--r-cl-8: #005cc5;--r-cl-9: #586069;--r-cl-10: #6a737d;--r-cl-11: #fafbfc;--r-cl-12: #159739;--r-cl-13: #138934;--r-cl-14: #1b1f23;--r-cl-15: #d1d5da;--r-cl-16: #34d05822;--r-cl-17: #d73a4922;--r-cl-18: #ffdf5d;--r-cl-19: #ffdf5d66;--r-cl-20: #28a74525;--r-cl-21: #d1d5da11;--r-cl-22: #24292e;--r-cl-23: #0366d611;--r-cl-24: #f6f8fa;--r-cl-25: #0366d625;--r-cl-26: #34d05840;--r-cl-27: #34d05800;--r-cl-28: #ffd33d33;--r-cl-29: #24943e99;--r-cl-30: #24943e50;--r-cl-31: #be5007;--r-cl-32: #5a32a3;--r-cl-33: #044289;--r-cl-34: #cb2431;--r-cl-35: #28a745;--r-cl-36: #cc2536;--r-cl-37: #d7dbe0;--r-cl-38: #eff2f6;--r-cl-39: #1b1f234d;--r-cl-40: #f9c513;--r-cl-41: #444d56;--r-cl-42: #e2e5e9;--r-cl-43: #cce5ff;--r-cl-44: #ebf0f4;--r-cl-45: #e8eaed;--r-cl-46: #6a737d33;--r-cl-47: #959da588;--r-cl-48: #959da533;--r-cl-49: #959da544;--r-cl-50: #0366d6;--r-cl-51: #3192aa;--r-cl-52: #22863a;--r-cl-53: #b08800;--r-cl-54: #1b7c83;--r-cl-55: #dbab09;--r-cl-56: #6f42c1;--r-cl-57: #b31d28;--r-cl-58: #032f62;--r-cl-59: #b31d28;--r-cl-60: #ffeef0;--r-cl-61: #f0fff4;--r-cl-62: #ffebda}.theme-dark{color-scheme:dark;--body: #00020a;--neutral50: #020617;--neutral100: #0f172a;--neutral200: #1e293b;--neutral300: #334155;--neutral400: #475569;--neutral500: #64748b;--neutral600: #94a3b8;--neutral700: #cbd5e1;--neutral800: #e2e8f0;--neutral900: #f1f5f9;--neutral950: #f8fafc;--primary50: var(--accent950, #27130d);--primary100: var(--accent900, #7c2d12);--primary200: var(--accent800, #9a3412);--primary300: var(--accent700, #c2410c);--primary400: var(--accent600, #ea580c);--primary500: var(--accent500, #f97316);--primary600: var(--accent400, #fb923c);--primary700: var(--accent300, #fdba74);--primary800: var(--accent200, #fed7aa);--primary900: var(--accent100, #ffedd5);--primary950: var(--accent50, #fff7ed);--success: #86efac;--link-base: #3b82f6;--link-base-hovered: #93c5fd;--link-visited: #6366f1;--link-visited-hovered: #a5b4fc;--link-active: #f0abfc;--r-cl-1: #f9826c;--r-cl-2: var(--neutral100);--r-cl-3: #444d56;--r-cl-4: #e1e4e8;--r-cl-5: #959da5;--r-cl-6: #0366d6;--r-cl-7: #1d2d3e;--r-cl-8: #79b8ff;--r-cl-9: #d1d5da;--r-cl-10: #9ba3ac;--r-cl-11: #24292e;--r-cl-12: #176f2c;--r-cl-13: #22863a;--r-cl-14: #fff;--r-cl-15: #586069;--r-cl-16: #28a74530;--r-cl-17: #d73a4930;--r-cl-18: #ffd33d44;--r-cl-19: #ffd33d22;--r-cl-20: #2b6a3033;--r-cl-21: #58606915;--r-cl-22: #e1e4e8;--r-cl-23: #3392ff22;--r-cl-24: #2f363d;--r-cl-25: #3392ff44;--r-cl-26: #17e5e650;--r-cl-27: #17e5e600;--r-cl-28: #c6902625;--r-cl-29: #17e5e699;--r-cl-30: #17e5e666;--r-cl-31: #ffab70;--r-cl-32: #b392f0;--r-cl-33: #c8e1ff;--r-cl-34: #f97583;--r-cl-35: #34d058;--r-cl-36: #f97583;--r-cl-37: #444d56;--r-cl-38: #2f363d;--r-cl-39: #444d56;--r-cl-40: #ffea7f;--r-cl-41: #d1d5da;--r-cl-42: #39414a;--r-cl-43: #044289;--r-cl-44: #282e34;--r-cl-45: #282e34;--r-cl-47: #6a737d88;--r-cl-48: #6a737d33;--r-cl-49: #6a737d44;--r-cl-50: #79b8ff;--r-cl-51: #56d4dd;--r-cl-52: #85e89d;--r-cl-53: #ffea7f;--r-cl-54: #39c5cf;--r-cl-55: #ffea7f;--r-cl-56: #b392f0;--r-cl-57: #fdaeba;--r-cl-58: #dbedff;--r-cl-59: #fdaeb7;--r-cl-60: #86181d;--r-cl-61: #144620;--r-cl-62: #c24e00}.r-footer{border-top:1px solid var(--neutral300);padding-top:24px;padding-bottom:24px}.r-footer-row{display:flex;justify-content:space-between;align-items:center;gap:32px}.r-footer-additional{margin-top:32px;justify-content:flex-end}.r-copyright{color:var(--neutral800)}.r-powered{font-size:14px;display:block;color:var(--neutral600)}.r-powered-link{font-weight:600;text-decoration:none;color:var(--neutral950)}.r-powered-link:hover{color:var(--primary900)}.r-header{position:sticky;background-color:var(--body);top:0;border-bottom:1px solid var(--neutral300);height:60px;z-index:1000}.r-header-body{height:100%;display:flex;justify-content:space-between;align-items:center;gap:24px}.r-header-logo{display:block;margin-right:24px;color:var(--neutral700);transition:color .2s}.r-header-logo:hover,.r-header-logo:focus{color:var(--neutral950)}.r-header-nav{display:flex;flex-direction:column;gap:12px 16px}@media screen and (width >= 1024px){.r-header-nav{flex-direction:row}}.r-header-link{color:var(--neutral600);text-decoration:none;padding:4px 0;transition:color .2s}.r-header-link:hover,.r-header-link:focus-visible{color:var(--neutral950)}.r-header-link._target{color:var(--primary800)}.r-header-link._target:hover,.r-header-link._target:focus-visible{color:var(--primary700)}.r-header-actions{display:flex;flex-direction:column-reverse;gap:16px;align-items:stretch}@media screen and (width >= 1024px){.r-header-actions{flex-direction:row;align-items:center;gap:28px}}.r-header-sections{display:flex;align-items:center;gap:12px}@media screen and (width < 768px){.r-header-sections .r-dropdown{flex:1}}@media screen and (width < 768px){.r-header-sections .r-dropdown-drop{max-width:none;width:100%;left:0}}.r-docs-container{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}@media screen and (width >= 768px){.r-docs-container{display:grid;justify-content:center;column-gap:32px;grid-template-areas:"sidebar breadcrumbs" "sidebar contents" "sidebar content" "sidebar pagination";grid-template-columns:1fr calc(100% - 248px);grid-template-rows:auto auto 1fr auto}}@media screen and (width >= 1180px){.r-docs-container{column-gap:40px;grid-template-areas:"sidebar breadcrumbs contents" "sidebar content contents" "sidebar pagination contents";grid-template-columns:1fr 640px 1fr;grid-template-rows:auto 1fr auto}}.r-blog-container{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}@media screen and (width >= 1180px){.r-blog-container{display:grid;justify-content:space-between;column-gap:40px;grid-template-areas:"breadcrumbs contents" "content contents" "pagination contents";grid-template-columns:760px 220px;grid-template-rows:auto 1fr auto}}.r-page-container{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}.keylink-to-content{position:absolute !important;top:8px;left:12px;z-index:1001}.keylink-to-navigation{margin-top:-40px}.r-article{padding:20px 0 80px;grid-area:content}@media screen and (width >= 1180px){.r-article{padding:32px 0 80px}}.r-article>*:first-child{margin-top:0}.r-checkbox{cursor:pointer;width:20px;height:20px;margin:4px;vertical-align:middle}.r-label{cursor:pointer}.r-task-ol,.r-task-ul{list-style:none}.r-task-label{display:block;width:100%;padding-top:2px;padding-bottom:2px}.r-task-label:hover .r-checkbox{filter:brightness(0.8)}.r-task-li.r-task-li{margin-block-start:2px;margin-block-end:2px}.r-label-text{vertical-align:middle}.r-sidebar{grid-area:sidebar}@media screen and (width < 768px){.r-sidebar{position:sticky;width:calc(100% + 24px);top:var(--header-height);left:0;margin:0 -12px;background-color:var(--body);border-bottom:1px solid var(--neutral200);z-index:10;opacity:.98;padding:0;overflow:auto}}.r-sidebar-top-mock{grid-row-start:1;grid-column-start:1}@media screen and (width < 768px){.r-sidebar:not(._opened) .r-sidebar-nav{display:none}}@media screen and (width < 768px){.r-sidebar._opened{height:calc(100vh - var(--header-height))}}.r-sidebar-drop{margin-top:-4px;padding-top:4px}.r-sidebar-sublist{position:relative;padding-top:2px}.r-sidebar-sublist:hover::before{background-color:var(--primary800);transition-delay:initial}.r-sidebar-sublist::before{content:"";position:absolute;top:0;left:-12px;right:0;height:2px;border-bottom-left-radius:2px;background-color:var(--neutral200);z-index:1;transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-nav{padding:32px 4px 32px 2px}@media screen and (width < 768px){.r-sidebar-nav{padding:12px}}@media screen and (width >= 768px){.r-sidebar-nav{position:sticky;top:var(--header-height);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0);scrollbar-gutter:stable;max-height:calc(100vh - var(--header-height))}}@media screen and (width < 768px){.r-sidebar-space{display:block;height:40px}}.r-sidebar-btn{position:sticky;top:0;display:flex;width:100%;font-size:14px;border:0;padding:12px;background:none;cursor:pointer;color:var(--neutral800);background-color:var(--body);z-index:1}@media screen and (width >= 768px){.r-sidebar-btn{display:none}}.r-sidebar-chevron{display:inline;margin-right:6px;transition:transform .2s}.r-sidebar._opened .r-sidebar-chevron{transform:rotate(90deg)}.r-sidebar-list{color:var(--neutral700);list-style:none;padding:0;margin:0;font-size:14px}.r-sidebar-drop[open]::details-content{height:var(--drop-height, auto)}.r-sidebar-drop::details-content{height:0;overflow:hidden;transition:height .3s,content-visibility .3s allow-discrete}.r-sidebar-sublist{margin-left:12px}.r-sidebar-sublist .r-sidebar-link{position:relative;border-top-left-radius:0;border-bottom-left-radius:0}.r-sidebar-sublist .r-sidebar-link::before{content:"";position:absolute;left:0;top:-1px;width:2px;height:calc(100% + 4px);background-color:var(--neutral200);transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-li{position:relative;padding-top:2px;padding-bottom:2px;line-height:1.5}.r-sidebar-li._droppable>a{padding-right:32px}.r-sidebar-li-d0{margin-left:-8px}.r-sidebar-p{margin:0;padding:4px 10px}.r-sidebar-heading{color:var(--neutral900);font-weight:600;margin-block-end:4px}.r-sidebar-heading:not(:first-child){margin-block-start:12px}.r-sidebar-link{display:block;padding:4px 10px;color:inherit;border-bottom:2px solid rgba(0,0,0,0);border-radius:2px;text-decoration:none;transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s,color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-link._target{color:var(--primary950);background-color:var(--neutral50)}.r-sidebar-link:hover{color:var(--primary800);background-color:var(--neutral100);transition-delay:initial}.r-sidebar-link:hover::before{background-color:currentColor;transition-delay:initial}.r-sidebar-link._active{color:var(--primary700);background-color:var(--neutral50)}.r-sidebar-link._active::before{background-color:currentColor}.r-sidebar-drop-btn{position:absolute;right:3px;top:5px;border-radius:4px;padding:4px;background-color:var(--neutral200);list-style:none;cursor:pointer;transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s,color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-drop-btn:hover{background-color:var(--neutral300);color:var(--primary500);transition-delay:initial}.r-sidebar-drop-btn::before{content:"";position:absolute;inset:-4px}.r-sidebar-drop-btn::-webkit-details-marker{display:none}.r-sidebar-drop-icon{display:block;transition:transform .2s}.r-sidebar-drop[open]>.r-sidebar-drop-btn>.r-sidebar-drop-icon{transform:rotate(90deg)}.r-theme{position:relative;display:flex;gap:4px;width:108px;height:36px;padding:2px;background-color:var(--neutral950);border-radius:14px}.r-theme::before{content:"";position:absolute;display:block;height:32px;width:32px;top:2px;left:2px;background-color:var(--body);border-radius:12px;transition:left .2s}.r-theme-btn{padding:8px;background:none;border:0;border-radius:12px;cursor:pointer;color:var(--neutral50);fill:var(--neutral950);z-index:1;transition:color .2s .1s,fill .2s}.r-theme-btn:hover{color:var(--neutral50);fill:var(--neutral50)}.theme-dark:not(.theme-system) .r-theme::before{left:2px}.theme-dark:not(.theme-system) .r-theme-btn__dark{color:var(--neutral950);pointer-events:none}.theme-system .r-theme::before{left:38px}.theme-system .r-theme-btn__system{color:var(--neutral950);pointer-events:none}.theme-light:not(.theme-system) .r-theme::before{left:74px}.theme-light:not(.theme-system) .r-theme-btn__light{color:var(--neutral950);pointer-events:none}.r-container{max-width:1180px;padding-right:12px;padding-left:12px;margin-right:auto;margin-left:auto}.r-header-menu{display:flex;justify-content:flex-end;order:1}@media screen and (width >= 1024px){.r-header-menu{flex:1;order:unset}}.r-header-menu._opened .r-header-responsive{display:flex}.r-header-responsive{display:none;justify-content:flex-end;flex:1;gap:24px;z-index:1}@media screen and (width < 1024px){.r-header-responsive{flex-direction:column-reverse;padding:12px;background-color:var(--body);position:fixed;top:60px;right:0;bottom:0;left:0}}@media screen and (width >= 1024px){.r-header-responsive{display:flex;justify-content:space-between;align-items:center}}.r-header-burger{position:relative;display:flex;align-items:center;justify-content:center;height:32px;width:32px;cursor:pointer;background:none;border:none}@media screen and (width >= 1024px){.r-header-burger{display:none}}.r-burger-line{display:block;width:20px;height:1.5px;position:absolute;background-color:var(--neutral700);margin:auto;transition:transform .3s}.r-burger-line._top{transform:translateY(-3px)}.r-header-menu._opened .r-burger-line._top{transform:translateY(0) rotate(45deg);margin-top:0}.r-burger-line._bottom{transform:translateY(3px)}.r-header-menu._opened .r-burger-line._bottom{transform:translateY(0) rotate(-45deg);margin-top:0}.r-search-btn{position:relative;border-radius:6px;background-color:var(--neutral100);color:var(--neutral600);padding:8px 20px;border:1px solid var(--neutral200);width:100%;text-align:left;cursor:text}@media screen and (width >= 768px){.r-search-btn{width:220px;padding:8px 96px 8px 20px}}.r-search-btn:hover{border-color:var(--neutral600)}.r-search-btn:hover .r-search-kbd{color:var(--neutral950)}.r-search-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r-search-kbd{display:none;position:absolute;right:6px;top:50%;transform:translateY(-50%)}@media screen and (width >= 768px){.r-search-kbd{display:flex}}.r-search-popup-header{position:relative;border-bottom:1px solid var(--neutral200)}.r-search-input{border-radius:12px 12px 0 0;background-color:var(--neutral50);padding:16px 20px;border:none;border-bottom:2px solid var(--neutral300);width:100%;font-size:16px}@media screen and (width >= 768px){.r-search-input{padding:16px 72px 16px 20px}}.r-search-input:hover{border-bottom-color:var(--primary800)}.r-search-input:focus{outline:none;border-bottom-color:var(--primary600)}.r-search-input::placeholder{color:var(--neutral500)}.r-search-popup-kbd{color:var(--neutral600);right:20px}.r-search-results{padding:12px 8px 8px;max-height:min(400px,100vh - 200px);overflow-y:auto;list-style:none;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0);margin:0}.r-search-item{display:block;text-decoration:none;color:var(--neutral700);padding:8px 12px;border:1px solid var(--neutral100);border-radius:6px;width:100%;margin-top:6px}.r-search-item:hover,.r-search-item:focus{color:var(--neutral950);background-color:var(--neutral50)}.r-search-item-title{margin:0}.r-search-item-desc{font-size:14px;color:var(--neutral600);margin:12px 0 0}.r-dropdown{position:relative;color:var(--neutral600);transition:color .2s .1s}.r-dropdown:hover,.r-dropdown:focus-within{color:var(--neutral950)}.r-dropdown:hover .r-dropdown-drop,.r-dropdown:focus-within .r-dropdown-drop{visibility:visible;pointer-events:all;transform:translateY(20px);opacity:1}.r-dropdown:hover .r-dropdown-chevron,.r-dropdown:focus-within .r-dropdown-chevron{transform:rotate(180deg)}.r-dropdown-summary{display:flex;justify-content:space-between;align-items:center;width:100%;position:relative;color:inherit;cursor:pointer;padding:10px 4px;font-size:16px;border:0;background:none;z-index:1}.r-dropdown-chevron{margin-left:6px;transition:transform .3s .1s}.r-dropdown-drop{list-style:none;position:absolute;top:16px;left:-12px;visibility:hidden;pointer-events:none;opacity:0;transition:transform .3s .1s,opacity .3s .1s,visibility .3s .1s;background-color:var(--neutral50);border:1px solid var(--neutral100);border-radius:8px;margin:0;padding:2px 6px;min-width:120px;max-width:180px}.r-dropdown-link{display:block;width:100%;text-decoration:none;color:var(--neutral700);padding:4px 8px;margin-top:4px;margin-bottom:4px;border-radius:4px;transition:background-color .2s}.r-dropdown-link:hover{color:var(--neutral900);background-color:var(--neutral100)}.r-dropdown-link._active{color:var(--primary700)}.r-header-social{display:flex;flex:1;justify-content:flex-end}@media screen and (width >= 1024px){.r-header-social{flex:none;justify-content:unset}}.r-header-social-git{color:var(--neutral700);transition:color .2s}.r-header-social-git:hover,.r-header-social-git:focus{color:var(--neutral950)}.r-keylink{display:block;position:relative;padding:8px 12px;border:2px solid var(--neutral500);border-radius:6px;text-decoration:none;background:var(--body)}.r-keylink:not(:focus){width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important;user-select:none;pointer-events:none}.r-contents{grid-area:contents}.r-contents-sticky{position:sticky;top:var(--header-height);width:100%}@media screen and (width >= 1180px){.r-contents-sticky{padding:0 12px;max-height:calc(100vh - var(--header-height));overflow:auto;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0);scrollbar-gutter:stable}}.r-contents-control{display:contents;visibility:hidden}@media screen and (width >= 1180px){.r-contents-control{pointer-events:none}}@media screen and (width < 1180px){.r-contents-control:checked+.r-contents-details .r-contents-list{visibility:visible;height:var(--drop-height, auto)}}@media screen and (width < 1180px){.r-contents-control:checked+.r-contents-details .r-contents-title{color:var(--neutral800)}}.r-contents-control:checked+.r-contents-details .r-contents-chevron{transform:rotate(180deg)}.r-contents-list{overflow:hidden;transition:height .3s allow-discrete,visibility .3s allow-discrete}@media screen and (width < 1180px){.r-contents-list{visibility:hidden;height:0}}.r-contents-list-content{padding:2px}@media screen and (width < 1180px){.r-contents-details{background:var(--neutral100);border-radius:4px}}.r-contents-title{display:block;position:sticky;top:0;cursor:pointer;margin-top:20px;padding:12px;color:var(--neutral600);z-index:1}@media screen and (width < 1180px){.r-contents-title{display:flex;align-items:center;justify-content:space-between}}@media screen and (width >= 1180px){.r-contents-title{color:var(--neutral900);background:var(--body);font-weight:600;margin-top:0;padding:32px 0 12px;cursor:auto}}@media screen and (width < 1180px){.r-contents-title:hover{color:var(--neutral900)}}.r-contents-chevron{display:inline;vertical-align:middle;margin-left:8px;transition:transform .2s}@media screen and (width >= 1180px){.r-contents-chevron{display:none}}.r-contents-link{display:block;position:relative;color:var(--neutral600);text-decoration:none;padding-top:4px;padding-bottom:4px;padding-left:12px;margin-bottom:8px;font-size:14px;line-height:1.5;transition:color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-contents-link.r-contents-link:hover{color:var(--primary800);transition-delay:initial}.r-contents-link::before,.r-contents-link::after{content:"";display:block;position:absolute;top:-4px;left:0;height:calc(100% + 8px);border-style:solid;border-width:0 2px 0 0;border-color:var(--primary800)}.r-contents-link::before{border-color:var(--neutral200)}.r-contents-link::after{mask-image:linear-gradient(135deg, #000 50%, transparent 50%);mask-repeat:no-repeat;mask-size:200% 200%;mask-position:100% 100%}.r-contents-link._nested{margin-left:16px}.r-contents-link._nested::before,.r-contents-link._nested::after{left:-16px;width:18px}.r-contents-link:not(._nested)+.r-contents-link._nested::before,.r-contents-link:not(._nested)+.r-contents-link._nested::after{border-top-width:2px}.r-contents-link._nested+.r-contents-link:not(._nested)::before,.r-contents-link._nested+.r-contents-link:not(._nested)::after{width:18px;border-width:2px 0 0 2px}.r-contents-link._nested+.r-contents-link:not(._nested)::after{mask-image:linear-gradient(45deg, transparent 50%, #000 50%);mask-position:0 100% !important}.r-contents-link._nested+.r-contents-link._passed:not(._nested)::after{mask-position:100% 0 !important}@media screen and (width >= 1180px){.r-contents-link._passed{color:var(--neutral800)}}@media screen and (width >= 1180px){.r-contents-link._passed::after{mask-position:0 0 !important}}@media screen and (width >= 1180px){.r-contents-link._active{color:var(--primary800)}}.r-contents-link._active::after,.r-contents-link._active+.r-contents-link::after{transition:mask-position .3s}.r-contents-actions{position:sticky;bottom:0;padding-top:2px;padding-bottom:2px;margin-top:20px;background-color:var(--body)}@media screen and (width < 1180px){.r-contents-actions{display:none}}.r-contents-git{display:block;width:100%;position:relative;color:var(--neutral600);text-decoration:none;padding-top:10px;padding-bottom:10px;font-size:14px;font-weight:600}.r-contents-git:hover{color:var(--neutral900)}.r-breadcrumbs{grid-area:breadcrumbs;list-style:none;margin:0;padding:20px 0 0;line-height:2}@media screen and (width >= 768px){.r-breadcrumbs{padding:32px 0 0}}.r-breadcrumb{display:inline}.r-breadcrumb._previous::after{content:"/";font-weight:600;margin-inline:8px}.r-breadcrumb-link{color:var(--neutral700);text-decoration:none}.r-breadcrumb-link:hover{color:var(--primary800)}.r-breadcrumb-link,.r-breadcrumb-title{display:inline;padding:6px 0;margin:0}.r-breadcrumb-title{color:var(--neutral950);font-weight:600}.r-pagination{grid-area:pagination;display:grid;grid-template-columns:repeat(auto-fit, minmax(148px, 1fr));gap:16px;margin-bottom:80px}.r-pagination-item{position:relative;padding-top:8px;padding-bottom:8px;text-decoration:none;font-size:14px;color:var(--neutral700)}.r-pagination-item:hover{color:var(--neutral900)}.r-pagination-item._prev{padding-left:32px}.r-pagination-item._next{text-align:right;padding-right:32px}.r-pagination-text{display:block;line-height:2}.r-pagination-title{font-weight:600;font-size:18px;color:var(--neutral950)}.r-pagination-icon{position:absolute;top:50%;transform:translateY(-50%);transition:transform .2s;margin:-4px}.r-pagination-icon._prev{left:0}.r-pagination-item:hover .r-pagination-icon._prev{transform:translate(-4px, -50%)}@media screen and (width >= 1180px){.r-pagination-item:hover .r-pagination-icon._prev{transform:translate(-8px, -50%)}}.r-pagination-icon._next{right:0}.r-pagination-item:hover .r-pagination-icon._next{transform:translate(4px, -50%)}@media screen and (width >= 1180px){.r-pagination-item:hover .r-pagination-icon._next{transform:translate(8px, -50%)}}.r-last-modified{color:var(--neutral700);margin-block-start:16px}.r-anchor-heading:hover .r-anchor-heading-link{visibility:visible;opacity:1}.r-anchor-heading-link{visibility:hidden;opacity:0;transition:opacity .3s allow-discrete;padding-inline:8px;margin-inline-start:-4px;color:var(--neutral600);text-decoration:none}.r-anchor-heading-link:hover{color:var(--link-base-hovered)}.r-anchor-heading-link::after{content:"#"}.r-code-section{margin-block-start:1.5em;margin-block-end:1.75em}.r-code-section-header{font-family:var(--monospace-font, monospace, monospace);display:flex;justify-content:space-between;align-items:center;border-top-left-radius:6px;border-top-right-radius:6px;padding:6px 20px;background-color:var(--neutral100);border:1px solid var(--neutral300);color:var(--neutral700)}.r-code-section-header+.r-code-section-block{border-top-left-radius:0;border-top-right-radius:0;border-top:0;margin-block-start:0;margin-block-end:0}.r-code-span{font-family:var(--monospace-font, monospace, monospace);background-color:var(--neutral100);border-radius:4px;padding:2px 6px;font-size:16px}.r-code-span+.r-content-link-external{margin-left:-12px}.r-img{max-width:100%}.r-block{width:100%;overflow:auto;margin-block-start:12px;margin-block-end:12px;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0)}.r-blockquote{background-color:var(--neutral100);padding:12px;border-left:6px solid var(--primary800);border-top-right-radius:2px;border-bottom-right-radius:2px;font:inherit;margin-inline:0;margin-block-start:1em;margin-block-end:1em}.r-p{line-height:1.8;margin-block-start:1em;margin-block-end:1em}.r-h1{font-size:32px;line-height:1.4;margin-block-start:.67em;margin-block-end:.67em}.r-h2{font-size:26px;line-height:1.4;margin-block-start:.83em;margin-block-end:.83em}.r-h3{font-size:22px;line-height:1.4;margin-block-start:1em;margin-block-end:1em}.r-h4{font-size:20px;line-height:1.4;margin-block-start:1.33em;margin-block-end:1.33em}.r-h5{font-size:18px;line-height:1.4;margin-block-start:1.5em;margin-block-end:1.5em}.r-h6{font-size:16px;line-height:1.4;margin-block-start:1.8em;margin-block-end:1.8em}.r-tabs{margin-block-start:1.5em;margin-block-end:1.75em}.r-tab-list{position:relative;z-index:1}.r-tab-list .r-code-section,.r-tab-list .r-code-block,.r-tab-list .r-code-section-header{margin-block-start:0;margin-block-end:0;border-top-left-radius:0;border-top-right-radius:0;background-color:var(--neutral50)}.r-tabs-header{display:flex}.r-tab-header{cursor:pointer;border:1px solid var(--neutral300);color:var(--neutral600);border-bottom:0;margin-bottom:-1px;background-color:var(--body);border-top-left-radius:4px;border-top-right-radius:4px;padding:8px 20px}.r-tab-header:hover{background-color:var(--neutral50);color:var(--primary600)}.r-modal{position:fixed;left:0;bottom:0;width:100%;background-color:var(--body);border-radius:12px 12px 0 0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s .1s,transform .2s .1s,visibility .01s .2s .1s;z-index:1000}@media screen and (width >= 768px){.r-modal{top:10%;left:50%;bottom:auto;transform:translateX(-50%) scale(0.95);max-width:480px;border-radius:12px}}.r-modal._visible{opacity:1;visibility:visible;transition:opacity .2s .1s,transform .2s .1s;pointer-events:all}@media screen and (width >= 768px){.r-modal._visible{transform:translateX(-50%) scale(1)}}.r-kbd-container{display:flex;gap:4px;font-size:14px;cursor:pointer}.r-kbd-container:hover{color:var(--neutral950)}.r-kbd-key{background-color:var(--neutral200);font-size:12px;border-radius:4px;padding:5px 8px;min-width:24px;text-align:center}.r-content-link{text-decoration:none;color:var(--link-base)}.r-content-link:hover{color:var(--link-base-hovered)}.r-content-link:visited{color:var(--link-visited)}.r-content-link:visited:hover{color:var(--link-visited-hovered)}.r-content-link:active{color:var(--link-active)}.r-content-link-external{position:relative;vertical-align:text-top;display:inline-block;margin-left:-4px;margin-right:2px;width:6px;height:6px}.r-content-link-external::after{content:"";position:absolute;top:0;right:0;width:100%;height:100%;border-top:1px solid currentColor;border-right:1px solid currentColor}.r-content-link-external::before{content:"";position:absolute;top:0;right:0;width:3px;height:3px;background-color:currentColor;border-radius:0 0 0 4px}.r-code-block{font-family:var(--monospace-font, monospace, monospace);font-size:16px;line-height:1.33;border-radius:6px;padding:16px 20px;margin-block-start:1.5em;margin-block-end:1.75em;color:var(--primary800);background-color:var(--neutral50);border:1px solid var(--neutral300);overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0)}.copy-button{padding:8px;background:none;color:var(--neutral700);border:0;border-radius:6px;cursor:pointer;transition:color .2s,background-color .2s}.copy-button-success{opacity:0;transform:scale(0.7);transition:.2s}.copy-button-base{transition:.2s}.copy-button:hover{color:var(--neutral950);background-color:var(--neutral200)}.copy-button:active,.copy-button._active{color:var(--success)}.copy-button:active .copy-button-success,.copy-button._active .copy-button-success{opacity:1;transform:scale(1)}.copy-button:active .copy-button-base,.copy-button._active .copy-button-base{opacity:0;transform:scale(0.7)}.r-table{min-width:100%;text-align:left;border-collapse:collapse}.r-td{padding:6px 12px;border-bottom:1px solid var(--neutral400);border-collapse:collapse}.r-th{padding:6px 12px;border-top:1px solid var(--neutral500);border-bottom:1px solid var(--neutral500);border-collapse:collapse}.r-thead{background-color:var(--neutral100)}.r-li{line-height:1.8;margin-block-start:6px;margin-block-end:6px}.r-li>.r-ul,.r-li>.r-ol{padding-inline-start:20px;margin-block-start:6px;margin-block-end:6px}.r-ol{padding-inline-start:0;list-style-position:inside;margin-block-start:1em;margin-block-end:1em}.r-ul{padding-inline-start:0;list-style-position:inside;margin-block-start:1em;margin-block-end:1em}.r-task-li.r-task-li{margin-block-start:2px;margin-block-end:2px}.r-task-label{cursor:pointer;display:block;width:100%;padding-top:2px;padding-bottom:2px}.r-task-label:hover .r-task-checkbox{filter:brightness(0.8)}.r-task-checkbox{cursor:pointer;width:18px;height:18px;inset:-4px;margin-inline-end:8px;vertical-align:middle}.r-task-label-text{vertical-align:middle}.r-task-ol{list-style:none}.r-task-ul{list-style:none}.r-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,0);opacity:0;visibility:hidden;pointer-events:none;backdrop-filter:blur(1px);transition:background .05s,opacity .2s,visibility .01s .15s;z-index:100}.r-backdrop._visible{opacity:1;background:rgba(0,0,0,.3);visibility:visible;transition:background .05s,opacity .2s;pointer-events:all}
1
+ :root{overflow:hidden;--accent50: #fff7ed;--accent100: #ffedd5;--accent200: #fed7aa;--accent300: #fdba74;--accent400: #fb923c;--accent500: #f97316;--accent600: #ea580c;--accent700: #c2410c;--accent800: #9a3412;--accent900: #7c2d12;--accent950: #27130d}body{--header-height: 60px;position:relative;padding:0;margin:0;accent-color:var(--primary600, #ea580c);box-sizing:border-box;background-color:var(--body);color:var(--neutral950);height:100vh;overflow:hidden auto;scroll-padding-top:calc(var(--header-height) + 20px);scrollbar-color:var(--neutral400) var(--neutral200)}@media screen and (width < 768px){body{scroll-padding-top:calc(var(--header-height) + 60px)}}@media screen and (width > 1180px){body{scroll-behavior:smooth;scrollbar-gutter:stable}}*,*:before,*:after{box-sizing:inherit}@media(prefers-reduced-motion: reduce){*,::before,::after{animation-delay:-1ms !important;animation-duration:1ms !important;animation-iteration-count:1 !important;background-attachment:initial !important;scroll-behavior:auto !important;transition-duration:1ms !important;transition-delay:-1ms !important}}svg{display:block}@media screen and (width < 768px){.body-mobile-lock{overflow:hidden}}@media screen and (width < 1024px){.body-tablet-lock{overflow:hidden}}.body-lock{overflow:hidden}.theme-light{color-scheme:light;--body: #ffffff;--neutral50: #f8fafc;--neutral100: #f1f5f9;--neutral200: #e2e8f0;--neutral300: #cbd5e1;--neutral400: #94a3b8;--neutral500: #64748b;--neutral600: #475569;--neutral700: #334155;--neutral800: #1e293b;--neutral900: #0f172a;--neutral950: #020617;--primary50: var(--accent50, #fff7ed);--primary100: var(--accent100, #ffedd5);--primary200: var(--accent200, #fed7aa);--primary300: var(--accent300, #fdba74);--primary400: var(--accent400, #fb923c);--primary500: var(--accent500, #f97316);--primary600: var(--accent600, #ea580c);--primary700: var(--accent700, #c2410c);--primary800: var(--accent800, #9a3412);--primary900: var(--accent900, #7c2d12);--primary950: var(--accent950, #27130d);--success: #15803d;--link-base: #2563eb;--link-base-hovered: #1e3a8a;--link-visited: #4f46e5;--link-visited-hovered: #3730a3;--link-active: #6b21a8;--r-cl-1: #f9826c;--r-cl-2: var(--neutral100);--r-cl-3: #e1e4e8;--r-cl-4: #2f363d;--r-cl-5: #959da5;--r-cl-6: #2188ff;--r-cl-7: #dbedff;--r-cl-8: #005cc5;--r-cl-9: #586069;--r-cl-10: #6a737d;--r-cl-11: #fafbfc;--r-cl-12: #159739;--r-cl-13: #138934;--r-cl-14: #1b1f23;--r-cl-15: #d1d5da;--r-cl-16: #34d05822;--r-cl-17: #d73a4922;--r-cl-18: #ffdf5d;--r-cl-19: #ffdf5d66;--r-cl-20: #28a74525;--r-cl-21: #d1d5da11;--r-cl-22: #24292e;--r-cl-23: #0366d611;--r-cl-24: #f6f8fa;--r-cl-25: #0366d625;--r-cl-26: #34d05840;--r-cl-27: #34d05800;--r-cl-28: #ffd33d33;--r-cl-29: #24943e99;--r-cl-30: #24943e50;--r-cl-31: #be5007;--r-cl-32: #5a32a3;--r-cl-33: #044289;--r-cl-34: #cb2431;--r-cl-35: #28a745;--r-cl-36: #cc2536;--r-cl-37: #d7dbe0;--r-cl-38: #eff2f6;--r-cl-39: #1b1f234d;--r-cl-40: #f9c513;--r-cl-41: #444d56;--r-cl-42: #e2e5e9;--r-cl-43: #cce5ff;--r-cl-44: #ebf0f4;--r-cl-45: #e8eaed;--r-cl-46: #6a737d33;--r-cl-47: #959da588;--r-cl-48: #959da533;--r-cl-49: #959da544;--r-cl-50: #0366d6;--r-cl-51: #3192aa;--r-cl-52: #22863a;--r-cl-53: #b08800;--r-cl-54: #1b7c83;--r-cl-55: #dbab09;--r-cl-56: #6f42c1;--r-cl-57: #b31d28;--r-cl-58: #032f62;--r-cl-59: #b31d28;--r-cl-60: #ffeef0;--r-cl-61: #f0fff4;--r-cl-62: #ffebda}.theme-dark{color-scheme:dark;--body: #00020a;--neutral50: #020617;--neutral100: #0f172a;--neutral200: #1e293b;--neutral300: #334155;--neutral400: #475569;--neutral500: #64748b;--neutral600: #94a3b8;--neutral700: #cbd5e1;--neutral800: #e2e8f0;--neutral900: #f1f5f9;--neutral950: #f8fafc;--primary50: var(--accent950, #27130d);--primary100: var(--accent900, #7c2d12);--primary200: var(--accent800, #9a3412);--primary300: var(--accent700, #c2410c);--primary400: var(--accent600, #ea580c);--primary500: var(--accent500, #f97316);--primary600: var(--accent400, #fb923c);--primary700: var(--accent300, #fdba74);--primary800: var(--accent200, #fed7aa);--primary900: var(--accent100, #ffedd5);--primary950: var(--accent50, #fff7ed);--success: #86efac;--link-base: #3b82f6;--link-base-hovered: #93c5fd;--link-visited: #6366f1;--link-visited-hovered: #a5b4fc;--link-active: #f0abfc;--r-cl-1: #f9826c;--r-cl-2: var(--neutral100);--r-cl-3: #444d56;--r-cl-4: #e1e4e8;--r-cl-5: #959da5;--r-cl-6: #0366d6;--r-cl-7: #1d2d3e;--r-cl-8: #79b8ff;--r-cl-9: #d1d5da;--r-cl-10: #9ba3ac;--r-cl-11: #24292e;--r-cl-12: #176f2c;--r-cl-13: #22863a;--r-cl-14: #fff;--r-cl-15: #586069;--r-cl-16: #28a74530;--r-cl-17: #d73a4930;--r-cl-18: #ffd33d44;--r-cl-19: #ffd33d22;--r-cl-20: #2b6a3033;--r-cl-21: #58606915;--r-cl-22: #e1e4e8;--r-cl-23: #3392ff22;--r-cl-24: #2f363d;--r-cl-25: #3392ff44;--r-cl-26: #17e5e650;--r-cl-27: #17e5e600;--r-cl-28: #c6902625;--r-cl-29: #17e5e699;--r-cl-30: #17e5e666;--r-cl-31: #ffab70;--r-cl-32: #b392f0;--r-cl-33: #c8e1ff;--r-cl-34: #f97583;--r-cl-35: #34d058;--r-cl-36: #f97583;--r-cl-37: #444d56;--r-cl-38: #2f363d;--r-cl-39: #444d56;--r-cl-40: #ffea7f;--r-cl-41: #d1d5da;--r-cl-42: #39414a;--r-cl-43: #044289;--r-cl-44: #282e34;--r-cl-45: #282e34;--r-cl-47: #6a737d88;--r-cl-48: #6a737d33;--r-cl-49: #6a737d44;--r-cl-50: #79b8ff;--r-cl-51: #56d4dd;--r-cl-52: #85e89d;--r-cl-53: #ffea7f;--r-cl-54: #39c5cf;--r-cl-55: #ffea7f;--r-cl-56: #b392f0;--r-cl-57: #fdaeba;--r-cl-58: #dbedff;--r-cl-59: #fdaeb7;--r-cl-60: #86181d;--r-cl-61: #144620;--r-cl-62: #c24e00}.r-footer{border-top:1px solid var(--neutral300);padding-top:24px;padding-bottom:24px}.r-footer-row{display:flex;justify-content:space-between;align-items:center;gap:32px}.r-footer-additional{margin-top:32px;justify-content:flex-end}.r-copyright{color:var(--neutral800)}.r-powered{font-size:14px;display:block;color:var(--neutral600)}.r-powered-link{font-weight:600;text-decoration:none;color:var(--neutral950)}.r-powered-link:hover{color:var(--primary900)}.r-header{position:sticky;background-color:var(--body);top:0;border-bottom:1px solid var(--neutral300);height:60px;z-index:1000}.r-header-body{height:100%;display:flex;justify-content:space-between;align-items:center;gap:24px}.r-header-logo{display:block;margin-right:24px;color:var(--neutral700);transition:color .2s}.r-header-logo:hover,.r-header-logo:focus{color:var(--neutral950)}.r-header-nav{display:flex;flex-direction:column;gap:12px 16px}@media screen and (width >= 1024px){.r-header-nav{flex-direction:row}}.r-header-link{color:var(--neutral600);text-decoration:none;padding:4px 0;transition:color .2s}.r-header-link:hover,.r-header-link:focus-visible{color:var(--neutral950)}.r-header-link._target{color:var(--primary800)}.r-header-link._target:hover,.r-header-link._target:focus-visible{color:var(--primary700)}.r-header-actions{display:flex;flex-direction:column-reverse;gap:16px;align-items:stretch}@media screen and (width >= 1024px){.r-header-actions{flex-direction:row;align-items:center;gap:28px}}.r-header-sections{display:flex;align-items:center;gap:12px}@media screen and (width < 768px){.r-header-sections .r-dropdown{flex:1}}@media screen and (width < 768px){.r-header-sections .r-dropdown-drop{max-width:none;width:100%;left:0}}.r-docs-container{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}@media screen and (width >= 768px){.r-docs-container{display:grid;justify-content:center;column-gap:32px;grid-template-areas:"sidebar breadcrumbs" "sidebar contents" "sidebar content" "sidebar pagination";grid-template-columns:1fr calc(100% - 248px);grid-template-rows:auto auto 1fr auto}}@media screen and (width >= 1180px){.r-docs-container{column-gap:40px;grid-template-areas:"sidebar breadcrumbs contents" "sidebar content contents" "sidebar pagination contents";grid-template-columns:1fr 640px 1fr;grid-template-rows:auto 1fr auto}}.r-blog-container{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}@media screen and (width >= 1180px){.r-blog-container{display:grid;justify-content:space-between;column-gap:40px;grid-template-areas:"breadcrumbs contents" "content contents" "pagination contents";grid-template-columns:760px 220px;grid-template-rows:auto 1fr auto}}.r-page-container{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}.keylink-to-content{position:absolute !important;top:8px;left:12px;z-index:1001}.keylink-to-navigation{margin-top:-40px}.r-article{padding:20px 0 80px;grid-area:content}@media screen and (width >= 1180px){.r-article{padding:32px 0 80px}}.r-article>*:first-child{margin-top:0}.r-checkbox{cursor:pointer;width:20px;height:20px;margin:4px;vertical-align:middle}.r-label{cursor:pointer}.r-task-ol,.r-task-ul{list-style:none}.r-task-label{display:block;width:100%;padding-top:2px;padding-bottom:2px}.r-task-label:hover .r-checkbox{filter:brightness(0.8)}.r-task-li.r-task-li{margin-block-start:2px;margin-block-end:2px}.r-label-text{vertical-align:middle}.r-sidebar{grid-area:sidebar}@media screen and (width < 768px){.r-sidebar{position:sticky;width:calc(100% + 24px);top:var(--header-height);left:0;margin:0 -12px;background-color:var(--body);border-bottom:1px solid var(--neutral200);z-index:10;opacity:.98;padding:0;overflow:auto}}.r-sidebar-top-mock{grid-row-start:1;grid-column-start:1}@media screen and (width < 768px){.r-sidebar:not(._opened) .r-sidebar-nav{display:none}}@media screen and (width < 768px){.r-sidebar._opened{height:calc(100vh - var(--header-height))}}.r-sidebar-drop{margin-top:-4px;padding-top:4px}.r-sidebar-sublist{position:relative;padding-top:2px}.r-sidebar-sublist:hover::before{background-color:var(--primary800);transition-delay:initial}.r-sidebar-sublist::before{content:"";position:absolute;top:0;left:-12px;right:0;height:2px;border-bottom-left-radius:2px;background-color:var(--neutral200);z-index:1;transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-nav{padding:32px 4px 32px 2px}@media screen and (width < 768px){.r-sidebar-nav{padding:12px}}@media screen and (width >= 768px){.r-sidebar-nav{position:sticky;top:var(--header-height);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0);scrollbar-gutter:stable;max-height:calc(100vh - var(--header-height))}}@media screen and (width < 768px){.r-sidebar-space{display:block;height:40px}}.r-sidebar-btn{position:sticky;top:0;display:flex;width:100%;font-size:14px;border:0;padding:12px;background:none;cursor:pointer;color:var(--neutral800);background-color:var(--body);z-index:1}@media screen and (width >= 768px){.r-sidebar-btn{display:none}}.r-sidebar-chevron{display:inline;margin-right:6px;transition:transform .2s}.r-sidebar._opened .r-sidebar-chevron{transform:rotate(90deg)}.r-sidebar-list{color:var(--neutral700);list-style:none;padding:0;margin:0;font-size:14px}.r-sidebar-drop[open]::details-content{height:var(--drop-height, auto)}.r-sidebar-drop::details-content{height:0;overflow:hidden;transition:height .3s,content-visibility .3s allow-discrete}.r-sidebar-sublist{margin-left:12px}.r-sidebar-sublist .r-sidebar-link{position:relative;border-top-left-radius:0;border-bottom-left-radius:0}.r-sidebar-sublist .r-sidebar-link::before{content:"";position:absolute;left:0;top:-1px;width:2px;height:calc(100% + 4px);background-color:var(--neutral200);transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-li{position:relative;padding-top:2px;padding-bottom:2px;line-height:1.5}.r-sidebar-li._droppable>a{padding-right:32px}.r-sidebar-li-d0{margin-left:-8px}.r-sidebar-p{margin:0;padding:4px 10px}.r-sidebar-heading{color:var(--neutral900);font-weight:600;margin-block-end:4px}.r-sidebar-heading:not(:first-child){margin-block-start:12px}.r-sidebar-link{display:block;padding:4px 10px;color:inherit;border-bottom:2px solid rgba(0,0,0,0);border-radius:2px;text-decoration:none;transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s,color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-link._target{color:var(--primary950);background-color:var(--neutral50)}.r-sidebar-link:hover{color:var(--primary800);background-color:var(--neutral100);transition-delay:initial}.r-sidebar-link:hover::before{background-color:currentColor;transition-delay:initial}.r-sidebar-link._active{color:var(--primary700);background-color:var(--neutral50)}.r-sidebar-link._active::before{background-color:currentColor}.r-sidebar-drop-btn{position:absolute;right:3px;top:5px;border-radius:4px;padding:4px;background-color:var(--neutral200);list-style:none;cursor:pointer;transition:background-color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s,color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-sidebar-drop-btn:hover{background-color:var(--neutral300);color:var(--primary500);transition-delay:initial}.r-sidebar-drop-btn::before{content:"";position:absolute;inset:-4px}.r-sidebar-drop-btn::-webkit-details-marker{display:none}.r-sidebar-drop-icon{display:block;transition:transform .2s}.r-sidebar-drop[open]>.r-sidebar-drop-btn>.r-sidebar-drop-icon{transform:rotate(90deg)}.r-theme{position:relative;display:flex;gap:4px;width:108px;height:36px;padding:2px;background-color:var(--neutral950);border-radius:14px}.r-theme::before{content:"";position:absolute;display:block;height:32px;width:32px;top:2px;left:2px;background-color:var(--body);border-radius:12px;transition:left .2s}.r-theme-btn{padding:8px;background:none;border:0;border-radius:12px;cursor:pointer;color:var(--neutral50);fill:var(--neutral950);z-index:1;transition:color .2s .1s,fill .2s}.r-theme-btn:hover{color:var(--neutral50);fill:var(--neutral50)}.theme-dark:not(.theme-system) .r-theme::before{left:2px}.theme-dark:not(.theme-system) .r-theme-btn__dark{color:var(--neutral950);pointer-events:none}.theme-system .r-theme::before{left:38px}.theme-system .r-theme-btn__system{color:var(--neutral950);pointer-events:none}.theme-light:not(.theme-system) .r-theme::before{left:74px}.theme-light:not(.theme-system) .r-theme-btn__light{color:var(--neutral950);pointer-events:none}.r-container{max-width:1180px;padding-right:12px;padding-left:12px;margin-right:auto;margin-left:auto}.r-header-menu{display:flex;justify-content:flex-end;order:1}@media screen and (width >= 1024px){.r-header-menu{flex:1;order:unset}}.r-header-menu._opened .r-header-responsive{display:flex}.r-header-responsive{display:none;justify-content:flex-end;flex:1;gap:24px;z-index:1}@media screen and (width < 1024px){.r-header-responsive{flex-direction:column-reverse;padding:12px;background-color:var(--body);position:fixed;top:60px;right:0;bottom:0;left:0}}@media screen and (width >= 1024px){.r-header-responsive{display:flex;justify-content:space-between;align-items:center}}.r-header-burger{position:relative;display:flex;align-items:center;justify-content:center;height:32px;width:32px;cursor:pointer;background:none;border:none}@media screen and (width >= 1024px){.r-header-burger{display:none}}.r-burger-line{display:block;width:20px;height:1.5px;position:absolute;background-color:var(--neutral700);margin:auto;transition:transform .3s}.r-burger-line._top{transform:translateY(-3px)}.r-header-menu._opened .r-burger-line._top{transform:translateY(0) rotate(45deg);margin-top:0}.r-burger-line._bottom{transform:translateY(3px)}.r-header-menu._opened .r-burger-line._bottom{transform:translateY(0) rotate(-45deg);margin-top:0}.r-search-btn{position:relative;border-radius:6px;background-color:var(--neutral100);color:var(--neutral600);padding:8px 20px;border:1px solid var(--neutral200);width:100%;text-align:left;cursor:text}@media screen and (width >= 768px){.r-search-btn{width:220px;padding:8px 96px 8px 20px}}.r-search-btn:hover{border-color:var(--neutral600)}.r-search-btn:hover .r-search-kbd{color:var(--neutral950)}.r-search-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r-search-kbd{display:none;position:absolute;right:6px;top:50%;transform:translateY(-50%)}@media screen and (width >= 768px){.r-search-kbd{display:flex}}.r-search-popup-header{position:relative;border-bottom:1px solid var(--neutral200)}.r-search-input{border-radius:12px 12px 0 0;background-color:var(--neutral50);padding:16px 20px;border:none;border-bottom:2px solid var(--neutral300);width:100%;font-size:16px}@media screen and (width >= 768px){.r-search-input{padding:16px 72px 16px 20px}}.r-search-input:hover{border-bottom-color:var(--primary800)}.r-search-input:focus{outline:none;border-bottom-color:var(--primary600)}.r-search-input::placeholder{color:var(--neutral500)}.r-search-popup-kbd{color:var(--neutral600);right:20px}.r-search-results{padding:12px 8px 8px;max-height:min(400px,100vh - 200px);overflow-y:auto;list-style:none;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0);margin:0}.r-search-item{display:block;text-decoration:none;color:var(--neutral700);padding:8px 12px;border:1px solid var(--neutral100);border-radius:6px;width:100%;margin-top:6px}.r-search-item:hover,.r-search-item:focus{color:var(--neutral950);background-color:var(--neutral50)}.r-search-item-title{margin:0}.r-search-item-desc{font-size:14px;color:var(--neutral600);margin:12px 0 0}.r-dropdown{position:relative;color:var(--neutral600);transition:color .2s .1s}.r-dropdown:hover,.r-dropdown:focus-within{color:var(--neutral950)}.r-dropdown:hover .r-dropdown-drop,.r-dropdown:focus-within .r-dropdown-drop{visibility:visible;pointer-events:all;transform:translateY(20px);opacity:1}.r-dropdown:hover .r-dropdown-chevron,.r-dropdown:focus-within .r-dropdown-chevron{transform:rotate(180deg)}.r-dropdown-summary{display:flex;justify-content:space-between;align-items:center;width:100%;position:relative;color:inherit;cursor:pointer;padding:10px 4px;font-size:16px;border:0;background:none;z-index:1}.r-dropdown-chevron{margin-left:6px;transition:transform .3s .1s}.r-dropdown-drop{list-style:none;position:absolute;top:16px;left:-12px;visibility:hidden;pointer-events:none;opacity:0;transition:transform .3s .1s,opacity .3s .1s,visibility .3s .1s;background-color:var(--neutral50);border:1px solid var(--neutral100);border-radius:8px;margin:0;padding:2px 6px;min-width:120px;max-width:180px}.r-dropdown-link{display:block;width:100%;text-decoration:none;color:var(--neutral700);padding:4px 8px;margin-top:4px;margin-bottom:4px;border-radius:4px;transition:background-color .2s}.r-dropdown-link:hover{color:var(--neutral900);background-color:var(--neutral100)}.r-dropdown-link._active{color:var(--primary700)}.r-header-social{display:flex;flex:1;justify-content:flex-end}@media screen and (width >= 1024px){.r-header-social{flex:none;justify-content:unset}}.r-header-social-git{color:var(--neutral700);transition:color .2s}.r-header-social-git:hover,.r-header-social-git:focus{color:var(--neutral950)}.r-keylink{display:block;position:relative;padding:8px 12px;border:2px solid var(--neutral500);border-radius:6px;text-decoration:none;background:var(--body)}.r-keylink:not(:focus){width:1px !important;height:1px !important;padding:0 !important;overflow:hidden !important;clip:rect(1px, 1px, 1px, 1px) !important;border:0 !important;user-select:none;pointer-events:none}.r-breadcrumbs{grid-area:breadcrumbs;list-style:none;margin:0;padding:20px 0 0;line-height:2}@media screen and (width >= 768px){.r-breadcrumbs{padding:32px 0 0}}.r-breadcrumb{display:inline}.r-breadcrumb._previous::after{content:"/";font-weight:600;margin-inline:8px}.r-breadcrumb-link{color:var(--neutral700);text-decoration:none}.r-breadcrumb-link:hover{color:var(--primary800)}.r-breadcrumb-link,.r-breadcrumb-title{display:inline;padding:6px 0;margin:0}.r-breadcrumb-title{color:var(--neutral950);font-weight:600}.r-pagination{grid-area:pagination;display:grid;grid-template-columns:repeat(auto-fit, minmax(148px, 1fr));gap:16px;margin-bottom:80px}.r-pagination-item{position:relative;padding-top:8px;padding-bottom:8px;text-decoration:none;font-size:14px;color:var(--neutral700)}.r-pagination-item:hover{color:var(--neutral900)}.r-pagination-item._prev{padding-left:32px}.r-pagination-item._next{text-align:right;padding-right:32px}.r-pagination-text{display:block;line-height:2}.r-pagination-title{font-weight:600;font-size:18px;color:var(--neutral950)}.r-pagination-icon{position:absolute;top:50%;transform:translateY(-50%);transition:transform .2s;margin:-4px}.r-pagination-icon._prev{left:0}.r-pagination-item:hover .r-pagination-icon._prev{transform:translate(-4px, -50%)}@media screen and (width >= 1180px){.r-pagination-item:hover .r-pagination-icon._prev{transform:translate(-8px, -50%)}}.r-pagination-icon._next{right:0}.r-pagination-item:hover .r-pagination-icon._next{transform:translate(4px, -50%)}@media screen and (width >= 1180px){.r-pagination-item:hover .r-pagination-icon._next{transform:translate(8px, -50%)}}.r-contents{grid-area:contents}.r-contents-sticky{position:sticky;top:var(--header-height);width:100%}@media screen and (width >= 1180px){.r-contents-sticky{padding:0 12px;max-height:calc(100vh - var(--header-height));overflow:auto;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0);scrollbar-gutter:stable}}.r-contents-control{display:contents;visibility:hidden}@media screen and (width >= 1180px){.r-contents-control{pointer-events:none}}@media screen and (width < 1180px){.r-contents-control:checked+.r-contents-details .r-contents-list{visibility:visible;height:var(--drop-height, auto)}}@media screen and (width < 1180px){.r-contents-control:checked+.r-contents-details .r-contents-title{color:var(--neutral800)}}.r-contents-control:checked+.r-contents-details .r-contents-chevron{transform:rotate(180deg)}.r-contents-list{overflow:hidden;transition:height .3s allow-discrete,visibility .3s allow-discrete}@media screen and (width < 1180px){.r-contents-list{visibility:hidden;height:0}}.r-contents-list-content{padding:2px}@media screen and (width < 1180px){.r-contents-details{background:var(--neutral100);border-radius:4px}}.r-contents-title{display:block;position:sticky;top:0;cursor:pointer;margin-top:20px;padding:12px;color:var(--neutral600);z-index:1}@media screen and (width < 1180px){.r-contents-title{display:flex;align-items:center;justify-content:space-between}}@media screen and (width >= 1180px){.r-contents-title{color:var(--neutral900);background:var(--body);font-weight:600;margin-top:0;padding:32px 0 12px;cursor:auto}}@media screen and (width < 1180px){.r-contents-title:hover{color:var(--neutral900)}}.r-contents-chevron{display:inline;vertical-align:middle;margin-left:8px;transition:transform .2s}@media screen and (width >= 1180px){.r-contents-chevron{display:none}}.r-contents-link{display:block;position:relative;color:var(--neutral600);text-decoration:none;padding-top:4px;padding-bottom:4px;padding-left:12px;margin-bottom:8px;font-size:14px;line-height:1.5;transition:color .2s cubic-bezier(0, 0.66, 0.58, 1) .05s}.r-contents-link.r-contents-link:hover{color:var(--primary800);transition-delay:initial}.r-contents-link::before,.r-contents-link::after{content:"";display:block;position:absolute;top:-4px;left:0;height:calc(100% + 8px);border-style:solid;border-width:0 2px 0 0;border-color:var(--primary800)}.r-contents-link::before{border-color:var(--neutral200)}.r-contents-link::after{mask-image:linear-gradient(135deg, #000 50%, transparent 50%);mask-repeat:no-repeat;mask-size:200% 200%;mask-position:100% 100%}.r-contents-link._nested{margin-left:16px}.r-contents-link._nested::before,.r-contents-link._nested::after{left:-16px;width:18px}.r-contents-link:not(._nested)+.r-contents-link._nested::before,.r-contents-link:not(._nested)+.r-contents-link._nested::after{border-top-width:2px}.r-contents-link._nested+.r-contents-link:not(._nested)::before,.r-contents-link._nested+.r-contents-link:not(._nested)::after{width:18px;border-width:2px 0 0 2px}.r-contents-link._nested+.r-contents-link:not(._nested)::after{mask-image:linear-gradient(45deg, transparent 50%, #000 50%);mask-position:0 100% !important}.r-contents-link._nested+.r-contents-link._passed:not(._nested)::after{mask-position:100% 0 !important}@media screen and (width >= 1180px){.r-contents-link._passed{color:var(--neutral800)}}@media screen and (width >= 1180px){.r-contents-link._passed::after{mask-position:0 0 !important}}@media screen and (width >= 1180px){.r-contents-link._active{color:var(--primary800)}}.r-contents-link._active::after,.r-contents-link._active+.r-contents-link::after{transition:mask-position .3s}.r-contents-actions{position:sticky;bottom:0;padding-top:2px;padding-bottom:2px;margin-top:20px;background-color:var(--body)}@media screen and (width < 1180px){.r-contents-actions{display:none}}.r-contents-git{display:block;width:100%;position:relative;color:var(--neutral600);text-decoration:none;padding-top:10px;padding-bottom:10px;font-size:14px;font-weight:600}.r-contents-git:hover{color:var(--neutral900)}.r-last-modified{color:var(--neutral700);margin-block-start:16px}.r-external-mark{position:relative;vertical-align:text-top;display:inline-block;margin-left:-4px;margin-right:2px;width:6px;height:6px}.r-external-mark::after{content:"";position:absolute;top:0;right:0;width:100%;height:100%;border-top:1px solid currentColor;border-right:1px solid currentColor}.r-external-mark::before{content:"";position:absolute;top:0;right:0;width:3px;height:3px;background-color:currentColor;border-radius:0 0 0 4px}.r-anchor-heading:hover .r-anchor-heading-link{visibility:visible;opacity:1}.r-anchor-heading-link{visibility:hidden;opacity:0;transition:opacity .3s allow-discrete;padding-inline:8px;margin-inline-start:-4px;color:var(--neutral600);text-decoration:none}.r-anchor-heading-link:hover{color:var(--link-base-hovered)}.r-anchor-heading-link::after{content:"#"}.r-code-section{position:relative;margin-block-start:1.5em;margin-block-end:1.75em}.r-code-section-header{font-family:var(--monospace-font, monospace, monospace);display:flex;justify-content:space-between;align-items:center;border-top-left-radius:6px;border-top-right-radius:6px;padding:6px 20px;background-color:var(--neutral100);border:1px solid var(--neutral300);color:var(--neutral700)}.r-code-section-header+.r-code-section-block{border-top-left-radius:0;border-top-right-radius:0;border-top:0;margin-block-start:0;margin-block-end:0}.r-code-section:hover .r-code-section-copy{opacity:.9}.r-code-section-copy.r-code-section-copy{position:absolute;right:9px;top:9px;opacity:0;transition:opacity .2s,color .2s,background-color .2s}.r-code-section-copy.r-code-section-copy:hover,.r-code-section-copy.r-code-section-copy._active{opacity:1}.r-code-section-filename{font-family:var(--monospace-font, monospace, monospace)}.r-code-span{font-family:var(--monospace-font, monospace, monospace);background-color:var(--neutral100);border-radius:4px;padding:2px 6px;font-size:16px}.r-code-span+.r-content-link-external{margin-left:-12px}.r-img{max-width:100%}.r-block{width:100%;overflow:auto;margin-block-start:12px;margin-block-end:12px;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0)}.r-blockquote{background-color:var(--neutral100);padding:12px;border-left:6px solid var(--primary800);border-top-right-radius:2px;border-bottom-right-radius:2px;font:inherit;margin-inline:0;margin-block-start:1em;margin-block-end:1em}.r-p{line-height:1.8;margin-block-start:1em;margin-block-end:1em}.r-h1{font-size:32px;line-height:1.4;margin-block-start:.67em;margin-block-end:.67em}.r-h2{font-size:26px;line-height:1.4;margin-block-start:.83em;margin-block-end:.83em}.r-h3{font-size:22px;line-height:1.4;margin-block-start:1em;margin-block-end:1em}.r-h4{font-size:20px;line-height:1.4;margin-block-start:1.33em;margin-block-end:1.33em}.r-h5{font-size:18px;line-height:1.4;margin-block-start:1.5em;margin-block-end:1.5em}.r-h6{font-size:16px;line-height:1.4;margin-block-start:1.8em;margin-block-end:1.8em}.r-tabs{margin-block-start:1.5em;margin-block-end:1.75em}.r-tab-list{position:relative;z-index:1}.r-tab-list .r-code-section,.r-tab-list .r-code-block,.r-tab-list .r-code-section-header{margin-block-start:0;margin-block-end:0;border-top-left-radius:0;border-top-right-radius:0;background-color:var(--neutral50)}.r-tabs-header{display:flex}.r-tab-header{cursor:pointer;border:1px solid var(--neutral300);color:var(--neutral600);border-bottom:0;margin-bottom:-1px;background-color:var(--body);border-top-left-radius:4px;border-top-right-radius:4px;padding:8px 20px}.r-tab-header:hover{background-color:var(--neutral50);color:var(--primary600)}.r-tab-header-code{font-family:var(--monospace-font, monospace, monospace)}.r-kbd-container{display:flex;gap:4px;font-size:14px;cursor:pointer}.r-kbd-container:hover{color:var(--neutral950)}.r-kbd-key{background-color:var(--neutral200);font-size:12px;border-radius:4px;padding:5px 8px;min-width:24px;text-align:center}.r-modal{position:fixed;left:0;bottom:0;width:100%;background-color:var(--body);border-radius:12px 12px 0 0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s .1s,transform .2s .1s,visibility .01s .2s .1s;z-index:1000}@media screen and (width >= 768px){.r-modal{top:10%;left:50%;bottom:auto;transform:translateX(-50%) scale(0.95);max-width:480px;border-radius:12px}}.r-modal._visible{opacity:1;visibility:visible;transition:opacity .2s .1s,transform .2s .1s;pointer-events:all}@media screen and (width >= 768px){.r-modal._visible{transform:translateX(-50%) scale(1)}}.r-content-link{text-decoration:none;color:var(--link-base)}.r-content-link:hover{color:var(--link-base-hovered)}.r-content-link:visited{color:var(--link-visited)}.r-content-link:visited:hover{color:var(--link-visited-hovered)}.r-content-link:active{color:var(--link-active)}.r-content-link-external{position:relative;vertical-align:text-top;display:inline-block;margin-left:-4px;margin-right:2px;width:6px;height:6px}.r-content-link-external::after{content:"";position:absolute;top:0;right:0;width:100%;height:100%;border-top:1px solid currentColor;border-right:1px solid currentColor}.r-content-link-external::before{content:"";position:absolute;top:0;right:0;width:3px;height:3px;background-color:currentColor;border-radius:0 0 0 4px}.r-code-block{font-family:var(--monospace-font, monospace, monospace);font-size:16px;line-height:1.33;border-radius:6px;padding:16px 20px;margin-block-start:1.5em;margin-block-end:1.75em;color:var(--primary800);background-color:var(--neutral50);border:1px solid var(--neutral300);overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--neutral200) rgba(0,0,0,0)}.copy-button{position:relative;padding:8px;background:none;color:var(--neutral700);background-color:var(--neutral100);border:0;border-radius:6px;cursor:pointer;font:inherit;transition:color .2s,background-color .2s}.copy-button-success{opacity:0;transform:scale(0.7);transition:.2s}.copy-button-base{transition:.2s}.copy-button:hover{color:var(--neutral950);background-color:var(--neutral200)}.copy-button:active,.copy-button._active{color:var(--success)}.copy-button:active .copy-button-success,.copy-button._active .copy-button-success{opacity:1;transform:scale(1)}.copy-button:active .copy-button-base,.copy-button._active .copy-button-base{opacity:0;transform:scale(0.7)}.copy-text{position:relative;cursor:pointer;background:none;border:0;padding:0;font:inherit}.copy-text:hover{color:var(--neutral950)}.copy-text::after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:linear-gradient(to right, currentColor 30%, transparent 0%, transparent 80%, currentColor 80%) repeat-x 0px/8px;transition:background .2s}.copy-text:active,.copy-text._active{color:var(--success)}.r-table{min-width:100%;text-align:left;border-collapse:collapse}.r-td{padding:6px 12px;border-bottom:1px solid var(--neutral400);border-collapse:collapse}.r-th{padding:6px 12px;border-top:1px solid var(--neutral500);border-bottom:1px solid var(--neutral500);border-collapse:collapse}.r-thead{background-color:var(--neutral100)}.r-li{line-height:1.8;margin-block-start:6px;margin-block-end:6px}.r-li>.r-ul,.r-li>.r-ol{padding-inline-start:20px;margin-block-start:6px;margin-block-end:6px}.r-ol{padding-inline-start:0;list-style-position:inside;margin-block-start:1em;margin-block-end:1em}.r-ul{padding-inline-start:0;list-style-position:inside;margin-block-start:1em;margin-block-end:1em}.r-task-ol{list-style:none}.r-task-li.r-task-li{margin-block-start:2px;margin-block-end:2px}.r-task-label{cursor:pointer;display:block;width:100%;padding-top:2px;padding-bottom:2px}.r-task-label:hover .r-task-checkbox{filter:brightness(0.8)}.r-task-checkbox{cursor:pointer;width:18px;height:18px;inset:-4px;margin-inline-end:8px;vertical-align:middle}.r-task-label-text{vertical-align:middle}.r-task-ul{list-style:none}.r-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,0);opacity:0;visibility:hidden;pointer-events:none;backdrop-filter:blur(1px);transition:background .05s,opacity .2s,visibility .01s .15s;z-index:100}.r-backdrop._visible{opacity:1;background:rgba(0,0,0,.3);visibility:visible;transition:background .05s,opacity .2s;pointer-events:all}.r-tooltip{font-family:var(--monospace-font, monospace, monospace);opacity:0;position:absolute;background:var(--neutral200);width:max-content;padding:6px 12px;border-radius:4px;max-width:200px;transform:translateY(80%);transition:transform .2s,opacity .2s}.r-tooltip._bottom-start{bottom:-8px;left:0}.r-tooltip._bottom-end{bottom:-8px;right:0}.r-tooltip._visible{opacity:1;transform:translateY(100%)}
2
2
 
3
3
  /*# sourceMappingURL=styles.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["stdin","file:///home/runner/work/robindoc/robindoc/packages/robindoc/src/assets/_vars.scss"],"names":[],"mappings":"AAEA,MACE,gBACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBAGF,KACE,sBACA,kBACA,UACA,SACA,wCACA,sBACA,6BACA,wBACA,aACA,qBACA,qDACA,oDAEA,kCAdF,KAeI,sDAGF,mCAlBF,KAmBI,uBACA,yBAIJ,mBAGE,mBAGF,uCACE,mBAGE,gCACA,kCACA,uCACA,yCACA,gCACA,mCACA,kCAIJ,IACE,cAIA,kCADF,kBAEI,iBAKF,mCADF,kBAEI,iBAIJ,WACE,gBAGF,aACE,mBACA,gBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,mBACA,qBACA,6BACA,wBACA,gCACA,uBAGA,kBACA,4BACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,qBACA,mBACA,qBACA,qBACA,qBACA,mBACA,qBACA,mBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBAGF,YACE,kBACA,gBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,uCACA,mBACA,qBACA,6BACA,wBACA,gCACA,uBAGA,kBACA,4BACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,gBACA,mBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,mBACA,qBACA,mBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBAIF,UACE,uCACA,iBACA,oBAGF,cACE,aACA,8BACA,mBACA,SAGF,qBACE,gBACA,yBAGF,aACE,wBAGF,WACE,eACA,cACA,wBAGF,gBACE,gBACA,qBACA,wBAEA,sBACE,wBAKJ,UACE,gBACA,6BACA,MACA,0CACA,YACA,aAGF,eACE,YACA,aACA,8BACA,mBACA,SAGF,eACE,cACA,kBACA,wBACA,qBAEA,0CAEE,wBAIJ,cACE,aACA,sBACA,cAEA,oCALF,cAMI,oBAIJ,eACE,wBACA,qBACA,cACA,qBAEA,kDAEE,wBAIJ,uBACE,wBAEA,kEAEE,wBAIJ,kBACE,aACA,8BACA,SACA,oBAEA,oCANF,kBAOI,mBACA,mBACA,UAIJ,mBACE,aACA,mBACA,SAGE,kCADF,+BAEI,QAKF,kCADF,oCAEI,eACA,WACA,QAMN,kBACE,8CACA,yBAEA,mCAJF,kBAKI,aACA,uBACA,gBACA,oGACA,6CACA,uCAGF,oCAbF,kBAcI,gBACA,4GACA,oCACA,kCAKJ,kBACE,8CACA,yBAEA,oCAJF,kBAKI,aACA,8BACA,gBACA,oFACA,kCACA,kCAKJ,kBACE,8CACA,yBAEF,oBACE,6BACA,QACA,UACA,aAEF,uBACE,iBAIF,WACE,oBACA,kBAEA,oCAJF,WAKI,qBAGF,yBACE,aAIJ,YACE,eACA,WACA,YACA,WACA,sBAGF,SACE,eAGF,sBAEE,gBAGF,cACE,cACA,WACA,gBACA,mBAGE,gCACE,uBAKN,qBACE,uBACA,qBAGF,cACE,sBAIF,WACE,kBAEA,kCAHF,WAII,gBACA,wBACA,yBACA,OACA,eACA,6BACA,0CACA,WACA,YACA,UACA,eAIJ,oBACE,iBACA,oBAIA,kCADF,wCAEI,cAKF,kCADF,mBAEI,2CAIJ,gBACE,gBACA,gBAGF,mBACE,kBACA,gBAEA,iCACE,mCACA,yBAIJ,2BACE,WACA,kBACA,MACA,WACA,QACA,WACA,8BACA,mCACA,UACA,oEAGF,eACE,0BAEA,kCAHF,eAII,cAGF,mCAPF,eAQI,gBACA,yBACA,cACA,qBACA,gDACA,wBACA,+CAKF,kCADF,iBAEI,cACA,aAIJ,eACE,gBACA,MACA,aACA,WACA,eACA,SACA,aACA,gBACA,eACA,wBACA,6BACA,UAEA,mCAdF,eAeI,cAIJ,mBACE,eACA,iBACA,yBAGF,sCACE,wBAGF,gBACE,wBACA,gBACA,UACA,SACA,eAGF,uCACE,gCAGF,iCACE,SACA,gBACA,WACE,iDAIJ,mBACE,iBAGF,mCACE,kBACA,yBACA,4BAEA,2CACE,WACA,kBACA,OACA,SACA,UACA,wBACA,mCACA,oEAIJ,cACE,kBACA,gBACA,mBACA,gBAGF,2BACE,mBAGF,iBACE,iBAGF,aACE,SACA,iBAGF,mBACE,wBACA,gBACA,qBAEA,qCACE,wBAIJ,gBACE,cACA,iBACA,cACA,sCACA,kBACA,qBACA,WACE,uGAIJ,wBACE,wBACA,kCAGF,sBACE,wBACA,mCACA,yBAEA,8BACE,8BACA,yBAIJ,wBACE,wBACA,kCAEA,gCACE,8BAIJ,oBACE,kBACA,UACA,QACA,kBACA,YACA,mCACA,gBACA,eACA,WACE,uGAGF,0BACE,mCACA,wBACA,yBAGF,4BACE,WACA,kBACA,WAGF,4CACE,aAIJ,qBACE,cACA,yBAGF,+DACE,wBAIF,SACE,kBACA,aACA,QACA,YACA,YACA,YACA,mCACA,mBAEA,iBACE,WACA,kBACA,cACA,YACA,WACA,QACA,SACA,6BACA,mBACA,oBAIJ,aACE,YACA,gBACA,SACA,mBACA,eACA,uBACA,uBACA,UACA,WACE,uBAGF,mBACE,uBACA,sBAIJ,gDACE,SAGF,kDACE,wBACA,oBAGF,+BACE,UAGF,mCACE,wBACA,oBAGF,iDACE,UAGF,oDACE,wBACA,oBAIF,aACE,UCh1BG,ODi1BH,mBACA,kBACA,kBACA,iBAIF,eACE,aACA,yBACA,QAEA,oCALF,eAMI,OACA,aAIJ,4CACE,aAGF,qBACE,aACA,yBACA,OACA,SACA,UAEA,mCAPF,qBAQI,8BACA,aACA,6BACA,eACA,SACA,QACA,SACA,QAGF,oCAlBF,qBAmBI,aACA,8BACA,oBAIJ,iBACE,kBACA,aACA,mBACA,uBACA,YACA,WACA,eACA,gBACA,YAEA,oCAXF,iBAYI,cAIJ,eACE,cACA,WACA,aACA,kBACA,mCACA,YACA,yBAGF,oBACE,2BAGF,2CACE,sCACA,aAGF,uBACE,0BAGF,8CACE,uCACA,aAIF,cACE,kBACA,kBACA,mCACA,wBACA,iBACA,mCACA,WACA,gBACA,YAEA,mCAXF,cAYI,YACA,2BAGF,oBACE,+BAEA,kCACE,wBAKN,gBACE,cACA,gBACA,uBACA,mBAGF,cACE,aACA,kBACA,UACA,QACA,2BAEA,mCAPF,cAQI,cAIJ,uBACE,kBACA,0CAGF,gBACE,4BACA,kCACA,kBACA,YACA,0CACA,WACA,eAEA,mCATF,gBAUI,6BAGF,sBACE,sCAGF,sBACE,aACA,sCAGF,6BACE,wBAIJ,oBACE,wBACA,WAGF,kBACE,qBACA,oCACA,gBACA,gBACA,qBACA,gDACA,SAGF,eACE,cACA,qBACA,wBACA,iBACA,mCACA,kBACA,WACA,eAEA,0CAEE,wBACA,kCAIJ,qBACE,SAGF,oBACE,eACA,wBACA,gBAIF,YACE,kBACA,wBACA,yBAEA,2CAEE,wBAEA,6EACE,mBACA,mBACA,2BACA,UAGF,mFACE,yBAKN,oBACE,aACA,8BACA,mBACA,WACA,kBACA,cACA,eACA,iBACA,eACA,SACA,gBACA,UAGF,oBACE,gBACA,6BAGF,iBACE,gBACA,kBACA,SACA,WACA,kBACA,oBACA,UACA,WACE,qDAGF,kCACA,mCACA,kBACA,SACA,gBACA,gBACA,gBAGF,iBACE,cACA,WACA,qBACA,wBACA,gBACA,eACA,kBACA,kBACA,gCAEA,uBACE,wBACA,mCAIJ,yBACE,wBAIF,iBACE,aACA,OACA,yBAEA,oCALF,iBAMI,UACA,uBAIJ,qBACE,wBACA,qBAEA,sDAEE,wBAGJ,WACE,cACA,kBACA,iBACA,mCACA,kBACA,qBACA,uBAGF,uBACE,qBACA,sBACA,qBACA,2BACA,yCACA,oBACA,iBACA,oBAIF,YACE,mBAGF,mBACE,gBACA,yBACA,WAEA,oCALF,mBAMI,eACA,8CACA,cACA,qBACA,gDACA,yBAIJ,oBACE,iBACA,kBAEA,oCAJF,oBAKI,qBAMA,mCADF,iEAEI,mBACA,iCAKF,mCADF,kEAEI,yBAIJ,oEACE,yBAIJ,iBACE,gBACA,WACE,wDAGF,mCANF,iBAOI,kBACA,UAIJ,yBACE,YAIA,mCADF,oBAEI,6BACA,mBAIJ,kBACE,cACA,gBACA,MACA,eACA,gBACA,aACA,wBACA,UAEA,mCAVF,kBAWI,aACA,mBACA,+BAGF,oCAhBF,kBAiBI,wBACA,uBACA,gBACA,aACA,oBACA,aAIA,mCADF,wBAEI,yBAKN,oBACE,eACA,sBACA,gBACA,yBAEA,oCANF,oBAOI,cAIJ,iBACE,cACA,kBACA,wBACA,qBACA,gBACA,mBACA,kBACA,kBACA,eACA,gBACA,yDAEA,uCACE,wBACA,yBAGF,iDAEE,WACA,cACA,kBACA,SACA,OACA,wBACA,mBACA,uBACA,+BAGF,yBACE,+BAGF,wBACE,8DACA,sBACA,oBACA,wBAIJ,yBACE,iBAEA,iEAEE,WACA,WAKF,+HAEE,qBAKF,+HAEE,WACA,yBAEF,+DACE,6DACA,gCAKF,uEACE,gCAKF,oCADF,yBAEI,yBAIA,oCADF,gCAEI,8BAMJ,oCADF,yBAEI,yBAGF,iFAEE,6BAIJ,oBACE,gBACA,SACA,gBACA,mBACA,gBACA,6BAEA,mCARF,oBASI,cAIJ,gBACE,cACA,WACA,kBACA,wBACA,qBACA,iBACA,oBACA,eACA,gBAEA,sBACE,wBAKJ,eACE,sBACA,gBACA,SACA,iBACA,cAEA,mCAPF,eAQI,kBAIJ,cACE,eAIA,+BACE,YACA,gBACA,kBAIJ,mBACE,wBACA,qBAEA,yBACE,wBAIJ,uCAEE,eACA,cACA,SAGF,oBACE,wBACA,gBAIF,cACE,qBACA,aACA,2DACA,SACA,mBAGF,mBACE,kBACA,gBACA,mBACA,qBACA,eACA,wBAEA,yBACE,wBAIJ,yBACE,kBAGF,yBACE,iBACA,mBAGF,mBACE,cACA,cAGF,oBACE,gBACA,eACA,wBAGF,mBACE,kBACA,QACA,2BACA,yBACA,YAGF,yBACE,OAEA,kDACE,gCAEA,oCAHF,kDAII,iCAKN,yBACE,QAEA,kDACE,+BAEA,oCAHF,kDAII,gCAMN,iBACE,wBACA,wBAKA,+CACE,mBACA,UAIJ,uBACE,kBACA,UACA,sCACA,mBACA,yBACA,wBACA,qBAEA,6BACE,+BAGF,8BACE,YAGJ,gBACE,yBACA,wBAGF,uBACE,wDACA,aACA,8BACA,mBACA,2BACA,4BACA,iBACA,mCACA,mCACA,wBAGF,6CACE,yBACA,0BACA,aACA,qBACA,mBAEF,aACE,wDACA,mCACA,kBACA,gBACA,eAGF,sCACE,kBAEF,OACE,eAEF,SACE,WACA,cACA,wBACA,sBACA,qBACA,gDAEF,cACE,mCACA,aACA,wCACA,4BACA,+BACA,aACA,gBACA,uBACA,qBAEF,KACE,gBACA,uBACA,qBAIF,MACE,eACA,gBACA,yBACA,uBAGF,MACE,eACA,gBACA,yBACA,uBAGF,MACE,eACA,gBACA,uBACA,qBAGF,MACE,eACA,gBACA,0BACA,wBAGF,MACE,eACA,gBACA,yBACA,uBAGF,MACE,eACA,gBACA,yBACA,uBAEF,QACE,yBACA,wBAGF,YACE,kBACA,UAGF,yFAGE,qBACA,mBACA,yBACA,0BACA,kCAGF,eACE,aAGF,cACE,eACA,mCACA,wBACA,gBACA,mBACA,6BACA,2BACA,4BACA,iBAEA,oBACE,kCACA,wBAKJ,SACE,eACA,OACA,SACA,WACA,6BACA,4BACA,UACA,kBACA,oBACA,WACE,0DAGF,aAEA,mCAhBF,SAiBI,QACA,SACA,YACA,uCACA,gBACA,oBAIJ,kBACE,UACA,mBACA,WACE,kCAEF,mBAEA,mCARF,kBASI,qCAKJ,iBACE,aACA,QACA,eACA,eAEA,uBACE,wBAKJ,WACE,mCACA,eACA,kBACA,gBACA,eACA,kBAEF,gBACE,qBACA,uBAEA,sBACE,+BAGF,wBACE,0BAGF,8BACE,kCAGF,uBACE,yBAIJ,yBACE,kBACA,wBACA,qBACA,iBACA,iBACA,UACA,WAEA,gCACE,WACA,kBACA,MACA,QACA,WACA,YACA,kCACA,oCAGF,iCACE,WACA,kBACA,MACA,QACA,UACA,WACA,8BACA,wBAGJ,cACE,wDACA,eACA,iBACA,kBACA,kBACA,yBACA,wBACA,wBACA,kCACA,mCACA,gBACA,qBACA,gDAEF,aACE,YACA,gBACA,wBACA,SACA,kBACA,eACA,WACE,+BAIJ,qBACE,UACA,qBAEA,eAGF,kBACE,eAGF,mBACE,wBACA,mCAGF,yCAEE,qBAEA,mFACE,UACA,mBAGF,6EACE,UACA,qBAGJ,SACE,eACA,gBACA,yBAEF,MACE,iBACA,0CACA,yBAEF,MACE,iBACA,uCACA,0CACA,yBAEF,SACE,mCAEF,MACE,gBACA,uBACA,qBAGF,wBAEE,0BACA,uBACA,qBAEF,MACE,uBACA,2BACA,uBACA,qBAEF,MACE,uBACA,2BACA,uBACA,qBAEF,qBACE,uBACA,qBAGF,cACE,eACA,cACA,WACA,gBACA,mBAGE,qCACE,uBAKN,iBACE,eACA,WACA,YACA,WACA,sBACA,sBAGF,mBACE,sBAEF,WACE,gBAEF,WACE,gBAEF,YACE,eACA,MACA,QACA,SACA,OACA,yBACA,UACA,kBACA,oBACA,0BACA,WACE,iDAGF,YAGF,qBACE,UACA,0BACA,mBACA,WACE,4BAEF","file":"styles.css"}
1
+ {"version":3,"sourceRoot":"","sources":["stdin","file:///home/runner/work/robindoc/robindoc/packages/robindoc/src/assets/_vars.scss"],"names":[],"mappings":"AAEA,MACE,gBACA,oBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBAGF,KACE,sBACA,kBACA,UACA,SACA,wCACA,sBACA,6BACA,wBACA,aACA,qBACA,qDACA,oDAEA,kCAdF,KAeI,sDAGF,mCAlBF,KAmBI,uBACA,yBAIJ,mBAGE,mBAGF,uCACE,mBAGE,gCACA,kCACA,uCACA,yCACA,gCACA,mCACA,kCAIJ,IACE,cAIA,kCADF,kBAEI,iBAKF,mCADF,kBAEI,iBAIJ,WACE,gBAGF,aACE,mBACA,gBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,mBACA,qBACA,6BACA,wBACA,gCACA,uBAGA,kBACA,4BACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,qBACA,mBACA,qBACA,qBACA,qBACA,mBACA,qBACA,mBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBAGF,YACE,kBACA,gBACA,qBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,uCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,uCACA,mBACA,qBACA,6BACA,wBACA,gCACA,uBAGA,kBACA,4BACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,gBACA,mBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,mBACA,qBACA,mBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,qBACA,qBACA,qBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBAIF,UACE,uCACA,iBACA,oBAGF,cACE,aACA,8BACA,mBACA,SAGF,qBACE,gBACA,yBAGF,aACE,wBAGF,WACE,eACA,cACA,wBAGF,gBACE,gBACA,qBACA,wBAEA,sBACE,wBAKJ,UACE,gBACA,6BACA,MACA,0CACA,YACA,aAGF,eACE,YACA,aACA,8BACA,mBACA,SAGF,eACE,cACA,kBACA,wBACA,qBAEA,0CAEE,wBAIJ,cACE,aACA,sBACA,cAEA,oCALF,cAMI,oBAIJ,eACE,wBACA,qBACA,cACA,qBAEA,kDAEE,wBAIJ,uBACE,wBAEA,kEAEE,wBAIJ,kBACE,aACA,8BACA,SACA,oBAEA,oCANF,kBAOI,mBACA,mBACA,UAIJ,mBACE,aACA,mBACA,SAGE,kCADF,+BAEI,QAKF,kCADF,oCAEI,eACA,WACA,QAMN,kBACE,8CACA,yBAEA,mCAJF,kBAKI,aACA,uBACA,gBACA,oGACA,6CACA,uCAGF,oCAbF,kBAcI,gBACA,4GACA,oCACA,kCAKJ,kBACE,8CACA,yBAEA,oCAJF,kBAKI,aACA,8BACA,gBACA,oFACA,kCACA,kCAKJ,kBACE,8CACA,yBAEF,oBACE,6BACA,QACA,UACA,aAEF,uBACE,iBAIF,WACE,oBACA,kBAEA,oCAJF,WAKI,qBAGF,yBACE,aAIJ,YACE,eACA,WACA,YACA,WACA,sBAGF,SACE,eAGF,sBAEE,gBAGF,cACE,cACA,WACA,gBACA,mBAGE,gCACE,uBAKN,qBACE,uBACA,qBAGF,cACE,sBAIF,WACE,kBAEA,kCAHF,WAII,gBACA,wBACA,yBACA,OACA,eACA,6BACA,0CACA,WACA,YACA,UACA,eAIJ,oBACE,iBACA,oBAIA,kCADF,wCAEI,cAKF,kCADF,mBAEI,2CAIJ,gBACE,gBACA,gBAGF,mBACE,kBACA,gBAEA,iCACE,mCACA,yBAIJ,2BACE,WACA,kBACA,MACA,WACA,QACA,WACA,8BACA,mCACA,UACA,oEAGF,eACE,0BAEA,kCAHF,eAII,cAGF,mCAPF,eAQI,gBACA,yBACA,cACA,qBACA,gDACA,wBACA,+CAKF,kCADF,iBAEI,cACA,aAIJ,eACE,gBACA,MACA,aACA,WACA,eACA,SACA,aACA,gBACA,eACA,wBACA,6BACA,UAEA,mCAdF,eAeI,cAIJ,mBACE,eACA,iBACA,yBAGF,sCACE,wBAGF,gBACE,wBACA,gBACA,UACA,SACA,eAGF,uCACE,gCAGF,iCACE,SACA,gBACA,WACE,iDAIJ,mBACE,iBAGF,mCACE,kBACA,yBACA,4BAEA,2CACE,WACA,kBACA,OACA,SACA,UACA,wBACA,mCACA,oEAIJ,cACE,kBACA,gBACA,mBACA,gBAGF,2BACE,mBAGF,iBACE,iBAGF,aACE,SACA,iBAGF,mBACE,wBACA,gBACA,qBAEA,qCACE,wBAIJ,gBACE,cACA,iBACA,cACA,sCACA,kBACA,qBACA,WACE,uGAIJ,wBACE,wBACA,kCAGF,sBACE,wBACA,mCACA,yBAEA,8BACE,8BACA,yBAIJ,wBACE,wBACA,kCAEA,gCACE,8BAIJ,oBACE,kBACA,UACA,QACA,kBACA,YACA,mCACA,gBACA,eACA,WACE,uGAGF,0BACE,mCACA,wBACA,yBAGF,4BACE,WACA,kBACA,WAGF,4CACE,aAIJ,qBACE,cACA,yBAGF,+DACE,wBAIF,SACE,kBACA,aACA,QACA,YACA,YACA,YACA,mCACA,mBAEA,iBACE,WACA,kBACA,cACA,YACA,WACA,QACA,SACA,6BACA,mBACA,oBAIJ,aACE,YACA,gBACA,SACA,mBACA,eACA,uBACA,uBACA,UACA,WACE,uBAGF,mBACE,uBACA,sBAIJ,gDACE,SAGF,kDACE,wBACA,oBAGF,+BACE,UAGF,mCACE,wBACA,oBAGF,iDACE,UAGF,oDACE,wBACA,oBAIF,aACE,UCh1BG,ODi1BH,mBACA,kBACA,kBACA,iBAIF,eACE,aACA,yBACA,QAEA,oCALF,eAMI,OACA,aAIJ,4CACE,aAGF,qBACE,aACA,yBACA,OACA,SACA,UAEA,mCAPF,qBAQI,8BACA,aACA,6BACA,eACA,SACA,QACA,SACA,QAGF,oCAlBF,qBAmBI,aACA,8BACA,oBAIJ,iBACE,kBACA,aACA,mBACA,uBACA,YACA,WACA,eACA,gBACA,YAEA,oCAXF,iBAYI,cAIJ,eACE,cACA,WACA,aACA,kBACA,mCACA,YACA,yBAGF,oBACE,2BAGF,2CACE,sCACA,aAGF,uBACE,0BAGF,8CACE,uCACA,aAIF,cACE,kBACA,kBACA,mCACA,wBACA,iBACA,mCACA,WACA,gBACA,YAEA,mCAXF,cAYI,YACA,2BAGF,oBACE,+BAEA,kCACE,wBAKN,gBACE,cACA,gBACA,uBACA,mBAGF,cACE,aACA,kBACA,UACA,QACA,2BAEA,mCAPF,cAQI,cAIJ,uBACE,kBACA,0CAGF,gBACE,4BACA,kCACA,kBACA,YACA,0CACA,WACA,eAEA,mCATF,gBAUI,6BAGF,sBACE,sCAGF,sBACE,aACA,sCAGF,6BACE,wBAIJ,oBACE,wBACA,WAGF,kBACE,qBACA,oCACA,gBACA,gBACA,qBACA,gDACA,SAGF,eACE,cACA,qBACA,wBACA,iBACA,mCACA,kBACA,WACA,eAEA,0CAEE,wBACA,kCAIJ,qBACE,SAGF,oBACE,eACA,wBACA,gBAIF,YACE,kBACA,wBACA,yBAEA,2CAEE,wBAEA,6EACE,mBACA,mBACA,2BACA,UAGF,mFACE,yBAKN,oBACE,aACA,8BACA,mBACA,WACA,kBACA,cACA,eACA,iBACA,eACA,SACA,gBACA,UAGF,oBACE,gBACA,6BAGF,iBACE,gBACA,kBACA,SACA,WACA,kBACA,oBACA,UACA,WACE,qDAGF,kCACA,mCACA,kBACA,SACA,gBACA,gBACA,gBAGF,iBACE,cACA,WACA,qBACA,wBACA,gBACA,eACA,kBACA,kBACA,gCAEA,uBACE,wBACA,mCAIJ,yBACE,wBAIF,iBACE,aACA,OACA,yBAEA,oCALF,iBAMI,UACA,uBAIJ,qBACE,wBACA,qBAEA,sDAEE,wBAGJ,WACE,cACA,kBACA,iBACA,mCACA,kBACA,qBACA,uBAGF,uBACE,qBACA,sBACA,qBACA,2BACA,yCACA,oBACA,iBACA,oBAIF,eACE,sBACA,gBACA,SACA,iBACA,cAEA,mCAPF,eAQI,kBAIJ,cACE,eAIA,+BACE,YACA,gBACA,kBAIJ,mBACE,wBACA,qBAEA,yBACE,wBAIJ,uCAEE,eACA,cACA,SAGF,oBACE,wBACA,gBAIF,cACE,qBACA,aACA,2DACA,SACA,mBAGF,mBACE,kBACA,gBACA,mBACA,qBACA,eACA,wBAEA,yBACE,wBAIJ,yBACE,kBAGF,yBACE,iBACA,mBAGF,mBACE,cACA,cAGF,oBACE,gBACA,eACA,wBAGF,mBACE,kBACA,QACA,2BACA,yBACA,YAGF,yBACE,OAEA,kDACE,gCAEA,oCAHF,kDAII,iCAKN,yBACE,QAEA,kDACE,+BAEA,oCAHF,kDAII,gCAMN,YACE,mBAGF,mBACE,gBACA,yBACA,WAEA,oCALF,mBAMI,eACA,8CACA,cACA,qBACA,gDACA,yBAIJ,oBACE,iBACA,kBAEA,oCAJF,oBAKI,qBAMA,mCADF,iEAEI,mBACA,iCAKF,mCADF,kEAEI,yBAIJ,oEACE,yBAIJ,iBACE,gBACA,WACE,wDAGF,mCANF,iBAOI,kBACA,UAIJ,yBACE,YAIA,mCADF,oBAEI,6BACA,mBAIJ,kBACE,cACA,gBACA,MACA,eACA,gBACA,aACA,wBACA,UAEA,mCAVF,kBAWI,aACA,mBACA,+BAGF,oCAhBF,kBAiBI,wBACA,uBACA,gBACA,aACA,oBACA,aAIA,mCADF,wBAEI,yBAKN,oBACE,eACA,sBACA,gBACA,yBAEA,oCANF,oBAOI,cAIJ,iBACE,cACA,kBACA,wBACA,qBACA,gBACA,mBACA,kBACA,kBACA,eACA,gBACA,yDAEA,uCACE,wBACA,yBAGF,iDAEE,WACA,cACA,kBACA,SACA,OACA,wBACA,mBACA,uBACA,+BAGF,yBACE,+BAGF,wBACE,8DACA,sBACA,oBACA,wBAIJ,yBACE,iBAEA,iEAEE,WACA,WAKF,+HAEE,qBAKF,+HAEE,WACA,yBAEF,+DACE,6DACA,gCAKF,uEACE,gCAKF,oCADF,yBAEI,yBAIA,oCADF,gCAEI,8BAMJ,oCADF,yBAEI,yBAGF,iFAEE,6BAIJ,oBACE,gBACA,SACA,gBACA,mBACA,gBACA,6BAEA,mCARF,oBASI,cAIJ,gBACE,cACA,WACA,kBACA,wBACA,qBACA,iBACA,oBACA,eACA,gBAEA,sBACE,wBAKJ,iBACE,wBACA,wBAEF,iBACE,kBACA,wBACA,qBACA,iBACA,iBACA,UACA,WAEA,wBACE,WACA,kBACA,MACA,QACA,WACA,YACA,kCACA,oCAGF,yBACE,WACA,kBACA,MACA,QACA,UACA,WACA,8BACA,wBAMF,+CACE,mBACA,UAIJ,uBACE,kBACA,UACA,sCACA,mBACA,yBACA,wBACA,qBAEA,6BACE,+BAGF,8BACE,YAGJ,gBACE,kBACA,yBACA,wBAGF,uBACE,wDACA,aACA,8BACA,mBACA,2BACA,4BACA,iBACA,mCACA,mCACA,wBAGF,6CACE,yBACA,0BACA,aACA,qBACA,mBAGF,2CACE,WAGF,yCACE,kBACA,UACA,QACA,UACA,WACE,2CAIF,gGAEE,UAIJ,yBACE,wDAEF,aACE,wDACA,mCACA,kBACA,gBACA,eAGF,sCACE,kBAEF,OACE,eAEF,SACE,WACA,cACA,wBACA,sBACA,qBACA,gDAEF,cACE,mCACA,aACA,wCACA,4BACA,+BACA,aACA,gBACA,uBACA,qBAEF,KACE,gBACA,uBACA,qBAIF,MACE,eACA,gBACA,yBACA,uBAGF,MACE,eACA,gBACA,yBACA,uBAGF,MACE,eACA,gBACA,uBACA,qBAGF,MACE,eACA,gBACA,0BACA,wBAGF,MACE,eACA,gBACA,yBACA,uBAGF,MACE,eACA,gBACA,yBACA,uBAEF,QACE,yBACA,wBAGF,YACE,kBACA,UAGF,yFAGE,qBACA,mBACA,yBACA,0BACA,kCAGF,eACE,aAGF,cACE,eACA,mCACA,wBACA,gBACA,mBACA,6BACA,2BACA,4BACA,iBAEA,oBACE,kCACA,wBAIJ,mBACE,wDAIF,iBACE,aACA,QACA,eACA,eAEA,uBACE,wBAKJ,WACE,mCACA,eACA,kBACA,gBACA,eACA,kBAIF,SACE,eACA,OACA,SACA,WACA,6BACA,4BACA,UACA,kBACA,oBACA,WACE,0DAGF,aAEA,mCAhBF,SAiBI,QACA,SACA,YACA,uCACA,gBACA,oBAIJ,kBACE,UACA,mBACA,WACE,kCAEF,mBAEA,mCARF,kBASI,qCAGJ,gBACE,qBACA,uBAEA,sBACE,+BAGF,wBACE,0BAGF,8BACE,kCAGF,uBACE,yBAIJ,yBACE,kBACA,wBACA,qBACA,iBACA,iBACA,UACA,WAEA,gCACE,WACA,kBACA,MACA,QACA,WACA,YACA,kCACA,oCAGF,iCACE,WACA,kBACA,MACA,QACA,UACA,WACA,8BACA,wBAGJ,cACE,wDACA,eACA,iBACA,kBACA,kBACA,yBACA,wBACA,wBACA,kCACA,mCACA,gBACA,qBACA,gDAEF,aACE,kBACA,YACA,gBACA,wBACA,mCACA,SACA,kBACA,eACA,aACA,WACE,+BAIJ,qBACE,UACA,qBAEA,eAGF,kBACE,eAGF,mBACE,wBACA,mCAGF,yCAEE,qBAEA,mFACE,UACA,mBAGF,6EACE,UACA,qBAGJ,WACE,kBACA,eACA,gBACA,SACA,UACA,aAEA,iBACE,wBAGF,kBACE,WACA,kBACA,YACA,OACA,WACA,WACA,2HAQA,0BAIJ,qCAEE,qBAEF,SACE,eACA,gBACA,yBAEF,MACE,iBACA,0CACA,yBAEF,MACE,iBACA,uCACA,0CACA,yBAEF,SACE,mCAEF,MACE,gBACA,uBACA,qBAGF,wBAEE,0BACA,uBACA,qBAEF,MACE,uBACA,2BACA,uBACA,qBAEF,MACE,uBACA,2BACA,uBACA,qBAEF,WACE,gBAEF,qBACE,uBACA,qBAGF,cACE,eACA,cACA,WACA,gBACA,mBAGE,qCACE,uBAKN,iBACE,eACA,WACA,YACA,WACA,sBACA,sBAGF,mBACE,sBAEF,WACE,gBAEF,YACE,eACA,MACA,QACA,SACA,OACA,yBACA,UACA,kBACA,oBACA,0BACA,WACE,iDAGF,YAGF,qBACE,UACA,0BACA,mBACA,WACE,4BAEF,mBAEF,WACE,wDACA,UACA,kBACA,6BACA,kBACA,iBACA,kBACA,gBACA,0BACA,WACE,0BAGF,yBACE,YACA,OAGF,uBACE,YACA,QAIJ,oBACE,UACA","file":"styles.css"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robindoc",
3
- "version": "2.1.7",
3
+ "version": "2.2.1",
4
4
  "description": "",
5
5
  "main": "./lib/index.js",
6
6
  "scripts": {