@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
package/package.json CHANGED
@@ -1,50 +1,51 @@
1
1
  {
2
- "name": "@sleetch/react",
3
- "version": "1.0.8",
4
- "type": "module",
5
- "publishConfig": {
6
- "access": "public"
7
- },
8
- "scripts": {
9
- "dev": "vite build --watch",
10
- "build": "vite build"
11
- },
12
- "main": "./dist/index.es.js",
13
- "types": "./dist/index.d.ts",
14
- "exports": {
15
- ".": {
16
- "import": "./dist/index.es.js",
17
- "require": "./dist/index.cjs.js",
18
- "types": "./dist/index.d.ts"
19
- }
20
- },
21
- "files": [
22
- "dist"
23
- ],
24
- "sideEffects": [
25
- "**/*.css"
26
- ],
27
- "peerDependencies": {
28
- "react": "^18.0.0 || ^19.0.0",
29
- "react-dom": "^18.0.0 || ^19.0.0"
30
- },
31
- "devDependencies": {
32
- "@sleetch/core": "1.0.8",
33
- "@sleetch/styles": "1.0.8",
34
- "@sleetch/vite": "1.0.8",
35
- "@types/mdx": "^2.0.14",
36
- "@types/react": "^19",
37
- "@types/react-dom": "^19",
38
- "@vitejs/plugin-react": "^6.0.3",
39
- "react": "^19.0.0",
40
- "react-dom": "^19.0.0",
41
- "vite": "^8.1.3",
42
- "vite-plugin-lib-inject-css": "^2.2.2"
43
- },
44
- "dependencies": {
45
- "@mdx-js/mdx": "^3.1.1",
46
- "clsx": "^2.1.1",
47
- "glob": "^13.0.6",
48
- "vite-plugin-dts": "^5.0.3"
49
- }
2
+ "name": "@sleetch/react",
3
+ "version": "1.0.10",
4
+ "type": "module",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "scripts": {
9
+ "dev": "vite build --watch",
10
+ "build": "vite build"
11
+ },
12
+ "main": "./dist/index.es.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "import": "./dist/index.es.js",
17
+ "require": "./dist/index.cjs.js",
18
+ "types": "./dist/index.d.ts"
19
+ }
20
+ },
21
+ "files": [
22
+ "dist"
23
+ ],
24
+ "sideEffects": [
25
+ "**/*.css"
26
+ ],
27
+ "peerDependencies": {
28
+ "react": "^18.0.0 || ^19.0.0",
29
+ "react-dom": "^18.0.0 || ^19.0.0"
30
+ },
31
+ "devDependencies": {
32
+ "@sleetch/core": "1.0.10",
33
+ "@sleetch/styles": "1.0.10",
34
+ "@sleetch/vite": "1.0.10",
35
+ "@types/mdx": "^2.0.14",
36
+ "@types/react": "^19",
37
+ "@types/react-dom": "^19",
38
+ "@vitejs/plugin-react": "^6.0.3",
39
+ "react": "^19.0.0",
40
+ "react-dom": "^19.0.0",
41
+ "vite": "^8.1.3",
42
+ "vite-plugin-lib-inject-css": "^2.2.2"
43
+ },
44
+ "dependencies": {
45
+ "@sleetch/client": "1.0.10",
46
+ "@mdx-js/mdx": "^3.1.1",
47
+ "clsx": "^2.1.1",
48
+ "glob": "^13.0.6",
49
+ "vite-plugin-dts": "^5.0.3"
50
+ }
50
51
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-B6mWWZyo.js","names":[],"sources":["../../styles/src/components/button.module.css","../src/components/button.tsx"],"sourcesContent":["/* Shared base */\n.default,\n.primary,\n.secondary,\n.ghost,\n.outline,\n.destructive {\n\tborder-radius: var(--_sleetch-radius);\n\tpadding: 3px 10px;\n\tfont-family: var(--_sleetch-font-base);\n\tcursor: pointer;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: 1px solid transparent;\n\ttransition:\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tfilter var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\topacity var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n/* Default — neutral filled, matches card surface */\n.default {\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: var(--_sleetch-color-background);\n\tborder-color: var(--_sleetch-color-border);\n}\n\n.default:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n\tborder-color: var(--_sleetch-color-text-underline);\n}\n\n.outline {\n\tcolor: var(--_sleetch-color-text);\n\tborder-color: var(--_sleetch-color-border);\n}\n\n.outline:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n\tborder-color: var(--_sleetch-color-text-underline);\n}\n\n.primary {\n\tcolor: var(--_sleetch-color-primary-foreground);\n\tbackground-color: var(--_sleetch-color-text-primary);\n\tborder-color: transparent;\n}\n\n.primary:hover {\n\tfilter: brightness(1.1);\n}\n\n.secondary {\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: var(--_sleetch-color-secondary);\n\tborder-color: var(--_sleetch-color-border);\n}\n\n.secondary:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n}\n\n/* Ghost — no border, no fill until interaction */\n.ghost {\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: transparent;\n\tborder-color: transparent;\n}\n\n.ghost:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n}\n\n/* Destructive — dangerous / irreversible actions */\n.destructive {\n\tcolor: var(--_sleetch-color-background);\n\tbackground-color: var(--_sleetch-syntax-deletion);\n\tborder-color: transparent;\n}\n\n.destructive:hover {\n\tfilter: brightness(1.1);\n}\n\n/* Shared interaction states */\n.default:active,\n.primary:active,\n.secondary:active,\n.ghost:active,\n.outline:active,\n.destructive:active {\n\ttransform: scale(0.98);\n}\n\n.default:disabled,\n.primary:disabled,\n.secondary:disabled,\n.ghost:disabled,\n.outline:disabled,\n.destructive:disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n\ttransform: none;\n\tfilter: none;\n}\n\n@media (max-width: 768px) {\n\n\t.default,\n\t.primary,\n\t.secondary,\n\t.ghost,\n\t.outline,\n\t.destructive {\n\t\tpadding: 6px 12px;\n\t\tfont-size: 14px;\n\t}\n}\n\n:global(.sleetch-markdown) .default,\n:global(.sleetch-markdown) .primary,\n:global(.sleetch-markdown) .secondary,\n:global(.sleetch-markdown) .ghost,\n:global(.sleetch-markdown) .outline,\n:global(.sleetch-markdown) .destructive {\n\tmargin: 0 0 1em;\n}\n","import styles from '@sleetch/styles/components/button.module.css';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'default' | 'secondary' | 'primary' | 'ghost' | 'destructive' | 'outline';\n}\n\nexport function Button({ variant = 'default', className, children, ...props }: ButtonProps) {\n return (\n <button className={clsx(styles[variant], className)} {...props}>\n {children}\n </button>\n );\n}\n"],"mappings":";;;;;;;;;;;;ACQA,SAAgB,EAAO,EAAE,aAAU,WAAW,cAAW,aAAU,GAAG,KAAsB;CACxF,OACI,kBAAC,UAAD;EAAQ,WAAW,EAAK,EAAO,IAAU,CAAS;EAAG,GAAI;EACpD;CACG,CAAA;AAEhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-DLQL3vVY.cjs","names":[],"sources":["../../styles/src/components/button.module.css","../src/components/button.tsx"],"sourcesContent":["/* Shared base */\n.default,\n.primary,\n.secondary,\n.ghost,\n.outline,\n.destructive {\n\tborder-radius: var(--_sleetch-radius);\n\tpadding: 3px 10px;\n\tfont-family: var(--_sleetch-font-base);\n\tcursor: pointer;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: 1px solid transparent;\n\ttransition:\n\t\tbackground-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tborder-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\tfilter var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n\t\topacity var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n/* Default — neutral filled, matches card surface */\n.default {\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: var(--_sleetch-color-background);\n\tborder-color: var(--_sleetch-color-border);\n}\n\n.default:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n\tborder-color: var(--_sleetch-color-text-underline);\n}\n\n.outline {\n\tcolor: var(--_sleetch-color-text);\n\tborder-color: var(--_sleetch-color-border);\n}\n\n.outline:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n\tborder-color: var(--_sleetch-color-text-underline);\n}\n\n.primary {\n\tcolor: var(--_sleetch-color-primary-foreground);\n\tbackground-color: var(--_sleetch-color-text-primary);\n\tborder-color: transparent;\n}\n\n.primary:hover {\n\tfilter: brightness(1.1);\n}\n\n.secondary {\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: var(--_sleetch-color-secondary);\n\tborder-color: var(--_sleetch-color-border);\n}\n\n.secondary:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n}\n\n/* Ghost — no border, no fill until interaction */\n.ghost {\n\tcolor: var(--_sleetch-color-text);\n\tbackground-color: transparent;\n\tborder-color: transparent;\n}\n\n.ghost:hover {\n\tbackground-color: var(--_sleetch-color-muted);\n}\n\n/* Destructive — dangerous / irreversible actions */\n.destructive {\n\tcolor: var(--_sleetch-color-background);\n\tbackground-color: var(--_sleetch-syntax-deletion);\n\tborder-color: transparent;\n}\n\n.destructive:hover {\n\tfilter: brightness(1.1);\n}\n\n/* Shared interaction states */\n.default:active,\n.primary:active,\n.secondary:active,\n.ghost:active,\n.outline:active,\n.destructive:active {\n\ttransform: scale(0.98);\n}\n\n.default:disabled,\n.primary:disabled,\n.secondary:disabled,\n.ghost:disabled,\n.outline:disabled,\n.destructive:disabled {\n\topacity: 0.5;\n\tcursor: not-allowed;\n\ttransform: none;\n\tfilter: none;\n}\n\n@media (max-width: 768px) {\n\n\t.default,\n\t.primary,\n\t.secondary,\n\t.ghost,\n\t.outline,\n\t.destructive {\n\t\tpadding: 6px 12px;\n\t\tfont-size: 14px;\n\t}\n}\n\n:global(.sleetch-markdown) .default,\n:global(.sleetch-markdown) .primary,\n:global(.sleetch-markdown) .secondary,\n:global(.sleetch-markdown) .ghost,\n:global(.sleetch-markdown) .outline,\n:global(.sleetch-markdown) .destructive {\n\tmargin: 0 0 1em;\n}\n","import styles from '@sleetch/styles/components/button.module.css';\nimport clsx from 'clsx';\nimport type { ButtonHTMLAttributes } from 'react';\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'default' | 'secondary' | 'primary' | 'ghost' | 'destructive' | 'outline';\n}\n\nexport function Button({ variant = 'default', className, children, ...props }: ButtonProps) {\n return (\n <button className={clsx(styles[variant], className)} {...props}>\n {children}\n </button>\n );\n}\n"],"mappings":"4PCQA,SAAgB,EAAO,CAAE,UAAU,UAAW,YAAW,WAAU,GAAG,GAAsB,CACxF,OACI,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,UAAW,EAAA,EAAK,EAAO,GAAU,CAAS,EAAG,GAAI,EACpD,UACG,CAAA,CAEhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-8dXeWXcA.cjs","names":[],"sources":["../../styles/src/components/documentation/content.module.css","../src/components/documentation/content.tsx"],"sourcesContent":[".default {\n display: flex;\n flex: 1;\n min-height: calc(100vh - var(--_sleetch-header-height));\n}\n\n@media (max-width: 768px) {\n .default {\n flex-direction: column;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/content.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationContentProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationContent({ className, children, ...props }: DocumentationContentProps) {\n return (\n <div className={clsx(styles.default, className)} {...props}>\n {children}\n </div>\n );\n}\n"],"mappings":"6GCMA,SAAgB,EAAqB,CAAE,YAAW,WAAU,GAAG,GAAoC,CAC/F,OACI,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAA,EAAK,EAAO,QAAS,CAAS,EAAG,GAAI,EAChD,UACA,CAAA,CAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-BJ6O_X1Y.cjs","names":[],"sources":["../../styles/src/components/documentation/toc/content.module.css","../src/components/documentation/toc/content.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n width: 100%;\n flex: 1;\n padding: 0 2em;\n max-width: 1200px;\n margin: 0 auto;\n}\n\n@media (max-width: 768px) {\n .default {\n padding: 0 1em;\n }\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .default {\n padding: 0 1.5em;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/toc/content.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationTocContentProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationTocContent({ className, children, ...props }: DocumentationTocContentProps) {\n return (\n <div className={clsx(styles.default, className)} {...props}>\n {children}\n </div>\n );\n}\n"],"mappings":"6GCMA,SAAgB,EAAwB,CAAE,YAAW,WAAU,GAAG,GAAuC,CACrG,OACI,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAA,EAAK,EAAO,QAAS,CAAS,EAAG,GAAI,EAChD,UACA,CAAA,CAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-CP58YEGJ.js","names":[],"sources":["../../styles/src/components/documentation/sidebar/content.module.css","../src/components/documentation/sidebar/content.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n width: 100%;\n flex: 1;\n padding: 0 2em;\n max-width: 1200px;\n margin: 0 auto;\n}\n\n@media (max-width: 768px) {\n .default {\n padding: 0 1em;\n }\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .default {\n padding: 0 1.5em;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/sidebar/content.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationSidebarContentProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationSidebarContent({ className, children, ...props }: DocumentationSidebarContentProps) {\n return (\n <div className={clsx(styles.default, className)} {...props}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;ACMA,SAAgB,EAA4B,EAAE,cAAW,aAAU,GAAG,KAA2C;CAC7G,OACI,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,SAAS,CAAS;EAAG,GAAI;EAChD;CACA,CAAA;AAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-CjmD3T8J.cjs","names":[],"sources":["../../styles/src/components/documentation/sidebar/content.module.css","../src/components/documentation/sidebar/content.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n width: 100%;\n flex: 1;\n padding: 0 2em;\n max-width: 1200px;\n margin: 0 auto;\n}\n\n@media (max-width: 768px) {\n .default {\n padding: 0 1em;\n }\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .default {\n padding: 0 1.5em;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/sidebar/content.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationSidebarContentProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationSidebarContent({ className, children, ...props }: DocumentationSidebarContentProps) {\n return (\n <div className={clsx(styles.default, className)} {...props}>\n {children}\n </div>\n );\n}\n"],"mappings":"6GCMA,SAAgB,EAA4B,CAAE,YAAW,WAAU,GAAG,GAA2C,CAC7G,OACI,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAA,EAAK,EAAO,QAAS,CAAS,EAAG,GAAI,EAChD,UACA,CAAA,CAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-DmSVqH2f.js","names":[],"sources":["../../styles/src/components/documentation/content.module.css","../src/components/documentation/content.tsx"],"sourcesContent":[".default {\n display: flex;\n flex: 1;\n min-height: calc(100vh - var(--_sleetch-header-height));\n}\n\n@media (max-width: 768px) {\n .default {\n flex-direction: column;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/content.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationContentProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationContent({ className, children, ...props }: DocumentationContentProps) {\n return (\n <div className={clsx(styles.default, className)} {...props}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;ACMA,SAAgB,EAAqB,EAAE,cAAW,aAAU,GAAG,KAAoC;CAC/F,OACI,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,SAAS,CAAS;EAAG,GAAI;EAChD;CACA,CAAA;AAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-eQM-qDRO.js","names":[],"sources":["../../styles/src/components/documentation/toc/content.module.css","../src/components/documentation/toc/content.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n width: 100%;\n flex: 1;\n padding: 0 2em;\n max-width: 1200px;\n margin: 0 auto;\n}\n\n@media (max-width: 768px) {\n .default {\n padding: 0 1em;\n }\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .default {\n padding: 0 1.5em;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/toc/content.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationTocContentProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationTocContent({ className, children, ...props }: DocumentationTocContentProps) {\n return (\n <div className={clsx(styles.default, className)} {...props}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;ACMA,SAAgB,EAAwB,EAAE,cAAW,aAAU,GAAG,KAAuC;CACrG,OACI,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,SAAS,CAAS;EAAG,GAAI;EAChD;CACA,CAAA;AAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-system-BNu9B10z.cjs","names":[],"sources":["../../styles/src/components/file-system.module.css","../src/components/file-system.tsx"],"sourcesContent":[".file-system {\n display: flex;\n flex-direction: column;\n gap: 0.15em;\n color: var(--_sleetch-color-text);\n font-family: var(--_sleetch-font-base);\n font-size: var(--_sleetch-font-size-small);\n line-height: var(--_sleetch-line-height);\n padding: 0.85em;\n background: var(--_sleetch-color-card);\n border-radius: var(--_sleetch-radius);\n border: var(--_sleetch-hr-height) solid var(--_sleetch-color-border);\n margin: 0 0 1em;\n}\n\n.folder {\n display: flex;\n flex-direction: column;\n}\n\n.folder.hidden {\n opacity: 0.5;\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: 0.55em;\n padding: 0.4em 0.6em;\n border-radius: calc(var(--_sleetch-radius) - 2px);\n transition:\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.folderRow {\n color: var(--_sleetch-color-muted-foreground);\n}\n\n.icon {\n flex-shrink: 0;\n color: currentColor;\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.comment {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--_sleetch-color-muted-foreground);\n font-style: italic;\n}\n\n.children {\n display: flex;\n flex-direction: column;\n gap: 0.15em;\n margin-left: 0.75em;\n padding-left: 0.65em;\n border-left: var(--_sleetch-underline-height) solid var(--_sleetch-color-border);\n}\n\n.file {\n color: var(--_sleetch-color-text);\n cursor: default;\n}\n\n.file:hover {\n background: var(--_sleetch-color-muted);\n}\n\n.file.selected {\n color: var(--_sleetch-color-text-primary);\n background: color-mix(in srgb, var(--_sleetch-color-text-primary) 12%, transparent);\n}\n\n.file.selected:hover {\n background: color-mix(in srgb, var(--_sleetch-color-text-primary) 18%, transparent);\n}\n","import styles from '@sleetch/styles/components/file-system.module.css';\nimport type { ReactNode, SVGProps } from 'react';\n\ninterface IconProps extends SVGProps<SVGSVGElement> {\n className?: string;\n}\n\nfunction FolderIcon({ className, ...props }: IconProps) {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z\" />\n </svg>\n );\n}\n\nfunction FileIcon({ className, ...props }: IconProps) {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\" />\n <path d=\"M14 2v6h6\" />\n </svg>\n );\n}\n\nexport interface FilesProps {\n children?: ReactNode;\n className?: string;\n}\n\nexport function FileSystem({ children, className = '' }: FilesProps) {\n return (\n <div className=\"no-sleetch-markdown\">\n <div className={[styles['file-system'], className].filter(Boolean).join(' ')}>{children}</div>\n </div>\n );\n}\n\nexport interface FolderProps {\n name: string;\n children?: ReactNode;\n hidden?: boolean;\n className?: string;\n}\n\nexport function Folder({ name, children, hidden = false, className = '' }: FolderProps) {\n return (\n <div className={[styles.folder, hidden && styles.hidden, className].filter(Boolean).join(' ')}>\n <div className={[styles.row, styles.folderRow].join(' ')}>\n <FolderIcon className={styles.icon} />\n <span className={styles.label}>{name}</span>\n </div>\n {children && <div className={styles.children}>{children}</div>}\n </div>\n );\n}\n\nexport interface FileProps {\n name: string;\n comment?: string;\n selected?: boolean;\n className?: string;\n}\n\nexport function File({ name, comment, selected = false, className = '' }: FileProps) {\n return (\n <div className={[styles.row, styles.file, selected && styles.selected, className].filter(Boolean).join(' ')}>\n <FileIcon className={styles.icon} />\n <span className={styles.label}>{name}</span>\n <span className={styles.comment}>{comment}</span>\n </div>\n );\n}\n"],"mappings":"mVCOA,SAAS,EAAW,CAAE,YAAW,GAAG,GAAoB,CACpD,OACI,EAAA,EAAA,IAAA,CAAC,MAAD,CACe,YACX,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OACL,OAAO,eACP,YAAY,OACZ,cAAc,QACd,eAAe,QACf,cAAY,OACZ,GAAI,EAEJ,UAAA,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,6EAA+E,CAAA,CACtF,CAAA,CAEb,CAEA,SAAS,EAAS,CAAE,YAAW,GAAG,GAAoB,CAClD,OACI,EAAA,EAAA,KAAA,CAAC,MAAD,CACe,YACX,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OACL,OAAO,eACP,YAAY,OACZ,cAAc,QACd,eAAe,QACf,cAAY,OACZ,GAAI,EAXR,SAAA,EAaI,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,4DAA8D,CAAA,GACtE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,EAAE,WAAa,CAAA,CACpB,GAEb,CAOA,SAAgB,EAAW,CAAE,WAAU,YAAY,IAAkB,CACjE,OACI,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,sBACX,UAAA,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,CAAC,EAAO,eAAgB,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,EAAI,UAAc,CAAA,CAC5F,CAAA,CAEb,CASA,SAAgB,EAAO,CAAE,OAAM,WAAU,SAAS,GAAO,YAAY,IAAmB,CACpF,OACI,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,CAAC,EAAO,OAAQ,GAAU,EAAO,OAAQ,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,EAA5F,SAAA,EACI,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,CAAC,EAAO,IAAK,EAAO,SAAS,CAAC,CAAC,KAAK,GAAG,EAAvD,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,EAAD,CAAY,UAAW,EAAO,IAAO,CAAA,GACrC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,MAAQ,SAAA,CAAW,CAAA,CAC1C,CACJ,CAAA,EAAA,IAAY,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAW,EAAO,SAAW,UAAc,CAAA,CAC5D,GAEb,CASA,SAAgB,EAAK,CAAE,OAAM,UAAS,WAAW,GAAO,YAAY,IAAiB,CACjF,OACI,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,CAAC,EAAO,IAAK,EAAO,KAAM,GAAY,EAAO,SAAU,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,EAA1G,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,EAAD,CAAU,UAAW,EAAO,IAAO,CAAA,GACnC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,MAAQ,SAAA,CAAW,CAAA,GAC3C,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,QAAU,SAAA,CAAc,CAAA,CAC/C,GAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-system-SWuikr8O.js","names":[],"sources":["../../styles/src/components/file-system.module.css","../src/components/file-system.tsx"],"sourcesContent":[".file-system {\n display: flex;\n flex-direction: column;\n gap: 0.15em;\n color: var(--_sleetch-color-text);\n font-family: var(--_sleetch-font-base);\n font-size: var(--_sleetch-font-size-small);\n line-height: var(--_sleetch-line-height);\n padding: 0.85em;\n background: var(--_sleetch-color-card);\n border-radius: var(--_sleetch-radius);\n border: var(--_sleetch-hr-height) solid var(--_sleetch-color-border);\n margin: 0 0 1em;\n}\n\n.folder {\n display: flex;\n flex-direction: column;\n}\n\n.folder.hidden {\n opacity: 0.5;\n}\n\n.row {\n display: flex;\n align-items: center;\n gap: 0.55em;\n padding: 0.4em 0.6em;\n border-radius: calc(var(--_sleetch-radius) - 2px);\n transition:\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.folderRow {\n color: var(--_sleetch-color-muted-foreground);\n}\n\n.icon {\n flex-shrink: 0;\n color: currentColor;\n}\n\n.label {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.comment {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--_sleetch-color-muted-foreground);\n font-style: italic;\n}\n\n.children {\n display: flex;\n flex-direction: column;\n gap: 0.15em;\n margin-left: 0.75em;\n padding-left: 0.65em;\n border-left: var(--_sleetch-underline-height) solid var(--_sleetch-color-border);\n}\n\n.file {\n color: var(--_sleetch-color-text);\n cursor: default;\n}\n\n.file:hover {\n background: var(--_sleetch-color-muted);\n}\n\n.file.selected {\n color: var(--_sleetch-color-text-primary);\n background: color-mix(in srgb, var(--_sleetch-color-text-primary) 12%, transparent);\n}\n\n.file.selected:hover {\n background: color-mix(in srgb, var(--_sleetch-color-text-primary) 18%, transparent);\n}\n","import styles from '@sleetch/styles/components/file-system.module.css';\nimport type { ReactNode, SVGProps } from 'react';\n\ninterface IconProps extends SVGProps<SVGSVGElement> {\n className?: string;\n}\n\nfunction FolderIcon({ className, ...props }: IconProps) {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z\" />\n </svg>\n );\n}\n\nfunction FileIcon({ className, ...props }: IconProps) {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...props}\n >\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z\" />\n <path d=\"M14 2v6h6\" />\n </svg>\n );\n}\n\nexport interface FilesProps {\n children?: ReactNode;\n className?: string;\n}\n\nexport function FileSystem({ children, className = '' }: FilesProps) {\n return (\n <div className=\"no-sleetch-markdown\">\n <div className={[styles['file-system'], className].filter(Boolean).join(' ')}>{children}</div>\n </div>\n );\n}\n\nexport interface FolderProps {\n name: string;\n children?: ReactNode;\n hidden?: boolean;\n className?: string;\n}\n\nexport function Folder({ name, children, hidden = false, className = '' }: FolderProps) {\n return (\n <div className={[styles.folder, hidden && styles.hidden, className].filter(Boolean).join(' ')}>\n <div className={[styles.row, styles.folderRow].join(' ')}>\n <FolderIcon className={styles.icon} />\n <span className={styles.label}>{name}</span>\n </div>\n {children && <div className={styles.children}>{children}</div>}\n </div>\n );\n}\n\nexport interface FileProps {\n name: string;\n comment?: string;\n selected?: boolean;\n className?: string;\n}\n\nexport function File({ name, comment, selected = false, className = '' }: FileProps) {\n return (\n <div className={[styles.row, styles.file, selected && styles.selected, className].filter(Boolean).join(' ')}>\n <FileIcon className={styles.icon} />\n <span className={styles.label}>{name}</span>\n <span className={styles.comment}>{comment}</span>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;ACOA,SAAS,EAAW,EAAE,cAAW,GAAG,KAAoB;CACpD,OACI,kBAAC,OAAD;EACe;EACX,OAAM;EACN,QAAO;EACP,SAAQ;EACR,MAAK;EACL,QAAO;EACP,aAAY;EACZ,eAAc;EACd,gBAAe;EACf,eAAY;EACZ,GAAI;EAEJ,UAAA,kBAAC,QAAD,EAAM,GAAE,8EAA+E,CAAA;CACtF,CAAA;AAEb;AAEA,SAAS,EAAS,EAAE,cAAW,GAAG,KAAoB;CAClD,OACI,kBAAC,OAAD;EACe;EACX,OAAM;EACN,QAAO;EACP,SAAQ;EACR,MAAK;EACL,QAAO;EACP,aAAY;EACZ,eAAc;EACd,gBAAe;EACf,eAAY;EACZ,GAAI;EAXR,UAAA,CAaI,kBAAC,QAAD,EAAM,GAAE,6DAA8D,CAAA,GACtE,kBAAC,QAAD,EAAM,GAAE,YAAa,CAAA,CACpB;;AAEb;AAOA,SAAgB,EAAW,EAAE,aAAU,eAAY,MAAkB;CACjE,OACI,kBAAC,OAAD;EAAK,WAAU;EACX,UAAA,kBAAC,OAAD;GAAK,WAAW,CAAC,EAAO,gBAAgB,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;GAAI;EAAc,CAAA;CAC5F,CAAA;AAEb;AASA,SAAgB,EAAO,EAAE,SAAM,aAAU,YAAS,IAAO,eAAY,MAAmB;CACpF,OACI,kBAAC,OAAD;EAAK,WAAW;GAAC,EAAO;GAAQ,KAAU,EAAO;GAAQ;EAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EAA5F,UAAA,CACI,kBAAC,OAAD;GAAK,WAAW,CAAC,EAAO,KAAK,EAAO,SAAS,CAAC,CAAC,KAAK,GAAG;GAAvD,UAAA,CACI,kBAAC,GAAD,EAAY,WAAW,EAAO,KAAO,CAAA,GACrC,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAQ,UAAA;GAAW,CAAA,CAC1C;EACJ,CAAA,GAAA,KAAY,kBAAC,OAAD;GAAK,WAAW,EAAO;GAAW;EAAc,CAAA,CAC5D;;AAEb;AASA,SAAgB,EAAK,EAAE,SAAM,YAAS,cAAW,IAAO,eAAY,MAAiB;CACjF,OACI,kBAAC,OAAD;EAAK,WAAW;GAAC,EAAO;GAAK,EAAO;GAAM,KAAY,EAAO;GAAU;EAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EAA1G,UAAA;GACI,kBAAC,GAAD,EAAU,WAAW,EAAO,KAAO,CAAA;GACnC,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAQ,UAAA;GAAW,CAAA;GAC3C,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAU,UAAA;GAAc,CAAA;EAC/C;;AAEb"}
@@ -1,57 +0,0 @@
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/header.css';//#region ../styles/src/components/documentation/header.module.css
5
- var i = {
6
- default: "_default_ezzto_1",
7
- "menu-toggle": "_menu-toggle_ezzto_16"
8
- };
9
- //#endregion
10
- //#region src/components/documentation/header.tsx
11
- function a({ className: a, children: o, ...s }) {
12
- let { toggle_sidebar: c } = t();
13
- return /* @__PURE__ */ r("div", {
14
- className: e(i.default, a),
15
- ...s,
16
- children: [/* @__PURE__ */ n("button", {
17
- className: i["menu-toggle"],
18
- onClick: c,
19
- "aria-label": "Toggle sidebar",
20
- type: "button",
21
- children: /* @__PURE__ */ r("svg", {
22
- viewBox: "0 0 24 24",
23
- width: "24",
24
- height: "24",
25
- fill: "none",
26
- stroke: "currentColor",
27
- strokeWidth: "2",
28
- strokeLinecap: "round",
29
- strokeLinejoin: "round",
30
- children: [
31
- /* @__PURE__ */ n("line", {
32
- x1: "3",
33
- y1: "12",
34
- x2: "21",
35
- y2: "12"
36
- }),
37
- /* @__PURE__ */ n("line", {
38
- x1: "3",
39
- y1: "6",
40
- x2: "21",
41
- y2: "6"
42
- }),
43
- /* @__PURE__ */ n("line", {
44
- x1: "3",
45
- y1: "18",
46
- x2: "21",
47
- y2: "18"
48
- })
49
- ]
50
- })
51
- }), o]
52
- });
53
- }
54
- //#endregion
55
- export { a as t };
56
-
57
- //# sourceMappingURL=header-1bJsyr4I.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-1bJsyr4I.js","names":[],"sources":["../../styles/src/components/documentation/header.module.css","../src/components/documentation/header.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n height: var(--_sleetch-header-height);\n background-color: color-mix(in srgb, var(--_sleetch-color-card) 30%, transparent);\n backdrop-filter: blur(15px);\n border-bottom: 1px solid var(--_sleetch-color-border);\n position: sticky;\n top: 0;\n display: flex;\n align-items: center;\n padding: 0 2em;\n gap: 1em;\n z-index: 100;\n}\n\n.menu-toggle {\n display: none;\n background: none;\n border: none;\n color: var(--_sleetch-color-text);\n cursor: pointer;\n padding: 0.5em;\n border-radius: var(--_sleetch-radius);\n transition: background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.menu-toggle:hover {\n background-color: var(--_sleetch-color-muted);\n}\n\n.menu-toggle:active {\n transform: scale(0.95);\n}\n\n@media (max-width: 768px) {\n .default {\n padding: 0 1em;\n }\n\n .menu-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/header.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\nimport { useDocumentationContext } from '../../contexts/documentation';\n\nexport interface DocumentationHeaderProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationHeader({ className, children, ...props }: DocumentationHeaderProps) {\n const { toggle_sidebar } = useDocumentationContext();\n return (\n <div className={clsx(styles.default, className)} {...props}>\n <button className={styles['menu-toggle']} onClick={toggle_sidebar} aria-label=\"Toggle sidebar\" type=\"button\">\n <svg\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n </svg>\n </button>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;ACOA,SAAgB,EAAoB,EAAE,cAAW,aAAU,GAAG,KAAmC;CAC7F,IAAM,EAAE,sBAAmB,EAAwB;CACnD,OACI,kBAAC,OAAD;EAAK,WAAW,EAAK,EAAO,SAAS,CAAS;EAAG,GAAI;EAArD,UAAA,CACI,kBAAC,UAAD;GAAQ,WAAW,EAAO;GAAgB,SAAS;GAAgB,cAAW;GAAiB,MAAK;GAChG,UAAA,kBAAC,OAAD;IACI,SAAQ;IACR,OAAM;IACN,QAAO;IACP,MAAK;IACL,QAAO;IACP,aAAY;IACZ,eAAc;IACd,gBAAe;IARnB,UAAA;KAUI,kBAAC,QAAD;MAAM,IAAG;MAAI,IAAG;MAAK,IAAG;MAAK,IAAG;KAAM,CAAA;KACtC,kBAAC,QAAD;MAAM,IAAG;MAAI,IAAG;MAAI,IAAG;MAAK,IAAG;KAAK,CAAA;KACpC,kBAAC,QAAD;MAAM,IAAG;MAAI,IAAG;MAAK,IAAG;MAAK,IAAG;KAAM,CAAA;IACrC;;EACD,CAAA,GACP,CACA;;AAEb"}
@@ -1,2 +0,0 @@
1
- require('./assets/header.css');const e=require("./clsx-GLXUd3yb.cjs"),t=require("./contexts/documentation.cjs.js");let n=require("react/jsx-runtime");var r={default:`_default_ezzto_1`,"menu-toggle":`_menu-toggle_ezzto_16`};function i({className:i,children:a,...o}){let{toggle_sidebar:s}=t.useDocumentationContext();return(0,n.jsxs)(`div`,{className:e.t(r.default,i),...o,children:[(0,n.jsx)(`button`,{className:r[`menu-toggle`],onClick:s,"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`})]})}),a]})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}});
2
- //# sourceMappingURL=header-3dQ5Gq3p.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-3dQ5Gq3p.cjs","names":[],"sources":["../../styles/src/components/documentation/header.module.css","../src/components/documentation/header.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n height: var(--_sleetch-header-height);\n background-color: color-mix(in srgb, var(--_sleetch-color-card) 30%, transparent);\n backdrop-filter: blur(15px);\n border-bottom: 1px solid var(--_sleetch-color-border);\n position: sticky;\n top: 0;\n display: flex;\n align-items: center;\n padding: 0 2em;\n gap: 1em;\n z-index: 100;\n}\n\n.menu-toggle {\n display: none;\n background: none;\n border: none;\n color: var(--_sleetch-color-text);\n cursor: pointer;\n padding: 0.5em;\n border-radius: var(--_sleetch-radius);\n transition: background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.menu-toggle:hover {\n background-color: var(--_sleetch-color-muted);\n}\n\n.menu-toggle:active {\n transform: scale(0.95);\n}\n\n@media (max-width: 768px) {\n .default {\n padding: 0 1em;\n }\n\n .menu-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n","import styles from '@sleetch/styles/components/documentation/header.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\nimport { useDocumentationContext } from '../../contexts/documentation';\n\nexport interface DocumentationHeaderProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationHeader({ className, children, ...props }: DocumentationHeaderProps) {\n const { toggle_sidebar } = useDocumentationContext();\n return (\n <div className={clsx(styles.default, className)} {...props}>\n <button className={styles['menu-toggle']} onClick={toggle_sidebar} aria-label=\"Toggle sidebar\" type=\"button\">\n <svg\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n </svg>\n </button>\n {children}\n </div>\n );\n}\n"],"mappings":"gMCOA,SAAgB,EAAoB,CAAE,YAAW,WAAU,GAAG,GAAmC,CAC7F,GAAM,CAAE,kBAAmB,EAAA,wBAAwB,EACnD,OACI,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAA,EAAK,EAAO,QAAS,CAAS,EAAG,GAAI,EAArD,SAAA,EACI,EAAA,EAAA,IAAA,CAAC,SAAD,CAAQ,UAAW,EAAO,eAAgB,QAAS,EAAgB,aAAW,iBAAiB,KAAK,SAChG,UAAA,EAAA,EAAA,KAAA,CAAC,MAAD,CACI,QAAQ,YACR,MAAM,KACN,OAAO,KACP,KAAK,OACL,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QARnB,SAAA,EAUI,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,CACrC,GACD,CAAA,EACP,CACA,GAEb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-BE3-MmWB.js","names":[],"sources":["../../styles/src/components/documentation/layout.module.css","../src/components/documentation/layout.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n background-color: var(--_sleetch-color-background);\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n","import styles from '@sleetch/styles/components/documentation/layout.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationLayoutProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationLayout({ children, className, ...props }: DocumentationLayoutProps) {\n return (\n <main className={clsx(styles.default, className)} {...props}>\n {children}\n </main>\n );\n}\n"],"mappings":";;;;;;ACMA,SAAgB,EAAoB,EAAE,aAAU,cAAW,GAAG,KAAmC;CAC7F,OACI,kBAAC,QAAD;EAAM,WAAW,EAAK,EAAO,SAAS,CAAS;EAAG,GAAI;EACjD;CACC,CAAA;AAEd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"layout-vfa7JhoC.cjs","names":[],"sources":["../../styles/src/components/documentation/layout.module.css","../src/components/documentation/layout.tsx"],"sourcesContent":[".default {\n color: var(--_sleetch-color-text);\n background-color: var(--_sleetch-color-background);\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n}\n","import styles from '@sleetch/styles/components/documentation/layout.module.css';\nimport clsx from 'clsx';\nimport type { BaseHTMLAttributes } from 'react';\n\nexport interface DocumentationLayoutProps extends BaseHTMLAttributes<HTMLDivElement> {}\n\nexport function DocumentationLayout({ children, className, ...props }: DocumentationLayoutProps) {\n return (\n <main className={clsx(styles.default, className)} {...props}>\n {children}\n </main>\n );\n}\n"],"mappings":"6GCMA,SAAgB,EAAoB,CAAE,WAAU,YAAW,GAAG,GAAmC,CAC7F,OACI,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAA,EAAK,EAAO,QAAS,CAAS,EAAG,GAAI,EACjD,UACC,CAAA,CAEd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-BWmLA_nr.js","names":[],"sources":["../../styles/src/components/documentation/page/navigation.module.css","../src/components/documentation/page/navigation.tsx"],"sourcesContent":[".navigation {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1em;\n padding: var(--_sleetch-padding-root);\n padding-top: 0px;\n font-family: var(--_sleetch-font-base);\n}\n\n.slot {\n display: flex;\n}\n\n.slot-end {\n justify-content: flex-end;\n}\n\n.card {\n display: flex;\n flex-direction: column;\n gap: 0.25em;\n width: 100%;\n max-width: 320px;\n padding: 1em 1em;\n border-radius: var(--_sleetch-radius);\n border: var(--_sleetch-hr-height) solid var(--_sleetch-color-border);\n color: var(--_sleetch-color-text);\n text-decoration: none;\n transition:\n border-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.card:hover,\n.card:focus-visible {\n border-color: var(--_sleetch-color-text-primary);\n background-color: color-mix(in srgb, var(--_sleetch-color-text-primary) 8%, var(--_sleetch-color-card));\n}\n\n.card:focus-visible {\n outline: 2px solid var(--_sleetch-color-text-primary);\n outline-offset: 2px;\n}\n\n.next {\n align-items: flex-end;\n text-align: right;\n}\n\n.previous {\n align-items: flex-start;\n text-align: left;\n}\n\n.meta {\n display: flex;\n align-items: center;\n gap: 0.3em;\n font-size: var(--_sleetch-font-size-tiny);\n color: var(--_sleetch-color-muted-foreground);\n}\n\n.chevron {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n}\n\n.title {\n font-size: var(--_sleetch-font-size-base);\n font-weight: var(--_sleetch-font-weight-heading);\n line-height: var(--_sleetch-line-height-heading);\n color: var(--_sleetch-color-text);\n}\n\n.description {\n font-size: var(--_sleetch-font-size-tiny);\n line-height: var(--_sleetch-line-height);\n color: var(--_sleetch-color-muted-foreground);\n overflow: hidden;\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .navigation {\n padding: 1.5em 2em;\n }\n}\n\n@media (max-width: 768px) {\n .card {\n max-width: 100%;\n }\n\n .navigation {\n grid-template-columns: 1fr;\n\n padding: 1em 1em;\n }\n\n .slot-end {\n justify-content: flex-start;\n }\n\n .next {\n align-items: flex-start;\n text-align: left;\n }\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/page/navigation.module.css';\nimport clsx from 'clsx';\nimport { useDocumentationContext } from 'packages/react/src/contexts/documentation';\nimport { type BaseHTMLAttributes, useMemo } from 'react';\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\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 if (node.type === 'category') {\n return node?.frontmatter?.order ?? Number.POSITIVE_INFINITY;\n }\n if (node.type === 'page') {\n return (node.frontmatter as { order?: number }).order ?? Number.POSITIVE_INFINITY;\n }\n return Number.POSITIVE_INFINITY;\n}\n\nfunction sortNodes(nodes: tree_object[]): tree_object[] {\n return nodes\n .map((node, index) => ({ node, index }))\n .sort((a, b) => {\n const diff = getOrder(a.node) - getOrder(b.node);\n return diff !== 0 ? diff : a.index - b.index;\n })\n .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 const sorted = sortNodes(nodes);\n const result: page_node[] = [];\n\n for (const node of sorted) {\n if (node.type === 'page') {\n result.push(node);\n continue;\n }\n\n if (node.type === 'category') {\n const indexPage = node.page;\n if (indexPage) result.push(indexPage);\n const rest = node.children;\n result.push(...flattenPages(rest));\n }\n }\n\n return result;\n}\n\nfunction ChevronLeft() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={styles.chevron}\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n );\n}\n\nfunction ChevronRight() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={styles.chevron}\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n );\n}\n\nfunction resolveTitle(title: string, fallbackPath: string): string {\n return title && title !== 'No title.' ? title : fallbackPath;\n}\n\nfunction resolveDescription(description: string): string | undefined {\n return description && description !== 'No description.' ? description : undefined;\n}\n\ninterface NavigationCardProps {\n node: page_node;\n direction: 'previous' | 'next';\n}\n\nfunction NavigationCard({ node, direction }: NavigationCardProps) {\n const title = resolveTitle(node.frontmatter.title, node.path);\n const description = resolveDescription(node.frontmatter.description);\n const { language, path_transformer } = useDocumentationContext();\n\n return (\n <a href={path_transformer({ language, path: node.path })} className={clsx(styles.card, styles[direction])} data-direction={direction}>\n <span className={styles.meta}>\n {direction === 'previous' && <ChevronLeft />}\n <span className={styles.title}>{title}</span>\n {direction === 'next' && <ChevronRight />}\n </span>\n {description && <span className={styles.description}>{description}</span>}\n </a>\n );\n}\n\nexport function PageNavigation({ className, ...props }: DocumentationNavigationProps) {\n const { tree, current_path } = useDocumentationContext();\n const { previous, next } = useMemo(() => {\n const pages = flattenPages(tree);\n const currentIndex = pages.findIndex((page) => page.path === current_path);\n\n if (currentIndex === -1) {\n return { previous: undefined, next: undefined };\n }\n\n return {\n previous: pages[currentIndex - 1],\n next: pages[currentIndex + 1],\n };\n }, [tree, current_path]);\n\n if (!previous && !next) return null;\n\n return (\n <nav className={clsx(styles.navigation, className)} aria-label=\"Pagination\" {...props}>\n <div className={styles.slot}>{previous && <NavigationCard node={previous} direction=\"previous\" />}</div>\n <div className={clsx(styles.slot, styles['slot-end'])}>{next && <NavigationCard node={next} direction=\"next\" />}</div>\n </nav>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- require('./assets/navigation.css');const e=require("./clsx-GLXUd3yb.cjs"),t=require("./contexts/documentation.cjs.js");let n=require("react/jsx-runtime"),r=require("react");var i={navigation:`_navigation_sdshn_1`,slot:`_slot_sdshn_10`,"slot-end":`_slot-end_sdshn_14`,card:`_card_sdshn_18`,next:`_next_sdshn_45`,previous:`_previous_sdshn_50`,meta:`_meta_sdshn_55`,chevron:`_chevron_sdshn_63`,title:`_title_sdshn_69`,description:`_description_sdshn_76`};function a(e){return e.type===`category`?e?.frontmatter?.order??1/0:e.type===`page`?e.frontmatter.order??1/0:1/0}function o(e){return e.map((e,t)=>({node:e,index:t})).sort((e,t)=>{let n=a(e.node)-a(t.node);return n===0?e.index-t.index:n}).map(({node:e})=>e)}function s(e){let t=o(e),n=[];for(let e of t){if(e.type===`page`){n.push(e);continue}if(e.type===`category`){let t=e.page;t&&n.push(t);let r=e.children;n.push(...s(r))}}return n}function c(){return(0,n.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,className:i.chevron,children:(0,n.jsx)(`polyline`,{points:`15 18 9 12 15 6`})})}function l(){return(0,n.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`16`,height:`16`,fill:`none`,stroke:`currentColor`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeLinejoin:`round`,className:i.chevron,children:(0,n.jsx)(`polyline`,{points:`9 18 15 12 9 6`})})}function u(e,t){return e&&e!==`No title.`?e:t}function d(e){return e&&e!==`No description.`?e:void 0}function f({node:r,direction:a}){let o=u(r.frontmatter.title,r.path),s=d(r.frontmatter.description),{language:f,path_transformer:p}=t.useDocumentationContext();return(0,n.jsxs)(`a`,{href:p({language:f,path:r.path}),className:e.t(i.card,i[a]),"data-direction":a,children:[(0,n.jsxs)(`span`,{className:i.meta,children:[a===`previous`&&(0,n.jsx)(c,{}),(0,n.jsx)(`span`,{className:i.title,children:o}),a===`next`&&(0,n.jsx)(l,{})]}),s&&(0,n.jsx)(`span`,{className:i.description,children:s})]})}function p({className:a,...o}){let{tree:c,current_path:l}=t.useDocumentationContext(),{previous:u,next:d}=(0,r.useMemo)(()=>{let e=s(c),t=e.findIndex(e=>e.path===l);return t===-1?{previous:void 0,next:void 0}:{previous:e[t-1],next:e[t+1]}},[c,l]);return!u&&!d?null:(0,n.jsxs)(`nav`,{className:e.t(i.navigation,a),"aria-label":`Pagination`,...o,children:[(0,n.jsx)(`div`,{className:i.slot,children:u&&(0,n.jsx)(f,{node:u,direction:`previous`})}),(0,n.jsx)(`div`,{className:e.t(i.slot,i[`slot-end`]),children:d&&(0,n.jsx)(f,{node:d,direction:`next`})})]})}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}});
2
- //# sourceMappingURL=navigation-D6nkWYOB.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"navigation-D6nkWYOB.cjs","names":[],"sources":["../../styles/src/components/documentation/page/navigation.module.css","../src/components/documentation/page/navigation.tsx"],"sourcesContent":[".navigation {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1em;\n padding: var(--_sleetch-padding-root);\n padding-top: 0px;\n font-family: var(--_sleetch-font-base);\n}\n\n.slot {\n display: flex;\n}\n\n.slot-end {\n justify-content: flex-end;\n}\n\n.card {\n display: flex;\n flex-direction: column;\n gap: 0.25em;\n width: 100%;\n max-width: 320px;\n padding: 1em 1em;\n border-radius: var(--_sleetch-radius);\n border: var(--_sleetch-hr-height) solid var(--_sleetch-color-border);\n color: var(--_sleetch-color-text);\n text-decoration: none;\n transition:\n border-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.card:hover,\n.card:focus-visible {\n border-color: var(--_sleetch-color-text-primary);\n background-color: color-mix(in srgb, var(--_sleetch-color-text-primary) 8%, var(--_sleetch-color-card));\n}\n\n.card:focus-visible {\n outline: 2px solid var(--_sleetch-color-text-primary);\n outline-offset: 2px;\n}\n\n.next {\n align-items: flex-end;\n text-align: right;\n}\n\n.previous {\n align-items: flex-start;\n text-align: left;\n}\n\n.meta {\n display: flex;\n align-items: center;\n gap: 0.3em;\n font-size: var(--_sleetch-font-size-tiny);\n color: var(--_sleetch-color-muted-foreground);\n}\n\n.chevron {\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n}\n\n.title {\n font-size: var(--_sleetch-font-size-base);\n font-weight: var(--_sleetch-font-weight-heading);\n line-height: var(--_sleetch-line-height-heading);\n color: var(--_sleetch-color-text);\n}\n\n.description {\n font-size: var(--_sleetch-font-size-tiny);\n line-height: var(--_sleetch-line-height);\n color: var(--_sleetch-color-muted-foreground);\n overflow: hidden;\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .navigation {\n padding: 1.5em 2em;\n }\n}\n\n@media (max-width: 768px) {\n .card {\n max-width: 100%;\n }\n\n .navigation {\n grid-template-columns: 1fr;\n\n padding: 1em 1em;\n }\n\n .slot-end {\n justify-content: flex-start;\n }\n\n .next {\n align-items: flex-start;\n text-align: left;\n }\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/page/navigation.module.css';\nimport clsx from 'clsx';\nimport { useDocumentationContext } from 'packages/react/src/contexts/documentation';\nimport { type BaseHTMLAttributes, useMemo } from 'react';\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\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 if (node.type === 'category') {\n return node?.frontmatter?.order ?? Number.POSITIVE_INFINITY;\n }\n if (node.type === 'page') {\n return (node.frontmatter as { order?: number }).order ?? Number.POSITIVE_INFINITY;\n }\n return Number.POSITIVE_INFINITY;\n}\n\nfunction sortNodes(nodes: tree_object[]): tree_object[] {\n return nodes\n .map((node, index) => ({ node, index }))\n .sort((a, b) => {\n const diff = getOrder(a.node) - getOrder(b.node);\n return diff !== 0 ? diff : a.index - b.index;\n })\n .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 const sorted = sortNodes(nodes);\n const result: page_node[] = [];\n\n for (const node of sorted) {\n if (node.type === 'page') {\n result.push(node);\n continue;\n }\n\n if (node.type === 'category') {\n const indexPage = node.page;\n if (indexPage) result.push(indexPage);\n const rest = node.children;\n result.push(...flattenPages(rest));\n }\n }\n\n return result;\n}\n\nfunction ChevronLeft() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={styles.chevron}\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n );\n}\n\nfunction ChevronRight() {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={styles.chevron}\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n );\n}\n\nfunction resolveTitle(title: string, fallbackPath: string): string {\n return title && title !== 'No title.' ? title : fallbackPath;\n}\n\nfunction resolveDescription(description: string): string | undefined {\n return description && description !== 'No description.' ? description : undefined;\n}\n\ninterface NavigationCardProps {\n node: page_node;\n direction: 'previous' | 'next';\n}\n\nfunction NavigationCard({ node, direction }: NavigationCardProps) {\n const title = resolveTitle(node.frontmatter.title, node.path);\n const description = resolveDescription(node.frontmatter.description);\n const { language, path_transformer } = useDocumentationContext();\n\n return (\n <a href={path_transformer({ language, path: node.path })} className={clsx(styles.card, styles[direction])} data-direction={direction}>\n <span className={styles.meta}>\n {direction === 'previous' && <ChevronLeft />}\n <span className={styles.title}>{title}</span>\n {direction === 'next' && <ChevronRight />}\n </span>\n {description && <span className={styles.description}>{description}</span>}\n </a>\n );\n}\n\nexport function PageNavigation({ className, ...props }: DocumentationNavigationProps) {\n const { tree, current_path } = useDocumentationContext();\n const { previous, next } = useMemo(() => {\n const pages = flattenPages(tree);\n const currentIndex = pages.findIndex((page) => page.path === current_path);\n\n if (currentIndex === -1) {\n return { previous: undefined, next: undefined };\n }\n\n return {\n previous: pages[currentIndex - 1],\n next: pages[currentIndex + 1],\n };\n }, [tree, current_path]);\n\n if (!previous && !next) return null;\n\n return (\n <nav className={clsx(styles.navigation, className)} aria-label=\"Pagination\" {...props}>\n <div className={styles.slot}>{previous && <NavigationCard node={previous} direction=\"previous\" />}</div>\n <div className={clsx(styles.slot, styles['slot-end'])}>{next && <NavigationCard node={next} direction=\"next\" />}</div>\n </nav>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar-D7bXjwCm.js","names":[],"sources":["../../styles/src/components/documentation/sidebar/index.module.css","../src/components/documentation/sidebar/index.tsx"],"sourcesContent":[".sidebar {\n min-width: var(--_sleetch-sidebar-width);\n height: calc(100vh - var(--_sleetch-header-height));\n position: sticky;\n top: var(--_sleetch-header-height);\n color: var(--_sleetch-color-text);\n padding: 4em 1.5em;\n border-right: 1px dashed var(--_sleetch-color-muted);\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--_sleetch-color-muted) transparent;\n}\n\n.sidebar::-webkit-scrollbar {\n width: 6px;\n}\n\n.sidebar::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n background-color: var(--_sleetch-color-muted);\n border-radius: 3px;\n}\n\n.sidebar::-webkit-scrollbar-thumb:hover {\n background-color: var(--_sleetch-color-muted-foreground);\n}\n\n.overlay {\n display: none;\n}\n\n@media (max-width: 768px) {\n .sidebar {\n position: fixed;\n top: var(--_sleetch-header-height);\n left: 0;\n bottom: 0;\n width: 280px;\n min-width: 280px;\n max-width: 85vw;\n z-index: 90;\n background-color: var(--_sleetch-color-background);\n transform: translateX(-100%);\n transition: transform 0.3s ease;\n padding: 2em 1.5em;\n border-right: 1px solid var(--_sleetch-color-border);\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.3);\n }\n\n .sidebar-open {\n transform: translateX(0);\n }\n\n .overlay {\n display: block;\n position: fixed;\n top: var(--_sleetch-header-height);\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 89;\n backdrop-filter: blur(2px);\n animation: fadeIn 0.3s ease;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .sidebar {\n min-width: 260px;\n padding: 3em 1.2em;\n }\n}\n\n.nav {\n display: flex;\n flex-direction: column;\n}\n\n.list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.item {\n min-width: 0;\n}\n\n.row {\n display: flex;\n align-items: center;\n}\n\n.link,\n.category-label {\n --depth: 1;\n flex: 1;\n display: flex;\n align-items: center;\n gap: 0.55em;\n width: 100%;\n min-width: 0;\n margin-left: -1px;\n padding-block: 0.4em;\n padding-left: calc(1em + (var(--depth) - 1) * 1em);\n padding-right: 0.5em;\n border: none;\n border-left: 3px solid transparent;\n background: none;\n font-family: var(--_sleetch-font-base);\n font-size: calc(1em - (var(--depth) - 1) * 0.03em);\n line-height: 1.3;\n text-align: left;\n color: var(--_sleetch-color-muted-foreground);\n text-decoration: none;\n cursor: pointer;\n transition:\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n border-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover,\n.category-label:hover {\n color: var(--_sleetch-color-text);\n}\n\n.category-link,\n.category-label {\n font-weight: var(--_sleetch-font-weight-heading);\n color: var(--_sleetch-color-text);\n padding-top: 0.5em;\n}\n\n.active {\n border-left-color: var(--_sleetch-color-text-primary);\n background: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n color: var(--_sleetch-color-text);\n transform: translateX(4px);\n}\n\n.active:hover {\n transform: translateX(6px);\n}\n\n.toggle {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.7em;\n height: 1.7em;\n margin-right: 0.2em;\n background: none;\n border: none;\n border-radius: var(--_sleetch-radius);\n color: var(--_sleetch-color-muted-foreground);\n cursor: pointer;\n transition:\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.toggle:hover {\n background-color: var(--_sleetch-color-card);\n color: var(--_sleetch-color-text);\n}\n\n.chevron {\n transition: transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.chevron-open {\n transform: rotate(90deg);\n}\n\n.icon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.1em;\n height: 1.1em;\n opacity: 0.75;\n}\n\n.label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-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 const { is_sidebar_open, close_sidebar, tree, current_path, path_transformer, icon_transformer } = useDocumentationContext();\n\n useEffect(() => {\n if (is_sidebar_open) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n return () => {\n document.body.style.overflow = '';\n };\n }, [is_sidebar_open]);\n\n return (\n <>\n {is_sidebar_open && <div className={styles.overlay} onClick={close_sidebar} />}\n <aside className={clsx(styles.sidebar, is_sidebar_open && styles['sidebar-open'], className)} {...props}>\n <nav className={styles.nav}>\n <SidebarTree nodes={tree} depth={1} onLinkClick={close_sidebar} />\n </nav>\n {children}\n </aside>\n </>\n );\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 if (node.type === 'category') {\n return node?.frontmatter?.order ?? Number.POSITIVE_INFINITY;\n }\n if (node.type === 'page') {\n return (node.frontmatter as { order?: number }).order ?? Number.POSITIVE_INFINITY;\n }\n return Number.POSITIVE_INFINITY;\n}\n\nfunction sortNodes(nodes: tree_object[]): tree_object[] {\n return nodes\n .map((node, index) => ({ node, index }))\n .sort((a, b) => {\n const diff = getOrder(a.node) - getOrder(b.node);\n return diff !== 0 ? diff : a.index - b.index;\n })\n .map(({ node }) => node);\n}\n\nfunction resolveTitle(title: string, fallbackPath: string): string {\n return title && title !== 'No title.' ? title : fallbackPath;\n}\n\nfunction Chevron({ open }: { open: boolean }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"13\"\n height=\"13\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={clsx(styles.chevron, open && styles['chevron-open'])}\n >\n <polyline points=\"9 6 15 12 9 18\" />\n </svg>\n );\n}\n\ninterface HrefContext {\n onLinkClick?: () => void;\n}\n\ninterface SidebarTreeProps extends HrefContext {\n nodes: tree_object[];\n depth: number;\n}\n\nfunction SidebarTree({ nodes, depth, onLinkClick }: SidebarTreeProps) {\n const sorted = useMemo(() => sortNodes(nodes), [nodes]);\n const { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n return (\n <ul className={styles.list} data-depth={depth}>\n {sorted.map((node) => {\n if (node.type === 'page') {\n const isActive = node.path === current_path;\n const icon = icon_transformer(node.frontmatter.icon);\n\n return (\n <li key={node.path} className={styles.item}>\n <a\n href={path_transformer({ language, path: node.path })}\n className={clsx(styles.link, isActive && styles.active)}\n style={{ '--depth': depth } as React.CSSProperties}\n onClick={onLinkClick}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{resolveTitle(node.frontmatter.title, node.path)}</span>\n </a>\n </li>\n );\n }\n\n if (node.type === 'category') {\n return <CategoryItem key={node.path} category={node} depth={depth} onLinkClick={onLinkClick} />;\n }\n\n return null;\n })}\n </ul>\n );\n}\n\ninterface CategoryItemProps extends HrefContext {\n category: category_node;\n depth: number;\n}\n\nfunction CategoryItem({ category, depth, onLinkClick }: CategoryItemProps) {\n const { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n\n const title = category?.frontmatter?.title ?? (category.page ? resolveTitle(category.page.frontmatter.title, category.path) : category.path);\n\n const iconName = category?.frontmatter?.icon ?? category?.page?.frontmatter?.icon;\n const icon = icon_transformer(iconName);\n\n const childNodes = category.children;\n\n const hasChildren = childNodes.length > 0;\n const isIndexActive = category.page ? category.page.path === current_path : false;\n\n const [open, setOpen] = useState(true);\n\n return (\n <li className={styles.item}>\n <div className={styles.row}>\n {category.page ? (\n <a\n href={path_transformer({ language, path: category.page.path })}\n className={clsx(styles.link, styles['category-link'], isIndexActive && styles.active)}\n style={{ '--depth': depth } as React.CSSProperties}\n onClick={onLinkClick}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{title}</span>\n </a>\n ) : (\n <button\n type=\"button\"\n className={clsx(styles.link, styles['category-label'])}\n style={{ '--depth': depth } as React.CSSProperties}\n onClick={() => hasChildren && setOpen((o) => !o)}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{title}</span>\n </button>\n )}\n\n {hasChildren && (\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={open ? 'Collapse' : 'Expand'}\n aria-expanded={open}\n onClick={() => setOpen((o) => !o)}\n >\n <Chevron open={open} />\n </button>\n )}\n </div>\n\n {hasChildren && open && <SidebarTree nodes={childNodes} depth={depth + 1} onLinkClick={onLinkClick} />}\n </li>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar-DSOeiBFI.cjs","names":[],"sources":["../../styles/src/components/documentation/sidebar/index.module.css","../src/components/documentation/sidebar/index.tsx"],"sourcesContent":[".sidebar {\n min-width: var(--_sleetch-sidebar-width);\n height: calc(100vh - var(--_sleetch-header-height));\n position: sticky;\n top: var(--_sleetch-header-height);\n color: var(--_sleetch-color-text);\n padding: 4em 1.5em;\n border-right: 1px dashed var(--_sleetch-color-muted);\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: var(--_sleetch-color-muted) transparent;\n}\n\n.sidebar::-webkit-scrollbar {\n width: 6px;\n}\n\n.sidebar::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.sidebar::-webkit-scrollbar-thumb {\n background-color: var(--_sleetch-color-muted);\n border-radius: 3px;\n}\n\n.sidebar::-webkit-scrollbar-thumb:hover {\n background-color: var(--_sleetch-color-muted-foreground);\n}\n\n.overlay {\n display: none;\n}\n\n@media (max-width: 768px) {\n .sidebar {\n position: fixed;\n top: var(--_sleetch-header-height);\n left: 0;\n bottom: 0;\n width: 280px;\n min-width: 280px;\n max-width: 85vw;\n z-index: 90;\n background-color: var(--_sleetch-color-background);\n transform: translateX(-100%);\n transition: transform 0.3s ease;\n padding: 2em 1.5em;\n border-right: 1px solid var(--_sleetch-color-border);\n box-shadow: 2px 0 8px rgba(0, 0, 0, 0.3);\n }\n\n .sidebar-open {\n transform: translateX(0);\n }\n\n .overlay {\n display: block;\n position: fixed;\n top: var(--_sleetch-header-height);\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.5);\n z-index: 89;\n backdrop-filter: blur(2px);\n animation: fadeIn 0.3s ease;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n}\n\n@media (min-width: 769px) and (max-width: 1024px) {\n .sidebar {\n min-width: 260px;\n padding: 3em 1.2em;\n }\n}\n\n.nav {\n display: flex;\n flex-direction: column;\n}\n\n.list {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.item {\n min-width: 0;\n}\n\n.row {\n display: flex;\n align-items: center;\n}\n\n.link,\n.category-label {\n --depth: 1;\n flex: 1;\n display: flex;\n align-items: center;\n gap: 0.55em;\n width: 100%;\n min-width: 0;\n margin-left: -1px;\n padding-block: 0.4em;\n padding-left: calc(1em + (var(--depth) - 1) * 1em);\n padding-right: 0.5em;\n border: none;\n border-left: 3px solid transparent;\n background: none;\n font-family: var(--_sleetch-font-base);\n font-size: calc(1em - (var(--depth) - 1) * 0.03em);\n line-height: 1.3;\n text-align: left;\n color: var(--_sleetch-color-muted-foreground);\n text-decoration: none;\n cursor: pointer;\n transition:\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n border-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover,\n.category-label:hover {\n color: var(--_sleetch-color-text);\n}\n\n.category-link,\n.category-label {\n font-weight: var(--_sleetch-font-weight-heading);\n color: var(--_sleetch-color-text);\n padding-top: 0.5em;\n}\n\n.active {\n border-left-color: var(--_sleetch-color-text-primary);\n background: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n color: var(--_sleetch-color-text);\n transform: translateX(4px);\n}\n\n.active:hover {\n transform: translateX(6px);\n}\n\n.toggle {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.7em;\n height: 1.7em;\n margin-right: 0.2em;\n background: none;\n border: none;\n border-radius: var(--_sleetch-radius);\n color: var(--_sleetch-color-muted-foreground);\n cursor: pointer;\n transition:\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.toggle:hover {\n background-color: var(--_sleetch-color-card);\n color: var(--_sleetch-color-text);\n}\n\n.chevron {\n transition: transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.chevron-open {\n transform: rotate(90deg);\n}\n\n.icon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.1em;\n height: 1.1em;\n opacity: 0.75;\n}\n\n.label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-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 const { is_sidebar_open, close_sidebar, tree, current_path, path_transformer, icon_transformer } = useDocumentationContext();\n\n useEffect(() => {\n if (is_sidebar_open) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n return () => {\n document.body.style.overflow = '';\n };\n }, [is_sidebar_open]);\n\n return (\n <>\n {is_sidebar_open && <div className={styles.overlay} onClick={close_sidebar} />}\n <aside className={clsx(styles.sidebar, is_sidebar_open && styles['sidebar-open'], className)} {...props}>\n <nav className={styles.nav}>\n <SidebarTree nodes={tree} depth={1} onLinkClick={close_sidebar} />\n </nav>\n {children}\n </aside>\n </>\n );\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 if (node.type === 'category') {\n return node?.frontmatter?.order ?? Number.POSITIVE_INFINITY;\n }\n if (node.type === 'page') {\n return (node.frontmatter as { order?: number }).order ?? Number.POSITIVE_INFINITY;\n }\n return Number.POSITIVE_INFINITY;\n}\n\nfunction sortNodes(nodes: tree_object[]): tree_object[] {\n return nodes\n .map((node, index) => ({ node, index }))\n .sort((a, b) => {\n const diff = getOrder(a.node) - getOrder(b.node);\n return diff !== 0 ? diff : a.index - b.index;\n })\n .map(({ node }) => node);\n}\n\nfunction resolveTitle(title: string, fallbackPath: string): string {\n return title && title !== 'No title.' ? title : fallbackPath;\n}\n\nfunction Chevron({ open }: { open: boolean }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n width=\"13\"\n height=\"13\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={clsx(styles.chevron, open && styles['chevron-open'])}\n >\n <polyline points=\"9 6 15 12 9 18\" />\n </svg>\n );\n}\n\ninterface HrefContext {\n onLinkClick?: () => void;\n}\n\ninterface SidebarTreeProps extends HrefContext {\n nodes: tree_object[];\n depth: number;\n}\n\nfunction SidebarTree({ nodes, depth, onLinkClick }: SidebarTreeProps) {\n const sorted = useMemo(() => sortNodes(nodes), [nodes]);\n const { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n return (\n <ul className={styles.list} data-depth={depth}>\n {sorted.map((node) => {\n if (node.type === 'page') {\n const isActive = node.path === current_path;\n const icon = icon_transformer(node.frontmatter.icon);\n\n return (\n <li key={node.path} className={styles.item}>\n <a\n href={path_transformer({ language, path: node.path })}\n className={clsx(styles.link, isActive && styles.active)}\n style={{ '--depth': depth } as React.CSSProperties}\n onClick={onLinkClick}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{resolveTitle(node.frontmatter.title, node.path)}</span>\n </a>\n </li>\n );\n }\n\n if (node.type === 'category') {\n return <CategoryItem key={node.path} category={node} depth={depth} onLinkClick={onLinkClick} />;\n }\n\n return null;\n })}\n </ul>\n );\n}\n\ninterface CategoryItemProps extends HrefContext {\n category: category_node;\n depth: number;\n}\n\nfunction CategoryItem({ category, depth, onLinkClick }: CategoryItemProps) {\n const { icon_transformer, current_path, path_transformer, language } = useDocumentationContext();\n\n const title = category?.frontmatter?.title ?? (category.page ? resolveTitle(category.page.frontmatter.title, category.path) : category.path);\n\n const iconName = category?.frontmatter?.icon ?? category?.page?.frontmatter?.icon;\n const icon = icon_transformer(iconName);\n\n const childNodes = category.children;\n\n const hasChildren = childNodes.length > 0;\n const isIndexActive = category.page ? category.page.path === current_path : false;\n\n const [open, setOpen] = useState(true);\n\n return (\n <li className={styles.item}>\n <div className={styles.row}>\n {category.page ? (\n <a\n href={path_transformer({ language, path: category.page.path })}\n className={clsx(styles.link, styles['category-link'], isIndexActive && styles.active)}\n style={{ '--depth': depth } as React.CSSProperties}\n onClick={onLinkClick}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{title}</span>\n </a>\n ) : (\n <button\n type=\"button\"\n className={clsx(styles.link, styles['category-label'])}\n style={{ '--depth': depth } as React.CSSProperties}\n onClick={() => hasChildren && setOpen((o) => !o)}\n >\n {icon && <span className={styles.icon}>{icon}</span>}\n <span className={styles.label}>{title}</span>\n </button>\n )}\n\n {hasChildren && (\n <button\n type=\"button\"\n className={styles.toggle}\n aria-label={open ? 'Collapse' : 'Expand'}\n aria-expanded={open}\n onClick={() => setOpen((o) => !o)}\n >\n <Chevron open={open} />\n </button>\n )}\n </div>\n\n {hasChildren && open && <SidebarTree nodes={childNodes} depth={depth + 1} onLinkClick={onLinkClick} />}\n </li>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toc-DkBTetNW.cjs","names":[],"sources":["../../styles/src/components/documentation/toc/index.module.css","../src/components/documentation/toc/index.tsx"],"sourcesContent":[".default {\n min-width: var(--_sleetch-toc-width);\n height: calc(100vh - var(--_sleetch-header-height));\n position: sticky;\n top: var(--_sleetch-header-height);\n color: var(--_sleetch-color-text);\n padding: 4em 2em;\n border-left: 1px dashed var(--_sleetch-color-border);\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n}\n\n@media (max-width: 1024px) {\n .default {\n display: none;\n }\n}\n\n@media (min-width: 1025px) and (max-width: 1280px) {\n .default {\n min-width: 220px;\n padding: 3em 1.5em;\n }\n}\n\n.title {\n margin: 0 0 0.5em;\n font-size: 0.9em;\n font-weight: var(--_sleetch-font-weight-heading);\n color: var(--_sleetch-color-text);\n}\n\n.track {\n position: relative;\n}\n\n.line {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 1px;\n background: var(--_sleetch-color-muted);\n z-index: 0;\n}\n\n.gapDot {\n position: absolute;\n left: 0;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--_sleetch-color-muted-foreground);\n transform: translate(-50%, -50%);\n z-index: 1;\n pointer-events: none;\n transition: top var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.list {\n position: relative; /* nécessaire pour que le z-index prenne le dessus sur .line */\n z-index: 1;\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.item {\n min-width: 0; /* requis pour que l'ellipsis fonctionne dans un flex/grid parent */\n}\n\n.link {\n --depth: 1;\n\n display: block;\n width: 100%;\n margin-left: -1px; /* centre la bordure de 3px sur la ligne de 1px */\n padding-block: 0.4em;\n padding-left: calc(1em + (var(--depth) - 1) * 0.85em);\n padding-right: 0.5em;\n\n border-left: 3px solid transparent;\n\n font-family: var(--_sleetch-font-base);\n font-size: calc(0.85em - (var(--depth) - 1) * 0.03em);\n line-height: 1.3;\n color: var(--_sleetch-color-muted-foreground);\n text-decoration: none;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n transition:\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n border-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover {\n color: var(--_sleetch-color-text);\n}\n\n.active {\n border-left-color: var(--_sleetch-color-text-primary);\n background: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n color: var(--_sleetch-color-text);\n transform: 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":"6TCkBA,SAAgB,EAAiB,CAAE,YAAW,WAAU,OAAM,GAAG,GAAgC,CAChG,IAAM,EAAM,EAAK,IAEX,CAAC,EAAW,IAAA,EAAgB,EAAA,SAAA,CAAsB,IAAI,GAAK,EAC3D,CAAC,EAAM,IAAA,EAAW,EAAA,SAAA,CAAwB,IAAI,EAE9C,GAAA,EAAW,EAAA,OAAA,CAAuB,IAAI,EACtC,GAAA,EAAW,EAAA,OAAA,CAAmC,IAAI,GAAK,EACvD,GAAA,EAAqB,EAAA,OAAA,CAAsB,IAAI,EAwErD,OAtEA,EAAA,EAAA,UAAA,KAAgB,CACf,GAAI,EAAI,SAAW,EAAG,OAEtB,IAAM,EAAW,EAAI,IAAK,GAAS,SAAS,eAAe,EAAK,EAAE,CAAC,CAAC,CAAC,OAAQ,GAA0B,IAAO,IAAI,EAElH,GAAI,EAAS,SAAW,EAAG,OAE3B,IAAM,EAAW,IAAI,qBACnB,GAAY,CACZ,EAAc,GAAS,CACtB,IAAM,EAAO,IAAI,IAAI,CAAI,EACzB,IAAK,IAAM,KAAS,EACf,EAAM,eACT,EAAK,IAAI,EAAM,OAAO,EAAE,EAExB,EAAK,OAAO,EAAM,OAAO,EAAE,EAG7B,OAAO,CACR,CAAC,CACF,EACA,CACC,WAAY,mBACZ,UAAW,CACZ,CACD,EAEA,IAAK,IAAM,KAAM,EAAU,EAAS,QAAQ,CAAE,EAE9C,UAAa,EAAS,WAAW,CAClC,EAAG,CAAC,CAAG,CAAC,GAER,EAAA,EAAA,UAAA,KAAgB,CACf,GAAI,EAAU,KAAO,EAAG,CACvB,IAAI,EAAW,GACf,EAAI,SAAS,EAAM,IAAM,CACpB,EAAU,IAAI,EAAK,EAAE,IAAG,EAAW,EACxC,CAAC,EACD,EAAmB,QAAU,EAC7B,EAAQ,IAAI,EACZ,MACD,CAEA,IAAM,EAAQ,EAAS,QACjB,EAAY,EAAmB,QAErC,GAAI,CAAC,GAAS,IAAc,MAAQ,GAAa,EAAI,OAAS,EAAG,CAChE,EAAQ,IAAI,EACZ,MACD,CAEA,IAAM,EAAY,EAAS,QAAQ,IAAI,EAAI,EAAU,CAAC,EAAE,EAClD,EAAS,EAAS,QAAQ,IAAI,EAAI,EAAY,EAAE,CAAC,EAAE,EAEzD,GAAI,CAAC,GAAa,CAAC,EAAQ,CAC1B,EAAQ,IAAI,EACZ,MACD,CAEA,IAAM,EAAY,EAAM,sBAAsB,EACxC,EAAc,EAAU,sBAAsB,EAC9C,EAAW,EAAO,sBAAsB,EAExC,GAAK,EAAY,OAAS,EAAU,KAAO,EAAS,IAAM,EAAU,MAAQ,EAElF,EAAQ,CAAC,CACV,EAAG,CAAC,EAAW,CAAG,CAAC,EAEf,EAAI,SAAW,EAAU,MAG5B,EAAA,EAAA,KAAA,CAAC,QAAD,CAAO,UAAW,EAAA,EAAK,EAAO,QAAS,CAAS,EAAG,GAAI,EAAvD,SAAA,EACC,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAW,EAAO,MAAO,SAAA,cAAgB,CAAA,GAC7C,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,EAAO,MAAO,IAAK,EAAnC,SAAA,EACC,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,KAAM,cAAY,MAAQ,CAAA,EACjD,IAAS,OAAQ,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAW,EAAO,OAAQ,MAAO,CAAE,IAAK,CAAK,EAAG,cAAY,MAAQ,CAAA,GAC5F,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAW,EAAO,KACpB,SAAA,EAAI,IAAK,GAAS,CAClB,IAAM,EAAU,EAAU,IAAI,EAAK,EAAE,EAC/B,EAA0B,CAAE,UAAW,EAAK,KAAM,EAExD,OACC,EAAA,EAAA,IAAA,CAAC,KAAD,CAEC,UAAW,EAAO,KAClB,IAAM,GAAO,CACR,EAAI,EAAS,QAAQ,IAAI,EAAK,GAAI,CAAE,EACnC,EAAS,QAAQ,OAAO,EAAK,EAAE,CACrC,EAEA,UAAA,EAAA,EAAA,IAAA,CAAC,IAAD,CACC,KAAM,IAAI,EAAK,KACf,MAAO,EAAK,MACZ,eAAc,EAAU,WAAa,IAAA,GACrC,UAAW,EAAA,EAAK,EAAO,KAAM,GAAW,EAAO,MAAM,EACrD,MAAO,EAEN,SAAA,EAAK,KACJ,CAAA,CACA,EAhBE,EAAK,EAgBP,CAEN,CAAC,CACE,CAAA,CACA,CACC,CAAA,CAAA,GAET"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"toc-rfPQJ_Pf.js","names":[],"sources":["../../styles/src/components/documentation/toc/index.module.css","../src/components/documentation/toc/index.tsx"],"sourcesContent":[".default {\n min-width: var(--_sleetch-toc-width);\n height: calc(100vh - var(--_sleetch-header-height));\n position: sticky;\n top: var(--_sleetch-header-height);\n color: var(--_sleetch-color-text);\n padding: 4em 2em;\n border-left: 1px dashed var(--_sleetch-color-border);\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n}\n\n@media (max-width: 1024px) {\n .default {\n display: none;\n }\n}\n\n@media (min-width: 1025px) and (max-width: 1280px) {\n .default {\n min-width: 220px;\n padding: 3em 1.5em;\n }\n}\n\n.title {\n margin: 0 0 0.5em;\n font-size: 0.9em;\n font-weight: var(--_sleetch-font-weight-heading);\n color: var(--_sleetch-color-text);\n}\n\n.track {\n position: relative;\n}\n\n.line {\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 1px;\n background: var(--_sleetch-color-muted);\n z-index: 0;\n}\n\n.gapDot {\n position: absolute;\n left: 0;\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--_sleetch-color-muted-foreground);\n transform: translate(-50%, -50%);\n z-index: 1;\n pointer-events: none;\n transition: top var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.list {\n position: relative; /* nécessaire pour que le z-index prenne le dessus sur .line */\n z-index: 1;\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.item {\n min-width: 0; /* requis pour que l'ellipsis fonctionne dans un flex/grid parent */\n}\n\n.link {\n --depth: 1;\n\n display: block;\n width: 100%;\n margin-left: -1px; /* centre la bordure de 3px sur la ligne de 1px */\n padding-block: 0.4em;\n padding-left: calc(1em + (var(--depth) - 1) * 0.85em);\n padding-right: 0.5em;\n\n border-left: 3px solid transparent;\n\n font-family: var(--_sleetch-font-base);\n font-size: calc(0.85em - (var(--depth) - 1) * 0.03em);\n line-height: 1.3;\n color: var(--_sleetch-color-muted-foreground);\n text-decoration: none;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n transition:\n color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n border-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n background-color var(--_sleetch-transition-duration) var(--_sleetch-transition-timing),\n transform var(--_sleetch-transition-duration) var(--_sleetch-transition-timing);\n}\n\n.link:hover {\n color: var(--_sleetch-color-text);\n}\n\n.active {\n border-left-color: var(--_sleetch-color-text-primary);\n background: color-mix(in srgb, var(--_sleetch-color-text-underline) 35%, transparent);\n color: var(--_sleetch-color-text);\n transform: 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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"}