@fuzdev/fuz_ui 0.206.6 → 0.206.8

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 (191) hide show
  1. package/README.md +3 -3
  2. package/dist/Alert.svelte +21 -25
  3. package/dist/Alert.svelte.d.ts.map +1 -1
  4. package/dist/ApiDeclarationList.svelte +2 -2
  5. package/dist/ApiDeclarationList.svelte.d.ts.map +1 -1
  6. package/dist/ApiIndex.svelte +4 -4
  7. package/dist/ApiIndex.svelte.d.ts.map +1 -1
  8. package/dist/ApiModule.svelte +13 -10
  9. package/dist/ApiModule.svelte.d.ts.map +1 -1
  10. package/dist/ApiModulesList.svelte +2 -2
  11. package/dist/ApiModulesList.svelte.d.ts.map +1 -1
  12. package/dist/Breadcrumb.svelte +31 -19
  13. package/dist/Breadcrumb.svelte.d.ts.map +1 -1
  14. package/dist/Card.svelte +17 -17
  15. package/dist/Card.svelte.d.ts.map +1 -1
  16. package/dist/ColorSchemeInput.svelte +6 -6
  17. package/dist/ColorSchemeInput.svelte.d.ts.map +1 -1
  18. package/dist/Contextmenu.svelte +6 -4
  19. package/dist/Contextmenu.svelte.d.ts.map +1 -1
  20. package/dist/ContextmenuEntry.svelte +8 -8
  21. package/dist/ContextmenuEntry.svelte.d.ts.map +1 -1
  22. package/dist/ContextmenuIcon.svelte +3 -3
  23. package/dist/ContextmenuIcon.svelte.d.ts.map +1 -1
  24. package/dist/ContextmenuLinkEntry.svelte +14 -14
  25. package/dist/ContextmenuLinkEntry.svelte.d.ts.map +1 -1
  26. package/dist/ContextmenuMenu.svelte +10 -10
  27. package/dist/ContextmenuMenu.svelte.d.ts.map +1 -1
  28. package/dist/ContextmenuRoot.svelte +7 -7
  29. package/dist/ContextmenuRootForSafariCompatibility.svelte +15 -15
  30. package/dist/ContextmenuSeparator.svelte +2 -2
  31. package/dist/ContextmenuSubmenu.svelte +15 -12
  32. package/dist/ContextmenuSubmenu.svelte.d.ts.map +1 -1
  33. package/dist/ContextmenuTextEntry.svelte +4 -4
  34. package/dist/ContextmenuTextEntry.svelte.d.ts.map +1 -1
  35. package/dist/CopyToClipboard.svelte +7 -7
  36. package/dist/CopyToClipboard.svelte.d.ts.map +1 -1
  37. package/dist/DeclarationDetail.svelte +35 -28
  38. package/dist/DeclarationDetail.svelte.d.ts.map +1 -1
  39. package/dist/DeclarationLink.svelte +7 -7
  40. package/dist/DeclarationLink.svelte.d.ts.map +1 -1
  41. package/dist/Details.svelte +3 -3
  42. package/dist/Details.svelte.d.ts.map +1 -1
  43. package/dist/Dialog.svelte +7 -7
  44. package/dist/Dialog.svelte.d.ts.map +1 -1
  45. package/dist/DialogContent.svelte +6 -6
  46. package/dist/DialogContent.svelte.d.ts.map +1 -1
  47. package/dist/Docs.svelte +14 -12
  48. package/dist/Docs.svelte.d.ts.map +1 -1
  49. package/dist/DocsContent.svelte +4 -4
  50. package/dist/DocsContent.svelte.d.ts.map +1 -1
  51. package/dist/DocsFooter.svelte +7 -8
  52. package/dist/DocsFooter.svelte.d.ts.map +1 -1
  53. package/dist/DocsLink.svelte +24 -21
  54. package/dist/DocsLink.svelte.d.ts.map +1 -1
  55. package/dist/DocsList.svelte +3 -3
  56. package/dist/DocsList.svelte.d.ts.map +1 -1
  57. package/dist/DocsMenu.svelte +13 -10
  58. package/dist/DocsMenu.svelte.d.ts.map +1 -1
  59. package/dist/DocsMenuHeader.svelte +2 -2
  60. package/dist/DocsMenuHeader.svelte.d.ts.map +1 -1
  61. package/dist/DocsPageLinks.svelte +9 -7
  62. package/dist/DocsPageLinks.svelte.d.ts.map +1 -1
  63. package/dist/DocsPrimaryNav.svelte +5 -5
  64. package/dist/DocsPrimaryNav.svelte.d.ts.map +1 -1
  65. package/dist/DocsSearch.svelte +3 -3
  66. package/dist/DocsSearch.svelte.d.ts.map +1 -1
  67. package/dist/DocsSecondaryNav.svelte +3 -3
  68. package/dist/DocsSecondaryNav.svelte.d.ts.map +1 -1
  69. package/dist/DocsTertiaryNav.svelte +8 -8
  70. package/dist/DocsTertiaryNav.svelte.d.ts.map +1 -1
  71. package/dist/EcosystemLinks.svelte +3 -3
  72. package/dist/EcosystemLinks.svelte.d.ts.map +1 -1
  73. package/dist/EcosystemLinksPanel.svelte +2 -2
  74. package/dist/EcosystemLinksPanel.svelte.d.ts.map +1 -1
  75. package/dist/GithubLink.svelte +10 -10
  76. package/dist/GithubLink.svelte.d.ts.map +1 -1
  77. package/dist/Glyph.svelte +4 -2
  78. package/dist/Glyph.svelte.d.ts.map +1 -1
  79. package/dist/Hashlink.svelte +5 -5
  80. package/dist/Hashlink.svelte.d.ts.map +1 -1
  81. package/dist/HueInput.svelte +11 -11
  82. package/dist/HueInput.svelte.d.ts.map +1 -1
  83. package/dist/ImgOrSvg.svelte +20 -20
  84. package/dist/ImgOrSvg.svelte.d.ts.map +1 -1
  85. package/dist/LibraryDetail.svelte +16 -16
  86. package/dist/LibraryDetail.svelte.d.ts.map +1 -1
  87. package/dist/LibrarySummary.svelte +10 -8
  88. package/dist/LibrarySummary.svelte.d.ts.map +1 -1
  89. package/dist/MdnLink.svelte +8 -8
  90. package/dist/MdnLink.svelte.d.ts.map +1 -1
  91. package/dist/ModuleLink.svelte +5 -5
  92. package/dist/ModuleLink.svelte.d.ts.map +1 -1
  93. package/dist/PasteFromClipboard.svelte +1 -1
  94. package/dist/PasteFromClipboard.svelte.d.ts.map +1 -1
  95. package/dist/PendingAnimation.svelte +12 -11
  96. package/dist/PendingAnimation.svelte.d.ts.map +1 -1
  97. package/dist/PendingButton.svelte +3 -3
  98. package/dist/PendingButton.svelte.d.ts.map +1 -1
  99. package/dist/ProjectLinks.svelte +7 -7
  100. package/dist/ProjectLinks.svelte.d.ts.map +1 -1
  101. package/dist/Redirect.svelte +12 -8
  102. package/dist/Redirect.svelte.d.ts.map +1 -1
  103. package/dist/Spiders.svelte +5 -5
  104. package/dist/Spiders.svelte.d.ts.map +1 -1
  105. package/dist/StyleVariableButton.svelte +6 -6
  106. package/dist/StyleVariableButton.svelte.d.ts.map +1 -1
  107. package/dist/Svg.svelte +5 -5
  108. package/dist/Svg.svelte.d.ts.map +1 -1
  109. package/dist/Teleport.svelte +2 -2
  110. package/dist/Teleport.svelte.d.ts.map +1 -1
  111. package/dist/ThemeInput.svelte +10 -8
  112. package/dist/ThemeInput.svelte.d.ts.map +1 -1
  113. package/dist/ThemeRoot.svelte +10 -11
  114. package/dist/ThemeRoot.svelte.d.ts.map +1 -1
  115. package/dist/TomeContent.svelte +11 -11
  116. package/dist/TomeContent.svelte.d.ts.map +1 -1
  117. package/dist/TomeHeader.svelte +6 -6
  118. package/dist/TomeLink.svelte +7 -7
  119. package/dist/TomeLink.svelte.d.ts.map +1 -1
  120. package/dist/TomeSection.svelte +8 -8
  121. package/dist/TomeSection.svelte.d.ts.map +1 -1
  122. package/dist/TomeSectionHeader.svelte +12 -12
  123. package/dist/TomeSectionHeader.svelte.d.ts.map +1 -1
  124. package/dist/TypeLink.svelte +11 -11
  125. package/dist/TypeLink.svelte.d.ts.map +1 -1
  126. package/dist/alert.js +1 -1
  127. package/dist/api_search.svelte.d.ts.map +1 -1
  128. package/dist/api_search.svelte.js +5 -7
  129. package/dist/autofocus.svelte.d.ts.map +1 -1
  130. package/dist/context_helpers.js +1 -1
  131. package/dist/contextmenu_helpers.d.ts.map +1 -1
  132. package/dist/contextmenu_helpers.js +3 -3
  133. package/dist/contextmenu_state.svelte.d.ts.map +1 -1
  134. package/dist/contextmenu_state.svelte.js +4 -4
  135. package/dist/csp.d.ts.map +1 -1
  136. package/dist/csp.js +27 -27
  137. package/dist/csp_of_fuzdev.d.ts.map +1 -1
  138. package/dist/csp_of_fuzdev.js +1 -1
  139. package/dist/declaration.svelte.d.ts +44 -256
  140. package/dist/declaration.svelte.d.ts.map +1 -1
  141. package/dist/declaration.svelte.js +132 -52
  142. package/dist/declaration_contextmenu.d.ts.map +1 -1
  143. package/dist/declaration_contextmenu.js +2 -2
  144. package/dist/docs_helpers.svelte.d.ts.map +1 -1
  145. package/dist/icons.js +200 -200
  146. package/dist/intersect.svelte.d.ts.map +1 -1
  147. package/dist/library.svelte.d.ts +31 -18
  148. package/dist/library.svelte.d.ts.map +1 -1
  149. package/dist/library.svelte.js +76 -21
  150. package/dist/logos.js +42 -42
  151. package/dist/module.svelte.d.ts +30 -37
  152. package/dist/module.svelte.d.ts.map +1 -1
  153. package/dist/module.svelte.js +88 -35
  154. package/dist/module_contextmenu.d.ts.map +1 -1
  155. package/dist/module_contextmenu.js +2 -2
  156. package/dist/site.svelte.d.ts.map +1 -1
  157. package/dist/style_variable_helpers.svelte.d.ts.map +1 -1
  158. package/dist/svg.d.ts.map +1 -1
  159. package/dist/theme_state.svelte.d.ts.map +1 -1
  160. package/dist/theme_state.svelte.js +1 -1
  161. package/dist/tome.d.ts.map +1 -1
  162. package/dist/tome.js +1 -1
  163. package/dist/vite_plugin_pkg_json.d.ts.map +1 -1
  164. package/dist/vite_plugin_pkg_json.js +1 -1
  165. package/package.json +4 -23
  166. package/src/lib/alert.ts +3 -3
  167. package/src/lib/api_search.svelte.ts +9 -11
  168. package/src/lib/autofocus.svelte.ts +2 -2
  169. package/src/lib/context_helpers.ts +2 -2
  170. package/src/lib/contextmenu_helpers.ts +21 -21
  171. package/src/lib/contextmenu_state.svelte.ts +32 -34
  172. package/src/lib/csp.ts +42 -54
  173. package/src/lib/csp_of_fuzdev.ts +2 -2
  174. package/src/lib/declaration.svelte.ts +157 -62
  175. package/src/lib/declaration_contextmenu.ts +5 -5
  176. package/src/lib/dialog.ts +1 -1
  177. package/src/lib/docs_helpers.svelte.ts +9 -9
  178. package/src/lib/icons.ts +205 -205
  179. package/src/lib/intersect.svelte.ts +5 -5
  180. package/src/lib/library.svelte.ts +103 -36
  181. package/src/lib/library_helpers.ts +2 -2
  182. package/src/lib/logos.ts +43 -43
  183. package/src/lib/module.svelte.ts +98 -49
  184. package/src/lib/module_contextmenu.ts +4 -4
  185. package/src/lib/site.svelte.ts +5 -5
  186. package/src/lib/storage.ts +2 -2
  187. package/src/lib/style_variable_helpers.svelte.ts +2 -2
  188. package/src/lib/svg.ts +2 -2
  189. package/src/lib/theme_state.svelte.ts +8 -8
  190. package/src/lib/tome.ts +8 -8
  191. package/src/lib/vite_plugin_pkg_json.ts +8 -8
@@ -1,3 +1,4 @@
1
+ import { EMPTY_ARRAY } from '@fuzdev/fuz_util/array.ts';
1
2
  import { Declaration } from './declaration.svelte.js';
2
3
  import { url_github_file } from '@fuzdev/fuz_util/package_helpers.ts';
3
4
  /**
@@ -20,8 +21,11 @@ const group_sorted = (entries, get_key) => {
20
21
  /**
21
22
  * Rich runtime representation of a module with computed properties.
22
23
  *
23
- * Wraps svelte-docinfo's `ModuleJson` with reactive derivations,
24
- * URL generation, and `Declaration` instances.
24
+ * Wraps svelte-docinfo's `ModuleJson` with computed properties, URL
25
+ * generation, and `Declaration` instances.
26
+ *
27
+ * Computed properties are plain getters rather than `$derived` — see
28
+ * `Library` for why.
25
29
  *
26
30
  * @see {@link https://github.com/ryanatkn/svelte-docinfo svelte-docinfo} for the analysis library
27
31
  * @see `declaration.svelte.ts` for the `Declaration` wrapper class
@@ -44,102 +48,151 @@ export class Module {
44
48
  * A leading `./` or a `.js` runtime extension will not match. Top-level
45
49
  * files match by bare filename; nested files require the full sub-path.
46
50
  */
47
- path = $derived(this.module_json.path);
51
+ get path() {
52
+ return this.module_json.path;
53
+ }
48
54
  /**
49
55
  * Import-style path with ./ prefix.
50
56
  */
51
- path_import = $derived('./' + this.path);
52
- module_comment = $derived(this.module_json.moduleComment);
57
+ get path_import() {
58
+ return './' + this.path;
59
+ }
60
+ get module_comment() {
61
+ return this.module_json.moduleComment;
62
+ }
63
+ #declarations;
53
64
  /**
54
65
  * Array of `Declaration` instances. Filters out default exports.
55
66
  */
56
- declarations = $derived((this.module_json.declarations ?? [])
57
- .filter((declaration_json) => declaration_json.name !== 'default')
58
- .map((declaration_json) => new Declaration(this, declaration_json)));
67
+ get declarations() {
68
+ return (this.#declarations ??= (this.module_json.declarations ?? [])
69
+ .filter((declaration_json) => declaration_json.name !== 'default')
70
+ .map((declaration_json) => new Declaration(this, declaration_json)));
71
+ }
59
72
  /**
60
73
  * API documentation URL for this module.
61
74
  */
62
- url_api = $derived(`/docs/api${this.library.url_prefix}/${this.path}`);
75
+ get url_api() {
76
+ return `/docs/api${this.library.url_prefix}/${this.path}`;
77
+ }
63
78
  /**
64
79
  * Public documentation link (if `homepage_url` is available).
65
80
  *
66
81
  * Absolute URL into the library's own deployed docs, for rendering a
67
82
  * foreign library's modules on a different site (e.g. an aggregator).
68
83
  */
69
- url_api_full = $derived(this.library.homepage_url
70
- ? `${this.library.homepage_url.replace(/\/$/, '')}/docs/api/${this.path}`
71
- : undefined);
84
+ get url_api_full() {
85
+ const { homepage_url } = this.library;
86
+ return homepage_url ? `${homepage_url.replace(/\/$/, '')}/docs/api/${this.path}` : undefined;
87
+ }
72
88
  /**
73
89
  * GitHub source URL.
74
90
  */
75
- url_github = $derived(this.library.repo_url
76
- ? url_github_file(this.library.repo_url, `src/lib/${this.path}`)
77
- : undefined);
91
+ get url_github() {
92
+ const { repo_url } = this.library;
93
+ return repo_url ? url_github_file(repo_url, `src/lib/${this.path}`) : undefined;
94
+ }
78
95
  /**
79
96
  * Whether the module has renderable declarations (after the default-export
80
97
  * filter in `declarations`).
81
98
  */
82
- has_declarations = $derived(this.declarations.length > 0);
83
- has_module_comment = $derived(!!this.module_comment);
99
+ get has_declarations() {
100
+ return this.declarations.length > 0;
101
+ }
102
+ get has_module_comment() {
103
+ return !!this.module_comment;
104
+ }
84
105
  /**
85
106
  * Modules this imports (paths relative to src/lib).
86
107
  */
87
- dependencies = $derived(this.module_json.dependencies ?? []);
108
+ get dependencies() {
109
+ return this.module_json.dependencies ?? EMPTY_ARRAY;
110
+ }
88
111
  /**
89
112
  * Modules that import this (paths relative to src/lib).
90
113
  */
91
- dependents = $derived(this.module_json.dependents ?? []);
92
- has_dependencies = $derived(this.dependencies.length > 0);
93
- has_dependents = $derived(this.dependents.length > 0);
114
+ get dependents() {
115
+ return this.module_json.dependents ?? EMPTY_ARRAY;
116
+ }
117
+ get has_dependencies() {
118
+ return this.dependencies.length > 0;
119
+ }
120
+ get has_dependents() {
121
+ return this.dependents.length > 0;
122
+ }
94
123
  /**
95
124
  * Same-name re-export edges in this module's source (`ModuleJson.reExports`)
96
125
  * — the forward view of declarations' `alsoExportedFrom`, sorted by name
97
126
  * then module. Renamed re-exports appear as declarations with `aliasOf`
98
127
  * instead, and star exports in `star_exports`.
99
128
  */
100
- re_exports = $derived(this.module_json.reExports ?? []);
101
- has_re_exports = $derived(this.re_exports.length > 0);
129
+ get re_exports() {
130
+ return this.module_json.reExports ?? EMPTY_ARRAY;
131
+ }
132
+ get has_re_exports() {
133
+ return this.re_exports.length > 0;
134
+ }
102
135
  /**
103
136
  * Modules fully re-exported via `export * from './module'`
104
137
  * (`ModuleJson.starExports`), in source order. Star-projected symbols are
105
138
  * not materialized as declarations or `re_exports` edges — this is their
106
139
  * sole encoding.
107
140
  */
108
- star_exports = $derived(this.module_json.starExports ?? []);
109
- has_star_exports = $derived(this.star_exports.length > 0);
141
+ get star_exports() {
142
+ return this.module_json.starExports ?? EMPTY_ARRAY;
143
+ }
144
+ get has_star_exports() {
145
+ return this.star_exports.length > 0;
146
+ }
147
+ #re_exports_by_module;
110
148
  /**
111
149
  * Re-export edges grouped by canonical module path, groups sorted by path.
112
150
  * Entries within each group keep their name-sorted serialized order.
113
151
  */
114
- re_exports_by_module = $derived(group_sorted(this.re_exports, (entry) => entry.module));
152
+ get re_exports_by_module() {
153
+ return (this.#re_exports_by_module ??= group_sorted(this.re_exports, (entry) => entry.module));
154
+ }
115
155
  /**
116
156
  * Re-exports whose immediate target is an external package
117
157
  * (`ModuleJson.externalReExports`) — `export {x} from 'pkg'` and
118
158
  * `export * as ns from 'pkg'` forms, sorted by name then specifier.
119
159
  */
120
- external_re_exports = $derived(this.module_json.externalReExports ?? []);
121
- has_external_re_exports = $derived(this.external_re_exports.length > 0);
160
+ get external_re_exports() {
161
+ return this.module_json.externalReExports ?? EMPTY_ARRAY;
162
+ }
163
+ get has_external_re_exports() {
164
+ return this.external_re_exports.length > 0;
165
+ }
166
+ #external_re_exports_by_specifier;
122
167
  /**
123
168
  * External re-exports grouped by package specifier, groups sorted by
124
169
  * specifier. Entries within each group keep their name-sorted serialized
125
170
  * order.
126
171
  */
127
- external_re_exports_by_specifier = $derived(group_sorted(this.external_re_exports, (entry) => entry.specifier));
172
+ get external_re_exports_by_specifier() {
173
+ return (this.#external_re_exports_by_specifier ??= group_sorted(this.external_re_exports, (entry) => entry.specifier));
174
+ }
128
175
  /**
129
176
  * External packages fully re-exported via `export * from 'pkg'`
130
177
  * (`ModuleJson.externalStarExports`), in source order. The projected
131
178
  * names are unknown — the package isn't analyzed.
132
179
  */
133
- external_star_exports = $derived(this.module_json.externalStarExports ?? []);
134
- has_external_star_exports = $derived(this.external_star_exports.length > 0);
180
+ get external_star_exports() {
181
+ return this.module_json.externalStarExports ?? EMPTY_ARRAY;
182
+ }
183
+ get has_external_star_exports() {
184
+ return this.external_star_exports.length > 0;
185
+ }
135
186
  /**
136
187
  * Whether the module re-exports anything in any form — same-name edges,
137
188
  * star exports, or the external variants of both.
138
189
  */
139
- has_any_re_exports = $derived(this.has_re_exports ||
140
- this.has_star_exports ||
141
- this.has_external_re_exports ||
142
- this.has_external_star_exports);
190
+ get has_any_re_exports() {
191
+ return (this.has_re_exports ||
192
+ this.has_star_exports ||
193
+ this.has_external_re_exports ||
194
+ this.has_external_star_exports);
195
+ }
143
196
  constructor(library, module_json) {
144
197
  this.library = library;
145
198
  this.module_json = module_json;
@@ -1 +1 @@
1
- {"version":3,"file":"module_contextmenu.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/module_contextmenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAIrE,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,KAAG,KAAK,CAAC,iBAAiB,CAcjF,CAAC"}
1
+ {"version":3,"file":"module_contextmenu.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/module_contextmenu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,eAAO,MAAM,yBAAyB,GAAI,QAAQ,MAAM,KAAG,KAAK,CAAC,iBAAiB,CAcjF,CAAC"}
@@ -6,8 +6,8 @@ export const create_module_contextmenu = (module) => {
6
6
  entries.push({
7
7
  snippet: 'link',
8
8
  props: {
9
- href: module.url_github,
10
- },
9
+ href: module.url_github
10
+ }
11
11
  });
12
12
  }
13
13
  return entries;
@@ -1 +1 @@
1
- {"version":3,"file":"site.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/site.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,8BAA8B,CAAC;AAI1D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,qBAAa,SAAS;IACrB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAoB;IACxC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAoB;IACxC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAoB;gBAE5B,OAAO,GAAE,gBAAqB;CAM1C;AAED,eAAO,MAAM,YAAY;;;;CAA8B,CAAC"}
1
+ {"version":3,"file":"site.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/site.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAI5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,qBAAa,SAAS;IACrB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAoB;IACxC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAoB;IACxC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAoB;gBAE5B,OAAO,GAAE,gBAAqB;CAM1C;AAED,eAAO,MAAM,YAAY;;;;CAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"style_variable_helpers.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/style_variable_helpers.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAI/D,eAAO,MAAM,yBAAyB;;;CAAwD,CAAC;AAG/F,qBAAa,qBAAqB;IACjC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAiB;gBAEhC,OAAO,GAAE,aAAa,GAAG,IAAW;CAGhD"}
1
+ {"version":3,"file":"style_variable_helpers.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/style_variable_helpers.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIjE,eAAO,MAAM,yBAAyB;;;CAAwD,CAAC;AAG/F,qBAAa,qBAAqB;IACjC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAiB;gBAEhC,OAAO,GAAE,aAAa,GAAG,IAAW;CAGhD"}
package/dist/svg.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"svg.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC;CAC7F;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACjC"}
1
+ {"version":3,"file":"svg.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/svg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC;IACjE;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B;;OAEG;IACH,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC;CAC7F;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/theme_state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,WAAW,EAAE,KAAK,KAAK,EAAC,MAAM,0BAA0B,CAAC;AAOrF,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAExD,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAiB;IAC7B,YAAY,EAAE,WAAW,CAAiB;gBAE9B,OAAO,CAAC,EAAE,iBAAiB;IAUvC,MAAM,IAAI,cAAc;CAMxB;AACD,eAAO,MAAM,mBAAmB;2CAAwB,UAAU;4BAAV,UAAU;uBAAV,UAAU,WAAV,UAAU;CAAG,CAAC;AAEtE,eAAO,MAAM,iBAAiB,GAAI,cAAc,WAAW,GAAG,IAAI,KAAG,IAOpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,eAAO,MAAM,iBAAiB,GAC7B,cAAc,WAAW,GAAG,IAAI,EAChC,YAA8B,KAC5B,IAEF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC7B,WAAU,WAAoB,EAC9B,YAA8B,KAC5B,WAA4E,CAAC;AAEhF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,GAAG,IAAI,EAAE,YAAuB,KAAG,IAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,WAAU,KAA0B,EAAE,YAAuB,KAAG,KAC3C,CAAC"}
1
+ {"version":3,"file":"theme_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/theme_state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAOvF,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAExD,qBAAa,UAAU;IACtB,KAAK,EAAE,KAAK,CAAiB;IAC7B,YAAY,EAAE,WAAW,CAAiB;gBAE9B,OAAO,CAAC,EAAE,iBAAiB;IAUvC,MAAM,IAAI,cAAc;CAMxB;AACD,eAAO,MAAM,mBAAmB;2CAAwB,UAAU;4BAAV,UAAU;uBAAV,UAAU,WAAV,UAAU;CAAG,CAAC;AAEtE,eAAO,MAAM,iBAAiB,GAAI,cAAc,WAAW,GAAG,IAAI,KAAG,IAOpE,CAAC;AAEF,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,eAAO,MAAM,iBAAiB,GAC7B,cAAc,WAAW,GAAG,IAAI,EAChC,YAA8B,KAC5B,IAEF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC7B,WAAU,WAAoB,EAC9B,YAA8B,KAC5B,WAA4E,CAAC;AAEhF,eAAO,MAAM,UAAU,GAAI,OAAO,KAAK,GAAG,IAAI,EAAE,YAAuB,KAAG,IAEzE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,WAAU,KAA0B,EAAE,YAAuB,KAAG,KAC3C,CAAC"}
@@ -18,7 +18,7 @@ export class ThemeState {
18
18
  toJSON() {
19
19
  return {
20
20
  theme: this.theme,
21
- color_scheme: this.color_scheme,
21
+ color_scheme: this.color_scheme
22
22
  };
23
23
  }
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tome.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/tome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,aAAa;2CAAwB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;4BAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;uBAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;CAAG,CAAC;AAEvE,eAAO,MAAM,YAAY;2CAAwB,IAAI;4BAAJ,IAAI;uBAAJ,IAAI,WAAJ,IAAI;CAAG,CAAC;AAEzD,eAAO,MAAM,IAAI;;;;;;;;iBAoBf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC5B,MAAM,IAAI,GAAG,MAAM,EACnB,kBAA6B,EAC7B,OAAO,MAAM,KACX,MAIF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,KAAG,MAAiC,CAAC;AAE7E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAK/C,CAAC"}
1
+ {"version":3,"file":"tome.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/tome.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,aAAa;2CAAwB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;4BAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;uBAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAjB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;CAAG,CAAC;AAEvE,eAAO,MAAM,YAAY;2CAAwB,IAAI;4BAAJ,IAAI;uBAAJ,IAAI,WAAJ,IAAI;CAAG,CAAC;AAEzD,eAAO,MAAM,IAAI;;;;;;;;iBAoBf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAC5B,MAAM,IAAI,GAAG,MAAM,EACnB,kBAA6B,EAC7B,OAAO,MAAM,KACX,MAIF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,IAAI,KAAG,MAAiC,CAAC;AAE7E,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAK/C,CAAC"}
package/dist/tome.js CHANGED
@@ -24,7 +24,7 @@ export const Tome = z.object({
24
24
  Component: z.custom(),
25
25
  related_tomes: z.array(z.string()),
26
26
  related_modules: z.array(z.string()),
27
- related_declarations: z.array(z.string()),
27
+ related_declarations: z.array(z.string())
28
28
  });
29
29
  /**
30
30
  * @param hash - URL fragment to append, with or without the `#`
@@ -1 +1 @@
1
- {"version":3,"file":"vite_plugin_pkg_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/vite_plugin_pkg_json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,OAAO,KAAK,EAAC,MAAM,EAAS,MAAM,MAAM,CAAC;AACzC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAkBlE,0CAA0C;AAC1C,MAAM,WAAW,wBAAwB;IACxC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,WAAW,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAS,wBAA6B,KAAG,MA6D7E,CAAC"}
1
+ {"version":3,"file":"vite_plugin_pkg_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/vite_plugin_pkg_json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,MAAM,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAkBpE,0CAA0C;AAC1C,MAAM,WAAW,wBAAwB;IACxC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,WAAW,CAAC,CAAC;CACxC;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAS,wBAA6B,KAAG,MA6D7E,CAAC"}
@@ -121,6 +121,6 @@ export const vite_plugin_pkg_json = (options = {}) => {
121
121
  if (id !== RESOLVED_VIRTUAL_ID)
122
122
  return undefined;
123
123
  return cached ?? read_curated(this);
124
- },
124
+ }
125
125
  };
126
126
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuzdev/fuz_ui",
3
- "version": "0.206.6",
3
+ "version": "0.206.8",
4
4
  "description": "Svelte UI library",
5
5
  "tagline": "friendly user zystem",
6
6
  "glyph": "🧶",
@@ -63,11 +63,11 @@
63
63
  "devDependencies": {
64
64
  "@changesets/changelog-git": "^0.2.1",
65
65
  "@fuzdev/blake3_wasm": "^0.1.1",
66
- "@fuzdev/fuz_code": "^0.46.3",
66
+ "@fuzdev/fuz_code": "^0.48.0",
67
67
  "@fuzdev/fuz_css": "^0.63.2",
68
68
  "@fuzdev/fuz_util": "^0.65.2",
69
- "@fuzdev/gro": "^0.206.0",
70
- "@fuzdev/mdz": "^0.2.0",
69
+ "@fuzdev/gro": "^0.209.0",
70
+ "@fuzdev/mdz": "^0.3.0",
71
71
  "@ryanatkn/eslint-config": "^0.12.2",
72
72
  "@sveltejs/adapter-static": "^3.0.10",
73
73
  "@sveltejs/kit": "^2.69.1",
@@ -79,8 +79,6 @@
79
79
  "eslint-plugin-svelte": "^3.19.0",
80
80
  "esm-env": "^1.2.2",
81
81
  "jsdom": "^29.1.1",
82
- "prettier": "^3.7.4",
83
- "prettier-plugin-svelte": "^3.5.1",
84
82
  "svelte": "^5.56.4",
85
83
  "svelte-check": "^4.7.2",
86
84
  "svelte-docinfo": "^0.5.4",
@@ -91,23 +89,6 @@
91
89
  "vitest": "^4.0.15",
92
90
  "zod": "^4.3.6"
93
91
  },
94
- "prettier": {
95
- "plugins": [
96
- "prettier-plugin-svelte"
97
- ],
98
- "useTabs": true,
99
- "printWidth": 100,
100
- "singleQuote": true,
101
- "bracketSpacing": false,
102
- "overrides": [
103
- {
104
- "files": "package.json",
105
- "options": {
106
- "useTabs": false
107
- }
108
- }
109
- ]
110
- },
111
92
  "sideEffects": [
112
93
  "**/*.css"
113
94
  ],
package/src/lib/alert.ts CHANGED
@@ -8,7 +8,7 @@ export interface AlertStatusOptions {
8
8
  }
9
9
 
10
10
  export const alert_status_options: Record<AlertStatus, AlertStatusOptions> = {
11
- inform: {color: 'var(--text_70)', icon: '✻'},
12
- help: {color: 'var(--color_b_50)', icon: '➺'},
13
- error: {color: 'var(--color_c_50)', icon: '!?'},
11
+ inform: { color: 'var(--text_70)', icon: '✻' },
12
+ help: { color: 'var(--color_b_50)', icon: '➺' },
13
+ error: { color: 'var(--color_c_50)', icon: '!?' }
14
14
  };
@@ -1,6 +1,6 @@
1
- import type {Declaration} from './declaration.svelte.ts';
2
- import type {Library} from './library.svelte.ts';
3
- import type {Module} from './module.svelte.ts';
1
+ import type { Declaration } from './declaration.svelte.ts';
2
+ import type { Library } from './library.svelte.ts';
3
+ import type { Module } from './module.svelte.ts';
4
4
 
5
5
  export interface DeclarationSearchState {
6
6
  query: string;
@@ -59,7 +59,7 @@ export const create_api_search = (library: Library): ApiSearchState => {
59
59
  },
60
60
  get filtered() {
61
61
  return filtered_modules;
62
- },
62
+ }
63
63
  },
64
64
  declarations: {
65
65
  get all() {
@@ -67,8 +67,8 @@ export const create_api_search = (library: Library): ApiSearchState => {
67
67
  },
68
68
  get filtered() {
69
69
  return filtered_declarations;
70
- },
71
- },
70
+ }
71
+ }
72
72
  };
73
73
  };
74
74
 
@@ -76,7 +76,7 @@ export const create_api_search = (library: Library): ApiSearchState => {
76
76
  * Creates search state for module-specific declaration lists.
77
77
  */
78
78
  export const create_module_declaration_search = (
79
- declarations: Array<Declaration>,
79
+ declarations: Array<Declaration>
80
80
  ): DeclarationSearchState => {
81
81
  let query = $state.raw('');
82
82
 
@@ -96,9 +96,7 @@ export const create_module_declaration_search = (
96
96
 
97
97
  return terms.every(
98
98
  (term) =>
99
- name_lower.includes(term) ||
100
- kind_lower.includes(term) ||
101
- module_path_lower.includes(term),
99
+ name_lower.includes(term) || kind_lower.includes(term) || module_path_lower.includes(term)
102
100
  );
103
101
  });
104
102
 
@@ -117,6 +115,6 @@ export const create_module_declaration_search = (
117
115
  },
118
116
  get filtered() {
119
117
  return filtered;
120
- },
118
+ }
121
119
  };
122
120
  };
@@ -4,7 +4,7 @@
4
4
  * @module
5
5
  */
6
6
 
7
- import type {Attachment} from 'svelte/attachments';
7
+ import type { Attachment } from 'svelte/attachments';
8
8
 
9
9
  /**
10
10
  * Creates an attachment that focuses the element on mount.
@@ -16,5 +16,5 @@ export const autofocus =
16
16
  (options?: FocusOptions): Attachment<HTMLElement | SVGElement> =>
17
17
  (el) => {
18
18
  // focusVisible missing from TS lib.dom.d.ts as of 5.9
19
- el.focus({focusVisible: true, ...options} as FocusOptions);
19
+ el.focus({ focusVisible: true, ...options } as FocusOptions);
20
20
  };
@@ -1,4 +1,4 @@
1
- import {getContext, setContext} from 'svelte';
1
+ import { getContext, setContext } from 'svelte';
2
2
 
3
3
  // This uses a function instead of a class because of the overloaded type signatures.
4
4
  // It could be implemented internally with a class like `SvelteContext`
@@ -42,6 +42,6 @@ export function create_context<T>(fallback?: () => T): {
42
42
  },
43
43
  get_maybe,
44
44
  // this is typesafe, so no runtime check:
45
- set: (value: T | undefined = fallback?.()) => setContext(key, value)!,
45
+ set: (value: T | undefined = fallback?.()) => setContext(key, value)!
46
46
  };
47
47
  }
@@ -1,12 +1,12 @@
1
- import {is_editable, swallow, inside_editable} from '@fuzdev/fuz_util/dom.ts';
2
- import {EMPTY_OBJECT} from '@fuzdev/fuz_util/object.ts';
3
- import type {Attachment} from 'svelte/attachments';
4
- import type {ComponentProps, Snippet} from 'svelte';
1
+ import { is_editable, swallow, inside_editable } from '@fuzdev/fuz_util/dom.ts';
2
+ import { EMPTY_OBJECT } from '@fuzdev/fuz_util/object.ts';
3
+ import type { Attachment } from 'svelte/attachments';
4
+ import type { ComponentProps, Snippet } from 'svelte';
5
5
 
6
6
  import {
7
7
  contextmenu_open,
8
8
  type ContextmenuOpenOptions,
9
- type ContextmenuState,
9
+ type ContextmenuState
10
10
  } from './contextmenu_state.svelte.ts';
11
11
  import type ContextmenuLinkEntry from './ContextmenuLinkEntry.svelte';
12
12
  import type ContextmenuTextEntry from './ContextmenuTextEntry.svelte';
@@ -91,7 +91,7 @@ export interface ContextmenuRootBaseProps {
91
91
  */
92
92
  export const contextmenu_is_valid_target = (
93
93
  target: EventTarget | null,
94
- shiftKey: boolean,
94
+ shiftKey: boolean
95
95
  ): target is HTMLElement | SVGElement =>
96
96
  !shiftKey &&
97
97
  (target instanceof HTMLElement || target instanceof SVGElement) &&
@@ -101,7 +101,7 @@ export const contextmenu_is_valid_target = (
101
101
  // TODO maybe bind these to the contextmenu instance instead of including the function wrapper
102
102
  // TODO customize
103
103
  export const contextmenu_create_keyboard_handlers = (
104
- contextmenu: ContextmenuState,
104
+ contextmenu: ContextmenuState
105
105
  ): Map<string, () => void> =>
106
106
  new Map([
107
107
  ['Escape', () => contextmenu.close()],
@@ -112,7 +112,7 @@ export const contextmenu_create_keyboard_handlers = (
112
112
  ['Home', () => contextmenu.select_first()],
113
113
  ['End', () => contextmenu.select_last()],
114
114
  [' ', () => contextmenu.activate_selected()],
115
- ['Enter', () => contextmenu.activate_selected()],
115
+ ['Enter', () => contextmenu.activate_selected()]
116
116
  ]);
117
117
 
118
118
  export const contextmenu_create_keydown_handler =
@@ -132,7 +132,7 @@ export const contextmenu_create_keydown_handler =
132
132
  export const contextmenu_calculate_constrained_x = (
133
133
  menu_x: number,
134
134
  menu_width: number,
135
- layout_width: number,
135
+ layout_width: number
136
136
  ): number => Math.max(0, menu_x + Math.min(0, layout_width - (menu_x + menu_width)));
137
137
 
138
138
  /**
@@ -143,7 +143,7 @@ export const contextmenu_calculate_constrained_x = (
143
143
  export const contextmenu_calculate_constrained_y = (
144
144
  menu_y: number,
145
145
  menu_height: number,
146
- layout_height: number,
146
+ layout_height: number
147
147
  ): number => Math.max(0, menu_y + Math.min(0, layout_height - (menu_y + menu_height)));
148
148
 
149
149
  export interface ContextmenuSubmenuTranslateOptions {
@@ -174,9 +174,9 @@ export interface ContextmenuSubmenuTranslateOptions {
174
174
  * Used by `ContextmenuSubmenu.svelte`.
175
175
  */
176
176
  export const contextmenu_calculate_submenu_translate = (
177
- options: ContextmenuSubmenuTranslateOptions,
178
- ): {x: number; y: number} => {
179
- const {base_x, base_y, width, height, parent_width, layout_width, layout_height} = options;
177
+ options: ContextmenuSubmenuTranslateOptions
178
+ ): { x: number; y: number } => {
179
+ const { base_x, base_y, width, height, parent_width, layout_width, layout_height } = options;
180
180
  let x: number;
181
181
  const overflow_right = base_x + width + parent_width - layout_width;
182
182
  if (overflow_right <= 0) {
@@ -192,7 +192,7 @@ export const contextmenu_calculate_submenu_translate = (
192
192
  }
193
193
  }
194
194
  const y = Math.min(0, layout_height - (base_y + height));
195
- return {x, y};
195
+ return { x, y };
196
196
  };
197
197
 
198
198
  export interface ContextmenuOpenFromEventOptions extends ContextmenuOpenOptions {
@@ -221,13 +221,13 @@ export const contextmenu_open_from_event = (
221
221
  e: MouseEvent,
222
222
  contextmenu: ContextmenuState,
223
223
  menu_el: HTMLElement | undefined,
224
- options?: ContextmenuOpenFromEventOptions,
224
+ options?: ContextmenuOpenFromEventOptions
225
225
  ): boolean => {
226
226
  const {
227
227
  open_offset_x = CONTEXTMENU_DEFAULT_OPEN_OFFSET_X,
228
- open_offset_y = CONTEXTMENU_DEFAULT_OPEN_OFFSET_Y,
228
+ open_offset_y = CONTEXTMENU_DEFAULT_OPEN_OFFSET_Y
229
229
  } = options ?? EMPTY_OBJECT;
230
- const {target} = e;
230
+ const { target } = e;
231
231
  if (!contextmenu_is_valid_target(target, e.shiftKey)) return false;
232
232
  // don't open the contextmenu when clicking on the menu itself
233
233
  if (menu_el?.contains(target)) return false;
@@ -237,7 +237,7 @@ export const contextmenu_open_from_event = (
237
237
  e.clientX + open_offset_x,
238
238
  e.clientY + open_offset_y,
239
239
  contextmenu,
240
- options,
240
+ options
241
241
  )
242
242
  ) {
243
243
  return false;
@@ -266,7 +266,7 @@ export const contextmenu_resolve_contextmenu_event = (
266
266
  contextmenu: ContextmenuState,
267
267
  menu_el: HTMLElement | undefined,
268
268
  open_guard: ContextmenuOpenGuard,
269
- options?: ContextmenuOpenFromEventOptions,
269
+ options?: ContextmenuOpenFromEventOptions
270
270
  ): boolean => {
271
271
  if (contextmenu_open_from_event(e, contextmenu, menu_el, options)) {
272
272
  // guard the menu from the residual events of the gesture that opened it
@@ -313,7 +313,7 @@ export const contextmenu_create_mousedown_handler =
313
313
  (
314
314
  contextmenu: ContextmenuState,
315
315
  get_menu_el: () => HTMLElement | undefined,
316
- open_guard?: ContextmenuOpenGuard,
316
+ open_guard?: ContextmenuOpenGuard
317
317
  ) =>
318
318
  (e: MouseEvent): void => {
319
319
  const menu_el = get_menu_el();
@@ -352,7 +352,7 @@ export const contextmenu_create_mousedown_handler =
352
352
  * doesn't need a host
353
353
  */
354
354
  export const contextmenu_resolve_popover_host = (
355
- target: HTMLElement | SVGElement | undefined,
355
+ target: HTMLElement | SVGElement | undefined
356
356
  ): HTMLDialogElement | null =>
357
357
  (target?.closest('dialog:modal') as HTMLDialogElement | null) ?? null;
358
358