robindoc 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/elements/article/document.d.ts.map +1 -1
- package/lib/components/elements/article/document.js +1 -1
- package/lib/components/elements/article/document.js.map +1 -1
- package/lib/components/elements/article/utils.js +1 -1
- package/lib/components/elements/article/utils.js.map +1 -1
- package/lib/components/ui/list/ordered-list/index.d.ts +2 -2
- package/lib/components/ui/list/ordered-list/index.d.ts.map +1 -1
- package/lib/components/ui/list/ordered-list/index.js +1 -1
- package/lib/components/ui/list/ordered-list/index.js.map +1 -1
- package/lib/components/ui/task-list/task-ordered-list/index.d.ts +2 -5
- package/lib/components/ui/task-list/task-ordered-list/index.d.ts.map +1 -1
- package/lib/components/ui/task-list/task-ordered-list/index.js +1 -1
- package/lib/components/ui/task-list/task-ordered-list/index.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/styles.css.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../../src/components/elements/article/document.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,UAAU,EAA2B,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAmB,KAAK,UAAU,EAAE,oCAAgC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAE,qCAAiC;AAmB7D,OAAO,EAAuE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/G,UAAU,gBAAiB,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC;IACxE,GAAG,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgClD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../../src/components/elements/article/document.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,UAAU,EAA2B,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAmB,KAAK,UAAU,EAAE,oCAAgC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAE,qCAAiC;AAmB7D,OAAO,EAAuE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/G,UAAU,gBAAiB,SAAQ,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC;IACxE,GAAG,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgClD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACzB,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACtD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAwR3C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{join as t,dirname as n}from"path";import r,{Text as o,attributesToProps as a,domToReact as
|
|
1
|
+
import e from"react";import{join as t,dirname as n}from"path";import r,{Text as o,attributesToProps as a,domToReact as s}from"html-react-parser";import{NavContentLink as i}from"../../blocks/nav-content-link/index.js";import{AnchorHeading as l}from"../../blocks/anchor-heading/index.js";import{CodeSection as m}from"../../blocks/code-section/index.js";import{Table as c}from"../../ui/table/table/index.js";import{Tbody as u}from"../../ui/table/tbody/index.js";import{Td as p}from"../../ui/table/td/index.js";import{Th as d}from"../../ui/table/th/index.js";import{Thead as k}from"../../ui/table/thead/index.js";import{Tr as f}from"../../ui/table/tr/index.js";import{CodeSpan as h}from"../../ui/code-span/index.js";import{Img as E}from"../../ui/img/index.js";import{Block as x}from"../../ui/block/index.js";import{Blockquote as w}from"../../ui/blockquote/index.js";import{Paragraph as y}from"../../ui/paragraph/index.js";import{Strong as b}from"../../ui/strong/index.js";import{Del as g}from"../../ui/del/index.js";import{Em as j}from"../../ui/em/index.js";import{Hr as v}from"../../ui/hr/index.js";import{Heading as $}from"../../ui/heading/index.js";import{Tabs as A}from"../../ui/tabs/index.js";import{ListItem as P}from"../../ui/list/list-item/index.js";import{OrderedList as T}from"../../ui/list/ordered-list/index.js";import{UnorderedList as C}from"../../ui/list/unordered-list/index.js";import{TaskListItem as U}from"../../ui/task-list/task-list-item/index.js";import{TaskOrderedList as D}from"../../ui/task-list/task-ordered-list/index.js";import{TaskUnorderedList as F}from"../../ui/task-list/task-unordered-list/index.js";import{isNewCodeToken as N,validateComponentName as W,parseCodeLang as q,parseMarkdown as I}from"./utils.js";const K=({raw:t,components:n,...i})=>{const l={replace(t){if(t instanceof o&&t.data){const{headings:r,tokens:o}=I(t.data);return e.createElement(O,{headings:r,tokens:o,components:n,subtree:!0,...i})}if(!("name"in t))return e.createElement(e.Fragment,null);if(!W(t.name))return t;if(!n||!(t.name in n))return console.warn(`Unknown component: "${t.name}"`),e.createElement(e.Fragment,null);const r="attribs"in t?a(t.attribs):{},m=n[t.name],c="children"in t?t.children:null;return e.createElement(m,{...r},c?s(c,l):null)},htmlparser2:{lowerCaseTags:!1,lowerCaseAttributeNames:!1}};return r(t,l)},O=({pathname:r,components:o,uri:a,targetProvider:s,tokens:I,headings:O,config:R={},subtree:S,link:z,pages:B})=>{const{publicDirs:G}=R;let H=null,J={};const L=[],M=({token:I})=>{if(!I)return null;if(N(I,J)){const t=J;J={};const n=Object.keys(t).sort().join("-"),r=L.includes(n);return r||L.push(n),e.createElement(e.Fragment,null,e.createElement(A,{tabsData:t,insertStyles:!r,blockKey:n}),e.createElement(M,{token:I}))}if(H){if(Array.isArray(I)||"html"!==I.type||"\x3c!---/robin--\x3e"!==I.raw.trim())return"dummy"===H.type||(Array.isArray(I)?H.childTokens.push(...I):H.childTokens.push(I)),null;{if("dummy"===H.type)return H=null,null;const{componentName:t,childTokens:n,props:r}=H,a=o[t];return H=null,e.createElement(a,{...r},e.createElement(M,{token:n}))}}if(Array.isArray(I))return I.map(((t,n)=>e.createElement(M,{token:t,key:t.raw||n})));switch(I.type){case"heading":const A=`h${I.depth}`,N=O.find((e=>e.token===I));return N?.id?e.createElement(l,{component:A,id:N.id},I.tokens?e.createElement(M,{token:I.tokens}):I.raw):e.createElement($,{component:A,id:1===I.depth?"main-content":void 0},I.tokens?e.createElement(M,{token:I.tokens}):I.raw);case"table":return e.createElement(x,null,e.createElement(c,null,e.createElement(k,null,e.createElement(f,null,I.header.map(((t,n)=>e.createElement(d,{key:t.text+n},t.tokens?e.createElement(M,{token:t.tokens}):t.text))))),e.createElement(u,null,I.rows.map(((t,n)=>e.createElement(f,{key:n},t.map(((t,n)=>e.createElement(p,{key:t.text+n},t.tokens?e.createElement(M,{token:t.tokens}):t.text)))))))));case"link":let L=I.href;const Q=/^(https?:\/\/|\/)/.test(I.href);if(B&&!Q){const e=B.find((e=>e.clientPath===r));if(e){const r=t(n(e.origPath),I.href).replace(/\\/g,"/"),o=B.find((e=>e.origPath===r));o&&(L=o?.clientPath)}}return e.createElement(i,{link:z,href:L,external:Q},I.tokens?e.createElement(M,{token:I.tokens}):I.raw);case"space":return null;case"hr":return e.createElement(v,null);case"image":return e.createElement(E,{src:I.href,publicDirs:G,provider:s,uri:a,alt:I.title||""});case"paragraph":return S?I.tokens?e.createElement(M,{token:I.tokens}):I.raw:I.tokens?.some((e=>"html"===e.type))&&I.tokens?.every((e=>"html"===e.type||"\n"===e.raw))?e.createElement(M,{token:{...I,type:"html"}}):e.createElement(y,null,I.tokens?e.createElement(M,{token:I.tokens}):I.raw);case"strong":return e.createElement(b,null,I.tokens?e.createElement(M,{token:I.tokens}):I.raw);case"del":return e.createElement(g,null,I.tokens?e.createElement(M,{token:I.tokens}):I.raw);case"em":return e.createElement(j,null,I.tokens?e.createElement(M,{token:I.tokens}):I.raw);case"blockquote":return e.createElement(w,null,I.tokens?e.createElement(M,{token:I.tokens}):I.raw);case"codespan":return e.createElement(h,null,I.raw.replace(/^`|`$/g,""));case"code":const{lang:V,configuration:X}=q(I.lang);if(X.switcher){const t="string"==typeof X.tab?X.tab:V;return J[t]=e.createElement(m,{lang:V,code:I.text,...X}),null}return e.createElement(m,{lang:V,code:I.text,...X});case"escape":return I.text;case"list":if(I.items.every((e=>e.task))){const t=I.ordered?D:F;return e.createElement(t,{start:I.start},I.items.map(((t,n)=>e.createElement(U,{key:t.raw+n,defaultChecked:t.checked},t.tokens?e.createElement(M,{token:t.tokens}):t.raw))))}const Y=I.ordered?T:C;return e.createElement(Y,{start:I.start},I.items.map(((t,n)=>e.createElement(P,{key:t.raw+n},t.tokens?e.createElement(M,{token:t.tokens}):t.raw))));case"html":const Z=I.raw.trim();if(Z.startsWith("\x3c!---robin")&&Z.endsWith("--\x3e")){const t=Z.endsWith("/--\x3e"),n=Z.match(/<!---robin ([\w]+)/)?.[1];if(!n)return t||(H={type:"dummy"}),null;if(!W(n))return console.warn(`"${n}" is using incorrect casing. Use PascalCase for Robin components`),t||(H={type:"dummy"}),null;if(!o||!(n in o))return console.warn(`Unknown component: "${n}"`),t||(H={type:"dummy"}),null;const r=Z.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=o[n];return e.createElement(t,{...r})}return H={props:r,componentName:n,childTokens:[],type:"base"},null}return e.createElement(K,{raw:I.raw,components:o,config:R,link:z,targetProvider:s,pathname:r,uri:a});case"text":return"tokens"in I?e.createElement(M,{token:I.tokens||[]}):I.raw;default:return!I.type&&"raw"in I?I.raw:(console.warn(`Unknown token ${I.type}`,I),null)}};return I.push({type:"text",raw:""}),e.createElement(M,{token:I})};export{O as Document,K 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 { dirname, join } from \"path\";\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 { isNewCodeToken, parseCodeLang, parseMarkdown, validateComponentName, type AnchorData } from \"./utils\";\n\ninterface DocumentJSXProps extends Omit<ContentProps, \"tokens\" | \"headings\"> {\n raw: string;\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 (!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 link?: React.ElementType;\n pages?: { clientPath: string; origPath: string }[];\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 link,\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 let finalHref: string = token.href;\n const external = /^(https?:\\/\\/|\\/)/.test(token.href);\n\n if (pages && !external) {\n const currentPageData = pages.find((item) => item.clientPath === pathname);\n\n if (currentPageData) {\n const linkOrigPath = join(dirname(currentPageData.origPath), token.href).replace(/\\\\/g, \"/\");\n const linkData = pages.find((item) => item.origPath === linkOrigPath);\n\n if (linkData) {\n finalHref = linkData?.clientPath;\n }\n }\n }\n\n return (\n <NavContentLink link={link} href={finalHref} 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\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>\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>\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 link={link}\n targetProvider={targetProvider}\n pathname={pathname}\n uri={uri}\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","validateComponentName","name","console","warn","props","attributesToProps","attribs","Component","children","domToReact","htmlparser2","lowerCaseTags","lowerCaseAttributeNames","parse","pathname","uri","targetProvider","config","link","pages","publicDirs","robin","codeQueue","insertedCodeKeys","DocumentToken","token","isNewCodeToken","tabsData","tabsKey","Object","keys","sort","join","isInsertedKey","includes","push","createElement","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","finalHref","href","external","test","currentPageData","item","clientPath","linkOrigPath","dirname","origPath","linkData","NavContentLink","Hr","Img","src","provider","alt","title","Paragraph","Strong","Del","Em","Blockquote","CodeSpan","lang","configuration","parseCodeLang","switcher","tabKey","tab","CodeSection","code","items","every","i","task","ListComponent","ordered","TaskOrderedList","TaskUnorderedList","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 { dirname, join } from \"path\";\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 { isNewCodeToken, parseCodeLang, parseMarkdown, validateComponentName, type AnchorData } from \"./utils\";\n\ninterface DocumentJSXProps extends Omit<ContentProps, \"tokens\" | \"headings\"> {\n raw: string;\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 (!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 link?: React.ElementType;\n pages?: { clientPath: string; origPath: string }[];\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 link,\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 let finalHref: string = token.href;\n const external = /^(https?:\\/\\/|\\/)/.test(token.href);\n\n if (pages && !external) {\n const currentPageData = pages.find((item) => item.clientPath === pathname);\n\n if (currentPageData) {\n const linkOrigPath = join(dirname(currentPageData.origPath), token.href).replace(/\\\\/g, \"/\");\n const linkData = pages.find((item) => item.origPath === linkOrigPath);\n\n if (linkData) {\n finalHref = linkData?.clientPath;\n }\n }\n }\n\n return (\n <NavContentLink link={link} href={finalHref} 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.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 // console.log(\"html\", token);\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 link={link}\n targetProvider={targetProvider}\n pathname={pathname}\n uri={uri}\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","validateComponentName","name","console","warn","props","attributesToProps","attribs","Component","children","domToReact","htmlparser2","lowerCaseTags","lowerCaseAttributeNames","parse","pathname","uri","targetProvider","config","link","pages","publicDirs","robin","codeQueue","insertedCodeKeys","DocumentToken","token","isNewCodeToken","tabsData","tabsKey","Object","keys","sort","join","isInsertedKey","includes","push","createElement","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","finalHref","href","external","test","currentPageData","item","clientPath","linkOrigPath","dirname","origPath","linkData","NavContentLink","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,2 +1,2 @@
|
|
|
1
|
-
import t from"github-slugger";import e from"gray-matter";import{lexer as r}from"marked";const n=t=>t?"tokens"in t?t.tokens?.map((t=>n(t))).join("")||"":"raw"in t?t.raw:"":"",o=o=>{const{content:i}=e(o),a=r(i.trim()),s=new t,c=a.reduce(((t,e)=>{if("heading"===e.type&&(2===e.depth||3===e.depth)){const r=n(e);t.push({title:r,id:s.slug(r),token:e,nested:3===e.depth})}return t}),[]);return{tokens:a,headings:c}},i=t=>/^[A-Z][a-zA-Z0-9]+$/.test(t),a=t=>{let e={},r=t;const n=t.match(/[a-z]+=("[^"]+"|'[^']+'|[^ ]+)|[a-z]+/g)
|
|
1
|
+
import t from"github-slugger";import e from"gray-matter";import{lexer as r}from"marked";const n=t=>t?"tokens"in t?t.tokens?.map((t=>n(t))).join("")||"":"raw"in t?t.raw:"":"",o=o=>{const{content:i}=e(o),a=r(i.trim()),s=new t,c=a.reduce(((t,e)=>{if("heading"===e.type&&(2===e.depth||3===e.depth)){const r=n(e);t.push({title:r,id:s.slug(r),token:e,nested:3===e.depth})}return t}),[]);return{tokens:a,headings:c}},i=t=>/^[A-Z][a-zA-Z0-9]+$/.test(t),a=t=>{let e={},r=t;const n=t.match(/[a-z]+=("[^"]+"|'[^']+'|[^ ]+)|[a-z]+/g);if(Array.isArray(n)){const[t,...o]=n;r=t,e=o.reduce(((t,e)=>{const[r,...n]=e.split("=");return t[r]=!n||(0===n.length||n.join("=").replace(/(^["']|['"]$)/g,"")),t}),{})}return{lang:r,configuration:e}},s=(t,e)=>{if(Array.isArray(t)||!Object.keys(e).length)return!1;if("code"===t.type){const{lang:r,configuration:n}=a(t.lang);if(e["string"==typeof n.tab?n.tab:r]||!n.switcher)return!0}return"space"!==t.type&&"code"!==t.type};export{s as isNewCodeToken,a as parseCodeLang,o as parseMarkdown,n as parseTokenText,i as validateComponentName};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/components/elements/article/utils.ts"],"sourcesContent":["import GithubSlugger from \"github-slugger\";\nimport matter from \"gray-matter\";\nimport { lexer, type Token } from \"marked\";\n\nexport type AnchorData = {\n title: string;\n id: string;\n nested: boolean;\n token: Token;\n};\n\nexport const parseTokenText = (token: Token): string => {\n if (!token) return \"\";\n\n if (\"tokens\" in token) {\n return token.tokens?.map((el) => parseTokenText(el)).join(\"\") || \"\";\n }\n\n if (\"raw\" in token) {\n return token.raw;\n }\n\n return \"\";\n};\n\nexport const parseMarkdown = (content: string) => {\n const { content: matterContent } = matter(content);\n const tokens = lexer(matterContent.trim());\n\n const slugger = new GithubSlugger();\n const headings = tokens.reduce<AnchorData[]>((acc, token) => {\n if (token.type === \"heading\" && (token.depth === 2 || token.depth === 3)) {\n const title = parseTokenText(token);\n acc.push({\n title,\n id: slugger.slug(title),\n token,\n nested: token.depth === 3,\n });\n }\n return acc;\n }, []);\n\n return { tokens, headings };\n};\n\nexport const validateComponentName = (name: string) => {\n return /^[A-Z][a-zA-Z0-9]+$/.test(name);\n};\n\nexport const parseCodeLang = (raw: string) => {\n let configuration: { [key: string]: string | boolean } = {};\n let lang: string = raw;\n\n const match = raw.match(/[a-z]+=(\"[^\"]+\"|'[^']+'|[^ ]+)|[a-z]+/g);\n const [language, ...modifiers] = match as string[];\n
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/components/elements/article/utils.ts"],"sourcesContent":["import GithubSlugger from \"github-slugger\";\nimport matter from \"gray-matter\";\nimport { lexer, type Token } from \"marked\";\n\nexport type AnchorData = {\n title: string;\n id: string;\n nested: boolean;\n token: Token;\n};\n\nexport const parseTokenText = (token: Token): string => {\n if (!token) return \"\";\n\n if (\"tokens\" in token) {\n return token.tokens?.map((el) => parseTokenText(el)).join(\"\") || \"\";\n }\n\n if (\"raw\" in token) {\n return token.raw;\n }\n\n return \"\";\n};\n\nexport const parseMarkdown = (content: string) => {\n const { content: matterContent } = matter(content);\n const tokens = lexer(matterContent.trim());\n\n const slugger = new GithubSlugger();\n const headings = tokens.reduce<AnchorData[]>((acc, token) => {\n if (token.type === \"heading\" && (token.depth === 2 || token.depth === 3)) {\n const title = parseTokenText(token);\n acc.push({\n title,\n id: slugger.slug(title),\n token,\n nested: token.depth === 3,\n });\n }\n return acc;\n }, []);\n\n return { tokens, headings };\n};\n\nexport const validateComponentName = (name: string) => {\n return /^[A-Z][a-zA-Z0-9]+$/.test(name);\n};\n\nexport const parseCodeLang = (raw: string) => {\n let configuration: { [key: string]: string | boolean } = {};\n let lang: string = raw;\n\n const match = raw.match(/[a-z]+=(\"[^\"]+\"|'[^']+'|[^ ]+)|[a-z]+/g);\n if (Array.isArray(match)) {\n const [language, ...modifiers] = match as string[];\n lang = language;\n configuration = modifiers.reduce<{ [key: string]: string | boolean }>((acc, cur) => {\n const [key, ...value] = cur.split(\"=\");\n if (value) {\n acc[key] = value.length === 0 ? true : value.join(\"=\").replace(/(^[\"']|['\"]$)/g, \"\");\n } else {\n acc[key] = true;\n }\n return acc;\n }, {});\n }\n return { lang, configuration };\n};\n\nexport const isNewCodeToken = (token: Token | Token[], codeQueue: { [lang: string]: JSX.Element }) => {\n if (Array.isArray(token) || !Object.keys(codeQueue).length) return false;\n\n if (token.type === \"code\") {\n const { lang, configuration } = parseCodeLang(token.lang);\n const tabKey = typeof configuration.tab === \"string\" ? configuration.tab : lang;\n if (codeQueue[tabKey] || !configuration.switcher) return true;\n }\n\n if (token.type !== \"space\" && token.type !== \"code\") return true;\n\n return false;\n};\n"],"names":["parseTokenText","token","tokens","map","el","join","raw","parseMarkdown","content","matterContent","matter","lexer","trim","slugger","GithubSlugger","headings","reduce","acc","type","depth","title","push","id","slug","nested","validateComponentName","name","test","parseCodeLang","configuration","lang","match","Array","isArray","language","modifiers","cur","key","value","split","length","replace","isNewCodeToken","codeQueue","Object","keys","tab","switcher"],"mappings":"wFAWa,MAAAA,EAAkBC,GACtBA,EAED,WAAYA,EACLA,EAAMC,QAAQC,KAAKC,GAAOJ,EAAeI,KAAKC,KAAK,KAAO,GAGjE,QAASJ,EACFA,EAAMK,IAGV,GAVY,GAaVC,EAAiBC,IAC1B,MAAQA,QAASC,GAAkBC,EAAOF,GACpCN,EAASS,EAAMF,EAAcG,QAE7BC,EAAU,IAAIC,EACdC,EAAWb,EAAOc,QAAqB,CAACC,EAAKhB,KAC/C,GAAmB,YAAfA,EAAMiB,OAAuC,IAAhBjB,EAAMkB,OAA+B,IAAhBlB,EAAMkB,OAAc,CACtE,MAAMC,EAAQpB,EAAeC,GAC7BgB,EAAII,KAAK,CACLD,QACAE,GAAIT,EAAQU,KAAKH,GACjBnB,QACAuB,OAAwB,IAAhBvB,EAAMkB,OAErB,CACD,OAAOF,CAAG,GACX,IAEH,MAAO,CAAEf,SAAQa,WAAU,EAGlBU,EAAyBC,GAC3B,sBAAsBC,KAAKD,GAGzBE,EAAiBtB,IAC1B,IAAIuB,EAAqD,CAAA,EACrDC,EAAexB,EAEnB,MAAMyB,EAAQzB,EAAIyB,MAAM,0CACxB,GAAIC,MAAMC,QAAQF,GAAQ,CACtB,MAAOG,KAAaC,GAAaJ,EACjCD,EAAOI,EACPL,EAAgBM,EAAUnB,QAA4C,CAACC,EAAKmB,KACxE,MAAOC,KAAQC,GAASF,EAAIG,MAAM,KAMlC,OAJItB,EAAIoB,IADJC,IAC4B,IAAjBA,EAAME,QAAsBF,EAAMjC,KAAK,KAAKoC,QAAQ,iBAAkB,KAI9ExB,CAAG,GACX,CAAE,EACR,CACD,MAAO,CAAEa,OAAMD,gBAAe,EAGrBa,EAAiB,CAACzC,EAAwB0C,KACnD,GAAIX,MAAMC,QAAQhC,KAAW2C,OAAOC,KAAKF,GAAWH,OAAQ,OAAO,EAEnE,GAAmB,SAAfvC,EAAMiB,KAAiB,CACvB,MAAMY,KAAEA,EAAID,cAAEA,GAAkBD,EAAc3B,EAAM6B,MAEpD,GAAIa,EADwC,iBAAtBd,EAAciB,IAAmBjB,EAAciB,IAAMhB,KACjDD,EAAckB,SAAU,OAAO,CAC5D,CAED,MAAmB,UAAf9C,EAAMiB,MAAmC,SAAfjB,EAAMiB,IAExB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import "./ordered-list.scss";
|
|
3
|
-
interface OrderedListProps {
|
|
3
|
+
export interface OrderedListProps {
|
|
4
4
|
className?: string;
|
|
5
|
+
start?: number;
|
|
5
6
|
}
|
|
6
7
|
export declare const OrderedList: React.FC<React.PropsWithChildren<OrderedListProps>>;
|
|
7
|
-
export {};
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/list/ordered-list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,qBAAqB,CAAC;AAE7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/list/ordered-list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,gBAAgB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAM3E,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r from"react";import t from"clsx";const e=({className:e,start:a,children:o})=>r.createElement("ol",{className:t("r-ol",e),start:a},o);export{e as OrderedList};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/ui/list/ordered-list/index.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./ordered-list.scss\";\n\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/ui/list/ordered-list/index.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\n\nimport \"./ordered-list.scss\";\n\nexport interface OrderedListProps {\n className?: string;\n start?: number;\n}\n\nexport const OrderedList: React.FC<React.PropsWithChildren<OrderedListProps>> = ({ className, start, children }) => {\n return (\n <ol className={clsx(\"r-ol\", className)} start={start}>\n {children}\n </ol>\n );\n};\n"],"names":["OrderedList","className","start","children","React","createElement","clsx"],"mappings":"yCAUO,MAAMA,EAAmE,EAAGC,YAAWC,QAAOC,cAE7FC,EAAIC,cAAA,KAAA,CAAAJ,UAAWK,EAAK,OAAQL,GAAYC,MAAOA,GAC1CC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { type OrderedListProps } from "../../list";
|
|
2
3
|
import "./task-ordered-list.scss";
|
|
3
|
-
|
|
4
|
-
className?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const TaskOrderedList: React.FC<React.PropsWithChildren<TaskOrderedListProps>>;
|
|
7
|
-
export {};
|
|
4
|
+
export declare const TaskOrderedList: React.FC<React.PropsWithChildren<OrderedListProps>>;
|
|
8
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/task-list/task-ordered-list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/task-list/task-ordered-list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,0BAA0B,CAAC;AAElC,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAU/E,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import r from"react";import
|
|
1
|
+
import r from"react";import t from"clsx";import{OrderedList as e}from"../../list/ordered-list/index.js";const s=({className:s,start:o,children:a})=>r.createElement(e,{className:t("r-task-ol",s),start:o},a);export{s as TaskOrderedList};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/ui/task-list/task-ordered-list/index.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\n\nimport { OrderedList } from \"../../list\";\n\nimport \"./task-ordered-list.scss\";\n\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/ui/task-list/task-ordered-list/index.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\n\nimport { OrderedList, type OrderedListProps } from \"../../list\";\n\nimport \"./task-ordered-list.scss\";\n\nexport const TaskOrderedList: React.FC<React.PropsWithChildren<OrderedListProps>> = ({\n className,\n start,\n children,\n}) => {\n return (\n <OrderedList className={clsx(\"r-task-ol\", className)} start={start}>\n {children}\n </OrderedList>\n );\n};\n"],"names":["TaskOrderedList","className","start","children","React","OrderedList","clsx"],"mappings":"wGAOO,MAAMA,EAAuE,EAChFC,YACAC,QACAC,cAGIC,gBAACC,EAAW,CAACJ,UAAWK,EAAK,YAAaL,GAAYC,MAAOA,GACxDC"}
|
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;padding:0;margin:0;accent-color:var(--primary600, #ea580c);box-sizing:border-box;background-color:var(--body);color:var(--neutral950);height:100vh;overflow: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{color:var(--neutral950)}.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-main{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}@media screen and (width >= 768px){.r-main{display:grid;justify-content:center;column-gap:32px;grid-template-areas:"sidebar breadcrumbs" "sidebar contents" "sidebar content" "sidebar pagination";grid-template-columns:auto calc(100% - 248px);grid-template-rows:auto auto 1fr auto}}@media screen and (width >= 1180px){.r-main{column-gap:40px;grid-template-areas:"sidebar breadcrumbs contents" "sidebar content contents" "sidebar pagination contents";grid-template-columns:auto 640px auto;grid-template-rows:auto 1fr auto}}.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{width:220px;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)}.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 .3s}.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)}.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}.r-sidebar-link._target{color:var(--primary950);background-color:var(--neutral50)}.r-sidebar-link:hover{color:var(--primary800);background-color:var(--neutral50)}.r-sidebar-link:hover::before{background-color:currentColor}.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}.r-sidebar-drop-btn:hover{background-color:var(--neutral300);color:var(--primary500)}.r-sidebar-drop-btn::before{content:"";position:absolute;inset:-4px}.r-sidebar-drop-icon{display:block;transition:transform .3s}.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-contents{grid-area:contents}.r-contents-sticky{position:sticky;top:var(--header-height);width:100%}@media screen and (width >= 1180px){.r-contents-sticky{width:220px;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}.r-contents-link.r-contents-link:hover{color:var(--primary800)}.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-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{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{background-color:var(--neutral100);border-radius:4px;padding:2px 6px;font-size:16px}.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{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);font-size:16px;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 .3s,background-color .3s}.copy-button:hover{color:var(--neutral950);background-color:var(--neutral200)}.copy-button:active,.copy-button._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}.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;padding:0;margin:0;accent-color:var(--primary600, #ea580c);box-sizing:border-box;background-color:var(--body);color:var(--neutral950);height:100vh;overflow: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{color:var(--neutral950)}.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-main{min-height:calc(100vh - var(--header-height));overflow-wrap:break-word}@media screen and (width >= 768px){.r-main{display:grid;justify-content:center;column-gap:32px;grid-template-areas:"sidebar breadcrumbs" "sidebar contents" "sidebar content" "sidebar pagination";grid-template-columns:auto calc(100% - 248px);grid-template-rows:auto auto 1fr auto}}@media screen and (width >= 1180px){.r-main{column-gap:40px;grid-template-areas:"sidebar breadcrumbs contents" "sidebar content contents" "sidebar pagination contents";grid-template-columns:auto 640px auto;grid-template-rows:auto 1fr auto}}.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{width:220px;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)}.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 .3s}.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)}.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}.r-sidebar-link._target{color:var(--primary950);background-color:var(--neutral50)}.r-sidebar-link:hover{color:var(--primary800);background-color:var(--neutral50)}.r-sidebar-link:hover::before{background-color:currentColor}.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}.r-sidebar-drop-btn:hover{background-color:var(--neutral300);color:var(--primary500)}.r-sidebar-drop-btn::before{content:"";position:absolute;inset:-4px}.r-sidebar-drop-icon{display:block;transition:transform .3s}.r-sidebar-drop[open]>.r-sidebar-drop-btn>.r-sidebar-drop-icon{transform:rotate(90deg)}.r-container{max-width:1180px;padding-right:12px;padding-left:12px;margin-right:auto;margin-left:auto}.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-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-contents{grid-area:contents}.r-contents-sticky{position:sticky;top:var(--header-height);width:100%}@media screen and (width >= 1180px){.r-contents-sticky{width:220px;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}.r-contents-link.r-contents-link:hover{color:var(--primary800)}.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-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{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{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-key{background-color:var(--neutral200);font-size:12px;border-radius:4px;padding:5px 8px;min-width:24px;text-align:center}.r-kbd-container{display:flex;gap:4px;font-size:14px;cursor:pointer}.r-kbd-container:hover{color:var(--neutral950)}.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{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);font-size:16px;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 .3s,background-color .3s}.copy-button:hover{color:var(--neutral950);background-color:var(--neutral200)}.copy-button:active,.copy-button._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-thead{background-color:var(--neutral100)}.r-th{padding:6px 12px;border-top:1px solid var(--neutral500);border-bottom:1px solid var(--neutral500);border-collapse:collapse}.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}
|
|
2
2
|
|
|
3
3
|
/*# sourceMappingURL=styles.css.map */
|
package/lib/styles.css.map
CHANGED
|
@@ -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,UACA,SACA,wCACA,sBACA,6BACA,wBACA,aACA,cACA,qDACA,oDAEA,kCAbF,KAcI,sDAGF,mCAjBF,KAkBI,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,0CAEE,wBAIJ,kBACE,aACA,8BACA,SACA,oBAEA,oCANF,kBAOI,mBACA,mBACA,UAIJ,mBACE,aACA,mBACA,SAGE,kCADF,+BAEI,QAKF,kCADF,oCAEI,eACA,WACA,QAMN,QACE,8CACA,yBAEA,mCAJF,QAKI,aACA,uBACA,gBACA,oGACA,8CACA,uCAGF,oCAbF,QAcI,gBACA,4GACA,sCACA,kCAGJ,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,YACA,kBAEA,kCAJF,WAKI,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,mCAIJ,2BACE,WACA,kBACA,MACA,WACA,QACA,WACA,8BACA,mCACA,UACA,gCAGF,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,mCAIJ,cACE,kBACA,gBACA,mBACA,gBAGF,2BACE,mBAGF,iBACE,iBAGF,aACE,SACA,iBAGF,mBACE,wBACA,gBACA,qBAEA,qCACE,wBAIJ,gBACE,cACA,iBACA,cACA,sCACA,kBACA,qBAGF,wBACE,wBACA,kCAGF,sBACE,wBACA,kCAEA,8BACE,8BAIJ,wBACE,wBACA,kCAEA,gCACE,8BAIJ,oBACE,kBACA,UACA,QACA,kBACA,YACA,mCACA,gBACA,eAEA,0BACE,mCACA,wBAGF,4BACE,WACA,kBACA,WAIJ,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,
|
|
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,UACA,SACA,wCACA,sBACA,6BACA,wBACA,aACA,cACA,qDACA,oDAEA,kCAbF,KAcI,sDAGF,mCAjBF,KAkBI,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,0CAEE,wBAIJ,kBACE,aACA,8BACA,SACA,oBAEA,oCANF,kBAOI,mBACA,mBACA,UAIJ,mBACE,aACA,mBACA,SAGE,kCADF,+BAEI,QAKF,kCADF,oCAEI,eACA,WACA,QAMN,QACE,8CACA,yBAEA,mCAJF,QAKI,aACA,uBACA,gBACA,oGACA,8CACA,uCAGF,oCAbF,QAcI,gBACA,4GACA,sCACA,kCAGJ,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,YACA,kBAEA,kCAJF,WAKI,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,mCAIJ,2BACE,WACA,kBACA,MACA,WACA,QACA,WACA,8BACA,mCACA,UACA,gCAGF,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,mCAIJ,cACE,kBACA,gBACA,mBACA,gBAGF,2BACE,mBAGF,iBACE,iBAGF,aACE,SACA,iBAGF,mBACE,wBACA,gBACA,qBAEA,qCACE,wBAIJ,gBACE,cACA,iBACA,cACA,sCACA,kBACA,qBAGF,wBACE,wBACA,kCAGF,sBACE,wBACA,kCAEA,8BACE,8BAIJ,wBACE,wBACA,kCAEA,gCACE,8BAIJ,oBACE,kBACA,UACA,QACA,kBACA,YACA,mCACA,gBACA,eAEA,0BACE,mCACA,wBAGF,4BACE,WACA,kBACA,WAIJ,qBACE,cACA,yBAGF,+DACE,wBAIF,aACE,UC5tBG,OD6tBH,mBACA,kBACA,kBACA,iBAIF,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,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,YACE,mBAGF,mBACE,gBACA,yBACA,WAEA,oCALF,mBAMI,YACA,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,gBAEA,uCACE,wBAGF,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,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,aACA,8BACA,mBACA,2BACA,4BACA,iBACA,mCACA,mCACA,wBAGF,6CACE,yBACA,0BACA,aACA,qBACA,mBAEF,aACE,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,WACE,mCACA,eACA,kBACA,gBACA,eACA,kBAIF,iBACE,aACA,QACA,eACA,eAEA,uBACE,wBAGJ,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,kBACA,kBACA,yBACA,wBACA,wBACA,kCACA,mCACA,eACA,gBACA,qBACA,gDAEF,aACE,YACA,gBACA,wBACA,SACA,kBACA,eACA,WACE,+BAIJ,mBACE,wBACA,mCAGF,yCAEE,qBAEF,SACE,eACA,gBACA,yBAEF,MACE,iBACA,0CACA,yBAEF,SACE,mCAEF,MACE,iBACA,uCACA,0CACA,yBAEF,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"}
|