@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,99 @@
1
+ import { resolve } from '$app/paths';
2
+ import { SvelteMap, SvelteSet } from 'svelte/reactivity';
3
+ import { ensure_end, ensure_start } from '@fuzdev/fuz_util/string.js';
4
+ import { create_context } from './context_helpers.js';
5
+ /**
6
+ * Convert a string to a URL-safe fragment identifier, preserving case for API declarations.
7
+ * Only transforms spaces and special characters, keeping valid identifier characters intact.
8
+ * Used for hash anchors in documentation.
9
+ * @param str - The string to convert to a fragment
10
+ * @returns A URL-safe fragment identifier
11
+ */
12
+ export const docs_slugify = (str) => {
13
+ return (str
14
+ .trim()
15
+ // Replace spaces and multiple hyphens with single hyphen
16
+ .replace(/\s+/g, '-')
17
+ .replace(/-+/g, '-')
18
+ // Remove invalid characters (keep letters, digits, _, $, -)
19
+ .replace(/[^\w$-]/g, '')
20
+ // Remove leading/trailing hyphens
21
+ .replace(/^-+|-+$/g, ''));
22
+ };
23
+ export const DOCS_PATH_DEFAULT = '/docs';
24
+ export const DOCS_PATH = resolve('/docs');
25
+ export const DOCS_API_PATH = DOCS_PATH + '/api';
26
+ export const to_docs_path_info = (path_slug, pathname, root_path = DOCS_PATH_DEFAULT) => {
27
+ const path_segment = pathname.split('/').at(-1);
28
+ const path = resolve((ensure_end(ensure_start(root_path, '/'), '/') + path_slug));
29
+ const path_is_selected = path_segment === path_slug; // messy but works
30
+ return { path, path_is_selected, path_segment };
31
+ };
32
+ export const docs_links_context = create_context();
33
+ export class DocsLinks {
34
+ root_path;
35
+ links = new SvelteMap();
36
+ // Maps compound keys (pathname#fragment) to their original order
37
+ // This preserves order across component remounts
38
+ #fragment_to_order = new Map();
39
+ // Counter for generating unique IDs
40
+ #next_id = 0;
41
+ // Counter for generating section IDs (page-scoped, not module-scoped)
42
+ #section_counter = 0;
43
+ // Counter for generating link order values (page-scoped, not module-scoped)
44
+ // This ensures consistent ordering between SSR and client hydration
45
+ #order_counter = 0;
46
+ docs_links = $derived.by(() => {
47
+ // Build parent-child map
48
+ const children_map = new Map();
49
+ for (const link of this.links.values()) {
50
+ if (!children_map.has(link.parent_id)) {
51
+ children_map.set(link.parent_id, []);
52
+ }
53
+ children_map.get(link.parent_id).push(link);
54
+ }
55
+ // Sort siblings by order
56
+ for (const siblings of children_map.values()) {
57
+ siblings.sort((a, b) => a.order - b.order);
58
+ }
59
+ // Flatten tree with depth-first traversal
60
+ const result = [];
61
+ const traverse = (parent_id) => {
62
+ const children = children_map.get(parent_id) || [];
63
+ for (const child of children) {
64
+ result.push(child);
65
+ traverse(child.id); // recursively add children
66
+ }
67
+ };
68
+ traverse(undefined); // start with root nodes (no parent)
69
+ return result;
70
+ });
71
+ fragments_onscreen = new SvelteSet();
72
+ constructor(root_path = DOCS_PATH_DEFAULT) {
73
+ this.root_path = root_path;
74
+ }
75
+ add(fragment, text, pathname, tag, depth = 1, parent_id, explicit_id) {
76
+ // Use explicit ID if provided, otherwise generate one
77
+ const id = explicit_id ?? 'docs_link_' + this.#next_id++;
78
+ // Use compound key (pathname#fragment) to preserve order across remounts
79
+ const page_fragment_key = `${pathname}#${fragment}`;
80
+ const existing_order = this.#fragment_to_order.get(page_fragment_key);
81
+ const order = existing_order ?? this.#order_counter++;
82
+ // Store order for new fragments only
83
+ if (existing_order === undefined) {
84
+ this.#fragment_to_order.set(page_fragment_key, order);
85
+ }
86
+ this.links.set(id, { id, fragment, text, tag, depth, order, parent_id });
87
+ return id;
88
+ }
89
+ remove(id) {
90
+ this.links.delete(id);
91
+ }
92
+ /**
93
+ * Generate a unique section ID for the current page render.
94
+ * This counter is instance-scoped, ensuring SSR/client consistency.
95
+ */
96
+ generate_section_id() {
97
+ return `section_${this.#section_counter++}`;
98
+ }
99
+ }
@@ -0,0 +1,2 @@
1
+ export declare const render_value_to_string: (value: unknown) => string;
2
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,GAAI,OAAO,OAAO,KAAG,MASvD,CAAC"}
@@ -0,0 +1,16 @@
1
+ export const render_value_to_string = (value) => {
2
+ if (value === null)
3
+ return 'null';
4
+ if (value === undefined)
5
+ return 'undefined';
6
+ const type = typeof value;
7
+ if (type === 'string')
8
+ return `'${value}'`; // eslint-disable-line @typescript-eslint/no-base-to-string
9
+ if (type === 'number' || type === 'boolean')
10
+ return value + ''; // eslint-disable-line @typescript-eslint/no-base-to-string
11
+ if (Array.isArray(value))
12
+ return `[${value.map(render_value_to_string).join(', ')}]`;
13
+ if (type === 'object')
14
+ return JSON.stringify(value);
15
+ return value + ''; // eslint-disable-line @typescript-eslint/no-base-to-string
16
+ };
@@ -0,0 +1,47 @@
1
+ import type { Attachment } from 'svelte/attachments';
2
+ export interface IntersectParams {
3
+ /**
4
+ * Called when the element enters or leaves the viewport until disconnected.
5
+ */
6
+ onintersect?: OnIntersect;
7
+ /**
8
+ * Called when the attachment's observer is disconnected,
9
+ * either by the user calling disconnect or the attachment being destroyed.
10
+ */
11
+ ondisconnect?: OnDisconnect;
12
+ /**
13
+ * A value of `1` disconnects after `el` enters and leaves the viewport one time,
14
+ * similar to 'once' for an event.
15
+ * `0` disables and `undefined` or a negative number like `-1` never disconnects.
16
+ */
17
+ count?: number;
18
+ /**
19
+ * Same as the `options` param to
20
+ * [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserver/IntersectionObserver#options)
21
+ */
22
+ options?: IntersectionObserverInit;
23
+ }
24
+ export type IntersectParamsOrCallback = OnIntersect | IntersectParams;
25
+ /**
26
+ * Creates an attachment that observes element viewport intersection.
27
+ * Uses the lazy function pattern to optimize reactivity:
28
+ * callbacks can update without recreating the observer, preserving state.
29
+ * @param get_params Function that returns callback, params object, or nullish to disable
30
+ */
31
+ export declare const intersect: (get_params: () => IntersectParamsOrCallback | null | undefined) => Attachment<HTMLElement | SVGElement>;
32
+ export type OnIntersect = (state: IntersectState) => void;
33
+ export interface IntersectState {
34
+ intersecting: boolean;
35
+ intersections: number;
36
+ el: HTMLElement | SVGElement;
37
+ observer: IntersectionObserver;
38
+ disconnect: () => void;
39
+ }
40
+ export type OnDisconnect = (state: DisconnectState) => void;
41
+ export interface DisconnectState {
42
+ intersecting: boolean;
43
+ intersections: number;
44
+ el: HTMLElement | SVGElement;
45
+ observer: IntersectionObserver;
46
+ }
47
+ //# sourceMappingURL=intersect.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intersect.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/intersect.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAGnD,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG,eAAe,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAEpB,YAAY,MAAM,yBAAyB,GAAG,IAAI,GAAG,SAAS,KAC5D,UAAU,CAAC,WAAW,GAAG,UAAU,CA6FrC,CAAC;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,WAAW,GAAG,UAAU,CAAC;IAC7B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,WAAW,GAAG,UAAU,CAAC;IAC7B,QAAQ,EAAE,oBAAoB,CAAC;CAC/B"}
@@ -0,0 +1,92 @@
1
+ import { deep_equal } from '@fuzdev/fuz_util/deep_equal.js';
2
+ /**
3
+ * Creates an attachment that observes element viewport intersection.
4
+ * Uses the lazy function pattern to optimize reactivity:
5
+ * callbacks can update without recreating the observer, preserving state.
6
+ * @param get_params Function that returns callback, params object, or nullish to disable
7
+ */
8
+ export const intersect = (get_params) => (el) => {
9
+ // State that persists across callback changes
10
+ let intersecting = false;
11
+ let intersections = 0;
12
+ let observer = null;
13
+ let current_options = undefined;
14
+ // Current callbacks - updated reactively without recreating observer
15
+ let current_onintersect;
16
+ let current_ondisconnect;
17
+ let current_count;
18
+ const disconnect = () => {
19
+ if (!observer)
20
+ return;
21
+ const observer_to_disconnect = observer;
22
+ observer.disconnect();
23
+ if (current_ondisconnect) {
24
+ current_ondisconnect({ intersecting, intersections, el, observer: observer_to_disconnect });
25
+ }
26
+ observer = null;
27
+ };
28
+ $effect(() => {
29
+ const params = get_params();
30
+ if (params == null) {
31
+ // Params disabled, disconnect if active
32
+ current_onintersect = undefined;
33
+ current_ondisconnect = undefined;
34
+ current_count = undefined;
35
+ if (observer) {
36
+ disconnect();
37
+ }
38
+ return;
39
+ }
40
+ // Parse params and update current callbacks
41
+ let options;
42
+ if (typeof params === 'function') {
43
+ current_onintersect = params;
44
+ current_ondisconnect = undefined;
45
+ current_count = undefined;
46
+ options = undefined;
47
+ }
48
+ else {
49
+ current_onintersect = params.onintersect;
50
+ current_ondisconnect = params.ondisconnect;
51
+ current_count = params.count;
52
+ options = params.options;
53
+ }
54
+ // Check if count is 0 (disabled)
55
+ if (current_count === 0) {
56
+ if (observer) {
57
+ disconnect();
58
+ }
59
+ return;
60
+ }
61
+ // Check if options changed (requires observer recreation)
62
+ const options_changed = !deep_equal(current_options, options);
63
+ if (options_changed || !observer) {
64
+ // Disconnect old observer if exists
65
+ if (observer) {
66
+ disconnect();
67
+ }
68
+ // Reset state on observer recreation
69
+ intersecting = false;
70
+ intersections = 0;
71
+ current_options = options;
72
+ // Create new observer
73
+ observer = new IntersectionObserver((entries) => {
74
+ intersecting = entries[0].isIntersecting;
75
+ if (current_onintersect && observer) {
76
+ current_onintersect({ intersecting, intersections, el, observer, disconnect });
77
+ }
78
+ if (intersecting) {
79
+ intersections++;
80
+ }
81
+ else {
82
+ if (current_count && current_count > 0 && intersections >= current_count) {
83
+ disconnect();
84
+ }
85
+ }
86
+ }, options);
87
+ observer.observe(el);
88
+ }
89
+ // If only callbacks changed, observer stays alive and uses new callbacks from closure
90
+ });
91
+ return disconnect;
92
+ };
@@ -0,0 +1,197 @@
1
+ import type { LibraryJson } from '@fuzdev/fuz_util/library_json.js';
2
+ import { Declaration } from './declaration.svelte.js';
3
+ import { Module } from './module.svelte.js';
4
+ /**
5
+ * Rich runtime representation of a library.
6
+ *
7
+ * Wraps `LibraryJson` with computed properties and provides the root
8
+ * of the API documentation hierarchy: Library → modules → declarations
9
+ *
10
+ * @see module.svelte.ts for Module class
11
+ * @see declaration.svelte.ts for Declaration class
12
+ */
13
+ export declare class Library {
14
+ readonly library_json: LibraryJson;
15
+ package_json: {
16
+ [x: string]: unknown;
17
+ name: string;
18
+ version: string;
19
+ private?: boolean | undefined;
20
+ public?: boolean | undefined;
21
+ description?: string | undefined;
22
+ motto?: string | undefined;
23
+ glyph?: string | undefined;
24
+ logo?: string | undefined;
25
+ logo_alt?: string | undefined;
26
+ license?: string | undefined;
27
+ scripts?: Record<string, string> | undefined;
28
+ homepage?: string | undefined;
29
+ author?: string | {
30
+ [x: string]: unknown;
31
+ name: string;
32
+ email?: string | undefined;
33
+ url?: string | undefined;
34
+ } | undefined;
35
+ repository?: string | {
36
+ [x: string]: unknown;
37
+ type: string;
38
+ url: string;
39
+ directory?: string | undefined;
40
+ } | undefined;
41
+ contributors?: (string | {
42
+ [x: string]: unknown;
43
+ name: string;
44
+ email?: string | undefined;
45
+ url?: string | undefined;
46
+ })[] | undefined;
47
+ bugs?: string | {
48
+ [x: string]: unknown;
49
+ url?: string | undefined;
50
+ email?: string | undefined;
51
+ } | undefined;
52
+ funding?: string | {
53
+ [x: string]: unknown;
54
+ type: string;
55
+ url: string;
56
+ } | (string | {
57
+ [x: string]: unknown;
58
+ type: string;
59
+ url: string;
60
+ })[] | undefined;
61
+ keywords?: string[] | undefined;
62
+ type?: string | undefined;
63
+ engines?: Record<string, string> | undefined;
64
+ os?: string[] | undefined;
65
+ cpu?: string[] | undefined;
66
+ dependencies?: Record<string, string> | undefined;
67
+ devDependencies?: Record<string, string> | undefined;
68
+ peerDependencies?: Record<string, string> | undefined;
69
+ peerDependenciesMeta?: Record<string, {
70
+ [x: string]: unknown;
71
+ optional: boolean;
72
+ }> | undefined;
73
+ optionalDependencies?: Record<string, string> | undefined;
74
+ bin?: Record<string, string> | undefined;
75
+ sideEffects?: string[] | undefined;
76
+ files?: string[] | undefined;
77
+ main?: string | undefined;
78
+ exports?: string | Record<string, unknown> | null | undefined;
79
+ };
80
+ source_json: {
81
+ [x: string]: unknown;
82
+ name: string;
83
+ version: string;
84
+ modules?: {
85
+ [x: string]: unknown;
86
+ path: string;
87
+ declarations?: {
88
+ [x: string]: unknown;
89
+ name: string;
90
+ kind: "function" | "type" | "json" | "variable" | "class" | "constructor" | "component" | "css";
91
+ doc_comment?: string | undefined;
92
+ type_signature?: string | undefined;
93
+ modifiers?: string[] | undefined;
94
+ source_line?: number | undefined;
95
+ parameters?: {
96
+ [x: string]: unknown;
97
+ name: string;
98
+ type: string;
99
+ optional?: boolean | undefined;
100
+ description?: string | undefined;
101
+ default_value?: string | undefined;
102
+ }[] | undefined;
103
+ return_type?: string | undefined;
104
+ return_description?: string | undefined;
105
+ generic_params?: {
106
+ [x: string]: unknown;
107
+ name: string;
108
+ constraint?: string | undefined;
109
+ default_type?: string | undefined;
110
+ }[] | undefined;
111
+ examples?: string[] | undefined;
112
+ deprecated_message?: string | undefined;
113
+ see_also?: string[] | undefined;
114
+ throws?: {
115
+ [x: string]: unknown;
116
+ description: string;
117
+ type?: string | undefined;
118
+ }[] | undefined;
119
+ since?: string | undefined;
120
+ extends?: string[] | undefined;
121
+ implements?: string[] | undefined;
122
+ members?: Record<string, unknown>[] | undefined;
123
+ properties?: Record<string, unknown>[] | undefined;
124
+ props?: {
125
+ [x: string]: unknown;
126
+ name: string;
127
+ type: string;
128
+ optional?: boolean | undefined;
129
+ description?: string | undefined;
130
+ default_value?: string | undefined;
131
+ bindable?: boolean | undefined;
132
+ }[] | undefined;
133
+ also_exported_from?: string[] | undefined;
134
+ alias_of?: {
135
+ module: string;
136
+ name: string;
137
+ } | undefined;
138
+ }[] | undefined;
139
+ module_comment?: string | undefined;
140
+ dependencies?: string[] | undefined;
141
+ dependents?: string[] | undefined;
142
+ }[] | undefined;
143
+ };
144
+ name: string;
145
+ repo_name: string;
146
+ repo_url: import("@fuzdev/fuz_util/url.js").Url;
147
+ owner_name: string | null;
148
+ homepage_url: import("@fuzdev/fuz_util/url.js").Url | null;
149
+ logo_url: import("@fuzdev/fuz_util/url.js").Url | null;
150
+ logo_alt: string;
151
+ npm_url: import("@fuzdev/fuz_util/url.js").Url | null;
152
+ changelog_url: import("@fuzdev/fuz_util/url.js").Url | null;
153
+ published: boolean;
154
+ /**
155
+ * Organization URL (e.g., 'https://github.com/ryanatkn').
156
+ */
157
+ org_url: string | null;
158
+ /**
159
+ * All modules as rich Module instances.
160
+ */
161
+ modules: Module[];
162
+ /**
163
+ * All modules sorted alphabetically by path.
164
+ */
165
+ modules_sorted: Module[];
166
+ /**
167
+ * All declarations across all modules as a flat array.
168
+ */
169
+ declarations: Declaration[];
170
+ /**
171
+ * Declaration lookup map by name. Provides O(1) lookup.
172
+ */
173
+ declaration_map: Map<string, Declaration>;
174
+ constructor(library_json: LibraryJson);
175
+ /**
176
+ * Look up a declaration by name.
177
+ */
178
+ lookup_declaration(name: string): Declaration | undefined;
179
+ /**
180
+ * Check if a declaration exists.
181
+ */
182
+ has_declaration(name: string): boolean;
183
+ /**
184
+ * Look up a module by its canonical path.
185
+ */
186
+ lookup_module(path: string): Module | undefined;
187
+ /**
188
+ * Search declarations by query string with multi-term AND logic.
189
+ */
190
+ search_declarations(query: string): Array<Declaration>;
191
+ }
192
+ export declare const library_context: {
193
+ get: (error_message?: string) => Library;
194
+ get_maybe: () => Library | undefined;
195
+ set: (value: Library) => Library;
196
+ };
197
+ //# sourceMappingURL=library.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/library.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAE1C;;;;;;;;GAQG;AACH,qBAAa,OAAO;IACnB,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAiB;IAEnD,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA4C;IACxD,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA2C;IAEtD,IAAI,SAAoC;IACxC,SAAS,SAAyC;IAClD,QAAQ,wCAAwC;IAChD,UAAU,gBAA0C;IACpD,YAAY,+CAA4C;IACxD,QAAQ,+CAAwC;IAChD,QAAQ,SAAwC;IAChD,OAAO,+CAAuC;IAC9C,aAAa,+CAA6C;IAC1D,SAAS,UAAyC;IAElD;;OAEG;IACH,OAAO,gBAML;IAEF;;OAEG;IACH,OAAO,WAIL;IAEF;;OAEG;IACH,cAAc,WAA4E;IAE1F;;OAEG;IACH,YAAY,gBAAmE;IAE/E;;OAEG;IACH,eAAe,2BAAgE;gBAEnE,YAAY,EAAE,WAAW;IAIrC;;OAEG;IACH,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIzD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;CAGtD;AAED,eAAO,MAAM,eAAe;;;;CAA4B,CAAC"}
@@ -0,0 +1,130 @@
1
+ import { create_context } from './context_helpers.js';
2
+ import { Declaration } from './declaration.svelte.js';
3
+ import { Module } from './module.svelte.js';
4
+ /**
5
+ * Rich runtime representation of a library.
6
+ *
7
+ * Wraps `LibraryJson` with computed properties and provides the root
8
+ * of the API documentation hierarchy: Library → modules → declarations
9
+ *
10
+ * @see module.svelte.ts for Module class
11
+ * @see declaration.svelte.ts for Declaration class
12
+ */
13
+ export class Library {
14
+ library_json = $state.raw();
15
+ package_json = $derived(this.library_json.package_json);
16
+ source_json = $derived(this.library_json.source_json);
17
+ name = $derived(this.library_json.name);
18
+ repo_name = $derived(this.library_json.repo_name);
19
+ repo_url = $derived(this.library_json.repo_url);
20
+ owner_name = $derived(this.library_json.owner_name);
21
+ homepage_url = $derived(this.library_json.homepage_url);
22
+ logo_url = $derived(this.library_json.logo_url);
23
+ logo_alt = $derived(this.library_json.logo_alt);
24
+ npm_url = $derived(this.library_json.npm_url);
25
+ changelog_url = $derived(this.library_json.changelog_url);
26
+ published = $derived(this.library_json.published);
27
+ /**
28
+ * Organization URL (e.g., 'https://github.com/ryanatkn').
29
+ */
30
+ org_url = $derived(this.repo_url && this.repo_name
31
+ ? this.repo_url.endsWith('/' + this.repo_name)
32
+ ? this.repo_url.slice(0, -this.repo_name.length - 1)
33
+ : null
34
+ : null);
35
+ /**
36
+ * All modules as rich Module instances.
37
+ */
38
+ modules = $derived(this.source_json.modules
39
+ ? this.source_json.modules.map((module_json) => new Module(this, module_json))
40
+ : []);
41
+ /**
42
+ * All modules sorted alphabetically by path.
43
+ */
44
+ modules_sorted = $derived([...this.modules].sort((a, b) => a.path.localeCompare(b.path)));
45
+ /**
46
+ * All declarations across all modules as a flat array.
47
+ */
48
+ declarations = $derived(this.modules.flatMap((module) => module.declarations));
49
+ /**
50
+ * Declaration lookup map by name. Provides O(1) lookup.
51
+ */
52
+ declaration_map = $derived(new Map(this.declarations.map((d) => [d.name, d])));
53
+ constructor(library_json) {
54
+ this.library_json = library_json;
55
+ }
56
+ /**
57
+ * Look up a declaration by name.
58
+ */
59
+ lookup_declaration(name) {
60
+ return this.declaration_map.get(name);
61
+ }
62
+ /**
63
+ * Check if a declaration exists.
64
+ */
65
+ has_declaration(name) {
66
+ return this.declaration_map.has(name);
67
+ }
68
+ /**
69
+ * Look up a module by its canonical path.
70
+ */
71
+ lookup_module(path) {
72
+ return this.modules.find((m) => m.path === path);
73
+ }
74
+ /**
75
+ * Search declarations by query string with multi-term AND logic.
76
+ */
77
+ search_declarations(query) {
78
+ return library_search_declarations(this.declarations, query);
79
+ }
80
+ }
81
+ export const library_context = create_context();
82
+ /**
83
+ * Search declarations by query string with multi-term AND logic.
84
+ */
85
+ const library_search_declarations = (declarations, query) => {
86
+ if (!query.trim())
87
+ return [];
88
+ const terms = query.trim().toLowerCase().split(/\s+/);
89
+ const results = declarations
90
+ .map((declaration) => {
91
+ let total_score = 0;
92
+ for (const term of terms) {
93
+ const name_score = library_score_match(declaration.name, term);
94
+ const kind_score = library_score_match(declaration.kind, term);
95
+ const module_score = library_score_match(declaration.module_path, term);
96
+ const term_best = Math.max(name_score, kind_score, module_score);
97
+ if (term_best === 0) {
98
+ return null;
99
+ }
100
+ total_score += term_best;
101
+ }
102
+ return { declaration, score: total_score };
103
+ })
104
+ .filter((r) => r !== null)
105
+ .sort((a, b) => b.score - a.score || a.declaration.name.localeCompare(b.declaration.name))
106
+ .map((r) => r.declaration);
107
+ return results;
108
+ };
109
+ /**
110
+ * Score a search term match against a field value.
111
+ */
112
+ const library_score_match = (field_value, term) => {
113
+ const field_lower = field_value.toLowerCase();
114
+ if (field_lower === term)
115
+ return 100;
116
+ if (field_lower.startsWith(term))
117
+ return 80;
118
+ if (field_lower.includes(term))
119
+ return 60;
120
+ let term_idx = 0;
121
+ for (const char of field_lower) {
122
+ if (char === term[term_idx]) {
123
+ term_idx++;
124
+ if (term_idx === term.length) {
125
+ return 40;
126
+ }
127
+ }
128
+ }
129
+ return 0;
130
+ };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Library metadata generator helper.
3
+ *
4
+ * Generates package_json and source_json with rich metadata:
5
+ * - JSDoc/TSDoc comments with full tag support
6
+ * - Full type signatures
7
+ * - Source code locations
8
+ * - Parameter information with descriptions and defaults
9
+ * - Return value documentation
10
+ * - Usage examples
11
+ * - Dependency graphs
12
+ * - Svelte component props
13
+ *
14
+ * @see @fuzdev/fuz_util/source_json.js for type definitions
15
+ * @see src/lib/library_gen_helpers.ts for buildtime-only helpers
16
+ * @see src/lib/tsdoc_helpers.ts for JSDoc/TSDoc parsing
17
+ * @see src/lib/ts_helpers.ts for TypeScript analysis
18
+ * @see src/lib/svelte_helpers.ts for Svelte component analysis
19
+ */
20
+ import type { Gen } from '@ryanatkn/gro';
21
+ export interface LibraryGenOptions {
22
+ filename?: string;
23
+ }
24
+ /**
25
+ * Creates a Gen object for generating library metadata with full TypeScript analysis.
26
+ *
27
+ * Usage in a `.gen.ts` file:
28
+ * ```ts
29
+ * import {library_gen} from './library_gen.js';
30
+ * export const gen = library_gen();
31
+ * ```
32
+ */
33
+ export declare const library_gen: (options?: LibraryGenOptions) => Gen;
34
+ //# sourceMappingURL=library_gen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library_gen.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/library_gen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,eAAe,CAAC;AAevC,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,iBAAiB,KAAG,GA+GzD,CAAC"}