@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.
- package/dist/ApiModulesList.svelte +3 -3
- package/dist/ColorSchemeInput.svelte +6 -6
- package/dist/ContextmenuLinkEntry.svelte +1 -1
- package/dist/ContextmenuRoot.svelte +10 -10
- package/dist/ContextmenuRootForSafariCompatibility.svelte +19 -19
- package/dist/ContextmenuSeparator.svelte +3 -3
- package/dist/ContextmenuSubmenu.svelte +3 -3
- package/dist/CopyToClipboard.svelte +3 -3
- package/dist/DeclarationLink.svelte +1 -1
- package/dist/Dialog.svelte +16 -16
- package/dist/Docs.svelte +9 -9
- package/dist/DocsFooter.svelte +2 -2
- package/dist/DocsList.svelte +7 -7
- package/dist/DocsMenu.svelte +1 -1
- package/dist/DocsPageLinks.svelte +4 -4
- package/dist/DocsPrimaryNav.svelte +2 -2
- package/dist/DocsSecondaryNav.svelte +4 -4
- package/dist/DocsTertiaryNav.svelte +6 -6
- package/dist/GithubLink.svelte +1 -1
- package/dist/Hashlink.svelte +2 -2
- package/dist/HueInput.svelte +6 -6
- package/dist/LibraryDetail.svelte +8 -8
- package/dist/LibrarySummary.svelte +4 -4
- package/dist/MdnLink.svelte +1 -1
- package/dist/ModuleLink.svelte +1 -1
- package/dist/PasteFromClipboard.svelte +1 -1
- package/dist/PendingAnimation.svelte +2 -2
- package/dist/PendingButton.svelte +2 -2
- package/dist/ProjectLinks.svelte +4 -4
- package/dist/Teleport.svelte +2 -2
- package/dist/ThemeInput.svelte +5 -5
- package/dist/TomeContent.svelte +1 -1
- package/dist/TomeHeader.svelte +3 -3
- package/dist/TomeLink.svelte +1 -1
- package/dist/TomeSection.svelte +1 -1
- package/dist/TomeSectionHeader.svelte +3 -3
- package/dist/api_search.svelte.js +2 -2
- package/dist/contextmenu_state.svelte.d.ts.map +1 -1
- package/dist/contextmenu_state.svelte.js +10 -8
- package/dist/csp.d.ts +81 -90
- package/dist/csp.d.ts.map +1 -1
- package/dist/csp.js +150 -163
- package/dist/csp_of_fuzdev.d.ts +13 -3
- package/dist/csp_of_fuzdev.d.ts.map +1 -1
- package/dist/csp_of_fuzdev.js +23 -7
- package/dist/dimensions.svelte.d.ts.map +1 -1
- package/dist/dimensions.svelte.js +2 -2
- package/dist/library.svelte.d.ts +1 -1
- package/dist/library_generate.js +1 -1
- package/dist/style_variable_helpers.svelte.d.ts.map +1 -1
- package/dist/style_variable_helpers.svelte.js +1 -1
- package/dist/theme_state.svelte.d.ts.map +1 -1
- package/dist/theme_state.svelte.js +2 -2
- package/dist/tsdoc_helpers.d.ts +9 -0
- package/dist/tsdoc_helpers.d.ts.map +1 -1
- package/dist/tsdoc_helpers.js +15 -5
- package/package.json +6 -6
- package/src/lib/api_search.svelte.ts +2 -2
- package/src/lib/contextmenu_state.svelte.ts +9 -8
- package/src/lib/csp.ts +229 -259
- package/src/lib/csp_of_fuzdev.ts +24 -8
- package/src/lib/dimensions.svelte.ts +2 -2
- package/src/lib/library_generate.ts +1 -1
- package/src/lib/style_variable_helpers.svelte.ts +1 -1
- package/src/lib/theme_state.svelte.ts +2 -2
- package/src/lib/tsdoc_helpers.ts +18 -7
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
</script>
|
|
50
50
|
|
|
51
51
|
<!-- TODO probably add a `nav` wrapper? around which? -->
|
|
52
|
-
<aside {...rest} class="
|
|
52
|
+
<aside {...rest} class="docs-tertiary-nav unstyled {rest.class}">
|
|
53
53
|
{#if should_show_page_links}
|
|
54
54
|
<DocsPageLinks {sidebar} expand_width />
|
|
55
55
|
{/if}
|
|
56
56
|
{#if tomes_related_to_selected.length}
|
|
57
|
-
<section class="
|
|
57
|
+
<section class="related-section">
|
|
58
58
|
<h4 class="mb_sm">related tomes</h4>
|
|
59
59
|
<ul class="unstyled">
|
|
60
60
|
{#each tomes_related_to_selected as tome (tome.name)}
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
</section>
|
|
65
65
|
{/if}
|
|
66
66
|
{#if modules_related_to_selected.length}
|
|
67
|
-
<section class="
|
|
67
|
+
<section class="related-section">
|
|
68
68
|
<h4 class="mb_sm">related modules</h4>
|
|
69
69
|
<ul class="unstyled">
|
|
70
70
|
{#each modules_related_to_selected as module (module.path)}
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
</section>
|
|
75
75
|
{/if}
|
|
76
76
|
{#if declarations_related_to_selected.length}
|
|
77
|
-
<section class="
|
|
77
|
+
<section class="related-section">
|
|
78
78
|
<h4 class="mb_sm">related declarations</h4>
|
|
79
79
|
<ul class="unstyled">
|
|
80
80
|
{#each declarations_related_to_selected as declaration (declaration.name)}
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
</aside>
|
|
87
87
|
|
|
88
88
|
<style>
|
|
89
|
-
.
|
|
89
|
+
.docs-tertiary-nav {
|
|
90
90
|
/* TODO @many lots of duplicate code between `DocsSecondaryNav` and `DocsTertiaryNav` */
|
|
91
91
|
position: fixed;
|
|
92
92
|
right: 0;
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
|
|
105
105
|
/* sync this breakpoint with `/docs/+layout` */
|
|
106
106
|
@media (max-width: 1000px) {
|
|
107
|
-
.
|
|
107
|
+
.docs-tertiary-nav {
|
|
108
108
|
position: static;
|
|
109
109
|
background-color: initial;
|
|
110
110
|
overflow: initial;
|
package/dist/GithubLink.svelte
CHANGED
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
|
|
76
76
|
<!-- TODO -next-line doesnt work? -->
|
|
77
77
|
<!-- eslint-disable svelte/no-navigation-without-resolve -->
|
|
78
|
-
<a {...rest} {href} class="
|
|
78
|
+
<a {...rest} {href} class="github-link white-space:nowrap {rest.class}" rel="noopener"
|
|
79
79
|
><Svg data={logo_github} inline size="var(--icon_size_xs)" class="mx_xs3 vertical-align:middle" />
|
|
80
80
|
{#if typeof final_children === 'string'}
|
|
81
81
|
<span class="font_family_mono">{final_children}</span>
|
package/dist/Hashlink.svelte
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<a {...rest} class="hashlink {rest.class}" href="#{fragment}" aria-label="hashlink"
|
|
8
8
|
>{#if children}{@render children()}{:else}#{/if}</a
|
|
9
9
|
>
|
|
10
|
-
<span class="
|
|
10
|
+
<span class="hashlink-scroll-target" id={fragment} aria-hidden="true"></span>
|
|
11
11
|
|
|
12
12
|
<style>
|
|
13
13
|
/* TODO @many how can this be done generically so it's composable? currently using `:global` at usage site - ideally we'd continue to use :hover instead of JS */
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
transition: opacity var(--duration_2);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
.
|
|
24
|
+
.hashlink-scroll-target {
|
|
25
25
|
position: absolute;
|
|
26
26
|
top: calc(var(--font_size, var(--font_size_md)) * -4);
|
|
27
27
|
left: 0;
|
package/dist/HueInput.svelte
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
update_hue(parsed);
|
|
33
33
|
};
|
|
34
34
|
|
|
35
|
-
let el: HTMLInputElement | undefined = $state();
|
|
35
|
+
let el: HTMLInputElement | undefined = $state.raw();
|
|
36
36
|
|
|
37
37
|
const set_hue_from_minimap = (e: MouseEvent & {currentTarget: EventTarget & HTMLElement}) => {
|
|
38
38
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
@@ -43,15 +43,15 @@
|
|
|
43
43
|
</script>
|
|
44
44
|
|
|
45
45
|
<!-- TODO consider making this a text input or otherwise editable directly -->
|
|
46
|
-
<div {...rest} class="
|
|
47
|
-
<label>
|
|
46
|
+
<div {...rest} class="hue-input {rest.class}" style:--hue={value}>
|
|
47
|
+
<label class="unstyled">
|
|
48
48
|
{#if children}<div class="title">{@render children()}</div>{/if}
|
|
49
49
|
<div class="preview">
|
|
50
50
|
hue
|
|
51
51
|
<input type="number" step="0" class="hue" {value} oninput={on_input_event} />
|
|
52
52
|
</div>
|
|
53
53
|
</label>
|
|
54
|
-
<div class="
|
|
54
|
+
<div class="minimap-wrapper">
|
|
55
55
|
<div class="minimap" onclick={set_hue_from_minimap} aria-hidden="true"></div>
|
|
56
56
|
</div>
|
|
57
57
|
<input
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
</div>
|
|
67
67
|
|
|
68
68
|
<style>
|
|
69
|
-
.
|
|
69
|
+
.hue-input {
|
|
70
70
|
--outline_color: hsl(var(--hue) 50% 60%);
|
|
71
71
|
/* TODO @many figure these variables out so they're easily customized (similar pattern in a lot of places) */
|
|
72
72
|
/* --thumb_background_color: hsl(var(--hue) 50% 50%); */
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
border-top-left-radius: var(--border_radius, var(--border_radius_md));
|
|
85
85
|
border-top-right-radius: var(--border_radius, var(--border_radius_md));
|
|
86
86
|
}
|
|
87
|
-
.
|
|
87
|
+
.minimap-wrapper {
|
|
88
88
|
padding: 0 var(--input_padding_x);
|
|
89
89
|
background: hsl(0 50% 50%) 0%;
|
|
90
90
|
}
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
<!-- eslint-disable svelte/no-navigation-without-resolve -->
|
|
47
47
|
|
|
48
|
-
<div class="
|
|
48
|
+
<div class="library-detail">
|
|
49
49
|
<!-- TODO maybe continue this snippet pattern, or maybe simplify? -->
|
|
50
50
|
<div class="info">
|
|
51
51
|
<div class="display:flex flex:1">
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
{#if repo_name}
|
|
56
56
|
{@render repo_name(library.repo_name)}
|
|
57
57
|
{:else}
|
|
58
|
-
<div class="
|
|
58
|
+
<div class="repo-name">
|
|
59
59
|
{library.repo_name}{#if package_json.glyph} {package_json.glyph}{/if}
|
|
60
60
|
</div>
|
|
61
61
|
{/if}
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
{#if npm_url}
|
|
80
80
|
{@render npm_url(library.npm_url)}
|
|
81
81
|
{:else}
|
|
82
|
-
<blockquote class="
|
|
82
|
+
<blockquote class="npm-url">npm i -D {package_json.name}</blockquote>
|
|
83
83
|
{/if}
|
|
84
84
|
{/if}
|
|
85
85
|
<!-- TODO accessible HTML -->
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
class:css={module_is_css(module.path)}
|
|
176
176
|
class:json={module_is_json(module.path)}
|
|
177
177
|
>
|
|
178
|
-
<div class="
|
|
178
|
+
<div class="module-content">
|
|
179
179
|
<span class="font_size_xl">
|
|
180
180
|
<ModuleLink module_path={module.path}>
|
|
181
181
|
{module.path}
|
|
@@ -204,7 +204,7 @@
|
|
|
204
204
|
<!-- TODO better rendering, also show author, etc -->
|
|
205
205
|
|
|
206
206
|
<style>
|
|
207
|
-
.
|
|
207
|
+
.library-detail {
|
|
208
208
|
display: flex;
|
|
209
209
|
flex-direction: column;
|
|
210
210
|
align-items: flex-start;
|
|
@@ -232,12 +232,12 @@
|
|
|
232
232
|
width: 100%;
|
|
233
233
|
margin-bottom: var(--space_lg);
|
|
234
234
|
}
|
|
235
|
-
.
|
|
235
|
+
.repo-name {
|
|
236
236
|
font-family: var(--font_family_serif);
|
|
237
237
|
font-size: var(--font_size_xl2);
|
|
238
238
|
font-weight: 400;
|
|
239
239
|
}
|
|
240
|
-
.
|
|
240
|
+
.npm-url {
|
|
241
241
|
font-family: var(--font_family_mono);
|
|
242
242
|
text-align: center;
|
|
243
243
|
margin-bottom: var(--space_lg);
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
margin-bottom: var(--space_xs);
|
|
270
270
|
--link_color: var(--text_70);
|
|
271
271
|
}
|
|
272
|
-
.
|
|
272
|
+
.module-content {
|
|
273
273
|
background-color: var(--shade_10);
|
|
274
274
|
border-radius: var(--border_radius_sm);
|
|
275
275
|
padding: var(--space_xs);
|
|
@@ -29,13 +29,13 @@
|
|
|
29
29
|
const {package_json} = $derived(library);
|
|
30
30
|
</script>
|
|
31
31
|
|
|
32
|
-
<div class="
|
|
32
|
+
<div class="library-summary">
|
|
33
33
|
<!-- TODO maybe continue this snippet pattern, or maybe simplify? -->
|
|
34
34
|
<header class="box mb_lg">
|
|
35
35
|
{#if repo_name}
|
|
36
36
|
{@render repo_name(library.repo_name)}
|
|
37
37
|
{:else}
|
|
38
|
-
<div class="
|
|
38
|
+
<div class="repo-name">{library.repo_name}</div>
|
|
39
39
|
{/if}
|
|
40
40
|
<!-- TODO maybe add `icon_alt` to package.json -->
|
|
41
41
|
<!-- TODO what about svg logos? maybe a package.json logo url that defaults to favicon? -->
|
|
@@ -118,14 +118,14 @@
|
|
|
118
118
|
<!-- TODO better rendering, also show author, etc -->
|
|
119
119
|
|
|
120
120
|
<style>
|
|
121
|
-
.
|
|
121
|
+
.library-summary {
|
|
122
122
|
padding: var(--space_lg);
|
|
123
123
|
display: flex;
|
|
124
124
|
flex-direction: column;
|
|
125
125
|
align-items: center;
|
|
126
126
|
max-width: var(--max_width, var(--distance_sm));
|
|
127
127
|
}
|
|
128
|
-
.
|
|
128
|
+
.repo-name {
|
|
129
129
|
font-family: var(--font_family_serif);
|
|
130
130
|
font-size: var(--font_size_xl2);
|
|
131
131
|
font-weight: 400;
|
package/dist/MdnLink.svelte
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
<!-- TODO -next-line doesnt work? -->
|
|
30
30
|
<!-- eslint-disable svelte/no-navigation-without-resolve -->
|
|
31
|
-
<a {...rest} {href} class="
|
|
31
|
+
<a {...rest} {href} class="mdn-link white-space:nowrap {rest.class}" rel="noopener"
|
|
32
32
|
><Svg data={logo_mdn} inline size="var(--icon_size_xs)" class="mx_xs3 vertical-align:middle" />
|
|
33
33
|
{#if typeof final_children === 'string'}
|
|
34
34
|
<span class="font_family_mono">{final_children}</span>
|
package/dist/ModuleLink.svelte
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<!-- eslint-disable svelte/no-navigation-without-resolve -->
|
|
34
34
|
<a
|
|
35
35
|
{...rest}
|
|
36
|
-
class="
|
|
36
|
+
class="module-link {class_prop} {color_class}"
|
|
37
37
|
href={module.url_api + (hash ? ensure_start(hash, '#') : '')}
|
|
38
38
|
{@attach contextmenu_attachment(contextmenu_entries)}
|
|
39
39
|
>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
<span
|
|
23
23
|
{...rest}
|
|
24
|
-
class="
|
|
24
|
+
class="pending-animation {rest.class} {inline
|
|
25
25
|
? 'display:inline-flex align-items:center'
|
|
26
26
|
: 'display:flex'}"
|
|
27
27
|
class:running
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
>
|
|
36
36
|
|
|
37
37
|
<style>
|
|
38
|
-
.
|
|
38
|
+
.pending-animation span {
|
|
39
39
|
font-size: var(--font_size, inherit);
|
|
40
40
|
display: inline-block;
|
|
41
41
|
transform: scale3d(var(--scale_x, 0.4), var(--scale_y, 0.4), var(--scale_z, 0.4));
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
children: Snippet;
|
|
21
21
|
} = $props();
|
|
22
22
|
|
|
23
|
-
let el: HTMLButtonElement | undefined = $state();
|
|
23
|
+
let el: HTMLButtonElement | undefined = $state.raw();
|
|
24
24
|
|
|
25
25
|
export const focus = (options?: FocusOptions): void => el?.focus(options);
|
|
26
26
|
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
bind:this={el}
|
|
32
32
|
type="button"
|
|
33
33
|
{...rest}
|
|
34
|
-
class="
|
|
34
|
+
class="pending-button {rest.class}"
|
|
35
35
|
disabled={disabled_prop ?? pending}
|
|
36
36
|
title={title_prop}
|
|
37
37
|
class:pending
|
package/dist/ProjectLinks.svelte
CHANGED
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
<a class="thumbnail row shade_00 px_md py_xs border_radius_sm mb_lg" href={project_item.url}
|
|
56
56
|
><Svg shrink={false} data={project_item.logo} size="var(--icon_size_lg)" />
|
|
57
57
|
<div class="pl_lg width_atmost_sm">
|
|
58
|
-
<div class="
|
|
59
|
-
<div class="
|
|
58
|
+
<div class="thumbnail-name {project_item.color_class}">{project_item.name}</div>
|
|
59
|
+
<div class="thumbnail-description font_size_md text_70 font-weight:500">
|
|
60
60
|
{project_item.description}
|
|
61
61
|
{project_item.glyph}
|
|
62
62
|
</div>
|
|
@@ -83,10 +83,10 @@
|
|
|
83
83
|
|
|
84
84
|
/* show the underline only on the name, not the description */
|
|
85
85
|
text-decoration: none;
|
|
86
|
-
.
|
|
86
|
+
.thumbnail-name {
|
|
87
87
|
text-decoration: underline;
|
|
88
88
|
}
|
|
89
|
-
.
|
|
89
|
+
.thumbnail-description {
|
|
90
90
|
text-decoration: none;
|
|
91
91
|
}
|
|
92
92
|
}
|
package/dist/Teleport.svelte
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
children: Snippet;
|
|
17
17
|
} = $props();
|
|
18
18
|
|
|
19
|
-
let el: HTMLElement | undefined | null = $state();
|
|
19
|
+
let el: HTMLElement | undefined | null = $state.raw();
|
|
20
20
|
|
|
21
21
|
$effect(() => {
|
|
22
22
|
if (el && to) {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
|
|
27
|
-
let moved = $state(false);
|
|
27
|
+
let moved = $state.raw(false);
|
|
28
28
|
|
|
29
29
|
const move = (el: HTMLElement, to: HTMLElement): void => {
|
|
30
30
|
moved = true;
|
package/dist/ThemeInput.svelte
CHANGED
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
} = $props();
|
|
29
29
|
</script>
|
|
30
30
|
|
|
31
|
-
<menu {...rest} class="
|
|
31
|
+
<menu {...rest} class="theme-input unstyled {rest.class}">
|
|
32
32
|
{#each themes as theme (theme.name)}
|
|
33
33
|
<!-- TODO @many proper equality check, won't work when we allow editing, need an id or unique names and a deep equality check -->
|
|
34
34
|
{@const selected = theme.name === selected_theme.theme.name}
|
|
35
35
|
<li class="row" role="none">
|
|
36
36
|
<button
|
|
37
37
|
type="button"
|
|
38
|
-
class="
|
|
38
|
+
class="theme-button color_a"
|
|
39
39
|
role="menuitemradio"
|
|
40
40
|
aria-label="{theme.name} theme"
|
|
41
41
|
aria-checked={selected}
|
|
@@ -64,15 +64,15 @@
|
|
|
64
64
|
</menu>
|
|
65
65
|
|
|
66
66
|
<style>
|
|
67
|
-
.
|
|
67
|
+
.theme-button {
|
|
68
68
|
flex: 1;
|
|
69
69
|
border-radius: 0;
|
|
70
70
|
}
|
|
71
|
-
li:first-child .
|
|
71
|
+
li:first-child .theme-button {
|
|
72
72
|
border-top-left-radius: var(--border_radius_sm);
|
|
73
73
|
border-top-right-radius: var(--border_radius_sm);
|
|
74
74
|
}
|
|
75
|
-
li:last-child .
|
|
75
|
+
li:last-child .theme-button {
|
|
76
76
|
border-bottom-left-radius: var(--border_radius_sm);
|
|
77
77
|
border-bottom-right-radius: var(--border_radius_sm);
|
|
78
78
|
}
|
package/dist/TomeContent.svelte
CHANGED
package/dist/TomeHeader.svelte
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
const {path, path_is_selected} = $derived(to_docs_path_info(path_slug, page.url.pathname));
|
|
27
27
|
</script>
|
|
28
28
|
|
|
29
|
-
<svelte:element this={path_is_selected ? 'h1' : 'h2'} {...props} class="
|
|
29
|
+
<svelte:element this={path_is_selected ? 'h1' : 'h2'} {...props} class="tome-header">
|
|
30
30
|
{#if path_is_selected}
|
|
31
31
|
{@render content(tome.name)}
|
|
32
32
|
{:else}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
{/snippet}
|
|
42
42
|
|
|
43
43
|
<style>
|
|
44
|
-
.
|
|
44
|
+
.tome-header {
|
|
45
45
|
position: relative;
|
|
46
46
|
display: flex;
|
|
47
47
|
align-items: center;
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
margin-top: var(--space_xl4);
|
|
50
50
|
}
|
|
51
51
|
/* TODO @many how can this be done composably? currently using `:global` at usage site - ideally we'd continue to use :hover instead of JS */
|
|
52
|
-
.
|
|
52
|
+
.tome-header:hover :global(.hashlink) {
|
|
53
53
|
opacity: 1;
|
|
54
54
|
}
|
|
55
55
|
</style>
|
package/dist/TomeLink.svelte
CHANGED
|
@@ -29,6 +29,6 @@
|
|
|
29
29
|
</script>
|
|
30
30
|
|
|
31
31
|
<!-- eslint-disable-next-line svelte/no-navigation-without-resolve -->
|
|
32
|
-
<a {...rest} class="
|
|
32
|
+
<a {...rest} class="tome-link {class_prop}" href={to_tome_pathname(name, docs_path, hash)}
|
|
33
33
|
>{#if children}{@render children()}{:else}{name}{/if}</a
|
|
34
34
|
>
|
package/dist/TomeSection.svelte
CHANGED
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
// Provide own section ID to direct children (header) via context
|
|
40
40
|
section_id_context.set(section_id);
|
|
41
41
|
|
|
42
|
-
let get_fragment: (() => string) | undefined = $state();
|
|
42
|
+
let get_fragment: (() => string) | undefined = $state.raw();
|
|
43
43
|
|
|
44
44
|
register_section_header_context.set((gf) => {
|
|
45
45
|
if (DEV && get_fragment !== undefined) {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
</script>
|
|
61
61
|
|
|
62
62
|
<header>
|
|
63
|
-
<svelte:element this={final_tag} {...rest} class:
|
|
63
|
+
<svelte:element this={final_tag} {...rest} class:tome-section-header={true}>
|
|
64
64
|
<div class="flex:1">
|
|
65
65
|
{#if children}
|
|
66
66
|
{@render children()}
|
|
@@ -73,14 +73,14 @@
|
|
|
73
73
|
</header>
|
|
74
74
|
|
|
75
75
|
<style>
|
|
76
|
-
.
|
|
76
|
+
.tome-section-header {
|
|
77
77
|
position: relative;
|
|
78
78
|
display: flex;
|
|
79
79
|
align-items: center;
|
|
80
80
|
justify-content: space-between;
|
|
81
81
|
}
|
|
82
82
|
/* TODO @many how can this be done composably? currently using `:global` at usage site - ideally we'd continue to use :hover instead of JS */
|
|
83
|
-
.
|
|
83
|
+
.tome-section-header:hover :global(.hashlink) {
|
|
84
84
|
opacity: 1;
|
|
85
85
|
}
|
|
86
86
|
</style>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Creates unified search state for the API index page (modules and declarations).
|
|
3
3
|
*/
|
|
4
4
|
export const create_api_search = (library) => {
|
|
5
|
-
let query = $state('');
|
|
5
|
+
let query = $state.raw('');
|
|
6
6
|
// Module filtering
|
|
7
7
|
const all_modules = $derived(library.modules_sorted);
|
|
8
8
|
const filtered_modules = $derived.by(() => {
|
|
@@ -50,7 +50,7 @@ export const create_api_search = (library) => {
|
|
|
50
50
|
* Creates search state for module-specific declaration lists.
|
|
51
51
|
*/
|
|
52
52
|
export const create_module_declaration_search = (declarations) => {
|
|
53
|
-
let query = $state('');
|
|
53
|
+
let query = $state.raw('');
|
|
54
54
|
const all = $derived(declarations);
|
|
55
55
|
const filtered = $derived.by(() => {
|
|
56
56
|
const trimmed_query = query.trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,4BAA4B,CAAC;AAGvD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAC,UAAU,EAAC,MAAM,wBAAwB,CAAC;AAIlD,MAAM,MAAM,iBAAiB,GAC1B,OAAO,GAEP;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,GACvD;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,cAAc,CAAA;KAAC,CAAA;CAAC,GAC9E;IAAC,OAAO,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAA;CAAC,CAAC;AAE3D,MAAM,MAAM,yBAAyB,GAClC,IAAI,GACJ,SAAS,GACT,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAC,EAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;AAElD,qBAAa,UAAU;IACtB,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IAE5C,QAAQ,CAAC,GAAG,EAAE,MAAM,cAAc,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC;IAEjC,QAAQ,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"contextmenu_state.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/contextmenu_state.svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,9 @@ export class EntryState {
|
|
|
10
10
|
menu;
|
|
11
11
|
run;
|
|
12
12
|
disabled;
|
|
13
|
-
selected = $state(false);
|
|
14
|
-
pending = $state(false);
|
|
15
|
-
error_message = $state(null);
|
|
13
|
+
selected = $state.raw(false);
|
|
14
|
+
pending = $state.raw(false);
|
|
15
|
+
error_message = $state.raw(null);
|
|
16
16
|
promise = $state.raw(null);
|
|
17
17
|
constructor(menu, run, disabled = () => false) {
|
|
18
18
|
this.menu = menu;
|
|
@@ -24,7 +24,7 @@ export class SubmenuState {
|
|
|
24
24
|
is_menu = true;
|
|
25
25
|
menu;
|
|
26
26
|
depth;
|
|
27
|
-
selected = $state(false);
|
|
27
|
+
selected = $state.raw(false);
|
|
28
28
|
items = $state.raw([]);
|
|
29
29
|
constructor(menu, depth) {
|
|
30
30
|
this.menu = menu;
|
|
@@ -51,11 +51,11 @@ export class ContextmenuState {
|
|
|
51
51
|
*/
|
|
52
52
|
has_custom_layout;
|
|
53
53
|
// State for external consumers.
|
|
54
|
-
opened = $state(false);
|
|
55
|
-
x = $state(0);
|
|
56
|
-
y = $state(0);
|
|
54
|
+
opened = $state.raw(false);
|
|
55
|
+
x = $state.raw(0);
|
|
56
|
+
y = $state.raw(0);
|
|
57
57
|
params = $state.raw([]);
|
|
58
|
-
error = $state();
|
|
58
|
+
error = $state.raw();
|
|
59
59
|
// These arrays use immutable updates (reassignment, not mutation).
|
|
60
60
|
// If you need reactivity, use `$contextmenu` in a reactive statement to react to all changes, and
|
|
61
61
|
// then access the immutable `contextmenu.root_menu` and `contextmenu.selections`.
|
|
@@ -259,6 +259,8 @@ export class ContextmenuState {
|
|
|
259
259
|
}
|
|
260
260
|
select_last() {
|
|
261
261
|
const { items } = this.selections.at(-1)?.menu ?? this.root_menu;
|
|
262
|
+
if (!items.length)
|
|
263
|
+
return;
|
|
262
264
|
this.select(items.at(-1));
|
|
263
265
|
}
|
|
264
266
|
/**
|