@sleetch/react 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/assets/button.css +1 -1
  2. package/dist/assets/content.css +1 -1
  3. package/dist/assets/content2.css +1 -1
  4. package/dist/assets/content3.css +1 -1
  5. package/dist/assets/content4.css +1 -0
  6. package/dist/assets/file-system.css +1 -1
  7. package/dist/assets/header.css +1 -1
  8. package/dist/assets/layout.css +1 -1
  9. package/dist/assets/navigation.css +1 -1
  10. package/dist/assets/sidebar.css +1 -1
  11. package/dist/assets/spinner.css +1 -0
  12. package/dist/assets/story.css +1 -0
  13. package/dist/assets/toc.css +1 -1
  14. package/dist/assets/toggle.css +1 -0
  15. package/dist/{button-B6mWWZyo.js → button-BYPozliY.js} +7 -7
  16. package/dist/button-BYPozliY.js.map +1 -0
  17. package/dist/{button-DLQL3vVY.cjs → button-CdMMW1Ny.cjs} +2 -2
  18. package/dist/button-CdMMW1Ny.cjs.map +1 -0
  19. package/dist/components/button.cjs.js +1 -1
  20. package/dist/components/button.es.js +1 -1
  21. package/dist/components/documentation/content.cjs.js +1 -1
  22. package/dist/components/documentation/content.es.js +1 -1
  23. package/dist/components/documentation/header.cjs.js +1 -1
  24. package/dist/components/documentation/header.es.js +1 -2
  25. package/dist/components/documentation/layout.cjs.js +1 -1
  26. package/dist/components/documentation/layout.es.js +1 -1
  27. package/dist/components/documentation/page/content.cjs.js +1 -1
  28. package/dist/components/documentation/page/content.d.ts +3 -2
  29. package/dist/components/documentation/page/content.es.js +1 -1
  30. package/dist/components/documentation/page/header.cjs.js +1 -1
  31. package/dist/components/documentation/page/header.cjs.js.map +1 -1
  32. package/dist/components/documentation/page/header.d.ts +1 -1
  33. package/dist/components/documentation/page/header.es.js +1 -1
  34. package/dist/components/documentation/page/header.es.js.map +1 -1
  35. package/dist/components/documentation/page/navigation.cjs.js +1 -1
  36. package/dist/components/documentation/page/navigation.es.js +1 -1
  37. package/dist/components/documentation/sidebar/content.cjs.js +1 -1
  38. package/dist/components/documentation/sidebar/content.es.js +1 -1
  39. package/dist/components/documentation/sidebar/index.cjs.js +1 -1
  40. package/dist/components/documentation/sidebar/index.es.js +1 -1
  41. package/dist/components/documentation/sidebar/toggle.cjs.js +1 -0
  42. package/dist/components/documentation/sidebar/toggle.d.ts +4 -0
  43. package/dist/components/documentation/sidebar/toggle.es.js +3 -0
  44. package/dist/components/documentation/toc/content.cjs.js +1 -1
  45. package/dist/components/documentation/toc/content.es.js +1 -1
  46. package/dist/components/documentation/toc/index.cjs.js +1 -1
  47. package/dist/components/documentation/toc/index.d.ts +1 -1
  48. package/dist/components/documentation/toc/index.es.js +1 -1
  49. package/dist/components/file-system.cjs.js +1 -1
  50. package/dist/components/file-system.es.js +1 -1
  51. package/dist/components/spinner.cjs.js +1 -0
  52. package/dist/components/spinner.d.ts +5 -0
  53. package/dist/components/spinner.es.js +2 -0
  54. package/dist/{content-BJ6O_X1Y.cjs → content-6sh6k7yf.cjs} +2 -2
  55. package/dist/content-6sh6k7yf.cjs.map +1 -0
  56. package/dist/{content-D0ROn3Pd.js → content-BViNSM8m.js} +12 -9
  57. package/dist/{content-D0ROn3Pd.js.map → content-BViNSM8m.js.map} +1 -1
  58. package/dist/{content-BU9cbvVn.cjs → content-CGtNRdoV.cjs} +2 -2
  59. package/dist/{content-BU9cbvVn.cjs.map → content-CGtNRdoV.cjs.map} +1 -1
  60. package/dist/{content-CP58YEGJ.js → content-ClFdagzQ.js} +2 -2
  61. package/dist/content-ClFdagzQ.js.map +1 -0
  62. package/dist/{content-8dXeWXcA.cjs → content-DUX4ByVA.cjs} +2 -2
  63. package/dist/content-DUX4ByVA.cjs.map +1 -0
  64. package/dist/{content-DmSVqH2f.js → content-DlC3ONDr.js} +2 -2
  65. package/dist/content-DlC3ONDr.js.map +1 -0
  66. package/dist/{content-eQM-qDRO.js → content-SlTW2OsO.js} +3 -3
  67. package/dist/content-SlTW2OsO.js.map +1 -0
  68. package/dist/{content-CjmD3T8J.cjs → content-rfhfHH3W.cjs} +2 -2
  69. package/dist/content-rfhfHH3W.cjs.map +1 -0
  70. package/dist/contexts/documentation.cjs.js.map +1 -1
  71. package/dist/contexts/documentation.es.js.map +1 -1
  72. package/dist/{file-system-SWuikr8O.js → file-system-CW_7OsYk.js} +12 -12
  73. package/dist/file-system-CW_7OsYk.js.map +1 -0
  74. package/dist/{file-system-BNu9B10z.cjs → file-system-De1go4Pz.cjs} +2 -2
  75. package/dist/file-system-De1go4Pz.cjs.map +1 -0
  76. package/dist/header-BFkQq3p7.js +17 -0
  77. package/dist/header-BFkQq3p7.js.map +1 -0
  78. package/dist/header-IQArXGpT.cjs +2 -0
  79. package/dist/header-IQArXGpT.cjs.map +1 -0
  80. package/dist/index.cjs.js +1 -1
  81. package/dist/index.d.ts +3 -0
  82. package/dist/index.es.js +18 -15
  83. package/dist/{layout-BE3-MmWB.js → layout-9WOcI8QC.js} +2 -2
  84. package/dist/layout-9WOcI8QC.js.map +1 -0
  85. package/dist/{layout-vfa7JhoC.cjs → layout-CNLxKkFm.cjs} +2 -2
  86. package/dist/layout-CNLxKkFm.cjs.map +1 -0
  87. package/dist/{navigation-BWmLA_nr.js → navigation-B26nKjER.js} +52 -48
  88. package/dist/navigation-B26nKjER.js.map +1 -0
  89. package/dist/navigation-CmXsaglM.cjs +2 -0
  90. package/dist/navigation-CmXsaglM.cjs.map +1 -0
  91. package/dist/{sidebar-DSOeiBFI.cjs → sidebar-CXrzg2Go.cjs} +2 -2
  92. package/dist/sidebar-CXrzg2Go.cjs.map +1 -0
  93. package/dist/{sidebar-D7bXjwCm.js → sidebar-V1MCkkEu.js} +18 -18
  94. package/dist/sidebar-V1MCkkEu.js.map +1 -0
  95. package/dist/spinner-BWq14zTZ.js +36 -0
  96. package/dist/spinner-BWq14zTZ.js.map +1 -0
  97. package/dist/spinner-CiEz3GLj.cjs +2 -0
  98. package/dist/spinner-CiEz3GLj.cjs.map +1 -0
  99. package/dist/story/index.cjs.js +1 -0
  100. package/dist/story/index.d.ts +34 -0
  101. package/dist/story/index.es.js +2 -0
  102. package/dist/story-D6POW6tk.js +42 -0
  103. package/dist/story-D6POW6tk.js.map +1 -0
  104. package/dist/story-DMJSe7Sg.cjs +2 -0
  105. package/dist/story-DMJSe7Sg.cjs.map +1 -0
  106. package/dist/{toc-rfPQJ_Pf.js → toc-4StZsTN_.js} +10 -10
  107. package/dist/toc-4StZsTN_.js.map +1 -0
  108. package/dist/{toc-DkBTetNW.cjs → toc-CPqRAPOv.cjs} +2 -2
  109. package/dist/toc-CPqRAPOv.cjs.map +1 -0
  110. package/dist/toggle-D81rCUj_.cjs +2 -0
  111. package/dist/toggle-D81rCUj_.cjs.map +1 -0
  112. package/dist/toggle-DoePXMlE.js +51 -0
  113. package/dist/toggle-DoePXMlE.js.map +1 -0
  114. package/package.json +49 -48
  115. package/dist/button-B6mWWZyo.js.map +0 -1
  116. package/dist/button-DLQL3vVY.cjs.map +0 -1
  117. package/dist/content-8dXeWXcA.cjs.map +0 -1
  118. package/dist/content-BJ6O_X1Y.cjs.map +0 -1
  119. package/dist/content-CP58YEGJ.js.map +0 -1
  120. package/dist/content-CjmD3T8J.cjs.map +0 -1
  121. package/dist/content-DmSVqH2f.js.map +0 -1
  122. package/dist/content-eQM-qDRO.js.map +0 -1
  123. package/dist/file-system-BNu9B10z.cjs.map +0 -1
  124. package/dist/file-system-SWuikr8O.js.map +0 -1
  125. package/dist/header-1bJsyr4I.js +0 -57
  126. package/dist/header-1bJsyr4I.js.map +0 -1
  127. package/dist/header-3dQ5Gq3p.cjs +0 -2
  128. package/dist/header-3dQ5Gq3p.cjs.map +0 -1
  129. package/dist/layout-BE3-MmWB.js.map +0 -1
  130. package/dist/layout-vfa7JhoC.cjs.map +0 -1
  131. package/dist/navigation-BWmLA_nr.js.map +0 -1
  132. package/dist/navigation-D6nkWYOB.cjs +0 -2
  133. package/dist/navigation-D6nkWYOB.cjs.map +0 -1
  134. package/dist/sidebar-D7bXjwCm.js.map +0 -1
  135. package/dist/sidebar-DSOeiBFI.cjs.map +0 -1
  136. package/dist/toc-DkBTetNW.cjs.map +0 -1
  137. package/dist/toc-rfPQJ_Pf.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-CmXsaglM.cjs","names":[],"sources":["../../client/dist/index.js","../../styles/src/components/documentation/page/navigation.module.css","../src/components/documentation/page/navigation.tsx"],"sourcesContent":["//#region src/lib/clean-path.ts\nfunction clean_path(_path) {\n\tif (!_path || _path.length === 0) _path = \"/\";\n\telse if (_path !== \"/\") {\n\t\tif (!_path.startsWith(\"/\", 0)) _path = `/${_path}`;\n\t\tif (_path.endsWith(\"/\")) _path = _path.slice(0, -1);\n\t}\n\treturn _path;\n}\n//#endregion\nexport { clean_path };\n",".navigation {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: 1em;\n\tpadding: var(--_sleetch-padding-root);\n\tpadding-left: 0px;\n\tpadding-right: 0px;\n\tfont-family: var(--_sleetch-font-base);\n}\n\n.slot {\n\tdisplay: flex;\n}\n\n.slot-end {\n\tjustify-content: flex-end;\n}\n\n.card {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.25em;\n\twidth: 100%;\n\tmax-width: 320px;\n\tpadding: 1em 1em;\n\tborder-radius: var(--_sleetch-radius);\n\tborder: var(--_sleetch-hr-height) solid var(--_sleetch-color-border);\n\tcolor: var(--_sleetch-color-text);\n\ttext-decoration: none;\n\ttransition:\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.card:hover,\n.card:focus-visible {\n\tborder-color: var(--_sleetch-color-text-primary);\n\tbackground-color: color-mix(in srgb, var(--_sleetch-color-text-primary) 8%, var(--_sleetch-color-card));\n}\n\n.card:focus-visible {\n\toutline: 2px solid var(--_sleetch-color-text-primary);\n\toutline-offset: 2px;\n}\n\n.next {\n\talign-items: flex-end;\n\ttext-align: right;\n}\n\n.previous {\n\talign-items: flex-start;\n\ttext-align: left;\n}\n\n.meta {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0.3em;\n\tfont-size: var(--_sleetch-font-size-tiny);\n\tcolor: var(--_sleetch-color-muted-foreground);\n}\n\n.chevron {\n\tflex-shrink: 0;\n\twidth: 20px;\n\theight: 20px;\n}\n\n.title {\n\tfont-size: var(--_sleetch-font-size-base);\n\tfont-weight: var(--_sleetch-font-weight-heading);\n\tline-height: var(--_sleetch-line-height-heading);\n\tcolor: var(--_sleetch-color-text);\n}\n\n.description {\n\tfont-size: var(--_sleetch-font-size-tiny);\n\tline-height: var(--_sleetch-line-height);\n\tcolor: var(--_sleetch-color-muted-foreground);\n\toverflow: hidden;\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n\t.navigation {\n\t\tpadding: 1.5em 2em;\n\t}\n}\n\n@media (max-width: 768px) {\n\t.card {\n\t\tmax-width: 100%;\n\t}\n\n\t.navigation {\n\t\tgrid-template-columns: 1fr;\n\n\t\tpadding: 1em 1em;\n\t}\n\n\t.slot-end {\n\t\tjustify-content: flex-start;\n\t}\n\n\t.next {\n\t\talign-items: flex-start;\n\t\ttext-align: left;\n\t}\n}\n","/*\n AI Generated :(\n Needs more testing\n*/\n\nimport { clean_path } from '@sleetch/client';\nimport type { tree_object } from '@sleetch/core/compiler';\nimport styles from '@sleetch/styles/components/documentation/page/navigation.module.css';\nimport clsx from 'clsx';\nimport { useDocumentationContext } from 'packages/react/src/contexts/documentation';\nimport { type BaseHTMLAttributes, useMemo } from 'react';\n\ntype page_node = Extract<tree_object, { type: 'page' }>;\n\nexport interface DocumentationNavigationProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\n/*\n Meme logique de tri/priorite que la sidebar (getCategoryData, getCategoryIndex,\n getOrder, sortNodes) pour garantir que l'ordre de navigation prev/next\n corresponde exactement a l'ordre affiche dans la sidebar.\n*/\n\nfunction getOrder(node: tree_object): number {\n\tif (node.type === 'category') {\n\t\treturn node?.frontmatter?.order ?? Number.POSITIVE_INFINITY;\n\t}\n\tif (node.type === 'page') {\n\t\treturn (node.frontmatter as { order?: number }).order ?? Number.POSITIVE_INFINITY;\n\t}\n\treturn Number.POSITIVE_INFINITY;\n}\n\nfunction sortNodes(nodes: tree_object[]): tree_object[] {\n\treturn nodes\n\t\t.map((node, index) => ({ node, index }))\n\t\t.sort((a, b) => {\n\t\t\tconst diff = getOrder(a.node) - getOrder(b.node);\n\t\t\treturn diff !== 0 ? diff : a.index - b.index;\n\t\t})\n\t\t.map(({ node }) => node);\n}\n\n/*\n Aplatit l'arbre en une liste ordonnee de pages navigables :\n - l'index d'une categorie arrive en premier (c'est le point d'entree),\n - suivi de ses enfants tries recursivement.\n*/\nfunction flattenPages(nodes: tree_object[]): page_node[] {\n\tconst sorted = sortNodes(nodes);\n\tconst result: page_node[] = [];\n\n\tfor (const node of sorted) {\n\t\tif (node.type === 'page') {\n\t\t\tresult.push(node);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (node.type === 'category') {\n\t\t\tconst indexPage = node.page;\n\t\t\tif (indexPage) result.push(indexPage);\n\t\t\tconst rest = node.children;\n\t\t\tresult.push(...flattenPages(rest));\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction ChevronLeft() {\n\treturn (\n\t\t<svg\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"16\"\n\t\t\theight=\"16\"\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"2.5\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tclassName={styles.chevron}\n\t\t>\n\t\t\t<polyline points=\"15 18 9 12 15 6\" />\n\t\t</svg>\n\t);\n}\n\nfunction ChevronRight() {\n\treturn (\n\t\t<svg\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"16\"\n\t\t\theight=\"16\"\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"2.5\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tclassName={styles.chevron}\n\t\t>\n\t\t\t<polyline points=\"9 18 15 12 9 6\" />\n\t\t</svg>\n\t);\n}\n\nfunction resolveTitle(title: string, fallbackPath: string): string {\n\treturn title && title !== 'No title.' ? title : fallbackPath;\n}\n\nfunction resolveDescription(description: string): string | undefined {\n\treturn description && description !== 'No description.' ? description : undefined;\n}\n\ninterface NavigationCardProps {\n\tnode: page_node;\n\tdirection: 'previous' | 'next';\n}\n\nfunction NavigationCard({ node, direction }: NavigationCardProps) {\n\tconst title = resolveTitle(node.frontmatter.title, node.path);\n\tconst description = resolveDescription(node.frontmatter.description);\n\tconst { language, path_transformer } = useDocumentationContext();\n\n\treturn (\n\t\t<a href={path_transformer({ language, path: node.path })} className={clsx(styles.card, styles[direction])} data-direction={direction}>\n\t\t\t<span className={styles.meta}>\n\t\t\t\t{direction === 'previous' && <ChevronLeft />}\n\t\t\t\t<span className={styles.title}>{title}</span>\n\t\t\t\t{direction === 'next' && <ChevronRight />}\n\t\t\t</span>\n\t\t\t{description && <span className={styles.description}>{description}</span>}\n\t\t</a>\n\t);\n}\n\nexport function PageNavigation({ className, ...props }: DocumentationNavigationProps) {\n\tconst { tree, current_path } = useDocumentationContext();\n\tconst { previous, next } = useMemo(() => {\n\t\tconst pages = flattenPages(tree);\n\t\tconst currentIndex = pages.findIndex((page) => page.path === clean_path(current_path));\n\n\t\tif (currentIndex === -1) {\n\t\t\treturn { previous: undefined, next: undefined };\n\t\t}\n\n\t\treturn {\n\t\t\tprevious: pages[currentIndex - 1],\n\t\t\tnext: pages[currentIndex + 1],\n\t\t};\n\t}, [tree, current_path]);\n\n\tif (!previous && !next) return null;\n\n\treturn (\n\t\t<nav className={clsx(styles.navigation, className)} aria-label=\"Pagination\" {...props}>\n\t\t\t<div className={styles.slot}>{previous && <NavigationCard node={previous} direction=\"previous\" />}</div>\n\t\t\t<div className={clsx(styles.slot, styles['slot-end'])}>{next && <NavigationCard node={next} direction=\"next\" />}</div>\n\t\t</nav>\n\t);\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- require('./assets/sidebar.css');const e=require("./clsx-GLXUd3yb.cjs"),t=require("./contexts/documentation.cjs.js");let n=require("react/jsx-runtime"),r=require("react");var i={sidebar:`_sidebar_1gu6z_1`,overlay:`_overlay_1gu6z_33`,"sidebar-open":`_sidebar-open_1gu6z_55`,fadeIn:`_fadeIn_1gu6z_1`,nav:`_nav_1gu6z_89`,list:`_list_1gu6z_94`,item:`_item_1gu6z_103`,row:`_row_1gu6z_107`,link:`_link_1gu6z_112`,"category-label":`_category-label_1gu6z_113`,"category-link":`_category-link_1gu6z_147`,active:`_active_1gu6z_154`,toggle:`_toggle_1gu6z_165`,chevron:`_chevron_1gu6z_188`,"chevron-open":`_chevron-open_1gu6z_192`,icon:`_icon_1gu6z_196`,label:`_label_1gu6z_206`};function a({className:a,children:o,...s}){let{is_sidebar_open:c,close_sidebar:l,tree:d,current_path:f,path_transformer:p,icon_transformer:m}=t.useDocumentationContext();return(0,r.useEffect)(()=>(c?document.body.style.overflow=`hidden`:document.body.style.overflow=``,()=>{document.body.style.overflow=``}),[c]),(0,n.jsxs)(n.Fragment,{children:[c&&(0,n.jsx)(`div`,{className:i.overlay,onClick:l}),(0,n.jsxs)(`aside`,{className:e.t(i.sidebar,c&&i[`sidebar-open`],a),...s,children:[(0,n.jsx)(`nav`,{className:i.nav,children:(0,n.jsx)(u,{nodes:d,depth:1,onLinkClick:l})}),o]})]})}function o(e){return e.type===`category`?e?.frontmatter?.order??1/0:e.type===`page`?e.frontmatter.order??1/0:1/0}function s(e){return e.map((e,t)=>({node:e,index:t})).sort((e,t)=>{let n=o(e.node)-o(t.node);return n===0?e.index-t.index:n}).map(({node:e})=>e)}function c(e,t){return e&&e!==`No title.`?e:t}function l({open:t}){return(0,n.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e.t(i.chevron,t&&i[`chevron-open`]),children:(0,n.jsx)(`polyline`,{points:`9 6 15 12 9 18`})})}function u({nodes:a,depth:o,onLinkClick:l}){let u=(0,r.useMemo)(()=>s(a),[a]),{icon_transformer:f,current_path:p,path_transformer:m,language:h}=t.useDocumentationContext();return(0,n.jsx)(`ul`,{className:i.list,"data-depth":o,children:u.map(t=>{if(t.type===`page`){let r=t.path===p,a=f(t.frontmatter.icon);return(0,n.jsx)(`li`,{className:i.item,children:(0,n.jsxs)(`a`,{href:m({language:h,path:t.path}),className:e.t(i.link,r&&i.active),style:{"--depth":o},onClick:l,children:[a&&(0,n.jsx)(`span`,{className:i.icon,children:a}),(0,n.jsx)(`span`,{className:i.label,children:c(t.frontmatter.title,t.path)})]})},t.path)}return t.type===`category`?(0,n.jsx)(d,{category:t,depth:o,onLinkClick:l},t.path):null})})}function d({category:a,depth:o,onLinkClick:s}){let{icon_transformer:d,current_path:f,path_transformer:p,language:m}=t.useDocumentationContext(),h=a?.frontmatter?.title??(a.page?c(a.page.frontmatter.title,a.path):a.path),g=d(a?.frontmatter?.icon??a?.page?.frontmatter?.icon),_=a.children,v=_.length>0,y=a.page?a.page.path===f:!1,[b,x]=(0,r.useState)(!0);return(0,n.jsxs)(`li`,{className:i.item,children:[(0,n.jsxs)(`div`,{className:i.row,children:[a.page?(0,n.jsxs)(`a`,{href:p({language:m,path:a.page.path}),className:e.t(i.link,i[`category-link`],y&&i.active),style:{"--depth":o},onClick:s,children:[g&&(0,n.jsx)(`span`,{className:i.icon,children:g}),(0,n.jsx)(`span`,{className:i.label,children:h})]}):(0,n.jsxs)(`button`,{type:`button`,className:e.t(i.link,i[`category-label`]),style:{"--depth":o},onClick:()=>v&&x(e=>!e),children:[g&&(0,n.jsx)(`span`,{className:i.icon,children:g}),(0,n.jsx)(`span`,{className:i.label,children:h})]}),v&&(0,n.jsx)(`button`,{type:`button`,className:i.toggle,"aria-label":b?`Collapse`:`Expand`,"aria-expanded":b,onClick:()=>x(e=>!e),children:(0,n.jsx)(l,{open:b})})]}),v&&b&&(0,n.jsx)(u,{nodes:_,depth:o+1,onLinkClick:s})]})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
2
- //# sourceMappingURL=sidebar-DSOeiBFI.cjs.map
1
+ require('./assets/sidebar.css');const e=require("./clsx-GLXUd3yb.cjs"),t=require("./contexts/documentation.cjs.js");let n=require("react/jsx-runtime"),r=require("react");var i={sidebar:`_sidebar_91njy_1`,overlay:`_overlay_91njy_35`,"sidebar-open":`_sidebar-open_91njy_57`,fadeIn:`_fadeIn_91njy_1`,nav:`_nav_91njy_92`,list:`_list_91njy_97`,item:`_item_91njy_106`,row:`_row_91njy_110`,link:`_link_91njy_115`,"category-label":`_category-label_91njy_116`,"category-link":`_category-link_91njy_150`,active:`_active_91njy_157`,toggle:`_toggle_91njy_168`,chevron:`_chevron_91njy_191`,"chevron-open":`_chevron-open_91njy_195`,icon:`_icon_91njy_199`,label:`_label_91njy_209`};function a({className:a,children:o,...s}){let{is_sidebar_open:c,close_sidebar:l,tree:d,current_path:f,path_transformer:p,icon_transformer:m}=t.useDocumentationContext();return(0,r.useEffect)(()=>(c?document.body.style.overflow=`hidden`:document.body.style.overflow=``,()=>{document.body.style.overflow=``}),[c]),(0,n.jsxs)(n.Fragment,{children:[c&&(0,n.jsx)(`div`,{className:i.overlay,onClick:l}),(0,n.jsxs)(`aside`,{className:e.t(i.sidebar,c&&i[`sidebar-open`],a),...s,children:[(0,n.jsx)(`nav`,{className:i.nav,children:(0,n.jsx)(u,{nodes:d,depth:1,onLinkClick:l})}),o]})]})}function o(e){return e.type===`category`?e?.frontmatter?.order??1/0:e.type===`page`?e.frontmatter.order??1/0:1/0}function s(e){return e.map((e,t)=>({node:e,index:t})).sort((e,t)=>{let n=o(e.node)-o(t.node);return n===0?e.index-t.index:n}).map(({node:e})=>e)}function c(e,t){return e&&e!==`No title.`?e:t}function l({open:t}){return(0,n.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`13`,height:`13`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e.t(i.chevron,t&&i[`chevron-open`]),children:(0,n.jsx)(`polyline`,{points:`9 6 15 12 9 18`})})}function u({nodes:a,depth:o,onLinkClick:l}){let u=(0,r.useMemo)(()=>s(a),[a]),{icon_transformer:f,current_path:p,path_transformer:m,language:h}=t.useDocumentationContext();return(0,n.jsx)(`ul`,{className:i.list,"data-depth":o,children:u.map(t=>{if(t.type===`page`){let r=t.path===p,a=f(t.frontmatter.icon);return(0,n.jsx)(`li`,{className:i.item,children:(0,n.jsxs)(`a`,{href:m({language:h,path:t.path}),className:e.t(i.link,r&&i.active),style:{"--depth":o},onClick:l,children:[a&&(0,n.jsx)(`span`,{className:i.icon,children:a}),(0,n.jsx)(`span`,{className:i.label,children:c(t.frontmatter.title,t.path)})]})},t.path)}return t.type===`category`?(0,n.jsx)(d,{category:t,depth:o,onLinkClick:l},t.path):null})})}function d({category:a,depth:o,onLinkClick:s}){let{icon_transformer:d,current_path:f,path_transformer:p,language:m}=t.useDocumentationContext(),h=a?.frontmatter?.title??(a.page?c(a.page.frontmatter.title,a.path):a.path),g=d(a?.frontmatter?.icon??a?.page?.frontmatter?.icon),_=a.children,v=_.length>0,y=a.page?a.page.path===f:!1,[b,x]=(0,r.useState)(!0);return(0,n.jsxs)(`li`,{className:i.item,children:[(0,n.jsxs)(`div`,{className:i.row,children:[a.page?(0,n.jsxs)(`a`,{href:p({language:m,path:a.page.path}),className:e.t(i.link,i[`category-link`],y&&i.active),style:{"--depth":o},onClick:s,children:[g&&(0,n.jsx)(`span`,{className:i.icon,children:g}),(0,n.jsx)(`span`,{className:i.label,children:h})]}):(0,n.jsxs)(`button`,{type:`button`,className:e.t(i.link,i[`category-label`]),style:{"--depth":o},onClick:()=>v&&x(e=>!e),children:[g&&(0,n.jsx)(`span`,{className:i.icon,children:g}),(0,n.jsx)(`span`,{className:i.label,children:h})]}),v&&(0,n.jsx)(`button`,{type:`button`,className:i.toggle,"aria-label":b?`Collapse`:`Expand`,"aria-expanded":b,onClick:()=>x(e=>!e),children:(0,n.jsx)(l,{open:b})})]}),v&&b&&(0,n.jsx)(u,{nodes:_,depth:o+1,onLinkClick:s})]})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return a}});
2
+ //# sourceMappingURL=sidebar-CXrzg2Go.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-CXrzg2Go.cjs","names":[],"sources":["../../styles/src/components/documentation/sidebar/index.module.css","../src/components/documentation/sidebar/index.tsx"],"sourcesContent":[".sidebar {\n\tmin-width: var(--_sleetch-sidebar-width);\n\theight: calc(100vh - var(--_sleetch-header-height));\n\tposition: sticky;\n\ttop: var(--_sleetch-header-height);\n\tcolor: var(--_sleetch-color-text);\n\tpadding: var(--_sleetch-padding-root);\n\tpadding-left: 1em;\n\tpadding-right: 1em;\n\tborder-right: 1px dashed var(--_sleetch-color-muted);\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n\tscrollbar-width: thin;\n\tscrollbar-color: var(--_sleetch-color-muted) transparent;\n}\n\n.sidebar::-webkit-scrollbar {\n\twidth: 6px;\n}\n\n.sidebar::-webkit-scrollbar-track {\n\tbackground: transparent;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n\tbackground-color: var(--_sleetch-color-muted);\n\tborder-radius: 3px;\n}\n\n.sidebar::-webkit-scrollbar-thumb:hover {\n\tbackground-color: var(--_sleetch-color-muted-foreground);\n}\n\n.overlay {\n\tdisplay: none;\n}\n\n@media (max-width: 768px) {\n\t.sidebar {\n\t\tposition: fixed;\n\t\ttop: var(--_sleetch-header-height);\n\t\tleft: 0;\n\t\tbottom: 0;\n\t\twidth: 280px;\n\t\tmin-width: 280px;\n\t\tmax-width: 85vw;\n\t\tz-index: 90;\n\t\tbackground-color: var(--_sleetch-color-background);\n\t\ttransform: translateX(-100%);\n\t\ttransition: transform 0.3s ease;\n\t\tpadding: 2em 1.5em;\n\t\tborder-right: 1px solid var(--_sleetch-color-border);\n\t\tbox-shadow: 2px 0 8px rgba(0, 0, 0, 0.3);\n\t}\n\n\t.sidebar-open {\n\t\ttransform: translateX(0);\n\t}\n\n\t.overlay {\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\ttop: var(--_sleetch-header-height);\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\tz-index: 89;\n\t\tbackdrop-filter: blur(2px);\n\t\tanimation: fadeIn 0.3s ease;\n\t}\n\n\t@keyframes fadeIn {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t}\n\n\t\tto {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n\t.sidebar {\n\t\tmin-width: 260px;\n\t\tpadding: 1em 1.2em;\n\t}\n}\n\n.nav {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.list {\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n}\n\n.item {\n\tmin-width: 0;\n}\n\n.row {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.link,\n.category-label {\n\t--depth: 1;\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0.55em;\n\twidth: 100%;\n\tmin-width: 0;\n\tmargin-left: -1px;\n\tpadding-block: 0.4em;\n\tpadding-left: calc(1em + (var(--depth) - 1) * 1em);\n\tpadding-right: 0.5em;\n\tborder: none;\n\tborder-left: 3px solid transparent;\n\tbackground: none;\n\tfont-family: var(--_sleetch-font-base);\n\tfont-size: calc(1em - (var(--depth) - 1) * 0.03em);\n\tline-height: 1.3;\n\ttext-align: left;\n\tcolor: var(--_sleetch-color-muted-foreground);\n\ttext-decoration: none;\n\tcursor: pointer;\n\ttransition:\n\t\tcolor var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\ttransform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover,\n.category-label:hover {\n\tcolor: var(--_sleetch-color-text);\n}\n\n.category-link,\n.category-label {\n\tfont-weight: var(--_sleetch-font-weight-heading);\n\tcolor: var(--_sleetch-color-text);\n\tpadding-top: 0.5em;\n}\n\n.active {\n\tborder-left-color: var(--_sleetch-color-text-primary);\n\tbackground: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n\tcolor: var(--_sleetch-color-text);\n\ttransform: translateX(4px);\n}\n\n.active:hover {\n\ttransform: translateX(6px);\n}\n\n.toggle {\n\tflex-shrink: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 1.7em;\n\theight: 1.7em;\n\tmargin-right: 0.2em;\n\tbackground: none;\n\tborder: none;\n\tborder-radius: var(--_sleetch-radius);\n\tcolor: var(--_sleetch-color-muted-foreground);\n\tcursor: pointer;\n\ttransition:\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tcolor var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.toggle:hover {\n\tbackground-color: var(--_sleetch-color-card);\n\tcolor: var(--_sleetch-color-text);\n}\n\n.chevron {\n\ttransition: transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.chevron-open {\n\ttransform: rotate(90deg);\n}\n\n.icon {\n\tflex-shrink: 0;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 1.1em;\n\theight: 1.1em;\n\topacity: 0.75;\n}\n\n.label {\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n","/*\n AI Generated :(\n Needs more testing\n*/\n\nimport type { tree_object } from '@sleetch/core/compiler';\nimport styles from '@sleetch/styles/components/documentation/sidebar/index.module.css';\nimport clsx from 'clsx';\nimport { useDocumentationContext } from 'packages/react/src/contexts/documentation';\nimport type { BaseHTMLAttributes } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport interface DocumentationSidebarProps extends BaseHTMLAttributes<HTMLBaseElement> {}\n\nexport function DocumentationSidebar({ className, children, ...props }: DocumentationSidebarProps) {\n\tconst { is_sidebar_open, close_sidebar, tree, current_path, path_transformer, icon_transformer } = useDocumentationContext();\n\n\tuseEffect(() => {\n\t\tif (is_sidebar_open) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t} else {\n\t\t\tdocument.body.style.overflow = '';\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.style.overflow = '';\n\t\t};\n\t}, [is_sidebar_open]);\n\n\treturn (\n\t\t<>\n\t\t\t{is_sidebar_open && <div className={styles.overlay} onClick={close_sidebar} />}\n\t\t\t<aside className={clsx(styles.sidebar, is_sidebar_open && styles['sidebar-open'], className)} {...props}>\n\t\t\t\t<nav className={styles.nav}>\n\t\t\t\t\t<SidebarTree nodes={tree} depth={1} onLinkClick={close_sidebar} />\n\t\t\t\t</nav>\n\t\t\t\t{children}\n\t\t\t</aside>\n\t\t</>\n\t);\n}\n\ntype category_node = Extract<tree_object, { type: 'category' }>;\ntype page_node = Extract<tree_object, { type: 'page' }>;\ntype data_node = Extract<tree_object, { type: 'data' }>;\n\nfunction getOrder(node: tree_object): number {\n\tif (node.type === 'category') {\n\t\treturn node?.frontmatter?.order ?? Number.POSITIVE_INFINITY;\n\t}\n\tif (node.type === 'page') {\n\t\treturn (node.frontmatter as { order?: number }).order ?? Number.POSITIVE_INFINITY;\n\t}\n\treturn Number.POSITIVE_INFINITY;\n}\n\nfunction sortNodes(nodes: tree_object[]): tree_object[] {\n\treturn nodes\n\t\t.map((node, index) => ({ node, index }))\n\t\t.sort((a, b) => {\n\t\t\tconst diff = getOrder(a.node) - getOrder(b.node);\n\t\t\treturn diff !== 0 ? diff : a.index - b.index;\n\t\t})\n\t\t.map(({ node }) => node);\n}\n\nfunction resolveTitle(title: string, fallbackPath: string): string {\n\treturn title && title !== 'No title.' ? title : fallbackPath;\n}\n\nfunction Chevron({ open }: { open: boolean }) {\n\treturn (\n\t\t<svg\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"13\"\n\t\t\theight=\"13\"\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"2.5\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tclassName={clsx(styles.chevron, open && styles['chevron-open'])}\n\t\t>\n\t\t\t<polyline points=\"9 6 15 12 9 18\" />\n\t\t</svg>\n\t);\n}\n\ninterface HrefContext {\n\tonLinkClick?: () => void;\n}\n\ninterface SidebarTreeProps extends HrefContext {\n\tnodes: tree_object[];\n\tdepth: number;\n}\n\nfunction SidebarTree({ nodes, depth, onLinkClick }: SidebarTreeProps) {\n\tconst sorted = useMemo(() => sortNodes(nodes), [nodes]);\n\tconst { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n\treturn (\n\t\t<ul className={styles.list} data-depth={depth}>\n\t\t\t{sorted.map((node) => {\n\t\t\t\tif (node.type === 'page') {\n\t\t\t\t\tconst isActive = node.path === current_path;\n\t\t\t\t\tconst icon = icon_transformer(node.frontmatter.icon);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={node.path} className={styles.item}>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={path_transformer({ language, path: node.path })}\n\t\t\t\t\t\t\t\tclassName={clsx(styles.link, isActive && styles.active)}\n\t\t\t\t\t\t\t\tstyle={{ '--depth': depth } as React.CSSProperties}\n\t\t\t\t\t\t\t\tonClick={onLinkClick}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{icon && <span className={styles.icon}>{icon}</span>}\n\t\t\t\t\t\t\t\t<span className={styles.label}>{resolveTitle(node.frontmatter.title, node.path)}</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'category') {\n\t\t\t\t\treturn <CategoryItem key={node.path} category={node} depth={depth} onLinkClick={onLinkClick} />;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t})}\n\t\t</ul>\n\t);\n}\n\ninterface CategoryItemProps extends HrefContext {\n\tcategory: category_node;\n\tdepth: number;\n}\n\nfunction CategoryItem({ category, depth, onLinkClick }: CategoryItemProps) {\n\tconst { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n\n\tconst title = category?.frontmatter?.title ?? (category.page ? resolveTitle(category.page.frontmatter.title, category.path) : category.path);\n\n\tconst iconName = category?.frontmatter?.icon ?? category?.page?.frontmatter?.icon;\n\tconst icon = icon_transformer(iconName);\n\n\tconst childNodes = category.children;\n\n\tconst hasChildren = childNodes.length > 0;\n\tconst isIndexActive = category.page ? category.page.path === current_path : false;\n\n\tconst [open, setOpen] = useState(true);\n\n\treturn (\n\t\t<li className={styles.item}>\n\t\t\t<div className={styles.row}>\n\t\t\t\t{category.page ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={path_transformer({ language, path: category.page.path })}\n\t\t\t\t\t\tclassName={clsx(styles.link, styles['category-link'], isIndexActive && styles.active)}\n\t\t\t\t\t\tstyle={{ '--depth': depth } as React.CSSProperties}\n\t\t\t\t\t\tonClick={onLinkClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icon && <span className={styles.icon}>{icon}</span>}\n\t\t\t\t\t\t<span className={styles.label}>{title}</span>\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={clsx(styles.link, styles['category-label'])}\n\t\t\t\t\t\tstyle={{ '--depth': depth } as React.CSSProperties}\n\t\t\t\t\t\tonClick={() => hasChildren && setOpen((o) => !o)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icon && <span className={styles.icon}>{icon}</span>}\n\t\t\t\t\t\t<span className={styles.label}>{title}</span>\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\n\t\t\t\t{hasChildren && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.toggle}\n\t\t\t\t\t\taria-label={open ? 'Collapse' : 'Expand'}\n\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\tonClick={() => setOpen((o) => !o)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Chevron open={open} />\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{hasChildren && open && <SidebarTree nodes={childNodes} depth={depth + 1} onLinkClick={onLinkClick} />}\n\t\t</li>\n\t);\n}\n"],"mappings":"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"}
@@ -3,23 +3,23 @@ import { useDocumentationContext as t } from "./contexts/documentation.es.js";
3
3
  import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
4
4
  import { useEffect as a, useMemo as o, useState as s } from "react";
5
5
  import './assets/sidebar.css';var c = {
6
- sidebar: "_sidebar_1gu6z_1",
7
- overlay: "_overlay_1gu6z_33",
8
- "sidebar-open": "_sidebar-open_1gu6z_55",
9
- fadeIn: "_fadeIn_1gu6z_1",
10
- nav: "_nav_1gu6z_89",
11
- list: "_list_1gu6z_94",
12
- item: "_item_1gu6z_103",
13
- row: "_row_1gu6z_107",
14
- link: "_link_1gu6z_112",
15
- "category-label": "_category-label_1gu6z_113",
16
- "category-link": "_category-link_1gu6z_147",
17
- active: "_active_1gu6z_154",
18
- toggle: "_toggle_1gu6z_165",
19
- chevron: "_chevron_1gu6z_188",
20
- "chevron-open": "_chevron-open_1gu6z_192",
21
- icon: "_icon_1gu6z_196",
22
- label: "_label_1gu6z_206"
6
+ sidebar: "_sidebar_91njy_1",
7
+ overlay: "_overlay_91njy_35",
8
+ "sidebar-open": "_sidebar-open_91njy_57",
9
+ fadeIn: "_fadeIn_91njy_1",
10
+ nav: "_nav_91njy_92",
11
+ list: "_list_91njy_97",
12
+ item: "_item_91njy_106",
13
+ row: "_row_91njy_110",
14
+ link: "_link_91njy_115",
15
+ "category-label": "_category-label_91njy_116",
16
+ "category-link": "_category-link_91njy_150",
17
+ active: "_active_91njy_157",
18
+ toggle: "_toggle_91njy_168",
19
+ chevron: "_chevron_91njy_191",
20
+ "chevron-open": "_chevron-open_91njy_195",
21
+ icon: "_icon_91njy_199",
22
+ label: "_label_91njy_209"
23
23
  };
24
24
  //#endregion
25
25
  //#region src/components/documentation/sidebar/index.tsx
@@ -159,4 +159,4 @@ function h({ category: n, depth: a, onLinkClick: o }) {
159
159
  //#endregion
160
160
  export { l as t };
161
161
 
162
- //# sourceMappingURL=sidebar-D7bXjwCm.js.map
162
+ //# sourceMappingURL=sidebar-V1MCkkEu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-V1MCkkEu.js","names":[],"sources":["../../styles/src/components/documentation/sidebar/index.module.css","../src/components/documentation/sidebar/index.tsx"],"sourcesContent":[".sidebar {\n\tmin-width: var(--_sleetch-sidebar-width);\n\theight: calc(100vh - var(--_sleetch-header-height));\n\tposition: sticky;\n\ttop: var(--_sleetch-header-height);\n\tcolor: var(--_sleetch-color-text);\n\tpadding: var(--_sleetch-padding-root);\n\tpadding-left: 1em;\n\tpadding-right: 1em;\n\tborder-right: 1px dashed var(--_sleetch-color-muted);\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n\tscrollbar-width: thin;\n\tscrollbar-color: var(--_sleetch-color-muted) transparent;\n}\n\n.sidebar::-webkit-scrollbar {\n\twidth: 6px;\n}\n\n.sidebar::-webkit-scrollbar-track {\n\tbackground: transparent;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n\tbackground-color: var(--_sleetch-color-muted);\n\tborder-radius: 3px;\n}\n\n.sidebar::-webkit-scrollbar-thumb:hover {\n\tbackground-color: var(--_sleetch-color-muted-foreground);\n}\n\n.overlay {\n\tdisplay: none;\n}\n\n@media (max-width: 768px) {\n\t.sidebar {\n\t\tposition: fixed;\n\t\ttop: var(--_sleetch-header-height);\n\t\tleft: 0;\n\t\tbottom: 0;\n\t\twidth: 280px;\n\t\tmin-width: 280px;\n\t\tmax-width: 85vw;\n\t\tz-index: 90;\n\t\tbackground-color: var(--_sleetch-color-background);\n\t\ttransform: translateX(-100%);\n\t\ttransition: transform 0.3s ease;\n\t\tpadding: 2em 1.5em;\n\t\tborder-right: 1px solid var(--_sleetch-color-border);\n\t\tbox-shadow: 2px 0 8px rgba(0, 0, 0, 0.3);\n\t}\n\n\t.sidebar-open {\n\t\ttransform: translateX(0);\n\t}\n\n\t.overlay {\n\t\tdisplay: block;\n\t\tposition: fixed;\n\t\ttop: var(--_sleetch-header-height);\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\tz-index: 89;\n\t\tbackdrop-filter: blur(2px);\n\t\tanimation: fadeIn 0.3s ease;\n\t}\n\n\t@keyframes fadeIn {\n\t\tfrom {\n\t\t\topacity: 0;\n\t\t}\n\n\t\tto {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n\t.sidebar {\n\t\tmin-width: 260px;\n\t\tpadding: 1em 1.2em;\n\t}\n}\n\n.nav {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.list {\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 4px;\n}\n\n.item {\n\tmin-width: 0;\n}\n\n.row {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.link,\n.category-label {\n\t--depth: 1;\n\tflex: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 0.55em;\n\twidth: 100%;\n\tmin-width: 0;\n\tmargin-left: -1px;\n\tpadding-block: 0.4em;\n\tpadding-left: calc(1em + (var(--depth) - 1) * 1em);\n\tpadding-right: 0.5em;\n\tborder: none;\n\tborder-left: 3px solid transparent;\n\tbackground: none;\n\tfont-family: var(--_sleetch-font-base);\n\tfont-size: calc(1em - (var(--depth) - 1) * 0.03em);\n\tline-height: 1.3;\n\ttext-align: left;\n\tcolor: var(--_sleetch-color-muted-foreground);\n\ttext-decoration: none;\n\tcursor: pointer;\n\ttransition:\n\t\tcolor var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\ttransform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover,\n.category-label:hover {\n\tcolor: var(--_sleetch-color-text);\n}\n\n.category-link,\n.category-label {\n\tfont-weight: var(--_sleetch-font-weight-heading);\n\tcolor: var(--_sleetch-color-text);\n\tpadding-top: 0.5em;\n}\n\n.active {\n\tborder-left-color: var(--_sleetch-color-text-primary);\n\tbackground: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n\tcolor: var(--_sleetch-color-text);\n\ttransform: translateX(4px);\n}\n\n.active:hover {\n\ttransform: translateX(6px);\n}\n\n.toggle {\n\tflex-shrink: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 1.7em;\n\theight: 1.7em;\n\tmargin-right: 0.2em;\n\tbackground: none;\n\tborder: none;\n\tborder-radius: var(--_sleetch-radius);\n\tcolor: var(--_sleetch-color-muted-foreground);\n\tcursor: pointer;\n\ttransition:\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tcolor var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.toggle:hover {\n\tbackground-color: var(--_sleetch-color-card);\n\tcolor: var(--_sleetch-color-text);\n}\n\n.chevron {\n\ttransition: transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.chevron-open {\n\ttransform: rotate(90deg);\n}\n\n.icon {\n\tflex-shrink: 0;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 1.1em;\n\theight: 1.1em;\n\topacity: 0.75;\n}\n\n.label {\n\tflex: 1;\n\tmin-width: 0;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n","/*\n AI Generated :(\n Needs more testing\n*/\n\nimport type { tree_object } from '@sleetch/core/compiler';\nimport styles from '@sleetch/styles/components/documentation/sidebar/index.module.css';\nimport clsx from 'clsx';\nimport { useDocumentationContext } from 'packages/react/src/contexts/documentation';\nimport type { BaseHTMLAttributes } from 'react';\nimport { useEffect, useMemo, useState } from 'react';\n\nexport interface DocumentationSidebarProps extends BaseHTMLAttributes<HTMLBaseElement> {}\n\nexport function DocumentationSidebar({ className, children, ...props }: DocumentationSidebarProps) {\n\tconst { is_sidebar_open, close_sidebar, tree, current_path, path_transformer, icon_transformer } = useDocumentationContext();\n\n\tuseEffect(() => {\n\t\tif (is_sidebar_open) {\n\t\t\tdocument.body.style.overflow = 'hidden';\n\t\t} else {\n\t\t\tdocument.body.style.overflow = '';\n\t\t}\n\t\treturn () => {\n\t\t\tdocument.body.style.overflow = '';\n\t\t};\n\t}, [is_sidebar_open]);\n\n\treturn (\n\t\t<>\n\t\t\t{is_sidebar_open && <div className={styles.overlay} onClick={close_sidebar} />}\n\t\t\t<aside className={clsx(styles.sidebar, is_sidebar_open && styles['sidebar-open'], className)} {...props}>\n\t\t\t\t<nav className={styles.nav}>\n\t\t\t\t\t<SidebarTree nodes={tree} depth={1} onLinkClick={close_sidebar} />\n\t\t\t\t</nav>\n\t\t\t\t{children}\n\t\t\t</aside>\n\t\t</>\n\t);\n}\n\ntype category_node = Extract<tree_object, { type: 'category' }>;\ntype page_node = Extract<tree_object, { type: 'page' }>;\ntype data_node = Extract<tree_object, { type: 'data' }>;\n\nfunction getOrder(node: tree_object): number {\n\tif (node.type === 'category') {\n\t\treturn node?.frontmatter?.order ?? Number.POSITIVE_INFINITY;\n\t}\n\tif (node.type === 'page') {\n\t\treturn (node.frontmatter as { order?: number }).order ?? Number.POSITIVE_INFINITY;\n\t}\n\treturn Number.POSITIVE_INFINITY;\n}\n\nfunction sortNodes(nodes: tree_object[]): tree_object[] {\n\treturn nodes\n\t\t.map((node, index) => ({ node, index }))\n\t\t.sort((a, b) => {\n\t\t\tconst diff = getOrder(a.node) - getOrder(b.node);\n\t\t\treturn diff !== 0 ? diff : a.index - b.index;\n\t\t})\n\t\t.map(({ node }) => node);\n}\n\nfunction resolveTitle(title: string, fallbackPath: string): string {\n\treturn title && title !== 'No title.' ? title : fallbackPath;\n}\n\nfunction Chevron({ open }: { open: boolean }) {\n\treturn (\n\t\t<svg\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"13\"\n\t\t\theight=\"13\"\n\t\t\tfill=\"none\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth=\"2.5\"\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t\tclassName={clsx(styles.chevron, open && styles['chevron-open'])}\n\t\t>\n\t\t\t<polyline points=\"9 6 15 12 9 18\" />\n\t\t</svg>\n\t);\n}\n\ninterface HrefContext {\n\tonLinkClick?: () => void;\n}\n\ninterface SidebarTreeProps extends HrefContext {\n\tnodes: tree_object[];\n\tdepth: number;\n}\n\nfunction SidebarTree({ nodes, depth, onLinkClick }: SidebarTreeProps) {\n\tconst sorted = useMemo(() => sortNodes(nodes), [nodes]);\n\tconst { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n\treturn (\n\t\t<ul className={styles.list} data-depth={depth}>\n\t\t\t{sorted.map((node) => {\n\t\t\t\tif (node.type === 'page') {\n\t\t\t\t\tconst isActive = node.path === current_path;\n\t\t\t\t\tconst icon = icon_transformer(node.frontmatter.icon);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={node.path} className={styles.item}>\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={path_transformer({ language, path: node.path })}\n\t\t\t\t\t\t\t\tclassName={clsx(styles.link, isActive && styles.active)}\n\t\t\t\t\t\t\t\tstyle={{ '--depth': depth } as React.CSSProperties}\n\t\t\t\t\t\t\t\tonClick={onLinkClick}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{icon && <span className={styles.icon}>{icon}</span>}\n\t\t\t\t\t\t\t\t<span className={styles.label}>{resolveTitle(node.frontmatter.title, node.path)}</span>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'category') {\n\t\t\t\t\treturn <CategoryItem key={node.path} category={node} depth={depth} onLinkClick={onLinkClick} />;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t})}\n\t\t</ul>\n\t);\n}\n\ninterface CategoryItemProps extends HrefContext {\n\tcategory: category_node;\n\tdepth: number;\n}\n\nfunction CategoryItem({ category, depth, onLinkClick }: CategoryItemProps) {\n\tconst { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n\n\tconst title = category?.frontmatter?.title ?? (category.page ? resolveTitle(category.page.frontmatter.title, category.path) : category.path);\n\n\tconst iconName = category?.frontmatter?.icon ?? category?.page?.frontmatter?.icon;\n\tconst icon = icon_transformer(iconName);\n\n\tconst childNodes = category.children;\n\n\tconst hasChildren = childNodes.length > 0;\n\tconst isIndexActive = category.page ? category.page.path === current_path : false;\n\n\tconst [open, setOpen] = useState(true);\n\n\treturn (\n\t\t<li className={styles.item}>\n\t\t\t<div className={styles.row}>\n\t\t\t\t{category.page ? (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={path_transformer({ language, path: category.page.path })}\n\t\t\t\t\t\tclassName={clsx(styles.link, styles['category-link'], isIndexActive && styles.active)}\n\t\t\t\t\t\tstyle={{ '--depth': depth } as React.CSSProperties}\n\t\t\t\t\t\tonClick={onLinkClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icon && <span className={styles.icon}>{icon}</span>}\n\t\t\t\t\t\t<span className={styles.label}>{title}</span>\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={clsx(styles.link, styles['category-label'])}\n\t\t\t\t\t\tstyle={{ '--depth': depth } as React.CSSProperties}\n\t\t\t\t\t\tonClick={() => hasChildren && setOpen((o) => !o)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{icon && <span className={styles.icon}>{icon}</span>}\n\t\t\t\t\t\t<span className={styles.label}>{title}</span>\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\n\t\t\t\t{hasChildren && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.toggle}\n\t\t\t\t\t\taria-label={open ? 'Collapse' : 'Expand'}\n\t\t\t\t\t\taria-expanded={open}\n\t\t\t\t\t\tonClick={() => setOpen((o) => !o)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Chevron open={open} />\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{hasChildren && open && <SidebarTree nodes={childNodes} depth={depth + 1} onLinkClick={onLinkClick} />}\n\t\t</li>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { t as e } from "./clsx-CaAiuA5w.js";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ import './assets/spinner.css';var r = {
4
+ spinner: "_spinner_11nfr_1",
5
+ spinner_bar: "_spinner_bar_11nfr_8",
6
+ spinner_spin: "_spinner_spin_11nfr_1",
7
+ small: "_small_11nfr_94",
8
+ medium: "_medium_11nfr_99",
9
+ large: "_large_11nfr_104"
10
+ };
11
+ //#endregion
12
+ //#region src/components/spinner.tsx
13
+ function i({ size: i = "small", className: a, children: o, ...s }) {
14
+ return /* @__PURE__ */ n("div", {
15
+ className: e(r.spinner, r[i], a),
16
+ ...s,
17
+ children: [
18
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
19
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
20
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
21
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
22
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
23
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
24
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
25
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
26
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
27
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
28
+ /* @__PURE__ */ t("div", { className: r.spinner_bar }),
29
+ /* @__PURE__ */ t("div", { className: r.spinner_bar })
30
+ ]
31
+ });
32
+ }
33
+ //#endregion
34
+ export { i as t };
35
+
36
+ //# sourceMappingURL=spinner-BWq14zTZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner-BWq14zTZ.js","names":[],"sources":["../../styles/src/components/spinner.module.css","../src/components/spinner.tsx"],"sourcesContent":[".spinner {\n\theight: 20px;\n\twidth: 20px;\n\tposition: relative;\n\tflex-shrink: 0;\n}\n\n.spinner_bar {\n\tposition: absolute;\n\tleft: 50%;\n\ttop: 50%;\n\twidth: 24%;\n\theight: 8%;\n\tbackground: #8f8f8f;\n\tborder-radius: 5px;\n\n\ttransform-origin: center;\n\ttransform:\n\t\ttranslate(-50%, -50%) rotate(var(--rotation)) translateX(146%);\n\n\tanimation: spinner_spin 1.2s linear infinite;\n}\n\n.spinner_bar:nth-child(1) {\n\t--rotation: 0deg;\n\tanimation-delay: -1.2s;\n}\n\n.spinner_bar:nth-child(2) {\n\t--rotation: 30deg;\n\tanimation-delay: -1.1s;\n}\n\n.spinner_bar:nth-child(3) {\n\t--rotation: 60deg;\n\tanimation-delay: -1s;\n}\n\n.spinner_bar:nth-child(4) {\n\t--rotation: 90deg;\n\tanimation-delay: -.9s;\n}\n\n.spinner_bar:nth-child(5) {\n\t--rotation: 120deg;\n\tanimation-delay: -.8s;\n}\n\n.spinner_bar:nth-child(6) {\n\t--rotation: 150deg;\n\tanimation-delay: -.7s;\n}\n\n.spinner_bar:nth-child(7) {\n\t--rotation: 180deg;\n\tanimation-delay: -.6s;\n}\n\n.spinner_bar:nth-child(8) {\n\t--rotation: 210deg;\n\tanimation-delay: -.5s;\n}\n\n.spinner_bar:nth-child(9) {\n\t--rotation: 240deg;\n\tanimation-delay: -.4s;\n}\n\n.spinner_bar:nth-child(10) {\n\t--rotation: 270deg;\n\tanimation-delay: -.3s;\n}\n\n.spinner_bar:nth-child(11) {\n\t--rotation: 300deg;\n\tanimation-delay: -.2s;\n}\n\n.spinner_bar:nth-child(12) {\n\t--rotation: 330deg;\n\tanimation-delay: -.1s;\n}\n\n@keyframes spinner_spin {\n\t0% {\n\t\topacity: 1;\n\t}\n\n\t100% {\n\t\topacity: 0.15;\n\t}\n}\n\n.small {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.medium {\n\twidth: 24px;\n\theight: 24px;\n}\n\n.large {\n\twidth: 40px;\n\theight: 40px;\n}\n","import styles from '@sleetch/styles/components/spinner.module.css';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\n\nexport interface SpinnerProps extends ButtonHTMLAttributes<HTMLDivElement> {\n\tsize?: \"small\" | \"medium\" | \"large\"\n}\n\nexport function Spinner({ size = \"small\", className, children, ...props }: SpinnerProps) {\n\treturn (\n\t\t<div className={clsx(styles['spinner'], styles[size], className)} {...props}>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;ACQA,SAAgB,EAAQ,EAAE,UAAO,SAAS,cAAW,aAAU,GAAG,KAAuB;CACxF,OACC,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,SAAY,EAAO,IAAO,CAAS;EAAG,GAAI;EAAtE,UAAA;GACC,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;GAC5C,kBAAC,OAAD,EAAK,WAAW,EAAO,YAAqB,CAAA;EACxC;;AAEP"}
@@ -0,0 +1,2 @@
1
+ require('./assets/spinner.css');const e=require("./clsx-GLXUd3yb.cjs");let t=require("react/jsx-runtime");var n={spinner:`_spinner_11nfr_1`,spinner_bar:`_spinner_bar_11nfr_8`,spinner_spin:`_spinner_spin_11nfr_1`,small:`_small_11nfr_94`,medium:`_medium_11nfr_99`,large:`_large_11nfr_104`};function r({size:r=`small`,className:i,children:a,...o}){return(0,t.jsxs)(`div`,{className:e.t(n.spinner,n[r],i),...o,children:[(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar}),(0,t.jsx)(`div`,{className:n.spinner_bar})]})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}});
2
+ //# sourceMappingURL=spinner-CiEz3GLj.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner-CiEz3GLj.cjs","names":[],"sources":["../../styles/src/components/spinner.module.css","../src/components/spinner.tsx"],"sourcesContent":[".spinner {\n\theight: 20px;\n\twidth: 20px;\n\tposition: relative;\n\tflex-shrink: 0;\n}\n\n.spinner_bar {\n\tposition: absolute;\n\tleft: 50%;\n\ttop: 50%;\n\twidth: 24%;\n\theight: 8%;\n\tbackground: #8f8f8f;\n\tborder-radius: 5px;\n\n\ttransform-origin: center;\n\ttransform:\n\t\ttranslate(-50%, -50%) rotate(var(--rotation)) translateX(146%);\n\n\tanimation: spinner_spin 1.2s linear infinite;\n}\n\n.spinner_bar:nth-child(1) {\n\t--rotation: 0deg;\n\tanimation-delay: -1.2s;\n}\n\n.spinner_bar:nth-child(2) {\n\t--rotation: 30deg;\n\tanimation-delay: -1.1s;\n}\n\n.spinner_bar:nth-child(3) {\n\t--rotation: 60deg;\n\tanimation-delay: -1s;\n}\n\n.spinner_bar:nth-child(4) {\n\t--rotation: 90deg;\n\tanimation-delay: -.9s;\n}\n\n.spinner_bar:nth-child(5) {\n\t--rotation: 120deg;\n\tanimation-delay: -.8s;\n}\n\n.spinner_bar:nth-child(6) {\n\t--rotation: 150deg;\n\tanimation-delay: -.7s;\n}\n\n.spinner_bar:nth-child(7) {\n\t--rotation: 180deg;\n\tanimation-delay: -.6s;\n}\n\n.spinner_bar:nth-child(8) {\n\t--rotation: 210deg;\n\tanimation-delay: -.5s;\n}\n\n.spinner_bar:nth-child(9) {\n\t--rotation: 240deg;\n\tanimation-delay: -.4s;\n}\n\n.spinner_bar:nth-child(10) {\n\t--rotation: 270deg;\n\tanimation-delay: -.3s;\n}\n\n.spinner_bar:nth-child(11) {\n\t--rotation: 300deg;\n\tanimation-delay: -.2s;\n}\n\n.spinner_bar:nth-child(12) {\n\t--rotation: 330deg;\n\tanimation-delay: -.1s;\n}\n\n@keyframes spinner_spin {\n\t0% {\n\t\topacity: 1;\n\t}\n\n\t100% {\n\t\topacity: 0.15;\n\t}\n}\n\n.small {\n\twidth: 20px;\n\theight: 20px;\n}\n\n.medium {\n\twidth: 24px;\n\theight: 24px;\n}\n\n.large {\n\twidth: 40px;\n\theight: 40px;\n}\n","import styles from '@sleetch/styles/components/spinner.module.css';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\n\nexport interface SpinnerProps extends ButtonHTMLAttributes<HTMLDivElement> {\n\tsize?: \"small\" | \"medium\" | \"large\"\n}\n\nexport function Spinner({ size = \"small\", className, children, ...props }: SpinnerProps) {\n\treturn (\n\t\t<div className={clsx(styles['spinner'], styles[size], className)} {...props}>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t\t<div className={styles['spinner_bar']}></div>\n\t\t</div>\n\t);\n}\n"],"mappings":"gQCQA,SAAgB,EAAQ,CAAE,OAAO,QAAS,YAAW,WAAU,GAAG,GAAuB,CACxF,OACC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,EAAK,EAAO,QAAY,EAAO,GAAO,CAAS,EAAG,GAAI,EAAtE,SAAA,EACC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,GAC5C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,WAAqB,CAAA,CACxC,GAEP"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../story-DMJSe7Sg.cjs");exports.defineBook=e.t,exports.defineStory=e.n;
@@ -0,0 +1,34 @@
1
+ import { ComponentProps, ComponentType, ReactElement } from 'react';
2
+ export declare function defineStory<T extends ComponentType<any>, const V extends Record<string, {
3
+ props: ComponentProps<T>;
4
+ dotted?: boolean;
5
+ render?: (props: ComponentProps<T>) => ReactElement;
6
+ }>>(data: {
7
+ component: T;
8
+ variants: V;
9
+ }): {
10
+ variants: (keyof V)[];
11
+ render: (variant: keyof V) => ReactElement;
12
+ Component: (props?: {
13
+ variants?: (keyof V)[];
14
+ }) => ReactElement;
15
+ };
16
+ type StoryLoader = () => Promise<{
17
+ default: {
18
+ variants: readonly PropertyKey[];
19
+ Component: ComponentType<any>;
20
+ };
21
+ }>;
22
+ type StoryVariants<L> = L extends () => Promise<{
23
+ default: infer S;
24
+ }> ? (S extends {
25
+ variants: readonly (infer V)[];
26
+ } ? V : never) : never;
27
+ type BookProps<T extends Record<string, StoryLoader>, K extends keyof T> = {
28
+ story: K;
29
+ variants?: StoryVariants<T[K]>[];
30
+ };
31
+ export declare function defineBook<T extends Record<string, StoryLoader>>(stories: T): {
32
+ Component: <K extends keyof T>({ story, variants }: BookProps<T, K>) => import("react").JSX.Element;
33
+ };
34
+ export {};
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "../story-D6POW6tk.js";
2
+ export { t as defineBook, e as defineStory };
@@ -0,0 +1,42 @@
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { Suspense as n, lazy as r } from "react";
3
+ import './assets/story.css';var i = {
4
+ book: "_book_bjssy_1",
5
+ intro: "_intro_bjssy_12",
6
+ card: "_card_bjssy_19",
7
+ cardDotted: "_cardDotted_bjssy_37",
8
+ variantLabel: "_variantLabel_bjssy_44"
9
+ };
10
+ //#endregion
11
+ //#region src/story/index.tsx
12
+ function a(n) {
13
+ let r = Object.keys(n.variants), a = (t) => n.variants[t].render ? n.variants[t].render(n.variants[t].props) : /* @__PURE__ */ e(n.component, { ...n.variants[t].props });
14
+ return {
15
+ variants: r,
16
+ render: a,
17
+ Component: ({ variants: o } = {}) => /* @__PURE__ */ e("div", {
18
+ className: `no-sleetch-markdown ${i.book}`,
19
+ children: (o ?? r).map((r) => /* @__PURE__ */ t("div", {
20
+ className: `${i.card} ${n.variants[r].dotted ? i.cardDotted : ""}`,
21
+ children: [a(r), /* @__PURE__ */ e("span", {
22
+ className: i.variantLabel,
23
+ children: r.toString()
24
+ })]
25
+ }, r.toString()))
26
+ })
27
+ };
28
+ }
29
+ function o(t) {
30
+ function i({ story: i, variants: a }) {
31
+ let o = r(async () => ({ default: (await t[i]()).default.Component }));
32
+ return /* @__PURE__ */ e(n, {
33
+ fallback: null,
34
+ children: /* @__PURE__ */ e(o, { variants: a })
35
+ });
36
+ }
37
+ return { Component: i };
38
+ }
39
+ //#endregion
40
+ export { a as n, o as t };
41
+
42
+ //# sourceMappingURL=story-D6POW6tk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-D6POW6tk.js","names":[],"sources":["../../styles/src/components/story.module.css","../src/story/index.tsx"],"sourcesContent":[".book {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: flex-start;\n\tgap: 1.5em;\n\tpadding: 1em 0em;\n\tfont-family: var(--_sleetch-font-base);\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: var(--_sleetch-color-background);\n}\n\n.intro {\n\twidth: 100%;\n\tmargin: var(--_sleetch-margin-paragraph);\n\tfont-size: var(--_sleetch-font-size-small);\n\tcolor: var(--_sleetch-color-muted-foreground);\n}\n\n.card {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmin-width: 220px;\n\tmin-height: 17em;\n\twidth: 100%;\n\tpadding: 2em 1em 2.4em;\n\tborder: 1px solid var(--_sleetch-color-border);\n\tborder-radius: var(--_sleetch-radius);\n\tbackground-color: var(--_sleetch-color-background);\n\ttransition:\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n\n.cardDotted {\n\tbackground-color: var(--_sleetch-color-background);\n\tbackground-image: radial-gradient(var(--_sleetch-color-border) 1px, transparent 1px);\n\tbackground-size: 14px 14px;\n\tbackground-position: -1px -1px;\n}\n\n.variantLabel {\n\tposition: absolute;\n\tleft: 0.75em;\n\tbottom: 0.6em;\n\tfont-family: var(--_sleetch-font-mono);\n\tfont-size: var(--_sleetch-font-size-tiny);\n\tline-height: 1;\n\tcolor: var(--_sleetch-color-muted-foreground);\n\tbackground-color: var(--_sleetch-color-muted);\n\tpadding: var(--_sleetch-padding-code);\n\tborder-radius: calc(var(--_sleetch-radius) / 2);\n\tpointer-events: none;\n}\n\n@media (max-width: 768px) {\n\t.book {\n\t\tflex-direction: column;\n\t}\n\n\t.card {\n\t\twidth: 100%;\n\t}\n}\n","// biome-ignore-all lint/suspicious/noExplicitAny : Any types are expected behavior here.\n\nimport styles from '@sleetch/styles/components/story.module.css';\nimport type { ComponentProps, ComponentType, ReactElement } from 'react';\nimport { lazy, Suspense } from 'react';\n\nexport function defineStory<\n\tT extends ComponentType<any>,\n\tconst V extends Record<\n\t\tstring,\n\t\t{\n\t\t\tprops: ComponentProps<T>;\n\t\t\tdotted?: boolean;\n\t\t\trender?: (props: ComponentProps<T>) => ReactElement;\n\t\t}\n\t>,\n>(data: {\n\tcomponent: T;\n\tvariants: V;\n}): {\n\tvariants: (keyof V)[];\n\trender: (variant: keyof V) => ReactElement;\n\tComponent: (props?: { variants?: (keyof V)[] }) => ReactElement;\n} {\n\tconst variants = Object.keys(data.variants) as (keyof V)[];\n\n\tconst render = (variant: keyof V) =>\n\t\tdata.variants[variant].render ? (\n\t\t\tdata.variants[variant].render(data.variants[variant].props)\n\t\t) : (\n\t\t\t<data.component {...data.variants[variant].props} />\n\t\t);\n\n\treturn {\n\t\tvariants,\n\t\trender,\n\t\tComponent: ({ variants: selected } = {}) => {\n\t\t\treturn (\n\t\t\t\t<div className={`no-sleetch-markdown ${styles.book}`}>\n\t\t\t\t\t{(selected ?? variants).map((variant) => (\n\t\t\t\t\t\t<div key={variant.toString()} className={`${styles.card} ${data.variants[variant].dotted ? styles.cardDotted : ''}`}>\n\t\t\t\t\t\t\t{render(variant)}\n\t\t\t\t\t\t\t<span className={styles.variantLabel}>{variant.toString()}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t};\n}\n\ntype StoryLoader = () => Promise<{\n\tdefault: {\n\t\tvariants: readonly PropertyKey[];\n\t\tComponent: ComponentType<any>;\n\t};\n}>;\n\ntype StoryVariants<L> = L extends () => Promise<{ default: infer S }> ? (S extends { variants: readonly (infer V)[] } ? V : never) : never;\n\ntype BookProps<T extends Record<string, StoryLoader>, K extends keyof T> = {\n\tstory: K;\n\tvariants?: StoryVariants<T[K]>[];\n};\n\nexport function defineBook<T extends Record<string, StoryLoader>>(stories: T) {\n\tfunction Component<K extends keyof T>({ story, variants }: BookProps<T, K>) {\n\t\tconst Story = lazy(async () => {\n\t\t\tconst module = await stories[story]();\n\n\t\t\treturn {\n\t\t\t\tdefault: module.default.Component,\n\t\t\t};\n\t\t});\n\n\t\treturn (\n\t\t\t<Suspense fallback={null}>\n\t\t\t\t<Story variants={variants} />\n\t\t\t</Suspense>\n\t\t);\n\t}\n\n\treturn { Component };\n}\n"],"mappings":";;;;;;;;;;;ACMA,SAAgB,EAUd,GAOA;CACD,IAAM,IAAW,OAAO,KAAK,EAAK,QAAQ,GAEpC,KAAU,MACf,EAAK,SAAS,EAAQ,CAAC,SACtB,EAAK,SAAS,EAAQ,CAAC,OAAO,EAAK,SAAS,EAAQ,CAAC,KAAK,IAE1D,kBAAC,EAAK,WAAN,EAAgB,GAAI,EAAK,SAAS,EAAQ,CAAC,MAAQ,CAAA;CAGrD,OAAO;EACN;EACA;EACA,YAAY,EAAE,UAAU,MAAa,CAAC,MAEpC,kBAAC,OAAD;GAAK,WAAW,uBAAuB,EAAO;GAC3C,WAAA,KAAY,EAAA,CAAU,KAAK,MAC5B,kBAAC,OAAD;IAA8B,WAAW,GAAG,EAAO,KAAK,GAAG,EAAK,SAAS,EAAQ,CAAC,SAAS,EAAO,aAAa;IAA/G,UAAA,CACE,EAAO,CAAO,GACf,kBAAC,QAAD;KAAM,WAAW,EAAO;KAAe,UAAA,EAAQ,SAAS;IAAQ,CAAA,CAC5D;GAHK,GAAA,EAAQ,SAAS,CAGtB,CACL;EACG,CAAA;CAGR;AACD;AAgBA,SAAgB,EAAkD,GAAY;CAC7E,SAAS,EAA6B,EAAE,UAAO,eAA6B;EAC3E,IAAM,IAAQ,EAAK,aAGX,EACN,UAAS,MAHW,EAAQ,EAAM,CAAC,EAAA,CAGnB,QAAQ,UACzB,EACA;EAED,OACC,kBAAC,GAAD;GAAU,UAAU;GACnB,UAAA,kBAAC,GAAD,EAAiB,YAAW,CAAA;EACnB,CAAA;CAEZ;CAEA,OAAO,EAAE,aAAU;AACpB"}
@@ -0,0 +1,2 @@
1
+ require('./assets/story.css');let e=require("react/jsx-runtime"),t=require("react");var n={book:`_book_bjssy_1`,intro:`_intro_bjssy_12`,card:`_card_bjssy_19`,cardDotted:`_cardDotted_bjssy_37`,variantLabel:`_variantLabel_bjssy_44`};function r(t){let r=Object.keys(t.variants),i=n=>t.variants[n].render?t.variants[n].render(t.variants[n].props):(0,e.jsx)(t.component,{...t.variants[n].props});return{variants:r,render:i,Component:({variants:a}={})=>(0,e.jsx)(`div`,{className:`no-sleetch-markdown ${n.book}`,children:(a??r).map(r=>(0,e.jsxs)(`div`,{className:`${n.card} ${t.variants[r].dotted?n.cardDotted:``}`,children:[i(r),(0,e.jsx)(`span`,{className:n.variantLabel,children:r.toString()})]},r.toString()))})}}function i(n){function r({story:r,variants:i}){let a=(0,t.lazy)(async()=>({default:(await n[r]()).default.Component}));return(0,e.jsx)(t.Suspense,{fallback:null,children:(0,e.jsx)(a,{variants:i})})}return{Component:r}}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=story-DMJSe7Sg.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"story-DMJSe7Sg.cjs","names":[],"sources":["../../styles/src/components/story.module.css","../src/story/index.tsx"],"sourcesContent":[".book {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: flex-start;\n\tgap: 1.5em;\n\tpadding: 1em 0em;\n\tfont-family: var(--_sleetch-font-base);\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: var(--_sleetch-color-background);\n}\n\n.intro {\n\twidth: 100%;\n\tmargin: var(--_sleetch-margin-paragraph);\n\tfont-size: var(--_sleetch-font-size-small);\n\tcolor: var(--_sleetch-color-muted-foreground);\n}\n\n.card {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmin-width: 220px;\n\tmin-height: 17em;\n\twidth: 100%;\n\tpadding: 2em 1em 2.4em;\n\tborder: 1px solid var(--_sleetch-color-border);\n\tborder-radius: var(--_sleetch-radius);\n\tbackground-color: var(--_sleetch-color-background);\n\ttransition:\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n\n.cardDotted {\n\tbackground-color: var(--_sleetch-color-background);\n\tbackground-image: radial-gradient(var(--_sleetch-color-border) 1px, transparent 1px);\n\tbackground-size: 14px 14px;\n\tbackground-position: -1px -1px;\n}\n\n.variantLabel {\n\tposition: absolute;\n\tleft: 0.75em;\n\tbottom: 0.6em;\n\tfont-family: var(--_sleetch-font-mono);\n\tfont-size: var(--_sleetch-font-size-tiny);\n\tline-height: 1;\n\tcolor: var(--_sleetch-color-muted-foreground);\n\tbackground-color: var(--_sleetch-color-muted);\n\tpadding: var(--_sleetch-padding-code);\n\tborder-radius: calc(var(--_sleetch-radius) / 2);\n\tpointer-events: none;\n}\n\n@media (max-width: 768px) {\n\t.book {\n\t\tflex-direction: column;\n\t}\n\n\t.card {\n\t\twidth: 100%;\n\t}\n}\n","// biome-ignore-all lint/suspicious/noExplicitAny : Any types are expected behavior here.\n\nimport styles from '@sleetch/styles/components/story.module.css';\nimport type { ComponentProps, ComponentType, ReactElement } from 'react';\nimport { lazy, Suspense } from 'react';\n\nexport function defineStory<\n\tT extends ComponentType<any>,\n\tconst V extends Record<\n\t\tstring,\n\t\t{\n\t\t\tprops: ComponentProps<T>;\n\t\t\tdotted?: boolean;\n\t\t\trender?: (props: ComponentProps<T>) => ReactElement;\n\t\t}\n\t>,\n>(data: {\n\tcomponent: T;\n\tvariants: V;\n}): {\n\tvariants: (keyof V)[];\n\trender: (variant: keyof V) => ReactElement;\n\tComponent: (props?: { variants?: (keyof V)[] }) => ReactElement;\n} {\n\tconst variants = Object.keys(data.variants) as (keyof V)[];\n\n\tconst render = (variant: keyof V) =>\n\t\tdata.variants[variant].render ? (\n\t\t\tdata.variants[variant].render(data.variants[variant].props)\n\t\t) : (\n\t\t\t<data.component {...data.variants[variant].props} />\n\t\t);\n\n\treturn {\n\t\tvariants,\n\t\trender,\n\t\tComponent: ({ variants: selected } = {}) => {\n\t\t\treturn (\n\t\t\t\t<div className={`no-sleetch-markdown ${styles.book}`}>\n\t\t\t\t\t{(selected ?? variants).map((variant) => (\n\t\t\t\t\t\t<div key={variant.toString()} className={`${styles.card} ${data.variants[variant].dotted ? styles.cardDotted : ''}`}>\n\t\t\t\t\t\t\t{render(variant)}\n\t\t\t\t\t\t\t<span className={styles.variantLabel}>{variant.toString()}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t};\n}\n\ntype StoryLoader = () => Promise<{\n\tdefault: {\n\t\tvariants: readonly PropertyKey[];\n\t\tComponent: ComponentType<any>;\n\t};\n}>;\n\ntype StoryVariants<L> = L extends () => Promise<{ default: infer S }> ? (S extends { variants: readonly (infer V)[] } ? V : never) : never;\n\ntype BookProps<T extends Record<string, StoryLoader>, K extends keyof T> = {\n\tstory: K;\n\tvariants?: StoryVariants<T[K]>[];\n};\n\nexport function defineBook<T extends Record<string, StoryLoader>>(stories: T) {\n\tfunction Component<K extends keyof T>({ story, variants }: BookProps<T, K>) {\n\t\tconst Story = lazy(async () => {\n\t\t\tconst module = await stories[story]();\n\n\t\t\treturn {\n\t\t\t\tdefault: module.default.Component,\n\t\t\t};\n\t\t});\n\n\t\treturn (\n\t\t\t<Suspense fallback={null}>\n\t\t\t\t<Story variants={variants} />\n\t\t\t</Suspense>\n\t\t);\n\t}\n\n\treturn { Component };\n}\n"],"mappings":"yMCMA,SAAgB,EAUd,EAOA,CACD,IAAM,EAAW,OAAO,KAAK,EAAK,QAAQ,EAEpC,EAAU,GACf,EAAK,SAAS,EAAQ,CAAC,OACtB,EAAK,SAAS,EAAQ,CAAC,OAAO,EAAK,SAAS,EAAQ,CAAC,KAAK,GAE1D,EAAA,EAAA,IAAA,CAAC,EAAK,UAAN,CAAgB,GAAI,EAAK,SAAS,EAAQ,CAAC,KAAQ,CAAA,EAGrD,MAAO,CACN,WACA,SACA,WAAY,CAAE,SAAU,GAAa,CAAC,KAEpC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,uBAAuB,EAAO,OAC3C,UAAA,GAAY,EAAA,CAAU,IAAK,IAC5B,EAAA,EAAA,KAAA,CAAC,MAAD,CAA8B,UAAW,GAAG,EAAO,KAAK,GAAG,EAAK,SAAS,EAAQ,CAAC,OAAS,EAAO,WAAa,KAA/G,SAAA,CACE,EAAO,CAAO,GACf,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,aAAe,SAAA,EAAQ,SAAS,CAAQ,CAAA,CAC5D,CAHK,EAAA,EAAQ,SAAS,CAGtB,CACL,CACG,CAAA,CAGR,CACD,CAgBA,SAAgB,EAAkD,EAAY,CAC7E,SAAS,EAA6B,CAAE,QAAO,YAA6B,CAC3E,IAAM,GAAA,EAAQ,EAAA,KAAA,CAAK,UAGX,CACN,SAAS,MAHW,EAAQ,EAAM,CAAC,EAAA,CAGnB,QAAQ,SACzB,EACA,EAED,OACC,EAAA,EAAA,IAAA,CAAC,EAAA,SAAD,CAAU,SAAU,KACnB,UAAA,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,UAAW,CAAA,CACnB,CAAA,CAEZ,CAEA,MAAO,CAAE,WAAU,CACpB"}
@@ -2,15 +2,15 @@ import { t as e } from "./clsx-CaAiuA5w.js";
2
2
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
3
  import { useEffect as r, useRef as i, useState as a } from "react";
4
4
  import './assets/toc.css';var o = {
5
- default: "_default_1gcyi_1",
6
- title: "_title_1gcyi_27",
7
- track: "_track_1gcyi_34",
8
- line: "_line_1gcyi_38",
9
- gapDot: "_gapDot_1gcyi_48",
10
- list: "_list_1gcyi_61",
11
- item: "_item_1gcyi_72",
12
- link: "_link_1gcyi_76",
13
- active: "_active_1gcyi_109"
5
+ default: "_default_1poib_1",
6
+ title: "_title_1poib_29",
7
+ track: "_track_1poib_36",
8
+ line: "_line_1poib_40",
9
+ gapDot: "_gapDot_1poib_50",
10
+ list: "_list_1poib_63",
11
+ item: "_item_1poib_75",
12
+ link: "_link_1poib_80",
13
+ active: "_active_1poib_114"
14
14
  };
15
15
  //#endregion
16
16
  //#region src/components/documentation/toc/index.tsx
@@ -98,4 +98,4 @@ function s({ className: s, children: c, page: l, ...u }) {
98
98
  //#endregion
99
99
  export { s as t };
100
100
 
101
- //# sourceMappingURL=toc-rfPQJ_Pf.js.map
101
+ //# sourceMappingURL=toc-4StZsTN_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toc-4StZsTN_.js","names":[],"sources":["../../styles/src/components/documentation/toc/index.module.css","../src/components/documentation/toc/index.tsx"],"sourcesContent":[".default {\n\tmin-width: var(--_sleetch-toc-width);\n\theight: calc(100vh - var(--_sleetch-header-height));\n\tposition: sticky;\n\ttop: var(--_sleetch-header-height);\n\tcolor: var(--_sleetch-color-text);\n\tpadding: var(--_sleetch-padding-root);\n\tpadding-left: 1em;\n\tpadding-right: 1em;\n\tborder-left: 1px dashed var(--_sleetch-color-border);\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n}\n\n@media (max-width: 1024px) {\n\t.default {\n\t\tdisplay: none;\n\t}\n}\n\n@media (min-width: 1025px) and (max-width: 1280px) {\n\t.default {\n\t\tmin-width: 220px;\n\t\tpadding: 1em 1.5em;\n\t}\n}\n\n.title {\n\tmargin: 0 0 0.5em;\n\tfont-size: 0.9em;\n\tfont-weight: var(--_sleetch-font-weight-heading);\n\tcolor: var(--_sleetch-color-text);\n}\n\n.track {\n\tposition: relative;\n}\n\n.line {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbottom: 0;\n\twidth: 1px;\n\tbackground: var(--_sleetch-color-muted);\n\tz-index: 0;\n}\n\n.gapDot {\n\tposition: absolute;\n\tleft: 0;\n\twidth: 6px;\n\theight: 6px;\n\tborder-radius: 50%;\n\tbackground: var(--_sleetch-color-muted-foreground);\n\ttransform: translate(-50%, -50%);\n\tz-index: 1;\n\tpointer-events: none;\n\ttransition: top var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.list {\n\tposition: relative;\n\t/* nécessaire pour que le z-index prenne le dessus sur .line */\n\tz-index: 1;\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n}\n\n.item {\n\tmin-width: 0;\n\t/* requis pour que l'ellipsis fonctionne dans un flex/grid parent */\n}\n\n.link {\n\t--depth: 1;\n\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-left: -1px;\n\t/* centre la bordure de 3px sur la ligne de 1px */\n\tpadding-block: 0.4em;\n\tpadding-left: calc(1em + (var(--depth) - 1) * 0.85em);\n\tpadding-right: 0.5em;\n\n\tborder-left: 3px solid transparent;\n\n\tfont-family: var(--_sleetch-font-base);\n\tfont-size: calc(0.85em - (var(--depth) - 1) * 0.03em);\n\tline-height: 1.3;\n\tcolor: var(--_sleetch-color-muted-foreground);\n\ttext-decoration: none;\n\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\n\ttransition:\n\t\tcolor var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\ttransform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover {\n\tcolor: var(--_sleetch-color-text);\n}\n\n.active {\n\tborder-left-color: var(--_sleetch-color-text-primary);\n\tbackground: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n\tcolor: var(--_sleetch-color-text);\n\ttransform: translateX(4px);\n}\n","/*\nAI Generated :(\nNeeds more testing\n*/\n\nimport type { page_module } from '@sleetch/core/compiler';\nimport styles from '@sleetch/styles/components/documentation/toc/index.module.css';\nimport clsx from 'clsx';\nimport { type BaseHTMLAttributes, type CSSProperties, useEffect, useRef, useState } from 'react';\n\nexport interface DocumentationTocProps extends BaseHTMLAttributes<HTMLBaseElement> {\n\tpage: page_module['default'];\n}\n\ninterface TocLinkStyle extends CSSProperties {\n\t'--depth'?: number;\n}\n\nexport function DocumentationToc({ className, children, page, ...props }: DocumentationTocProps) {\n\tconst toc = page.toc;\n\n\tconst [activeIds, setActiveIds] = useState<Set<string>>(new Set());\n\tconst [gapY, setGapY] = useState<number | null>(null);\n\n\tconst trackRef = useRef<HTMLDivElement>(null);\n\tconst itemRefs = useRef<Map<string, HTMLLIElement>>(new Map());\n\tconst lastActiveIndexRef = useRef<number | null>(null);\n\n\tuseEffect(() => {\n\t\tif (toc.length === 0) return;\n\n\t\tconst elements = toc.map((item) => document.getElementById(item.id)).filter((el): el is HTMLElement => el !== null);\n\n\t\tif (elements.length === 0) return;\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tsetActiveIds((prev) => {\n\t\t\t\t\tconst next = new Set(prev);\n\t\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\t\tnext.add(entry.target.id);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnext.delete(entry.target.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn next;\n\t\t\t\t});\n\t\t\t},\n\t\t\t{\n\t\t\t\trootMargin: '0px 0px -70% 0px',\n\t\t\t\tthreshold: 0,\n\t\t\t},\n\t\t);\n\n\t\tfor (const el of elements) observer.observe(el);\n\n\t\treturn () => observer.disconnect();\n\t}, [toc]);\n\n\tuseEffect(() => {\n\t\tif (activeIds.size > 0) {\n\t\t\tlet maxIndex = -1;\n\t\t\ttoc.forEach((item, i) => {\n\t\t\t\tif (activeIds.has(item.id)) maxIndex = i;\n\t\t\t});\n\t\t\tlastActiveIndexRef.current = maxIndex;\n\t\t\tsetGapY(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst track = trackRef.current;\n\t\tconst lastIndex = lastActiveIndexRef.current;\n\n\t\tif (!track || lastIndex === null || lastIndex >= toc.length - 1) {\n\t\t\tsetGapY(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentLi = itemRefs.current.get(toc[lastIndex].id);\n\t\tconst nextLi = itemRefs.current.get(toc[lastIndex + 1].id);\n\n\t\tif (!currentLi || !nextLi) {\n\t\t\tsetGapY(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst trackRect = track.getBoundingClientRect();\n\t\tconst currentRect = currentLi.getBoundingClientRect();\n\t\tconst nextRect = nextLi.getBoundingClientRect();\n\n\t\tconst y = (currentRect.bottom - trackRect.top + (nextRect.top - trackRect.top)) / 2;\n\n\t\tsetGapY(y);\n\t}, [activeIds, toc]);\n\n\tif (toc.length === 0) return null;\n\n\treturn (\n\t\t<aside className={clsx(styles.default, className)} {...props}>\n\t\t\t<h3 className={styles.title}>On this page</h3>\n\t\t\t<div className={styles.track} ref={trackRef}>\n\t\t\t\t<span className={styles.line} aria-hidden=\"true\" />\n\t\t\t\t{gapY !== null && <span className={styles.gapDot} style={{ top: gapY }} aria-hidden=\"true\" />}\n\t\t\t\t<ul className={styles.list}>\n\t\t\t\t\t{toc.map((item) => {\n\t\t\t\t\t\tconst focused = activeIds.has(item.id);\n\t\t\t\t\t\tconst linkStyle: TocLinkStyle = { '--depth': item.level };\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\tclassName={styles.item}\n\t\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\t\tif (el) itemRefs.current.set(item.id, el);\n\t\t\t\t\t\t\t\t\telse itemRefs.current.delete(item.id);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref={`#${item.id}`}\n\t\t\t\t\t\t\t\t\ttitle={item.title}\n\t\t\t\t\t\t\t\t\taria-current={focused ? 'location' : undefined}\n\t\t\t\t\t\t\t\t\tclassName={clsx(styles.link, focused && styles.active)}\n\t\t\t\t\t\t\t\t\tstyle={linkStyle}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</aside>\n\t);\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- require('./assets/toc.css');const e=require("./clsx-GLXUd3yb.cjs");let t=require("react/jsx-runtime"),n=require("react");var r={default:`_default_1gcyi_1`,title:`_title_1gcyi_27`,track:`_track_1gcyi_34`,line:`_line_1gcyi_38`,gapDot:`_gapDot_1gcyi_48`,list:`_list_1gcyi_61`,item:`_item_1gcyi_72`,link:`_link_1gcyi_76`,active:`_active_1gcyi_109`};function i({className:i,children:a,page:o,...s}){let c=o.toc,[l,u]=(0,n.useState)(new Set),[d,f]=(0,n.useState)(null),p=(0,n.useRef)(null),m=(0,n.useRef)(new Map),h=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(c.length===0)return;let e=c.map(e=>document.getElementById(e.id)).filter(e=>e!==null);if(e.length===0)return;let t=new IntersectionObserver(e=>{u(t=>{let n=new Set(t);for(let t of e)t.isIntersecting?n.add(t.target.id):n.delete(t.target.id);return n})},{rootMargin:`0px 0px -70% 0px`,threshold:0});for(let n of e)t.observe(n);return()=>t.disconnect()},[c]),(0,n.useEffect)(()=>{if(l.size>0){let e=-1;c.forEach((t,n)=>{l.has(t.id)&&(e=n)}),h.current=e,f(null);return}let e=p.current,t=h.current;if(!e||t===null||t>=c.length-1){f(null);return}let n=m.current.get(c[t].id),r=m.current.get(c[t+1].id);if(!n||!r){f(null);return}let i=e.getBoundingClientRect(),a=n.getBoundingClientRect(),o=r.getBoundingClientRect(),s=(a.bottom-i.top+(o.top-i.top))/2;f(s)},[l,c]),c.length===0?null:(0,t.jsxs)(`aside`,{className:e.t(r.default,i),...s,children:[(0,t.jsx)(`h3`,{className:r.title,children:`On this page`}),(0,t.jsxs)(`div`,{className:r.track,ref:p,children:[(0,t.jsx)(`span`,{className:r.line,"aria-hidden":`true`}),d!==null&&(0,t.jsx)(`span`,{className:r.gapDot,style:{top:d},"aria-hidden":`true`}),(0,t.jsx)(`ul`,{className:r.list,children:c.map(n=>{let i=l.has(n.id),a={"--depth":n.level};return(0,t.jsx)(`li`,{className:r.item,ref:e=>{e?m.current.set(n.id,e):m.current.delete(n.id)},children:(0,t.jsx)(`a`,{href:`#${n.id}`,title:n.title,"aria-current":i?`location`:void 0,className:e.t(r.link,i&&r.active),style:a,children:n.title})},n.id)})})]})]})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=toc-DkBTetNW.cjs.map
1
+ require('./assets/toc.css');const e=require("./clsx-GLXUd3yb.cjs");let t=require("react/jsx-runtime"),n=require("react");var r={default:`_default_1poib_1`,title:`_title_1poib_29`,track:`_track_1poib_36`,line:`_line_1poib_40`,gapDot:`_gapDot_1poib_50`,list:`_list_1poib_63`,item:`_item_1poib_75`,link:`_link_1poib_80`,active:`_active_1poib_114`};function i({className:i,children:a,page:o,...s}){let c=o.toc,[l,u]=(0,n.useState)(new Set),[d,f]=(0,n.useState)(null),p=(0,n.useRef)(null),m=(0,n.useRef)(new Map),h=(0,n.useRef)(null);return(0,n.useEffect)(()=>{if(c.length===0)return;let e=c.map(e=>document.getElementById(e.id)).filter(e=>e!==null);if(e.length===0)return;let t=new IntersectionObserver(e=>{u(t=>{let n=new Set(t);for(let t of e)t.isIntersecting?n.add(t.target.id):n.delete(t.target.id);return n})},{rootMargin:`0px 0px -70% 0px`,threshold:0});for(let n of e)t.observe(n);return()=>t.disconnect()},[c]),(0,n.useEffect)(()=>{if(l.size>0){let e=-1;c.forEach((t,n)=>{l.has(t.id)&&(e=n)}),h.current=e,f(null);return}let e=p.current,t=h.current;if(!e||t===null||t>=c.length-1){f(null);return}let n=m.current.get(c[t].id),r=m.current.get(c[t+1].id);if(!n||!r){f(null);return}let i=e.getBoundingClientRect(),a=n.getBoundingClientRect(),o=r.getBoundingClientRect(),s=(a.bottom-i.top+(o.top-i.top))/2;f(s)},[l,c]),c.length===0?null:(0,t.jsxs)(`aside`,{className:e.t(r.default,i),...s,children:[(0,t.jsx)(`h3`,{className:r.title,children:`On this page`}),(0,t.jsxs)(`div`,{className:r.track,ref:p,children:[(0,t.jsx)(`span`,{className:r.line,"aria-hidden":`true`}),d!==null&&(0,t.jsx)(`span`,{className:r.gapDot,style:{top:d},"aria-hidden":`true`}),(0,t.jsx)(`ul`,{className:r.list,children:c.map(n=>{let i=l.has(n.id),a={"--depth":n.level};return(0,t.jsx)(`li`,{className:r.item,ref:e=>{e?m.current.set(n.id,e):m.current.delete(n.id)},children:(0,t.jsx)(`a`,{href:`#${n.id}`,title:n.title,"aria-current":i?`location`:void 0,className:e.t(r.link,i&&r.active),style:a,children:n.title})},n.id)})})]})]})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=toc-CPqRAPOv.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toc-CPqRAPOv.cjs","names":[],"sources":["../../styles/src/components/documentation/toc/index.module.css","../src/components/documentation/toc/index.tsx"],"sourcesContent":[".default {\n\tmin-width: var(--_sleetch-toc-width);\n\theight: calc(100vh - var(--_sleetch-header-height));\n\tposition: sticky;\n\ttop: var(--_sleetch-header-height);\n\tcolor: var(--_sleetch-color-text);\n\tpadding: var(--_sleetch-padding-root);\n\tpadding-left: 1em;\n\tpadding-right: 1em;\n\tborder-left: 1px dashed var(--_sleetch-color-border);\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow-y: auto;\n}\n\n@media (max-width: 1024px) {\n\t.default {\n\t\tdisplay: none;\n\t}\n}\n\n@media (min-width: 1025px) and (max-width: 1280px) {\n\t.default {\n\t\tmin-width: 220px;\n\t\tpadding: 1em 1.5em;\n\t}\n}\n\n.title {\n\tmargin: 0 0 0.5em;\n\tfont-size: 0.9em;\n\tfont-weight: var(--_sleetch-font-weight-heading);\n\tcolor: var(--_sleetch-color-text);\n}\n\n.track {\n\tposition: relative;\n}\n\n.line {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbottom: 0;\n\twidth: 1px;\n\tbackground: var(--_sleetch-color-muted);\n\tz-index: 0;\n}\n\n.gapDot {\n\tposition: absolute;\n\tleft: 0;\n\twidth: 6px;\n\theight: 6px;\n\tborder-radius: 50%;\n\tbackground: var(--_sleetch-color-muted-foreground);\n\ttransform: translate(-50%, -50%);\n\tz-index: 1;\n\tpointer-events: none;\n\ttransition: top var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.list {\n\tposition: relative;\n\t/* nécessaire pour que le z-index prenne le dessus sur .line */\n\tz-index: 1;\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n}\n\n.item {\n\tmin-width: 0;\n\t/* requis pour que l'ellipsis fonctionne dans un flex/grid parent */\n}\n\n.link {\n\t--depth: 1;\n\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-left: -1px;\n\t/* centre la bordure de 3px sur la ligne de 1px */\n\tpadding-block: 0.4em;\n\tpadding-left: calc(1em + (var(--depth) - 1) * 0.85em);\n\tpadding-right: 0.5em;\n\n\tborder-left: 3px solid transparent;\n\n\tfont-family: var(--_sleetch-font-base);\n\tfont-size: calc(0.85em - (var(--depth) - 1) * 0.03em);\n\tline-height: 1.3;\n\tcolor: var(--_sleetch-color-muted-foreground);\n\ttext-decoration: none;\n\n\twhite-space: nowrap;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\n\ttransition:\n\t\tcolor var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\ttransform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover {\n\tcolor: var(--_sleetch-color-text);\n}\n\n.active {\n\tborder-left-color: var(--_sleetch-color-text-primary);\n\tbackground: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n\tcolor: var(--_sleetch-color-text);\n\ttransform: translateX(4px);\n}\n","/*\nAI Generated :(\nNeeds more testing\n*/\n\nimport type { page_module } from '@sleetch/core/compiler';\nimport styles from '@sleetch/styles/components/documentation/toc/index.module.css';\nimport clsx from 'clsx';\nimport { type BaseHTMLAttributes, type CSSProperties, useEffect, useRef, useState } from 'react';\n\nexport interface DocumentationTocProps extends BaseHTMLAttributes<HTMLBaseElement> {\n\tpage: page_module['default'];\n}\n\ninterface TocLinkStyle extends CSSProperties {\n\t'--depth'?: number;\n}\n\nexport function DocumentationToc({ className, children, page, ...props }: DocumentationTocProps) {\n\tconst toc = page.toc;\n\n\tconst [activeIds, setActiveIds] = useState<Set<string>>(new Set());\n\tconst [gapY, setGapY] = useState<number | null>(null);\n\n\tconst trackRef = useRef<HTMLDivElement>(null);\n\tconst itemRefs = useRef<Map<string, HTMLLIElement>>(new Map());\n\tconst lastActiveIndexRef = useRef<number | null>(null);\n\n\tuseEffect(() => {\n\t\tif (toc.length === 0) return;\n\n\t\tconst elements = toc.map((item) => document.getElementById(item.id)).filter((el): el is HTMLElement => el !== null);\n\n\t\tif (elements.length === 0) return;\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tsetActiveIds((prev) => {\n\t\t\t\t\tconst next = new Set(prev);\n\t\t\t\t\tfor (const entry of entries) {\n\t\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\t\tnext.add(entry.target.id);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnext.delete(entry.target.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn next;\n\t\t\t\t});\n\t\t\t},\n\t\t\t{\n\t\t\t\trootMargin: '0px 0px -70% 0px',\n\t\t\t\tthreshold: 0,\n\t\t\t},\n\t\t);\n\n\t\tfor (const el of elements) observer.observe(el);\n\n\t\treturn () => observer.disconnect();\n\t}, [toc]);\n\n\tuseEffect(() => {\n\t\tif (activeIds.size > 0) {\n\t\t\tlet maxIndex = -1;\n\t\t\ttoc.forEach((item, i) => {\n\t\t\t\tif (activeIds.has(item.id)) maxIndex = i;\n\t\t\t});\n\t\t\tlastActiveIndexRef.current = maxIndex;\n\t\t\tsetGapY(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst track = trackRef.current;\n\t\tconst lastIndex = lastActiveIndexRef.current;\n\n\t\tif (!track || lastIndex === null || lastIndex >= toc.length - 1) {\n\t\t\tsetGapY(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentLi = itemRefs.current.get(toc[lastIndex].id);\n\t\tconst nextLi = itemRefs.current.get(toc[lastIndex + 1].id);\n\n\t\tif (!currentLi || !nextLi) {\n\t\t\tsetGapY(null);\n\t\t\treturn;\n\t\t}\n\n\t\tconst trackRect = track.getBoundingClientRect();\n\t\tconst currentRect = currentLi.getBoundingClientRect();\n\t\tconst nextRect = nextLi.getBoundingClientRect();\n\n\t\tconst y = (currentRect.bottom - trackRect.top + (nextRect.top - trackRect.top)) / 2;\n\n\t\tsetGapY(y);\n\t}, [activeIds, toc]);\n\n\tif (toc.length === 0) return null;\n\n\treturn (\n\t\t<aside className={clsx(styles.default, className)} {...props}>\n\t\t\t<h3 className={styles.title}>On this page</h3>\n\t\t\t<div className={styles.track} ref={trackRef}>\n\t\t\t\t<span className={styles.line} aria-hidden=\"true\" />\n\t\t\t\t{gapY !== null && <span className={styles.gapDot} style={{ top: gapY }} aria-hidden=\"true\" />}\n\t\t\t\t<ul className={styles.list}>\n\t\t\t\t\t{toc.map((item) => {\n\t\t\t\t\t\tconst focused = activeIds.has(item.id);\n\t\t\t\t\t\tconst linkStyle: TocLinkStyle = { '--depth': item.level };\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\tclassName={styles.item}\n\t\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\t\tif (el) itemRefs.current.set(item.id, el);\n\t\t\t\t\t\t\t\t\telse itemRefs.current.delete(item.id);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref={`#${item.id}`}\n\t\t\t\t\t\t\t\t\ttitle={item.title}\n\t\t\t\t\t\t\t\t\taria-current={focused ? 'location' : undefined}\n\t\t\t\t\t\t\t\t\tclassName={clsx(styles.link, focused && styles.active)}\n\t\t\t\t\t\t\t\t\tstyle={linkStyle}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.title}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</aside>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ require('./assets/toggle.css');const e=require("./clsx-GLXUd3yb.cjs"),t=require("./contexts/documentation.cjs.js");let n=require("react/jsx-runtime");var r={default:`_default_1vbak_1`};function i({className:i,...a}){let{toggle_sidebar:o}=t.useDocumentationContext();return(0,n.jsx)(`button`,{...a,className:e.t(r.default,i),onClick:o,"aria-label":`Toggle sidebar`,type:`button`,children:(0,n.jsxs)(`svg`,{viewBox:`0 0 24 24`,width:`24`,height:`24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,n.jsx)(`line`,{x1:`3`,y1:`12`,x2:`21`,y2:`12`}),(0,n.jsx)(`line`,{x1:`3`,y1:`6`,x2:`21`,y2:`6`}),(0,n.jsx)(`line`,{x1:`3`,y1:`18`,x2:`21`,y2:`18`})]})})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
2
+ //# sourceMappingURL=toggle-D81rCUj_.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-D81rCUj_.cjs","names":[],"sources":["../../styles/src/components/documentation/sidebar/toggle.module.css","../src/components/documentation/sidebar/toggle.tsx"],"sourcesContent":[".default {\n\tdisplay: none;\n\tbackground: none;\n\tborder: none;\n\tcolor: var(--_sleetch-color-text);\n\tcursor: pointer;\n\tpadding: 0.5em;\n\tborder-radius: var(--_sleetch-radius);\n\ttransition: background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.default:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n}\n\n.default:active {\n\ttransform: scale(0.95);\n}\n\n@media (max-width: 768px) {\n\t.default {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n}\n","import styles from '@sleetch/styles/components/documentation/sidebar/toggle.module.css';\nimport clsx from 'clsx';\nimport { useDocumentationContext } from 'packages/react/src/contexts/documentation';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationHeaderProps extends BaseHTMLAttributes<HTMLButtonElement> {}\n\nexport function DocumentationSidebarToggle({ className, ...props }: DocumentationHeaderProps) {\n\tconst { toggle_sidebar } = useDocumentationContext();\n\n\treturn (\n\t\t<button {...props} className={clsx(styles['default'], className)} onClick={toggle_sidebar} aria-label=\"Toggle sidebar\" type=\"button\">\n\t\t\t<svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n\t\t\t\t<line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n\t\t\t\t<line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n\t\t\t\t<line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n\t\t\t</svg>\n\t\t</button>\n\t);\n}\n"],"mappings":"0JCOA,SAAgB,EAA2B,CAAE,YAAW,GAAG,GAAmC,CAC7F,GAAM,CAAE,kBAAmB,EAAA,wBAAwB,EAEnD,OACC,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,GAAI,EAAO,UAAW,EAAA,EAAK,EAAO,QAAY,CAAS,EAAG,QAAS,EAAgB,aAAW,iBAAiB,KAAK,SAC3H,UAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,QAAQ,YAAY,MAAM,KAAK,OAAO,KAAK,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAvI,SAAA,EACC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAM,CAAA,GACtC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,GAAK,CAAA,GACpC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAM,CAAA,CAClC,GACE,CAAA,CAEV"}
@@ -0,0 +1,51 @@
1
+ import { t as e } from "./clsx-CaAiuA5w.js";
2
+ import { useDocumentationContext as t } from "./contexts/documentation.es.js";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import './assets/toggle.css';//#region ../styles/src/components/documentation/sidebar/toggle.module.css
5
+ var i = { default: "_default_1vbak_1" };
6
+ //#endregion
7
+ //#region src/components/documentation/sidebar/toggle.tsx
8
+ function a({ className: a, ...o }) {
9
+ let { toggle_sidebar: s } = t();
10
+ return /* @__PURE__ */ n("button", {
11
+ ...o,
12
+ className: e(i.default, a),
13
+ onClick: s,
14
+ "aria-label": "Toggle sidebar",
15
+ type: "button",
16
+ children: /* @__PURE__ */ r("svg", {
17
+ viewBox: "0 0 24 24",
18
+ width: "24",
19
+ height: "24",
20
+ fill: "none",
21
+ stroke: "currentColor",
22
+ strokeWidth: "2",
23
+ strokeLinecap: "round",
24
+ strokeLinejoin: "round",
25
+ children: [
26
+ /* @__PURE__ */ n("line", {
27
+ x1: "3",
28
+ y1: "12",
29
+ x2: "21",
30
+ y2: "12"
31
+ }),
32
+ /* @__PURE__ */ n("line", {
33
+ x1: "3",
34
+ y1: "6",
35
+ x2: "21",
36
+ y2: "6"
37
+ }),
38
+ /* @__PURE__ */ n("line", {
39
+ x1: "3",
40
+ y1: "18",
41
+ x2: "21",
42
+ y2: "18"
43
+ })
44
+ ]
45
+ })
46
+ });
47
+ }
48
+ //#endregion
49
+ export { a as t };
50
+
51
+ //# sourceMappingURL=toggle-DoePXMlE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-DoePXMlE.js","names":[],"sources":["../../styles/src/components/documentation/sidebar/toggle.module.css","../src/components/documentation/sidebar/toggle.tsx"],"sourcesContent":[".default {\n\tdisplay: none;\n\tbackground: none;\n\tborder: none;\n\tcolor: var(--_sleetch-color-text);\n\tcursor: pointer;\n\tpadding: 0.5em;\n\tborder-radius: var(--_sleetch-radius);\n\ttransition: background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.default:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n}\n\n.default:active {\n\ttransform: scale(0.95);\n}\n\n@media (max-width: 768px) {\n\t.default {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n}\n","import styles from '@sleetch/styles/components/documentation/sidebar/toggle.module.css';\nimport clsx from 'clsx';\nimport { useDocumentationContext } from 'packages/react/src/contexts/documentation';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationHeaderProps extends BaseHTMLAttributes<HTMLButtonElement> {}\n\nexport function DocumentationSidebarToggle({ className, ...props }: DocumentationHeaderProps) {\n\tconst { toggle_sidebar } = useDocumentationContext();\n\n\treturn (\n\t\t<button {...props} className={clsx(styles['default'], className)} onClick={toggle_sidebar} aria-label=\"Toggle sidebar\" type=\"button\">\n\t\t\t<svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n\t\t\t\t<line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n\t\t\t\t<line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n\t\t\t\t<line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n\t\t\t</svg>\n\t\t</button>\n\t);\n}\n"],"mappings":";;;;;;;ACOA,SAAgB,EAA2B,EAAE,cAAW,GAAG,KAAmC;CAC7F,IAAM,EAAE,sBAAmB,EAAwB;CAEnD,OACC,kBAAC,UAAD;EAAQ,GAAI;EAAO,WAAW,EAAK,EAAO,SAAY,CAAS;EAAG,SAAS;EAAgB,cAAW;EAAiB,MAAK;EAC3H,UAAA,kBAAC,OAAD;GAAK,SAAQ;GAAY,OAAM;GAAK,QAAO;GAAK,MAAK;GAAO,QAAO;GAAe,aAAY;GAAI,eAAc;GAAQ,gBAAe;GAAvI,UAAA;IACC,kBAAC,QAAD;KAAM,IAAG;KAAI,IAAG;KAAK,IAAG;KAAK,IAAG;IAAM,CAAA;IACtC,kBAAC,QAAD;KAAM,IAAG;KAAI,IAAG;KAAI,IAAG;KAAK,IAAG;IAAK,CAAA;IACpC,kBAAC,QAAD;KAAM,IAAG;KAAI,IAAG;KAAK,IAAG;KAAK,IAAG;IAAM,CAAA;GAClC;;CACE,CAAA;AAEV"}