@fuzdev/fuz_ui 0.169.0

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 (323) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -0
  3. package/dist/Alert.svelte +108 -0
  4. package/dist/Alert.svelte.d.ts +16 -0
  5. package/dist/Alert.svelte.d.ts.map +1 -0
  6. package/dist/ApiDeclarationList.svelte +35 -0
  7. package/dist/ApiDeclarationList.svelte.d.ts +9 -0
  8. package/dist/ApiDeclarationList.svelte.d.ts.map +1 -0
  9. package/dist/ApiIndex.svelte +65 -0
  10. package/dist/ApiIndex.svelte.d.ts +23 -0
  11. package/dist/ApiIndex.svelte.d.ts.map +1 -0
  12. package/dist/ApiModule.svelte +124 -0
  13. package/dist/ApiModule.svelte.d.ts +22 -0
  14. package/dist/ApiModule.svelte.d.ts.map +1 -0
  15. package/dist/Breadcrumb.svelte +83 -0
  16. package/dist/Breadcrumb.svelte.d.ts +23 -0
  17. package/dist/Breadcrumb.svelte.d.ts.map +1 -0
  18. package/dist/Card.svelte +157 -0
  19. package/dist/Card.svelte.d.ts +13 -0
  20. package/dist/Card.svelte.d.ts.map +1 -0
  21. package/dist/ColorSchemeInput.svelte +65 -0
  22. package/dist/ColorSchemeInput.svelte.d.ts +11 -0
  23. package/dist/ColorSchemeInput.svelte.d.ts.map +1 -0
  24. package/dist/Contextmenu.svelte +30 -0
  25. package/dist/Contextmenu.svelte.d.ts +32 -0
  26. package/dist/Contextmenu.svelte.d.ts.map +1 -0
  27. package/dist/ContextmenuEntry.svelte +74 -0
  28. package/dist/ContextmenuEntry.svelte.d.ts +12 -0
  29. package/dist/ContextmenuEntry.svelte.d.ts.map +1 -0
  30. package/dist/ContextmenuLinkEntry.svelte +112 -0
  31. package/dist/ContextmenuLinkEntry.svelte.d.ts +12 -0
  32. package/dist/ContextmenuLinkEntry.svelte.d.ts.map +1 -0
  33. package/dist/ContextmenuRoot.svelte +372 -0
  34. package/dist/ContextmenuRoot.svelte.d.ts +71 -0
  35. package/dist/ContextmenuRoot.svelte.d.ts.map +1 -0
  36. package/dist/ContextmenuRootForSafariCompatibility.svelte +541 -0
  37. package/dist/ContextmenuRootForSafariCompatibility.svelte.d.ts +79 -0
  38. package/dist/ContextmenuRootForSafariCompatibility.svelte.d.ts.map +1 -0
  39. package/dist/ContextmenuSeparator.svelte +16 -0
  40. package/dist/ContextmenuSeparator.svelte.d.ts +4 -0
  41. package/dist/ContextmenuSeparator.svelte.d.ts.map +1 -0
  42. package/dist/ContextmenuSubmenu.svelte +116 -0
  43. package/dist/ContextmenuSubmenu.svelte.d.ts +10 -0
  44. package/dist/ContextmenuSubmenu.svelte.d.ts.map +1 -0
  45. package/dist/ContextmenuTextEntry.svelte +21 -0
  46. package/dist/ContextmenuTextEntry.svelte.d.ts +10 -0
  47. package/dist/ContextmenuTextEntry.svelte.d.ts.map +1 -0
  48. package/dist/CopyToClipboard.svelte +81 -0
  49. package/dist/CopyToClipboard.svelte.d.ts +18 -0
  50. package/dist/CopyToClipboard.svelte.d.ts.map +1 -0
  51. package/dist/DeclarationDetail.svelte +340 -0
  52. package/dist/DeclarationDetail.svelte.d.ts +8 -0
  53. package/dist/DeclarationDetail.svelte.d.ts.map +1 -0
  54. package/dist/DeclarationLink.svelte +50 -0
  55. package/dist/DeclarationLink.svelte.d.ts +8 -0
  56. package/dist/DeclarationLink.svelte.d.ts.map +1 -0
  57. package/dist/Details.svelte +51 -0
  58. package/dist/Details.svelte.d.ts +20 -0
  59. package/dist/Details.svelte.d.ts.map +1 -0
  60. package/dist/Dialog.svelte +217 -0
  61. package/dist/Dialog.svelte.d.ts +30 -0
  62. package/dist/Dialog.svelte.d.ts.map +1 -0
  63. package/dist/Dialogs.svelte +28 -0
  64. package/dist/Dialogs.svelte.d.ts +11 -0
  65. package/dist/Dialogs.svelte.d.ts.map +1 -0
  66. package/dist/Docs.svelte +179 -0
  67. package/dist/Docs.svelte.d.ts +13 -0
  68. package/dist/Docs.svelte.d.ts.map +1 -0
  69. package/dist/DocsContent.svelte +40 -0
  70. package/dist/DocsContent.svelte.d.ts +14 -0
  71. package/dist/DocsContent.svelte.d.ts.map +1 -0
  72. package/dist/DocsFooter.svelte +64 -0
  73. package/dist/DocsFooter.svelte.d.ts +15 -0
  74. package/dist/DocsFooter.svelte.d.ts.map +1 -0
  75. package/dist/DocsLink.svelte +41 -0
  76. package/dist/DocsLink.svelte.d.ts +12 -0
  77. package/dist/DocsLink.svelte.d.ts.map +1 -0
  78. package/dist/DocsList.svelte +44 -0
  79. package/dist/DocsList.svelte.d.ts +11 -0
  80. package/dist/DocsList.svelte.d.ts.map +1 -0
  81. package/dist/DocsMenu.svelte +55 -0
  82. package/dist/DocsMenu.svelte.d.ts +11 -0
  83. package/dist/DocsMenu.svelte.d.ts.map +1 -0
  84. package/dist/DocsMenuHeader.svelte +15 -0
  85. package/dist/DocsMenuHeader.svelte.d.ts +9 -0
  86. package/dist/DocsMenuHeader.svelte.d.ts.map +1 -0
  87. package/dist/DocsModulesList.svelte +32 -0
  88. package/dist/DocsModulesList.svelte.d.ts +7 -0
  89. package/dist/DocsModulesList.svelte.d.ts.map +1 -0
  90. package/dist/DocsPageLinks.svelte +61 -0
  91. package/dist/DocsPageLinks.svelte.d.ts +8 -0
  92. package/dist/DocsPageLinks.svelte.d.ts.map +1 -0
  93. package/dist/DocsPrimaryNav.svelte +93 -0
  94. package/dist/DocsPrimaryNav.svelte.d.ts +11 -0
  95. package/dist/DocsPrimaryNav.svelte.d.ts.map +1 -0
  96. package/dist/DocsSearch.svelte +48 -0
  97. package/dist/DocsSearch.svelte.d.ts +11 -0
  98. package/dist/DocsSearch.svelte.d.ts.map +1 -0
  99. package/dist/DocsSecondaryNav.svelte +63 -0
  100. package/dist/DocsSecondaryNav.svelte.d.ts +9 -0
  101. package/dist/DocsSecondaryNav.svelte.d.ts.map +1 -0
  102. package/dist/DocsTertiaryNav.svelte +118 -0
  103. package/dist/DocsTertiaryNav.svelte.d.ts +10 -0
  104. package/dist/DocsTertiaryNav.svelte.d.ts.map +1 -0
  105. package/dist/EcosystemLinks.svelte +53 -0
  106. package/dist/EcosystemLinks.svelte.d.ts +7 -0
  107. package/dist/EcosystemLinks.svelte.d.ts.map +1 -0
  108. package/dist/EcosystemLinksPanel.svelte +22 -0
  109. package/dist/EcosystemLinksPanel.svelte.d.ts +8 -0
  110. package/dist/EcosystemLinksPanel.svelte.d.ts.map +1 -0
  111. package/dist/GithubLink.svelte +75 -0
  112. package/dist/GithubLink.svelte.d.ts +14 -0
  113. package/dist/GithubLink.svelte.d.ts.map +1 -0
  114. package/dist/Glyph.svelte +28 -0
  115. package/dist/Glyph.svelte.d.ts +9 -0
  116. package/dist/Glyph.svelte.d.ts.map +1 -0
  117. package/dist/Hashlink.svelte +41 -0
  118. package/dist/Hashlink.svelte.d.ts +8 -0
  119. package/dist/Hashlink.svelte.d.ts.map +1 -0
  120. package/dist/HiddenPersonalLinks.svelte +6 -0
  121. package/dist/HiddenPersonalLinks.svelte.d.ts +27 -0
  122. package/dist/HiddenPersonalLinks.svelte.d.ts.map +1 -0
  123. package/dist/HueInput.svelte +127 -0
  124. package/dist/HueInput.svelte.d.ts +11 -0
  125. package/dist/HueInput.svelte.d.ts.map +1 -0
  126. package/dist/ImgOrSvg.svelte +58 -0
  127. package/dist/ImgOrSvg.svelte.d.ts +25 -0
  128. package/dist/ImgOrSvg.svelte.d.ts.map +1 -0
  129. package/dist/LibraryDetail.svelte +297 -0
  130. package/dist/LibraryDetail.svelte.d.ts +15 -0
  131. package/dist/LibraryDetail.svelte.d.ts.map +1 -0
  132. package/dist/LibrarySummary.svelte +151 -0
  133. package/dist/LibrarySummary.svelte.d.ts +16 -0
  134. package/dist/LibrarySummary.svelte.d.ts.map +1 -0
  135. package/dist/MdnLink.svelte +40 -0
  136. package/dist/MdnLink.svelte.d.ts +8 -0
  137. package/dist/MdnLink.svelte.d.ts.map +1 -0
  138. package/dist/Mdz.svelte +30 -0
  139. package/dist/Mdz.svelte.d.ts +10 -0
  140. package/dist/Mdz.svelte.d.ts.map +1 -0
  141. package/dist/MdzNodeView.svelte +93 -0
  142. package/dist/MdzNodeView.svelte.d.ts +9 -0
  143. package/dist/MdzNodeView.svelte.d.ts.map +1 -0
  144. package/dist/ModuleLink.svelte +48 -0
  145. package/dist/ModuleLink.svelte.d.ts +8 -0
  146. package/dist/ModuleLink.svelte.d.ts.map +1 -0
  147. package/dist/PasteFromClipboard.svelte +35 -0
  148. package/dist/PasteFromClipboard.svelte.d.ts +9 -0
  149. package/dist/PasteFromClipboard.svelte.d.ts.map +1 -0
  150. package/dist/PendingAnimation.svelte +62 -0
  151. package/dist/PendingAnimation.svelte.d.ts +13 -0
  152. package/dist/PendingAnimation.svelte.d.ts.map +1 -0
  153. package/dist/PendingButton.svelte +75 -0
  154. package/dist/PendingButton.svelte.d.ts +17 -0
  155. package/dist/PendingButton.svelte.d.ts.map +1 -0
  156. package/dist/ProjectLinks.svelte +54 -0
  157. package/dist/ProjectLinks.svelte.d.ts +19 -0
  158. package/dist/ProjectLinks.svelte.d.ts.map +1 -0
  159. package/dist/Redirect.svelte +44 -0
  160. package/dist/Redirect.svelte.d.ts +23 -0
  161. package/dist/Redirect.svelte.d.ts.map +1 -0
  162. package/dist/Spiders.svelte +57 -0
  163. package/dist/Spiders.svelte.d.ts +9 -0
  164. package/dist/Spiders.svelte.d.ts.map +1 -0
  165. package/dist/Svg.svelte +99 -0
  166. package/dist/Svg.svelte.d.ts +54 -0
  167. package/dist/Svg.svelte.d.ts.map +1 -0
  168. package/dist/Teleport.svelte +48 -0
  169. package/dist/Teleport.svelte.d.ts +15 -0
  170. package/dist/Teleport.svelte.d.ts.map +1 -0
  171. package/dist/ThemeInput.svelte +75 -0
  172. package/dist/ThemeInput.svelte.d.ts +15 -0
  173. package/dist/ThemeInput.svelte.d.ts.map +1 -0
  174. package/dist/Themed.svelte +101 -0
  175. package/dist/Themed.svelte.d.ts +24 -0
  176. package/dist/Themed.svelte.d.ts.map +1 -0
  177. package/dist/TomeContent.svelte +67 -0
  178. package/dist/TomeContent.svelte.d.ts +12 -0
  179. package/dist/TomeContent.svelte.d.ts.map +1 -0
  180. package/dist/TomeHeader.svelte +56 -0
  181. package/dist/TomeHeader.svelte.d.ts +4 -0
  182. package/dist/TomeHeader.svelte.d.ts.map +1 -0
  183. package/dist/TomeLink.svelte +29 -0
  184. package/dist/TomeLink.svelte.d.ts +10 -0
  185. package/dist/TomeLink.svelte.d.ts.map +1 -0
  186. package/dist/TomeSection.svelte +65 -0
  187. package/dist/TomeSection.svelte.d.ts +24 -0
  188. package/dist/TomeSection.svelte.d.ts.map +1 -0
  189. package/dist/TomeSectionHeader.svelte +90 -0
  190. package/dist/TomeSectionHeader.svelte.d.ts +13 -0
  191. package/dist/TomeSectionHeader.svelte.d.ts.map +1 -0
  192. package/dist/TypeLink.svelte +19 -0
  193. package/dist/TypeLink.svelte.d.ts +7 -0
  194. package/dist/TypeLink.svelte.d.ts.map +1 -0
  195. package/dist/alert.d.ts +7 -0
  196. package/dist/alert.d.ts.map +1 -0
  197. package/dist/alert.js +6 -0
  198. package/dist/api_search.svelte.d.ts +16 -0
  199. package/dist/api_search.svelte.d.ts.map +1 -0
  200. package/dist/api_search.svelte.js +61 -0
  201. package/dist/constants.d.ts +2 -0
  202. package/dist/constants.d.ts.map +1 -0
  203. package/dist/constants.js +3 -0
  204. package/dist/context_helpers.d.ts +17 -0
  205. package/dist/context_helpers.d.ts.map +1 -0
  206. package/dist/context_helpers.js +19 -0
  207. package/dist/contextmenu_helpers.d.ts +16 -0
  208. package/dist/contextmenu_helpers.d.ts.map +1 -0
  209. package/dist/contextmenu_helpers.js +39 -0
  210. package/dist/contextmenu_state.svelte.d.ts +152 -0
  211. package/dist/contextmenu_state.svelte.d.ts.map +1 -0
  212. package/dist/contextmenu_state.svelte.js +424 -0
  213. package/dist/csp.d.ts +160 -0
  214. package/dist/csp.d.ts.map +1 -0
  215. package/dist/csp.js +354 -0
  216. package/dist/csp_of_ryanatkn.d.ts +6 -0
  217. package/dist/csp_of_ryanatkn.d.ts.map +1 -0
  218. package/dist/csp_of_ryanatkn.js +14 -0
  219. package/dist/declaration.svelte.d.ts +84 -0
  220. package/dist/declaration.svelte.d.ts.map +1 -0
  221. package/dist/declaration.svelte.js +66 -0
  222. package/dist/declaration_contextmenu.d.ts +4 -0
  223. package/dist/declaration_contextmenu.d.ts.map +1 -0
  224. package/dist/declaration_contextmenu.js +14 -0
  225. package/dist/dialog.d.ts +24 -0
  226. package/dist/dialog.d.ts.map +1 -0
  227. package/dist/dialog.js +12 -0
  228. package/dist/dimensions.svelte.d.ts +5 -0
  229. package/dist/dimensions.svelte.d.ts.map +1 -0
  230. package/dist/dimensions.svelte.js +4 -0
  231. package/dist/docs_helpers.svelte.d.ts +48 -0
  232. package/dist/docs_helpers.svelte.d.ts.map +1 -0
  233. package/dist/docs_helpers.svelte.js +99 -0
  234. package/dist/helpers.d.ts +2 -0
  235. package/dist/helpers.d.ts.map +1 -0
  236. package/dist/helpers.js +16 -0
  237. package/dist/intersect.svelte.d.ts +47 -0
  238. package/dist/intersect.svelte.d.ts.map +1 -0
  239. package/dist/intersect.svelte.js +92 -0
  240. package/dist/library.svelte.d.ts +197 -0
  241. package/dist/library.svelte.d.ts.map +1 -0
  242. package/dist/library.svelte.js +130 -0
  243. package/dist/library_gen.d.ts +34 -0
  244. package/dist/library_gen.d.ts.map +1 -0
  245. package/dist/library_gen.js +123 -0
  246. package/dist/library_gen_helpers.d.ts +85 -0
  247. package/dist/library_gen_helpers.d.ts.map +1 -0
  248. package/dist/library_gen_helpers.js +188 -0
  249. package/dist/library_helpers.d.ts +54 -0
  250. package/dist/library_helpers.d.ts.map +1 -0
  251. package/dist/library_helpers.js +102 -0
  252. package/dist/logos.d.ts +134 -0
  253. package/dist/logos.d.ts.map +1 -0
  254. package/dist/logos.js +281 -0
  255. package/dist/mdz.d.ts +106 -0
  256. package/dist/mdz.d.ts.map +1 -0
  257. package/dist/mdz.js +1481 -0
  258. package/dist/mdz_components.d.ts +37 -0
  259. package/dist/mdz_components.d.ts.map +1 -0
  260. package/dist/mdz_components.js +12 -0
  261. package/dist/module.svelte.d.ts +47 -0
  262. package/dist/module.svelte.d.ts.map +1 -0
  263. package/dist/module.svelte.js +56 -0
  264. package/dist/module_contextmenu.d.ts +4 -0
  265. package/dist/module_contextmenu.d.ts.map +1 -0
  266. package/dist/module_contextmenu.js +14 -0
  267. package/dist/module_helpers.d.ts +69 -0
  268. package/dist/module_helpers.d.ts.map +1 -0
  269. package/dist/module_helpers.js +87 -0
  270. package/dist/rune_helpers.svelte.d.ts +6 -0
  271. package/dist/rune_helpers.svelte.d.ts.map +1 -0
  272. package/dist/rune_helpers.svelte.js +10 -0
  273. package/dist/storage.d.ts +13 -0
  274. package/dist/storage.d.ts.map +1 -0
  275. package/dist/storage.js +43 -0
  276. package/dist/svelte_helpers.d.ts +37 -0
  277. package/dist/svelte_helpers.d.ts.map +1 -0
  278. package/dist/svelte_helpers.js +245 -0
  279. package/dist/themer.svelte.d.ts +24 -0
  280. package/dist/themer.svelte.d.ts.map +1 -0
  281. package/dist/themer.svelte.js +43 -0
  282. package/dist/tome.d.ts +80 -0
  283. package/dist/tome.d.ts.map +1 -0
  284. package/dist/tome.js +27 -0
  285. package/dist/ts_helpers.d.ts +110 -0
  286. package/dist/ts_helpers.d.ts.map +1 -0
  287. package/dist/ts_helpers.js +533 -0
  288. package/dist/tsdoc_helpers.d.ts +98 -0
  289. package/dist/tsdoc_helpers.d.ts.map +1 -0
  290. package/dist/tsdoc_helpers.js +221 -0
  291. package/package.json +128 -0
  292. package/src/lib/alert.ts +14 -0
  293. package/src/lib/api_search.svelte.ts +85 -0
  294. package/src/lib/constants.ts +3 -0
  295. package/src/lib/context_helpers.ts +47 -0
  296. package/src/lib/contextmenu_helpers.ts +63 -0
  297. package/src/lib/contextmenu_state.svelte.ts +515 -0
  298. package/src/lib/csp.ts +576 -0
  299. package/src/lib/csp_of_ryanatkn.ts +16 -0
  300. package/src/lib/declaration.svelte.ts +102 -0
  301. package/src/lib/declaration_contextmenu.ts +22 -0
  302. package/src/lib/dialog.ts +35 -0
  303. package/src/lib/dimensions.svelte.ts +4 -0
  304. package/src/lib/docs_helpers.svelte.ts +149 -0
  305. package/src/lib/helpers.ts +10 -0
  306. package/src/lib/intersect.svelte.ts +152 -0
  307. package/src/lib/library.svelte.ts +162 -0
  308. package/src/lib/library_gen.ts +160 -0
  309. package/src/lib/library_gen_helpers.ts +262 -0
  310. package/src/lib/library_helpers.ts +123 -0
  311. package/src/lib/logos.ts +302 -0
  312. package/src/lib/mdz.ts +1819 -0
  313. package/src/lib/mdz_components.ts +34 -0
  314. package/src/lib/module.svelte.ts +78 -0
  315. package/src/lib/module_contextmenu.ts +20 -0
  316. package/src/lib/module_helpers.ts +113 -0
  317. package/src/lib/rune_helpers.svelte.ts +10 -0
  318. package/src/lib/storage.ts +48 -0
  319. package/src/lib/svelte_helpers.ts +303 -0
  320. package/src/lib/themer.svelte.ts +68 -0
  321. package/src/lib/tome.ts +38 -0
  322. package/src/lib/ts_helpers.ts +662 -0
  323. package/src/lib/tsdoc_helpers.ts +259 -0
@@ -0,0 +1,51 @@
1
+ <script lang="ts">
2
+ import type {Snippet} from 'svelte';
3
+ import type {SvelteHTMLElements} from 'svelte/elements';
4
+ import {slide} from 'svelte/transition';
5
+
6
+ // TODO it may be possible to cleanly add the transition with eager rendering by intercepting the open user action
7
+ // in this case, lazy rendering is probably the better default to retain `ctrl+f` functionality
8
+
9
+ /**
10
+ * Like `details` but renders children lazily by default.
11
+ */
12
+
13
+ let {
14
+ open = $bindable(),
15
+ eager,
16
+ summary_attrs,
17
+ summary,
18
+ children,
19
+ ...rest
20
+ }: SvelteHTMLElements['details'] & {
21
+ open?: boolean;
22
+ /**
23
+ * Children are lazily rendered by default,
24
+ * enabling transitions and improving performance, sometimes significantly.
25
+ * Pass `true` to render children eagerly to gain
26
+ * `ctrl+f` functionality while trading away the benefits.
27
+ * Consider a `<details>` element instead of making this component eager.
28
+ */
29
+ eager?: boolean;
30
+ summary: string | Snippet;
31
+ summary_attrs?: SvelteHTMLElements['summary'];
32
+ children: Snippet;
33
+ } = $props();
34
+
35
+ // TODO why doesn't the slide out work?
36
+ </script>
37
+
38
+ <details {...rest} bind:open>
39
+ <summary {...summary_attrs}>
40
+ {#if typeof summary === 'string'}
41
+ {summary}
42
+ {:else}
43
+ {@render summary()}
44
+ {/if}
45
+ </summary>
46
+ {#if eager}
47
+ {@render children()}
48
+ {:else if open}
49
+ <div transition:slide>{@render children()}</div>
50
+ {/if}
51
+ </details>
@@ -0,0 +1,20 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { SvelteHTMLElements } from 'svelte/elements';
3
+ type $$ComponentProps = SvelteHTMLElements['details'] & {
4
+ open?: boolean;
5
+ /**
6
+ * Children are lazily rendered by default,
7
+ * enabling transitions and improving performance, sometimes significantly.
8
+ * Pass `true` to render children eagerly to gain
9
+ * `ctrl+f` functionality while trading away the benefits.
10
+ * Consider a `<details>` element instead of making this component eager.
11
+ */
12
+ eager?: boolean;
13
+ summary: string | Snippet;
14
+ summary_attrs?: SvelteHTMLElements['summary'];
15
+ children: Snippet;
16
+ };
17
+ declare const Details: import("svelte").Component<$$ComponentProps, {}, "open">;
18
+ type Details = ReturnType<typeof Details>;
19
+ export default Details;
20
+ //# sourceMappingURL=Details.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Details.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Details.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAGvD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,SAAS,CAAC,GAAG;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AA0CH,QAAA,MAAM,OAAO,0DAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
@@ -0,0 +1,217 @@
1
+ <script lang="ts">
2
+ import type {Snippet} from 'svelte';
3
+ import {is_editable, swallow} from '@fuzdev/fuz_util/dom.js';
4
+ import {wait} from '@fuzdev/fuz_util/async.js';
5
+
6
+ import Teleport from './Teleport.svelte';
7
+ import type {DialogLayout} from './dialog.js';
8
+
9
+ // TODO use `<dialog>` here instead of `Teleport`
10
+ // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog
11
+
12
+ /*
13
+
14
+ This component is a singleton that mounts to a #dialog container element added to the body,
15
+ using a `Teleport` component to avoid ancestor-caused style issues like overflow and z-index.
16
+ It adds `.dialog` to the body when mounted to fix scrolling behavior,
17
+ and adds padding to the body to adjust for any scrollbars.
18
+ It uses a CSS custom property for this to avoid the high complexity of trying to
19
+ correctly revert any preexisting values for overflow and padding on the body.
20
+ We don't want to add restrictions to what users can do to the body on their own!
21
+
22
+ */
23
+
24
+ const {
25
+ container,
26
+ layout = 'centered',
27
+ index = 0,
28
+ active = true,
29
+ content_selector = '.pane',
30
+ onclose,
31
+ children,
32
+ }: {
33
+ // TODO maybe change this API away from an element to a selector? or remove the API completely?
34
+ container?: HTMLElement;
35
+ /**
36
+ * @default 'centered'
37
+ */
38
+ layout?: DialogLayout;
39
+ /**
40
+ * index 0 is under 1 is under 2 etc -- the topmost dialog is the last in the array
41
+ * @default 0
42
+ */
43
+ index?: number;
44
+ /**
45
+ * @default true
46
+ */
47
+ active?: boolean;
48
+ /**
49
+ * If provided, prevents clicks that would close the dialog
50
+ * from bubbling past any elements matching this selector.
51
+ * @default '.pane'
52
+ */
53
+ content_selector?: string | null;
54
+ onclose?: () => void;
55
+ children: Snippet<[close: (e?: Event) => void]>;
56
+ } = $props();
57
+
58
+ const ROOT_SELECTOR = 'body'; // TODO make configurable
59
+ const CONTAINER_ID = 'fuz_dialog';
60
+
61
+ let container_el: HTMLElement | undefined = $state();
62
+ $effect(() => {
63
+ update_container_el(container);
64
+ });
65
+
66
+ const update_container_el = (container: HTMLElement | undefined): void => {
67
+ if (container) {
68
+ container_el = container;
69
+ } else {
70
+ const found = document.getElementById(CONTAINER_ID);
71
+ if (found) {
72
+ container_el = found;
73
+ } else {
74
+ const root_el = document.querySelector(ROOT_SELECTOR);
75
+ if (!root_el) {
76
+ throw Error(`Cannot find dialog root element with selector '${ROOT_SELECTOR}'`);
77
+ }
78
+ container_el = document.createElement('div');
79
+ container_el.id = CONTAINER_ID;
80
+ container_el.style.display = 'contents';
81
+ root_el.appendChild(container_el);
82
+ }
83
+ }
84
+ };
85
+
86
+ let dialog_el: HTMLElement | undefined = $state();
87
+ let content_el: HTMLElement | undefined = $state();
88
+
89
+ const close = (e?: Event) => {
90
+ if (e) swallow(e);
91
+ onclose?.();
92
+ };
93
+
94
+ // TODO hook into a ui input system
95
+ const on_window_keydown = (e: KeyboardEvent) => {
96
+ if (e.key === 'Escape' && !is_editable(e.target)) {
97
+ // apply hotkey only for the top-most dialog
98
+ const parent_el = dialog_el?.parentElement;
99
+ const parents = parent_el?.parentElement?.children;
100
+ const index = Array.prototype.indexOf.call(parents, parent_el);
101
+ if (!parents || index === parents.length - 1 || index === -1) {
102
+ close(e);
103
+ }
104
+ }
105
+ };
106
+
107
+ // The dialog isn't "ready" until the teleport moves it.
108
+ // Rendering the the dialog's children only once it's ready fixes things like `autofocus`.
109
+ let ready = $state(false);
110
+ </script>
111
+
112
+ <svelte:window onkeydown={active ? on_window_keydown : undefined} />
113
+
114
+ <!--
115
+ The `tabindex` and `el.focus()` fix scrolling with the keyboard,
116
+ needed because SvelteKit puts `tabindex` on the body,
117
+ but there's more that needs to be done for accessibility, like focus capture.
118
+ For more see: https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_modal
119
+ and https://developer.mozilla.org/en-US/docs/Web/Accessibility/Keyboard-navigable_JavaScript_widgets
120
+ -->
121
+ <Teleport
122
+ to={container_el}
123
+ onmove={async () => {
124
+ await wait(); // TODO this is a hack to get animations working, `Teleport` now mounts synchronously?!
125
+ ready = true;
126
+ dialog_el?.focus(); // TODO make this more declarative? probably want to focus only after moving though, not on mount, which makes an action trickier
127
+ }}
128
+ >
129
+ <div
130
+ class="dialog"
131
+ class:ready
132
+ class:layout_page={layout === 'page'}
133
+ role="dialog"
134
+ aria-modal="true"
135
+ bind:this={dialog_el}
136
+ tabindex="-1"
137
+ style:z-index={100 + index}
138
+ >
139
+ <div class="dialog_layout">
140
+ <div
141
+ class="dialog_wrapper"
142
+ role="none"
143
+ onmousedown={(e) => {
144
+ // Close if clicking outside `content_el` but inside the wrapper
145
+ const target = e.target as Element;
146
+ if (
147
+ content_el &&
148
+ (content_el === target ||
149
+ !content_el.contains(target) ||
150
+ (content_selector && !target.closest(content_selector)))
151
+ ) {
152
+ close(e);
153
+ }
154
+ }}
155
+ >
156
+ <div class="dialog_bg" aria-hidden="true"></div>
157
+ <div class="dialog_content" bind:this={content_el}>
158
+ <!-- mount the content only after teleporting to avoid issues -->
159
+ {#if ready}{@render children(close)}{/if}
160
+ </div>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ </Teleport>
165
+
166
+ <style>
167
+ .dialog {
168
+ --pane_shadow: var(--shadow_bottom_xl)
169
+ color-mix(in hsl, var(--shadow_color) var(--shadow_alpha_5), transparent);
170
+ position: fixed;
171
+ inset: 0;
172
+ overflow: auto;
173
+ /* this simplifies the code a lot but doesn't prevent scrolling
174
+ the underlying content when the dialog doesn't overflow, even when `overflow: scroll`
175
+ TODO check if this behaves as desired after switching to use the `dialog` element */
176
+ overscroll-behavior: contain;
177
+ }
178
+
179
+ .dialog_wrapper {
180
+ position: relative; /* for the bg */
181
+ min-height: 100%;
182
+ display: flex;
183
+ align-items: center;
184
+ justify-content: center;
185
+ }
186
+ .layout_page .dialog_wrapper {
187
+ align-items: start;
188
+ }
189
+
190
+ .dialog_bg {
191
+ position: absolute;
192
+ inset: 0;
193
+ z-index: 0;
194
+ opacity: 0;
195
+ transition: opacity var(--duration_3) ease;
196
+ background-color: var(--dialog_bg, var(--darken_6));
197
+ }
198
+ .ready .dialog_bg {
199
+ opacity: 1;
200
+ }
201
+
202
+ .dialog_layout {
203
+ height: 100%;
204
+ /* makes the content overflow downwards instead of upwards+downwards because it's centered */
205
+ max-height: 100%;
206
+ }
207
+
208
+ .dialog_content {
209
+ width: 100%;
210
+ transform: scale(0.99);
211
+ transition: transform var(--duration_1) ease;
212
+ padding: 40px;
213
+ }
214
+ .ready .dialog_content {
215
+ transform: scale(1);
216
+ }
217
+ </style>
@@ -0,0 +1,30 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { DialogLayout } from './dialog.js';
3
+ type $$ComponentProps = {
4
+ container?: HTMLElement;
5
+ /**
6
+ * @default 'centered'
7
+ */
8
+ layout?: DialogLayout;
9
+ /**
10
+ * index 0 is under 1 is under 2 etc -- the topmost dialog is the last in the array
11
+ * @default 0
12
+ */
13
+ index?: number;
14
+ /**
15
+ * @default true
16
+ */
17
+ active?: boolean;
18
+ /**
19
+ * If provided, prevents clicks that would close the dialog
20
+ * from bubbling past any elements matching this selector.
21
+ * @default '.pane'
22
+ */
23
+ content_selector?: string | null;
24
+ onclose?: () => void;
25
+ children: Snippet<[close: (e?: Event) => void]>;
26
+ };
27
+ declare const Dialog: import("svelte").Component<$$ComponentProps, {}, "">;
28
+ type Dialog = ReturnType<typeof Dialog>;
29
+ export default Dialog;
30
+ //# sourceMappingURL=Dialog.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Dialog.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAKpC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAE7C,KAAK,gBAAgB,GAAI;IAExB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;CAChD,CAAC;AA4HH,QAAA,MAAM,MAAM,sDAAwC,CAAC;AACrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;AACxC,eAAe,MAAM,CAAC"}
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import type {Snippet} from 'svelte';
3
+
4
+ import type {DialogParams} from './dialog.js';
5
+ import Dialog from './Dialog.svelte';
6
+
7
+ // TODO this is experimental
8
+
9
+ const {
10
+ dialogs,
11
+ onclose,
12
+ children,
13
+ }: {
14
+ dialogs: Array<DialogParams>;
15
+ onclose?: () => void;
16
+ children?: Snippet<[dialog: DialogParams]>;
17
+ } = $props();
18
+ </script>
19
+
20
+ {#each dialogs as dialog, index (dialog)}<Dialog
21
+ {onclose}
22
+ {...dialog.dialog_props}
23
+ {index}
24
+ active={index === dialogs.length - 1}
25
+ >{#if children}{@render children(dialog)}{:else}<dialog.Component
26
+ {...dialog.props}
27
+ />{/if}</Dialog
28
+ >{/each}
@@ -0,0 +1,11 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { DialogParams } from './dialog.js';
3
+ type $$ComponentProps = {
4
+ dialogs: Array<DialogParams>;
5
+ onclose?: () => void;
6
+ children?: Snippet<[dialog: DialogParams]>;
7
+ };
8
+ declare const Dialogs: import("svelte").Component<$$ComponentProps, {}, "">;
9
+ type Dialogs = ReturnType<typeof Dialogs>;
10
+ export default Dialogs;
11
+ //# sourceMappingURL=Dialogs.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialogs.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Dialogs.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAG7C,KAAK,gBAAgB,GAAI;IACxB,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;CAC3C,CAAC;AAoBH,QAAA,MAAM,OAAO,sDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
@@ -0,0 +1,179 @@
1
+ <script lang="ts">
2
+ import type {Snippet} from 'svelte';
3
+ import {onNavigate} from '$app/navigation';
4
+ import {innerWidth} from 'svelte/reactivity/window';
5
+ import {page} from '$app/state';
6
+
7
+ import type {Library} from './library.svelte.js';
8
+ import Breadcrumb from './Breadcrumb.svelte';
9
+ import {Tome, tomes_context} from './tome.js';
10
+ import DocsPrimaryNav from './DocsPrimaryNav.svelte';
11
+ import DocsSecondaryNav from './DocsSecondaryNav.svelte';
12
+ import DocsTertiaryNav from './DocsTertiaryNav.svelte';
13
+ import Dialog from './Dialog.svelte';
14
+ import DocsFooter from './DocsFooter.svelte';
15
+ import {DocsLinks, docs_links_context} from './docs_helpers.svelte.js';
16
+
17
+ const {
18
+ tomes,
19
+ library,
20
+ breadcrumb_children,
21
+ children,
22
+ }: {
23
+ tomes: Array<Tome>;
24
+ library: Library;
25
+ breadcrumb_children?: Snippet<[is_primary_nav: boolean]>;
26
+ children: Snippet;
27
+ } = $props();
28
+
29
+ // TODO this API is messy, inconsistent usage of props/context
30
+ const tomes_by_name = new Map(tomes.map((t) => [t.name, t]));
31
+ tomes_context.set(tomes_by_name);
32
+
33
+ // TODO @many dialog navs - this is messy to satisfy SSR with the current design that puts the secondary nav in a dialog
34
+ const TERTIARY_NAV_BREAKPOINT = 1000;
35
+ const SECONDARY_NAV_BREAKPOINT = 800;
36
+
37
+ const docs_menu_width = '180px';
38
+
39
+ let show_secondary_nav_dialog = $state(false);
40
+ const toggle_secondary_nav_dialog = (show?: boolean): void => {
41
+ show_secondary_nav_dialog = show ?? !show_secondary_nav_dialog;
42
+ };
43
+
44
+ docs_links_context.set(new DocsLinks());
45
+
46
+ onNavigate(() => {
47
+ show_secondary_nav_dialog = false;
48
+ });
49
+ </script>
50
+
51
+ <svelte:window onhashchange={() => (show_secondary_nav_dialog = false)} />
52
+
53
+ <div class="docs" style:--docs_menu_width={docs_menu_width}>
54
+ <DocsPrimaryNav {library} {breadcrumb_children}>
55
+ <div class="nav_dialog_toggle">
56
+ <button class="plain" type="button" onclick={() => toggle_secondary_nav_dialog()}>menu</button
57
+ >
58
+ </div>
59
+ </DocsPrimaryNav>
60
+ <!-- TODO @many dialog navs -->
61
+ {#if !innerWidth.current || innerWidth.current > SECONDARY_NAV_BREAKPOINT}
62
+ <div class="secondary_nav_wrapper">
63
+ <DocsSecondaryNav {tomes} />
64
+ </div>
65
+ {/if}
66
+ <main>
67
+ {#key page.url.pathname}
68
+ {@render children()}
69
+ {/key}
70
+ <!-- TODO @many dialog navs -->
71
+ {#if !innerWidth.current || innerWidth.current > TERTIARY_NAV_BREAKPOINT}
72
+ <DocsTertiaryNav {tomes} {tomes_by_name} />
73
+ {/if}
74
+ <section class="box">
75
+ <DocsFooter {library}>
76
+ <div class="mb_xl5">
77
+ <Breadcrumb>
78
+ {#if breadcrumb_children}
79
+ {@render breadcrumb_children(false)}
80
+ {:else}
81
+ {library.package_json.glyph ?? '🏠'}
82
+ {/if}
83
+ </Breadcrumb>
84
+ </div>
85
+ </DocsFooter>
86
+ </section>
87
+ </main>
88
+ </div>
89
+ <!-- TODO @many dialog navs - instead of a dialog, probably use a popover (new component) -->
90
+ <!-- TODO this is messy rendering `DocsSecondaryNav` twice to handle responsive states with SSR correctly -->
91
+ {#if show_secondary_nav_dialog && innerWidth.current && innerWidth.current <= TERTIARY_NAV_BREAKPOINT}
92
+ <Dialog onclose={() => (show_secondary_nav_dialog = false)}>
93
+ <div class="pane" style:--docs_menu_width={docs_menu_width}>
94
+ <div class="p_xl pb_0">
95
+ <Breadcrumb>
96
+ {#if breadcrumb_children}
97
+ {@render breadcrumb_children(false)}
98
+ {:else}
99
+ {library.package_json.glyph ?? '🏠'}
100
+ {/if}
101
+ </Breadcrumb>
102
+ </div>
103
+ <div class="px_lg pb_xl">
104
+ <DocsSecondaryNav {tomes} sidebar={false} />
105
+ <DocsTertiaryNav {tomes} {tomes_by_name} sidebar={false} />
106
+ </div>
107
+ </div>
108
+ </Dialog>
109
+ {/if}
110
+
111
+ <style>
112
+ .docs {
113
+ --docs_primary_nav_height: 60px;
114
+ --docs_secondary_nav_padding: var(--space_md); /* also used by the tertiary nav */
115
+ --docs_content_padding: var(--space_xl5);
116
+ --docs_content_max_width: calc(var(--distance_md) + var(--docs_content_padding) * 2);
117
+ /* TODO this is broken for scrollbars, so we add `+ 10px` as a messy safeguard (there may be `+ 1px` needed for scaling issues too) */
118
+ --docs_sidebar_width: max(
119
+ calc(var(--docs_menu_width) + 10px + var(--docs_secondary_nav_padding) * 2),
120
+ calc((100% - var(--docs_content_max_width)) / 2)
121
+ );
122
+ display: contents;
123
+ }
124
+
125
+ main {
126
+ position: relative;
127
+ min-height: calc(100vh - var(--docs_primary_nav_height));
128
+ width: calc(100% - var(--docs_sidebar_width) * 2);
129
+ max-width: var(--docs_content_max_width);
130
+ padding: var(--docs_content_padding);
131
+ padding-top: 0;
132
+ margin: 0 auto;
133
+ overflow: hidden; /* TODO maybe heavy handed */
134
+ }
135
+
136
+ .secondary_nav_wrapper {
137
+ display: contents;
138
+ }
139
+
140
+ .nav_dialog_toggle {
141
+ display: none;
142
+ }
143
+ .nav_dialog_toggle button {
144
+ padding-left: var(--space_xl3);
145
+ padding-right: var(--space_xl3);
146
+ border-radius: 0;
147
+ }
148
+
149
+ /* sync this breakpoint with `DocsTertiaryNav` and `TomeSectionHeader` */
150
+ @media (max-width: 1000px) {
151
+ main {
152
+ --docs_content_padding: var(--space_xl);
153
+ /* handle the moved `DocsTertiaryNav` */
154
+ width: calc(100% - var(--docs_sidebar_width));
155
+ margin-right: 0;
156
+ }
157
+
158
+ .nav_dialog_toggle {
159
+ display: contents;
160
+ }
161
+ }
162
+
163
+ /* sync this breakpoint with `DocsPrimaryNav`, `DocsSecondaryNav`, and `TomeSectionHeader` */
164
+ @media (max-width: 800px) {
165
+ main {
166
+ /* handle the moved `DocsSecondaryNav` */
167
+ width: 100%;
168
+ margin-left: 0;
169
+ }
170
+
171
+ .secondary_nav_wrapper {
172
+ display: none;
173
+ }
174
+ }
175
+
176
+ section {
177
+ padding: var(--space_xl2);
178
+ }
179
+ </style>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { Library } from './library.svelte.js';
3
+ import { Tome } from './tome.js';
4
+ type $$ComponentProps = {
5
+ tomes: Array<Tome>;
6
+ library: Library;
7
+ breadcrumb_children?: Snippet<[is_primary_nav: boolean]>;
8
+ children: Snippet;
9
+ };
10
+ declare const Docs: import("svelte").Component<$$ComponentProps, {}, "">;
11
+ type Docs = ReturnType<typeof Docs>;
12
+ export default Docs;
13
+ //# sourceMappingURL=Docs.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Docs.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Docs.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAKpC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAC,IAAI,EAAgB,MAAM,WAAW,CAAC;AAQ7C,KAAK,gBAAgB,GAAI;IACxB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AA6GH,QAAA,MAAM,IAAI,sDAAwC,CAAC;AACnD,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;AACpC,eAAe,IAAI,CAAC"}
@@ -0,0 +1,40 @@
1
+ <script lang="ts">
2
+ import type {Snippet} from 'svelte';
3
+
4
+ import type {Library} from './library.svelte.js';
5
+ import type {Tome} from './tome.js';
6
+ import LibrarySummary from './LibrarySummary.svelte';
7
+
8
+ const {
9
+ tomes,
10
+ library,
11
+ repo_name,
12
+ content,
13
+ header,
14
+ }: {
15
+ tomes: Array<Tome>;
16
+ library: Library;
17
+ repo_name?: Snippet<[repo_name: string]>;
18
+ content?: Snippet;
19
+ header?: Snippet;
20
+ } = $props();
21
+ </script>
22
+
23
+ <div class="width_upto_md">
24
+ {#if header}
25
+ {@render header()}
26
+ {:else}
27
+ <div class="box mb_xl5">
28
+ <LibrarySummary {library} {repo_name} />
29
+ </div>
30
+ {/if}
31
+ <div>
32
+ {#if content}
33
+ {@render content()}
34
+ {:else}
35
+ {#each tomes as tome (tome)}
36
+ <tome.Component />
37
+ {/each}
38
+ {/if}
39
+ </div>
40
+ </div>
@@ -0,0 +1,14 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { Library } from './library.svelte.js';
3
+ import type { Tome } from './tome.js';
4
+ type $$ComponentProps = {
5
+ tomes: Array<Tome>;
6
+ library: Library;
7
+ repo_name?: Snippet<[repo_name: string]>;
8
+ content?: Snippet;
9
+ header?: Snippet;
10
+ };
11
+ declare const DocsContent: import("svelte").Component<$$ComponentProps, {}, "">;
12
+ type DocsContent = ReturnType<typeof DocsContent>;
13
+ export default DocsContent;
14
+ //# sourceMappingURL=DocsContent.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocsContent.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/DocsContent.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAEpC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAGnC,KAAK,gBAAgB,GAAI;IACxB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAsCH,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}