@fuzdev/fuz_ui 0.191.3 → 0.192.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 (66) hide show
  1. package/dist/ApiModulesList.svelte +3 -3
  2. package/dist/ColorSchemeInput.svelte +6 -6
  3. package/dist/ContextmenuLinkEntry.svelte +1 -1
  4. package/dist/ContextmenuRoot.svelte +10 -10
  5. package/dist/ContextmenuRootForSafariCompatibility.svelte +19 -19
  6. package/dist/ContextmenuSeparator.svelte +3 -3
  7. package/dist/ContextmenuSubmenu.svelte +3 -3
  8. package/dist/CopyToClipboard.svelte +3 -3
  9. package/dist/DeclarationLink.svelte +1 -1
  10. package/dist/Dialog.svelte +16 -16
  11. package/dist/Docs.svelte +9 -9
  12. package/dist/DocsFooter.svelte +2 -2
  13. package/dist/DocsList.svelte +7 -7
  14. package/dist/DocsMenu.svelte +1 -1
  15. package/dist/DocsPageLinks.svelte +4 -4
  16. package/dist/DocsPrimaryNav.svelte +2 -2
  17. package/dist/DocsSecondaryNav.svelte +4 -4
  18. package/dist/DocsTertiaryNav.svelte +6 -6
  19. package/dist/GithubLink.svelte +1 -1
  20. package/dist/Hashlink.svelte +2 -2
  21. package/dist/HueInput.svelte +6 -6
  22. package/dist/LibraryDetail.svelte +8 -8
  23. package/dist/LibrarySummary.svelte +4 -4
  24. package/dist/MdnLink.svelte +1 -1
  25. package/dist/ModuleLink.svelte +1 -1
  26. package/dist/PasteFromClipboard.svelte +1 -1
  27. package/dist/PendingAnimation.svelte +2 -2
  28. package/dist/PendingButton.svelte +2 -2
  29. package/dist/ProjectLinks.svelte +4 -4
  30. package/dist/Teleport.svelte +2 -2
  31. package/dist/ThemeInput.svelte +5 -5
  32. package/dist/TomeContent.svelte +1 -1
  33. package/dist/TomeHeader.svelte +3 -3
  34. package/dist/TomeLink.svelte +1 -1
  35. package/dist/TomeSection.svelte +1 -1
  36. package/dist/TomeSectionHeader.svelte +3 -3
  37. package/dist/api_search.svelte.js +2 -2
  38. package/dist/contextmenu_state.svelte.d.ts.map +1 -1
  39. package/dist/contextmenu_state.svelte.js +10 -8
  40. package/dist/csp.d.ts +81 -90
  41. package/dist/csp.d.ts.map +1 -1
  42. package/dist/csp.js +150 -163
  43. package/dist/csp_of_fuzdev.d.ts +13 -3
  44. package/dist/csp_of_fuzdev.d.ts.map +1 -1
  45. package/dist/csp_of_fuzdev.js +23 -7
  46. package/dist/dimensions.svelte.d.ts.map +1 -1
  47. package/dist/dimensions.svelte.js +2 -2
  48. package/dist/library.svelte.d.ts +1 -1
  49. package/dist/library_generate.js +1 -1
  50. package/dist/style_variable_helpers.svelte.d.ts.map +1 -1
  51. package/dist/style_variable_helpers.svelte.js +1 -1
  52. package/dist/theme_state.svelte.d.ts.map +1 -1
  53. package/dist/theme_state.svelte.js +2 -2
  54. package/dist/tsdoc_helpers.d.ts +9 -0
  55. package/dist/tsdoc_helpers.d.ts.map +1 -1
  56. package/dist/tsdoc_helpers.js +15 -5
  57. package/package.json +6 -6
  58. package/src/lib/api_search.svelte.ts +2 -2
  59. package/src/lib/contextmenu_state.svelte.ts +9 -8
  60. package/src/lib/csp.ts +229 -259
  61. package/src/lib/csp_of_fuzdev.ts +24 -8
  62. package/src/lib/dimensions.svelte.ts +2 -2
  63. package/src/lib/library_generate.ts +1 -1
  64. package/src/lib/style_variable_helpers.svelte.ts +1 -1
  65. package/src/lib/theme_state.svelte.ts +2 -2
  66. package/src/lib/tsdoc_helpers.ts +18 -7
@@ -107,19 +107,14 @@ export const tsdoc_parse = (
107
107
  // Extract main comment text
108
108
  for (const comment of tsdoc_comments) {
109
109
  if (ts.isJSDoc(comment) && comment.comment) {
110
- const text =
111
- typeof comment.comment === 'string'
112
- ? comment.comment
113
- : comment.comment.map((c) => c.text).join('');
114
- full_text += text + '\n';
110
+ full_text += tsdoc_comment_to_text(comment.comment, source_file) + '\n';
115
111
  }
116
112
  }
117
113
 
118
114
  // Extract tags
119
115
  const tags = ts.getJSDocTags(node);
120
116
  for (const tag of tags) {
121
- const tag_text =
122
- typeof tag.comment === 'string' ? tag.comment : tag.comment?.map((c) => c.text).join('');
117
+ const tag_text = tag.comment ? tsdoc_comment_to_text(tag.comment, source_file) : undefined;
123
118
  const tag_name = tag.tagName.text;
124
119
 
125
120
  if (tag_name === 'param' && ts.isJSDocParameterTag(tag)) {
@@ -214,6 +209,22 @@ export const tsdoc_apply_to_declaration = (
214
209
  }
215
210
  };
216
211
 
212
+ /**
213
+ * Concatenates a JSDoc comment (string or node array) into plain text, preserving `{@link ...}`.
214
+ *
215
+ * `JSDocLink` / `JSDocLinkCode` / `JSDocLinkPlain` nodes have empty `.text` — the identifier
216
+ * lives on `.name`, not `.text`. Using `.text` alone silently drops link content; we fall back
217
+ * to the source-text representation for link nodes so `{@link Foo}` survives intact for downstream
218
+ * renderers (see `tsdoc_mdz.ts`).
219
+ */
220
+ export const tsdoc_comment_to_text = (
221
+ comment: string | ts.NodeArray<ts.JSDocComment>,
222
+ source_file: ts.SourceFile,
223
+ ): string => {
224
+ if (typeof comment === 'string') return comment;
225
+ return comment.map((c) => (ts.isJSDocLinkLike(c) ? c.getText(source_file) : c.text)).join('');
226
+ };
227
+
217
228
  /**
218
229
  * Clean raw JSDoc comment text by removing comment markers and leading asterisks.
219
230
  *