@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.
- package/LICENSE +21 -0
- package/README.md +93 -0
- package/dist/Alert.svelte +108 -0
- package/dist/Alert.svelte.d.ts +16 -0
- package/dist/Alert.svelte.d.ts.map +1 -0
- package/dist/ApiDeclarationList.svelte +35 -0
- package/dist/ApiDeclarationList.svelte.d.ts +9 -0
- package/dist/ApiDeclarationList.svelte.d.ts.map +1 -0
- package/dist/ApiIndex.svelte +65 -0
- package/dist/ApiIndex.svelte.d.ts +23 -0
- package/dist/ApiIndex.svelte.d.ts.map +1 -0
- package/dist/ApiModule.svelte +124 -0
- package/dist/ApiModule.svelte.d.ts +22 -0
- package/dist/ApiModule.svelte.d.ts.map +1 -0
- package/dist/Breadcrumb.svelte +83 -0
- package/dist/Breadcrumb.svelte.d.ts +23 -0
- package/dist/Breadcrumb.svelte.d.ts.map +1 -0
- package/dist/Card.svelte +157 -0
- package/dist/Card.svelte.d.ts +13 -0
- package/dist/Card.svelte.d.ts.map +1 -0
- package/dist/ColorSchemeInput.svelte +65 -0
- package/dist/ColorSchemeInput.svelte.d.ts +11 -0
- package/dist/ColorSchemeInput.svelte.d.ts.map +1 -0
- package/dist/Contextmenu.svelte +30 -0
- package/dist/Contextmenu.svelte.d.ts +32 -0
- package/dist/Contextmenu.svelte.d.ts.map +1 -0
- package/dist/ContextmenuEntry.svelte +74 -0
- package/dist/ContextmenuEntry.svelte.d.ts +12 -0
- package/dist/ContextmenuEntry.svelte.d.ts.map +1 -0
- package/dist/ContextmenuLinkEntry.svelte +112 -0
- package/dist/ContextmenuLinkEntry.svelte.d.ts +12 -0
- package/dist/ContextmenuLinkEntry.svelte.d.ts.map +1 -0
- package/dist/ContextmenuRoot.svelte +372 -0
- package/dist/ContextmenuRoot.svelte.d.ts +71 -0
- package/dist/ContextmenuRoot.svelte.d.ts.map +1 -0
- package/dist/ContextmenuRootForSafariCompatibility.svelte +541 -0
- package/dist/ContextmenuRootForSafariCompatibility.svelte.d.ts +79 -0
- package/dist/ContextmenuRootForSafariCompatibility.svelte.d.ts.map +1 -0
- package/dist/ContextmenuSeparator.svelte +16 -0
- package/dist/ContextmenuSeparator.svelte.d.ts +4 -0
- package/dist/ContextmenuSeparator.svelte.d.ts.map +1 -0
- package/dist/ContextmenuSubmenu.svelte +116 -0
- package/dist/ContextmenuSubmenu.svelte.d.ts +10 -0
- package/dist/ContextmenuSubmenu.svelte.d.ts.map +1 -0
- package/dist/ContextmenuTextEntry.svelte +21 -0
- package/dist/ContextmenuTextEntry.svelte.d.ts +10 -0
- package/dist/ContextmenuTextEntry.svelte.d.ts.map +1 -0
- package/dist/CopyToClipboard.svelte +81 -0
- package/dist/CopyToClipboard.svelte.d.ts +18 -0
- package/dist/CopyToClipboard.svelte.d.ts.map +1 -0
- package/dist/DeclarationDetail.svelte +340 -0
- package/dist/DeclarationDetail.svelte.d.ts +8 -0
- package/dist/DeclarationDetail.svelte.d.ts.map +1 -0
- package/dist/DeclarationLink.svelte +50 -0
- package/dist/DeclarationLink.svelte.d.ts +8 -0
- package/dist/DeclarationLink.svelte.d.ts.map +1 -0
- package/dist/Details.svelte +51 -0
- package/dist/Details.svelte.d.ts +20 -0
- package/dist/Details.svelte.d.ts.map +1 -0
- package/dist/Dialog.svelte +217 -0
- package/dist/Dialog.svelte.d.ts +30 -0
- package/dist/Dialog.svelte.d.ts.map +1 -0
- package/dist/Dialogs.svelte +28 -0
- package/dist/Dialogs.svelte.d.ts +11 -0
- package/dist/Dialogs.svelte.d.ts.map +1 -0
- package/dist/Docs.svelte +179 -0
- package/dist/Docs.svelte.d.ts +13 -0
- package/dist/Docs.svelte.d.ts.map +1 -0
- package/dist/DocsContent.svelte +40 -0
- package/dist/DocsContent.svelte.d.ts +14 -0
- package/dist/DocsContent.svelte.d.ts.map +1 -0
- package/dist/DocsFooter.svelte +64 -0
- package/dist/DocsFooter.svelte.d.ts +15 -0
- package/dist/DocsFooter.svelte.d.ts.map +1 -0
- package/dist/DocsLink.svelte +41 -0
- package/dist/DocsLink.svelte.d.ts +12 -0
- package/dist/DocsLink.svelte.d.ts.map +1 -0
- package/dist/DocsList.svelte +44 -0
- package/dist/DocsList.svelte.d.ts +11 -0
- package/dist/DocsList.svelte.d.ts.map +1 -0
- package/dist/DocsMenu.svelte +55 -0
- package/dist/DocsMenu.svelte.d.ts +11 -0
- package/dist/DocsMenu.svelte.d.ts.map +1 -0
- package/dist/DocsMenuHeader.svelte +15 -0
- package/dist/DocsMenuHeader.svelte.d.ts +9 -0
- package/dist/DocsMenuHeader.svelte.d.ts.map +1 -0
- package/dist/DocsModulesList.svelte +32 -0
- package/dist/DocsModulesList.svelte.d.ts +7 -0
- package/dist/DocsModulesList.svelte.d.ts.map +1 -0
- package/dist/DocsPageLinks.svelte +61 -0
- package/dist/DocsPageLinks.svelte.d.ts +8 -0
- package/dist/DocsPageLinks.svelte.d.ts.map +1 -0
- package/dist/DocsPrimaryNav.svelte +93 -0
- package/dist/DocsPrimaryNav.svelte.d.ts +11 -0
- package/dist/DocsPrimaryNav.svelte.d.ts.map +1 -0
- package/dist/DocsSearch.svelte +48 -0
- package/dist/DocsSearch.svelte.d.ts +11 -0
- package/dist/DocsSearch.svelte.d.ts.map +1 -0
- package/dist/DocsSecondaryNav.svelte +63 -0
- package/dist/DocsSecondaryNav.svelte.d.ts +9 -0
- package/dist/DocsSecondaryNav.svelte.d.ts.map +1 -0
- package/dist/DocsTertiaryNav.svelte +118 -0
- package/dist/DocsTertiaryNav.svelte.d.ts +10 -0
- package/dist/DocsTertiaryNav.svelte.d.ts.map +1 -0
- package/dist/EcosystemLinks.svelte +53 -0
- package/dist/EcosystemLinks.svelte.d.ts +7 -0
- package/dist/EcosystemLinks.svelte.d.ts.map +1 -0
- package/dist/EcosystemLinksPanel.svelte +22 -0
- package/dist/EcosystemLinksPanel.svelte.d.ts +8 -0
- package/dist/EcosystemLinksPanel.svelte.d.ts.map +1 -0
- package/dist/GithubLink.svelte +75 -0
- package/dist/GithubLink.svelte.d.ts +14 -0
- package/dist/GithubLink.svelte.d.ts.map +1 -0
- package/dist/Glyph.svelte +28 -0
- package/dist/Glyph.svelte.d.ts +9 -0
- package/dist/Glyph.svelte.d.ts.map +1 -0
- package/dist/Hashlink.svelte +41 -0
- package/dist/Hashlink.svelte.d.ts +8 -0
- package/dist/Hashlink.svelte.d.ts.map +1 -0
- package/dist/HiddenPersonalLinks.svelte +6 -0
- package/dist/HiddenPersonalLinks.svelte.d.ts +27 -0
- package/dist/HiddenPersonalLinks.svelte.d.ts.map +1 -0
- package/dist/HueInput.svelte +127 -0
- package/dist/HueInput.svelte.d.ts +11 -0
- package/dist/HueInput.svelte.d.ts.map +1 -0
- package/dist/ImgOrSvg.svelte +58 -0
- package/dist/ImgOrSvg.svelte.d.ts +25 -0
- package/dist/ImgOrSvg.svelte.d.ts.map +1 -0
- package/dist/LibraryDetail.svelte +297 -0
- package/dist/LibraryDetail.svelte.d.ts +15 -0
- package/dist/LibraryDetail.svelte.d.ts.map +1 -0
- package/dist/LibrarySummary.svelte +151 -0
- package/dist/LibrarySummary.svelte.d.ts +16 -0
- package/dist/LibrarySummary.svelte.d.ts.map +1 -0
- package/dist/MdnLink.svelte +40 -0
- package/dist/MdnLink.svelte.d.ts +8 -0
- package/dist/MdnLink.svelte.d.ts.map +1 -0
- package/dist/Mdz.svelte +30 -0
- package/dist/Mdz.svelte.d.ts +10 -0
- package/dist/Mdz.svelte.d.ts.map +1 -0
- package/dist/MdzNodeView.svelte +93 -0
- package/dist/MdzNodeView.svelte.d.ts +9 -0
- package/dist/MdzNodeView.svelte.d.ts.map +1 -0
- package/dist/ModuleLink.svelte +48 -0
- package/dist/ModuleLink.svelte.d.ts +8 -0
- package/dist/ModuleLink.svelte.d.ts.map +1 -0
- package/dist/PasteFromClipboard.svelte +35 -0
- package/dist/PasteFromClipboard.svelte.d.ts +9 -0
- package/dist/PasteFromClipboard.svelte.d.ts.map +1 -0
- package/dist/PendingAnimation.svelte +62 -0
- package/dist/PendingAnimation.svelte.d.ts +13 -0
- package/dist/PendingAnimation.svelte.d.ts.map +1 -0
- package/dist/PendingButton.svelte +75 -0
- package/dist/PendingButton.svelte.d.ts +17 -0
- package/dist/PendingButton.svelte.d.ts.map +1 -0
- package/dist/ProjectLinks.svelte +54 -0
- package/dist/ProjectLinks.svelte.d.ts +19 -0
- package/dist/ProjectLinks.svelte.d.ts.map +1 -0
- package/dist/Redirect.svelte +44 -0
- package/dist/Redirect.svelte.d.ts +23 -0
- package/dist/Redirect.svelte.d.ts.map +1 -0
- package/dist/Spiders.svelte +57 -0
- package/dist/Spiders.svelte.d.ts +9 -0
- package/dist/Spiders.svelte.d.ts.map +1 -0
- package/dist/Svg.svelte +99 -0
- package/dist/Svg.svelte.d.ts +54 -0
- package/dist/Svg.svelte.d.ts.map +1 -0
- package/dist/Teleport.svelte +48 -0
- package/dist/Teleport.svelte.d.ts +15 -0
- package/dist/Teleport.svelte.d.ts.map +1 -0
- package/dist/ThemeInput.svelte +75 -0
- package/dist/ThemeInput.svelte.d.ts +15 -0
- package/dist/ThemeInput.svelte.d.ts.map +1 -0
- package/dist/Themed.svelte +101 -0
- package/dist/Themed.svelte.d.ts +24 -0
- package/dist/Themed.svelte.d.ts.map +1 -0
- package/dist/TomeContent.svelte +67 -0
- package/dist/TomeContent.svelte.d.ts +12 -0
- package/dist/TomeContent.svelte.d.ts.map +1 -0
- package/dist/TomeHeader.svelte +56 -0
- package/dist/TomeHeader.svelte.d.ts +4 -0
- package/dist/TomeHeader.svelte.d.ts.map +1 -0
- package/dist/TomeLink.svelte +29 -0
- package/dist/TomeLink.svelte.d.ts +10 -0
- package/dist/TomeLink.svelte.d.ts.map +1 -0
- package/dist/TomeSection.svelte +65 -0
- package/dist/TomeSection.svelte.d.ts +24 -0
- package/dist/TomeSection.svelte.d.ts.map +1 -0
- package/dist/TomeSectionHeader.svelte +90 -0
- package/dist/TomeSectionHeader.svelte.d.ts +13 -0
- package/dist/TomeSectionHeader.svelte.d.ts.map +1 -0
- package/dist/TypeLink.svelte +19 -0
- package/dist/TypeLink.svelte.d.ts +7 -0
- package/dist/TypeLink.svelte.d.ts.map +1 -0
- package/dist/alert.d.ts +7 -0
- package/dist/alert.d.ts.map +1 -0
- package/dist/alert.js +6 -0
- package/dist/api_search.svelte.d.ts +16 -0
- package/dist/api_search.svelte.d.ts.map +1 -0
- package/dist/api_search.svelte.js +61 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +3 -0
- package/dist/context_helpers.d.ts +17 -0
- package/dist/context_helpers.d.ts.map +1 -0
- package/dist/context_helpers.js +19 -0
- package/dist/contextmenu_helpers.d.ts +16 -0
- package/dist/contextmenu_helpers.d.ts.map +1 -0
- package/dist/contextmenu_helpers.js +39 -0
- package/dist/contextmenu_state.svelte.d.ts +152 -0
- package/dist/contextmenu_state.svelte.d.ts.map +1 -0
- package/dist/contextmenu_state.svelte.js +424 -0
- package/dist/csp.d.ts +160 -0
- package/dist/csp.d.ts.map +1 -0
- package/dist/csp.js +354 -0
- package/dist/csp_of_ryanatkn.d.ts +6 -0
- package/dist/csp_of_ryanatkn.d.ts.map +1 -0
- package/dist/csp_of_ryanatkn.js +14 -0
- package/dist/declaration.svelte.d.ts +84 -0
- package/dist/declaration.svelte.d.ts.map +1 -0
- package/dist/declaration.svelte.js +66 -0
- package/dist/declaration_contextmenu.d.ts +4 -0
- package/dist/declaration_contextmenu.d.ts.map +1 -0
- package/dist/declaration_contextmenu.js +14 -0
- package/dist/dialog.d.ts +24 -0
- package/dist/dialog.d.ts.map +1 -0
- package/dist/dialog.js +12 -0
- package/dist/dimensions.svelte.d.ts +5 -0
- package/dist/dimensions.svelte.d.ts.map +1 -0
- package/dist/dimensions.svelte.js +4 -0
- package/dist/docs_helpers.svelte.d.ts +48 -0
- package/dist/docs_helpers.svelte.d.ts.map +1 -0
- package/dist/docs_helpers.svelte.js +99 -0
- package/dist/helpers.d.ts +2 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +16 -0
- package/dist/intersect.svelte.d.ts +47 -0
- package/dist/intersect.svelte.d.ts.map +1 -0
- package/dist/intersect.svelte.js +92 -0
- package/dist/library.svelte.d.ts +197 -0
- package/dist/library.svelte.d.ts.map +1 -0
- package/dist/library.svelte.js +130 -0
- package/dist/library_gen.d.ts +34 -0
- package/dist/library_gen.d.ts.map +1 -0
- package/dist/library_gen.js +123 -0
- package/dist/library_gen_helpers.d.ts +85 -0
- package/dist/library_gen_helpers.d.ts.map +1 -0
- package/dist/library_gen_helpers.js +188 -0
- package/dist/library_helpers.d.ts +54 -0
- package/dist/library_helpers.d.ts.map +1 -0
- package/dist/library_helpers.js +102 -0
- package/dist/logos.d.ts +134 -0
- package/dist/logos.d.ts.map +1 -0
- package/dist/logos.js +281 -0
- package/dist/mdz.d.ts +106 -0
- package/dist/mdz.d.ts.map +1 -0
- package/dist/mdz.js +1481 -0
- package/dist/mdz_components.d.ts +37 -0
- package/dist/mdz_components.d.ts.map +1 -0
- package/dist/mdz_components.js +12 -0
- package/dist/module.svelte.d.ts +47 -0
- package/dist/module.svelte.d.ts.map +1 -0
- package/dist/module.svelte.js +56 -0
- package/dist/module_contextmenu.d.ts +4 -0
- package/dist/module_contextmenu.d.ts.map +1 -0
- package/dist/module_contextmenu.js +14 -0
- package/dist/module_helpers.d.ts +69 -0
- package/dist/module_helpers.d.ts.map +1 -0
- package/dist/module_helpers.js +87 -0
- package/dist/rune_helpers.svelte.d.ts +6 -0
- package/dist/rune_helpers.svelte.d.ts.map +1 -0
- package/dist/rune_helpers.svelte.js +10 -0
- package/dist/storage.d.ts +13 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +43 -0
- package/dist/svelte_helpers.d.ts +37 -0
- package/dist/svelte_helpers.d.ts.map +1 -0
- package/dist/svelte_helpers.js +245 -0
- package/dist/themer.svelte.d.ts +24 -0
- package/dist/themer.svelte.d.ts.map +1 -0
- package/dist/themer.svelte.js +43 -0
- package/dist/tome.d.ts +80 -0
- package/dist/tome.d.ts.map +1 -0
- package/dist/tome.js +27 -0
- package/dist/ts_helpers.d.ts +110 -0
- package/dist/ts_helpers.d.ts.map +1 -0
- package/dist/ts_helpers.js +533 -0
- package/dist/tsdoc_helpers.d.ts +98 -0
- package/dist/tsdoc_helpers.d.ts.map +1 -0
- package/dist/tsdoc_helpers.js +221 -0
- package/package.json +128 -0
- package/src/lib/alert.ts +14 -0
- package/src/lib/api_search.svelte.ts +85 -0
- package/src/lib/constants.ts +3 -0
- package/src/lib/context_helpers.ts +47 -0
- package/src/lib/contextmenu_helpers.ts +63 -0
- package/src/lib/contextmenu_state.svelte.ts +515 -0
- package/src/lib/csp.ts +576 -0
- package/src/lib/csp_of_ryanatkn.ts +16 -0
- package/src/lib/declaration.svelte.ts +102 -0
- package/src/lib/declaration_contextmenu.ts +22 -0
- package/src/lib/dialog.ts +35 -0
- package/src/lib/dimensions.svelte.ts +4 -0
- package/src/lib/docs_helpers.svelte.ts +149 -0
- package/src/lib/helpers.ts +10 -0
- package/src/lib/intersect.svelte.ts +152 -0
- package/src/lib/library.svelte.ts +162 -0
- package/src/lib/library_gen.ts +160 -0
- package/src/lib/library_gen_helpers.ts +262 -0
- package/src/lib/library_helpers.ts +123 -0
- package/src/lib/logos.ts +302 -0
- package/src/lib/mdz.ts +1819 -0
- package/src/lib/mdz_components.ts +34 -0
- package/src/lib/module.svelte.ts +78 -0
- package/src/lib/module_contextmenu.ts +20 -0
- package/src/lib/module_helpers.ts +113 -0
- package/src/lib/rune_helpers.svelte.ts +10 -0
- package/src/lib/storage.ts +48 -0
- package/src/lib/svelte_helpers.ts +303 -0
- package/src/lib/themer.svelte.ts +68 -0
- package/src/lib/tome.ts +38 -0
- package/src/lib/ts_helpers.ts +662 -0
- package/src/lib/tsdoc_helpers.ts +259 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Code from '@fuzdev/fuz_code/Code.svelte';
|
|
3
|
+
import {resolve} from '$app/paths';
|
|
4
|
+
|
|
5
|
+
import type {MdzNode} from './mdz.js';
|
|
6
|
+
import DocsLink from './DocsLink.svelte';
|
|
7
|
+
import MdzNodeView from './MdzNodeView.svelte';
|
|
8
|
+
import {mdz_components_context, mdz_elements_context} from './mdz_components.js';
|
|
9
|
+
|
|
10
|
+
const {
|
|
11
|
+
node,
|
|
12
|
+
}: {
|
|
13
|
+
node: MdzNode;
|
|
14
|
+
} = $props();
|
|
15
|
+
|
|
16
|
+
const components = mdz_components_context.get_maybe();
|
|
17
|
+
const elements = mdz_elements_context.get_maybe();
|
|
18
|
+
// TODO make `Code` customizable via context, maybe registered as component Codeblock?
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
{#if node.type === 'Element'}
|
|
22
|
+
{@const element_config = elements?.get(node.name)}
|
|
23
|
+
{#if element_config !== undefined}
|
|
24
|
+
<svelte:element this={node.name}>
|
|
25
|
+
{#if node.children.length > 0}
|
|
26
|
+
{@render render_children(node.children)}
|
|
27
|
+
{/if}
|
|
28
|
+
</svelte:element>
|
|
29
|
+
{:else}
|
|
30
|
+
{@render render_unregistered_tag(node.name, node.children)}
|
|
31
|
+
{/if}
|
|
32
|
+
{:else if node.type === 'Component'}
|
|
33
|
+
{@const Component = components?.get(node.name)}
|
|
34
|
+
{#if Component}
|
|
35
|
+
<Component>
|
|
36
|
+
{#if node.children.length > 0}
|
|
37
|
+
{@render render_children(node.children)}
|
|
38
|
+
{/if}
|
|
39
|
+
</Component>
|
|
40
|
+
{:else}
|
|
41
|
+
{@render render_unregistered_tag(node.name, node.children)}
|
|
42
|
+
{/if}
|
|
43
|
+
{:else if node.type === 'Text'}
|
|
44
|
+
{node.content}
|
|
45
|
+
{:else if node.type === 'Code'}
|
|
46
|
+
<DocsLink reference={node.content} />
|
|
47
|
+
{:else if node.type === 'Bold'}
|
|
48
|
+
<strong>{@render render_children(node.children)}</strong>
|
|
49
|
+
{:else if node.type === 'Italic'}
|
|
50
|
+
<em>{@render render_children(node.children)}</em>
|
|
51
|
+
{:else if node.type === 'Strikethrough'}
|
|
52
|
+
<s>{@render render_children(node.children)}</s>
|
|
53
|
+
{:else if node.type === 'Link'}
|
|
54
|
+
{@const {reference} = node}
|
|
55
|
+
{#if node.link_type === 'internal'}
|
|
56
|
+
{@const is_fragment_or_query_only = reference.startsWith('#') || reference.startsWith('?')}
|
|
57
|
+
<!-- Fragment/query-only links skip resolve() to avoid unwanted `/` prefix -->
|
|
58
|
+
<!-- eslint-disable-next-line svelte/no-navigation-without-resolve -->
|
|
59
|
+
<a href={is_fragment_or_query_only ? reference : resolve(reference as any)}
|
|
60
|
+
>{@render render_children(node.children)}</a
|
|
61
|
+
>
|
|
62
|
+
{:else}
|
|
63
|
+
<!-- external link -->
|
|
64
|
+
<!-- eslint-disable-next-line svelte/no-navigation-without-resolve -->
|
|
65
|
+
<a href={reference} target="_blank" rel="noopener">{@render render_children(node.children)}</a>
|
|
66
|
+
{/if}
|
|
67
|
+
{:else if node.type === 'Paragraph'}
|
|
68
|
+
<p>{@render render_children(node.children)}</p>
|
|
69
|
+
{:else if node.type === 'Hr'}
|
|
70
|
+
<hr />
|
|
71
|
+
{:else if node.type === 'Heading'}
|
|
72
|
+
<svelte:element this={`h${node.level}`}>
|
|
73
|
+
{@render render_children(node.children)}
|
|
74
|
+
</svelte:element>
|
|
75
|
+
{:else if node.type === 'Codeblock'}
|
|
76
|
+
<Code lang={node.lang} content={node.content} />
|
|
77
|
+
{/if}
|
|
78
|
+
|
|
79
|
+
{#snippet render_children(nodes: Array<MdzNode>)}
|
|
80
|
+
{#each nodes as node (node)}
|
|
81
|
+
<MdzNodeView {node} />
|
|
82
|
+
{/each}
|
|
83
|
+
{/snippet}
|
|
84
|
+
|
|
85
|
+
{#snippet render_unregistered_tag(name: string, children: Array<MdzNode>)}
|
|
86
|
+
{#if children.length > 0}
|
|
87
|
+
<code class="color_c_5"><{name}></code>{@render render_children(children)}<code
|
|
88
|
+
class="color_c_5"></{name}></code
|
|
89
|
+
>
|
|
90
|
+
{:else}
|
|
91
|
+
<code class="color_c_5"><{name} /></code>
|
|
92
|
+
{/if}
|
|
93
|
+
{/snippet}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MdzNode } from './mdz.js';
|
|
2
|
+
import MdzNodeView from './MdzNodeView.svelte';
|
|
3
|
+
type $$ComponentProps = {
|
|
4
|
+
node: MdzNode;
|
|
5
|
+
};
|
|
6
|
+
declare const MdzNodeView: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type MdzNodeView = ReturnType<typeof MdzNodeView>;
|
|
8
|
+
export default MdzNodeView;
|
|
9
|
+
//# sourceMappingURL=MdzNodeView.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MdzNodeView.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/MdzNodeView.svelte"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAEtC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAG9C,KAAK,gBAAgB,GAAI;IACxB,IAAI,EAAE,OAAO,CAAC;CACd,CAAC;AA2FH,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type {SvelteHTMLElements} from 'svelte/elements';
|
|
3
|
+
|
|
4
|
+
import {library_context} from './library.svelte.js';
|
|
5
|
+
import {contextmenu_attachment} from './contextmenu_state.svelte.js';
|
|
6
|
+
import {create_module_contextmenu} from './module_contextmenu.js';
|
|
7
|
+
|
|
8
|
+
const {
|
|
9
|
+
module_path,
|
|
10
|
+
children,
|
|
11
|
+
class: class_prop = 'chip',
|
|
12
|
+
...rest
|
|
13
|
+
}: SvelteHTMLElements['a'] & {
|
|
14
|
+
module_path: string; // TODO maybe rename?
|
|
15
|
+
} = $props();
|
|
16
|
+
|
|
17
|
+
const library = library_context.get();
|
|
18
|
+
|
|
19
|
+
const module = $derived(library.lookup_module(module_path));
|
|
20
|
+
|
|
21
|
+
const contextmenu_entries = $derived(module ? create_module_contextmenu(module) : undefined);
|
|
22
|
+
|
|
23
|
+
// TODO @many support full https:// url variants - automatic detection? library prop?
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
{#if module}
|
|
27
|
+
<!-- eslint-disable svelte/no-navigation-without-resolve -->
|
|
28
|
+
<a
|
|
29
|
+
{...rest}
|
|
30
|
+
class="module_link {class_prop}"
|
|
31
|
+
href={module.url_api}
|
|
32
|
+
{@attach contextmenu_attachment(contextmenu_entries)}
|
|
33
|
+
>
|
|
34
|
+
<!-- eslint-enable svelte/no-navigation-without-resolve -->
|
|
35
|
+
{#if children}
|
|
36
|
+
{@render children()}
|
|
37
|
+
{:else}
|
|
38
|
+
{module_path}
|
|
39
|
+
{/if}
|
|
40
|
+
</a>
|
|
41
|
+
{:else}
|
|
42
|
+
<!-- Fallback to plain text if not found -->
|
|
43
|
+
{#if children}
|
|
44
|
+
{@render children()}
|
|
45
|
+
{:else}
|
|
46
|
+
{module_path}
|
|
47
|
+
{/if}
|
|
48
|
+
{/if}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
2
|
+
type $$ComponentProps = SvelteHTMLElements['a'] & {
|
|
3
|
+
module_path: string;
|
|
4
|
+
};
|
|
5
|
+
declare const ModuleLink: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type ModuleLink = ReturnType<typeof ModuleLink>;
|
|
7
|
+
export default ModuleLink;
|
|
8
|
+
//# sourceMappingURL=ModuleLink.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModuleLink.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ModuleLink.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAMvD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG;IAClD,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AA6CH,QAAA,MAAM,UAAU,sDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type {SvelteHTMLElements} from 'svelte/elements';
|
|
3
|
+
|
|
4
|
+
// TODO @many should this have the Button suffix?
|
|
5
|
+
|
|
6
|
+
const {
|
|
7
|
+
onclipboardtext,
|
|
8
|
+
onerror,
|
|
9
|
+
children,
|
|
10
|
+
class: class_prop,
|
|
11
|
+
...rest
|
|
12
|
+
}: SvelteHTMLElements['button'] & {
|
|
13
|
+
onclipboardtext: (text: string) => void;
|
|
14
|
+
onerror?: (error: Error) => void;
|
|
15
|
+
} = $props();
|
|
16
|
+
|
|
17
|
+
// TODO add docs entry, see also CopyToClipboard.svelte
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<button
|
|
21
|
+
type="button"
|
|
22
|
+
title="paste from clipboard"
|
|
23
|
+
{...rest}
|
|
24
|
+
class="paste_from_clipboard {class_prop}"
|
|
25
|
+
onclick={async () => {
|
|
26
|
+
try {
|
|
27
|
+
const text = await navigator.clipboard.readText();
|
|
28
|
+
onclipboardtext(text);
|
|
29
|
+
} catch (error) {
|
|
30
|
+
onerror?.(error);
|
|
31
|
+
}
|
|
32
|
+
}}
|
|
33
|
+
>
|
|
34
|
+
{#if children}{@render children()}{:else}paste{/if}
|
|
35
|
+
</button>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
2
|
+
type $$ComponentProps = SvelteHTMLElements['button'] & {
|
|
3
|
+
onclipboardtext: (text: string) => void;
|
|
4
|
+
onerror?: (error: Error) => void;
|
|
5
|
+
};
|
|
6
|
+
declare const PasteFromClipboard: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type PasteFromClipboard = ReturnType<typeof PasteFromClipboard>;
|
|
8
|
+
export default PasteFromClipboard;
|
|
9
|
+
//# sourceMappingURL=PasteFromClipboard.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasteFromClipboard.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/PasteFromClipboard.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEvD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG;IACvD,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC,CAAC;AA8BH,QAAA,MAAM,kBAAkB,sDAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type {OmitStrict} from '@fuzdev/fuz_util/types.js';
|
|
3
|
+
import type {Snippet} from 'svelte';
|
|
4
|
+
import type {SvelteHTMLElements} from 'svelte/elements';
|
|
5
|
+
|
|
6
|
+
const {
|
|
7
|
+
inline,
|
|
8
|
+
running = true,
|
|
9
|
+
item_attrs,
|
|
10
|
+
class: class_prop,
|
|
11
|
+
children,
|
|
12
|
+
...rest
|
|
13
|
+
}: OmitStrict<SvelteHTMLElements['span'], 'children'> & {
|
|
14
|
+
inline?: boolean;
|
|
15
|
+
running?: boolean;
|
|
16
|
+
item_attrs?: SvelteHTMLElements['span'];
|
|
17
|
+
children?: Snippet<[index: number]>;
|
|
18
|
+
} = $props();
|
|
19
|
+
|
|
20
|
+
// TODO maybe switch to an `inline` class instead of setting multiple classes
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<span
|
|
24
|
+
{...rest}
|
|
25
|
+
class="pending_animation {class_prop}"
|
|
26
|
+
class:running
|
|
27
|
+
class:display_flex={!inline}
|
|
28
|
+
class:display_inline_flex={inline}
|
|
29
|
+
class:align_items_center={inline}
|
|
30
|
+
><span {...item_attrs} style:animation-delay="0s"
|
|
31
|
+
>{#if children}{@render children(0)}{:else}•{/if}</span
|
|
32
|
+
><span {...item_attrs} style:animation-delay="0.09s"
|
|
33
|
+
>{#if children}{@render children(1)}{:else}•{/if}</span
|
|
34
|
+
><span {...item_attrs} style:animation-delay="0.3s"
|
|
35
|
+
>{#if children}{@render children(2)}{:else}•{/if}</span
|
|
36
|
+
></span
|
|
37
|
+
>
|
|
38
|
+
|
|
39
|
+
<style>
|
|
40
|
+
.pending_animation span {
|
|
41
|
+
font-size: var(--font_size, inherit);
|
|
42
|
+
display: inline-block;
|
|
43
|
+
transform: scale3d(var(--scale_x, 0.4), var(--scale_y, 0.4), var(--scale_z, 0.4));
|
|
44
|
+
animation: dot var(--animation_duration, var(--duration_5, 1.5s)) infinite paused;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.running span {
|
|
48
|
+
animation-play-state: running;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@keyframes dot {
|
|
52
|
+
0% {
|
|
53
|
+
transform: scale3d(var(--scale_x, 0.4), var(--scale_y, 0.4), var(--scale_z, 0.4));
|
|
54
|
+
}
|
|
55
|
+
71% {
|
|
56
|
+
transform: scale3d(1, 1, 1);
|
|
57
|
+
}
|
|
58
|
+
100% {
|
|
59
|
+
transform: scale3d(var(--scale_x, 0.4), var(--scale_y, 0.4), var(--scale_z, 0.4));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
</style>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { OmitStrict } from '@fuzdev/fuz_util/types.js';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
4
|
+
type $$ComponentProps = OmitStrict<SvelteHTMLElements['span'], 'children'> & {
|
|
5
|
+
inline?: boolean;
|
|
6
|
+
running?: boolean;
|
|
7
|
+
item_attrs?: SvelteHTMLElements['span'];
|
|
8
|
+
children?: Snippet<[index: number]>;
|
|
9
|
+
};
|
|
10
|
+
declare const PendingAnimation: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
11
|
+
type PendingAnimation = ReturnType<typeof PendingAnimation>;
|
|
12
|
+
export default PendingAnimation;
|
|
13
|
+
//# sourceMappingURL=PendingAnimation.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingAnimation.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/PendingAnimation.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEvD,KAAK,gBAAgB,GAAI,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;CACpC,CAAC;AAwBH,QAAA,MAAM,gBAAgB,sDAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type {Snippet} from 'svelte';
|
|
3
|
+
|
|
4
|
+
import PendingAnimation from './PendingAnimation.svelte';
|
|
5
|
+
import type {SvelteHTMLElements} from 'svelte/elements';
|
|
6
|
+
|
|
7
|
+
const {
|
|
8
|
+
pending,
|
|
9
|
+
onclick,
|
|
10
|
+
running,
|
|
11
|
+
title: title_prop,
|
|
12
|
+
disabled: disabled_prop,
|
|
13
|
+
animation,
|
|
14
|
+
children,
|
|
15
|
+
class: class_prop,
|
|
16
|
+
...rest
|
|
17
|
+
}: SvelteHTMLElements['button'] & {
|
|
18
|
+
pending: boolean;
|
|
19
|
+
onclick: () => void;
|
|
20
|
+
running?: boolean;
|
|
21
|
+
title?: string;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
animation?: Snippet;
|
|
24
|
+
children: Snippet;
|
|
25
|
+
} = $props();
|
|
26
|
+
|
|
27
|
+
let el: HTMLButtonElement | undefined = $state();
|
|
28
|
+
|
|
29
|
+
export const focus = (options?: FocusOptions): void => el?.focus(options);
|
|
30
|
+
|
|
31
|
+
// TODO maybe this shouldn't disable? just visually look disabled, maybe with `.disabled`?
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<button
|
|
35
|
+
bind:this={el}
|
|
36
|
+
type="button"
|
|
37
|
+
{...rest}
|
|
38
|
+
class="pending_button {class_prop}"
|
|
39
|
+
disabled={disabled_prop ?? pending}
|
|
40
|
+
title={title_prop}
|
|
41
|
+
class:pending
|
|
42
|
+
{onclick}
|
|
43
|
+
>
|
|
44
|
+
<span class="content">
|
|
45
|
+
{@render children()}
|
|
46
|
+
</span>
|
|
47
|
+
{#if pending}
|
|
48
|
+
<span class="animation">
|
|
49
|
+
{#if animation}
|
|
50
|
+
{@render animation()}
|
|
51
|
+
{:else}
|
|
52
|
+
<PendingAnimation {running} />
|
|
53
|
+
{/if}
|
|
54
|
+
</span>
|
|
55
|
+
{/if}
|
|
56
|
+
</button>
|
|
57
|
+
|
|
58
|
+
<style>
|
|
59
|
+
button {
|
|
60
|
+
position: relative;
|
|
61
|
+
}
|
|
62
|
+
.content {
|
|
63
|
+
display: contents;
|
|
64
|
+
}
|
|
65
|
+
.pending .content {
|
|
66
|
+
visibility: hidden; /* preserve the size */
|
|
67
|
+
}
|
|
68
|
+
.animation {
|
|
69
|
+
position: absolute;
|
|
70
|
+
inset: 0;
|
|
71
|
+
display: flex;
|
|
72
|
+
justify-content: center;
|
|
73
|
+
align-items: center;
|
|
74
|
+
}
|
|
75
|
+
</style>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { SvelteHTMLElements } from 'svelte/elements';
|
|
3
|
+
type $$ComponentProps = SvelteHTMLElements['button'] & {
|
|
4
|
+
pending: boolean;
|
|
5
|
+
onclick: () => void;
|
|
6
|
+
running?: boolean;
|
|
7
|
+
title?: string;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
animation?: Snippet;
|
|
10
|
+
children: Snippet;
|
|
11
|
+
};
|
|
12
|
+
declare const PendingButton: import("svelte").Component<$$ComponentProps, {
|
|
13
|
+
focus: (options?: FocusOptions) => void;
|
|
14
|
+
}, "">;
|
|
15
|
+
type PendingButton = ReturnType<typeof PendingButton>;
|
|
16
|
+
export default PendingButton;
|
|
17
|
+
//# sourceMappingURL=PendingButton.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PendingButton.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/PendingButton.svelte"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAGpC,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAEvD,KAAK,gBAAgB,GAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG;IACvD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AA6CH,QAAA,MAAM,aAAa;sBAxBQ,YAAY,KAAG,IAAI;MAwBa,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Svg from './Svg.svelte';
|
|
3
|
+
import {gro_logo, fuz_logo, moss_logo, fuz_template_logo} from './logos.js';
|
|
4
|
+
|
|
5
|
+
const size = 'var(--icon_size_lg)';
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<!--<a href="https://www.spiderspace.org/"></a>--><!--<a href="https://www.webdevladder.net/"></a>-->
|
|
9
|
+
<!-- <a
|
|
10
|
+
class="project_link"
|
|
11
|
+
title="Zzz - bot control hq"
|
|
12
|
+
href="https://www.zzz.software/"><Svg data={zzz_logo} {size} /><span class="name">Zzz</span></a
|
|
13
|
+
> -->
|
|
14
|
+
<a
|
|
15
|
+
class="project_link"
|
|
16
|
+
title="Gro - task runner and toolkit extending SvelteKit"
|
|
17
|
+
href="https://gro.ryanatkn.com/"><Svg data={gro_logo} {size} /><span class="name">Gro</span></a
|
|
18
|
+
>
|
|
19
|
+
<a class="project_link" title="Moss - CSS framework" href="https://moss.ryanatkn.com/"
|
|
20
|
+
><Svg data={moss_logo} {size} /><span class="name">Moss</span></a
|
|
21
|
+
>
|
|
22
|
+
<a class="project_link" title="Fuz - Svelte UI library" href="https://www.fuz.dev/"
|
|
23
|
+
><Svg data={fuz_logo} {size} /><span class="name">Fuz</span></a
|
|
24
|
+
>
|
|
25
|
+
<a
|
|
26
|
+
class="project_link"
|
|
27
|
+
title="fuz_template - a static web app and Node library template with TypeScript, Svelte, SvelteKit, Vite, esbuild, Fuz, and Gro"
|
|
28
|
+
href="https://template.fuz.dev/"
|
|
29
|
+
><Svg data={fuz_template_logo} {size} /><span class="name">fuz_template</span></a
|
|
30
|
+
>
|
|
31
|
+
|
|
32
|
+
<style>
|
|
33
|
+
.project_link {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
align-items: center;
|
|
37
|
+
padding: var(--space_md);
|
|
38
|
+
text-align: center;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.project_link:hover {
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
}
|
|
44
|
+
.project_link:hover .name {
|
|
45
|
+
text-decoration: underline;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.project_link .name {
|
|
49
|
+
display: block;
|
|
50
|
+
margin-top: var(--font_size_sm);
|
|
51
|
+
font-size: var(--font_size_lg);
|
|
52
|
+
font-weight: 400;
|
|
53
|
+
}
|
|
54
|
+
</style>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const ProjectLinks: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type ProjectLinks = InstanceType<typeof ProjectLinks>;
|
|
18
|
+
export default ProjectLinks;
|
|
19
|
+
//# sourceMappingURL=ProjectLinks.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProjectLinks.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/ProjectLinks.svelte"],"names":[],"mappings":"AAwBA,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,YAAY;;kBAA+E,CAAC;AAChF,KAAK,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {page} from '$app/state';
|
|
3
|
+
import {strip_start} from '@fuzdev/fuz_util/string.js';
|
|
4
|
+
import {goto} from '$app/navigation';
|
|
5
|
+
import type {Snippet} from 'svelte';
|
|
6
|
+
import {BROWSER} from 'esm-env';
|
|
7
|
+
|
|
8
|
+
const {
|
|
9
|
+
host = '',
|
|
10
|
+
path = page.url.pathname,
|
|
11
|
+
auto = true,
|
|
12
|
+
children,
|
|
13
|
+
}: {
|
|
14
|
+
/**
|
|
15
|
+
* The target host to redirect to. Defaults to the current `location.host`.
|
|
16
|
+
* @nonreactive
|
|
17
|
+
*/
|
|
18
|
+
host?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The target path to redirect to. Defaults to the current `location.pathname`.
|
|
21
|
+
* @nonreactive
|
|
22
|
+
*/
|
|
23
|
+
path?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Should the redirect happen automatically without user input? Defaults to `true`.
|
|
26
|
+
* @nonreactive
|
|
27
|
+
*/
|
|
28
|
+
auto?: boolean;
|
|
29
|
+
children?: Snippet<[url: string]>;
|
|
30
|
+
} = $props();
|
|
31
|
+
|
|
32
|
+
const url = host + path;
|
|
33
|
+
|
|
34
|
+
if (auto && BROWSER) void goto(url, {replaceState: true}); // eslint-disable-line svelte/no-navigation-without-resolve
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<svelte:head>
|
|
38
|
+
{#if auto}<meta http-equiv="refresh" content="0; URL={url}" />{/if}
|
|
39
|
+
</svelte:head>
|
|
40
|
+
|
|
41
|
+
{#if children}{@render children(url)}{:else}<p>
|
|
42
|
+
<!-- eslint-disable-next-line svelte/no-navigation-without-resolve -->
|
|
43
|
+
redirect to <a href={url}>{strip_start(url, 'https://')}</a>
|
|
44
|
+
</p>{/if}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
/**
|
|
4
|
+
* The target host to redirect to. Defaults to the current `location.host`.
|
|
5
|
+
* @nonreactive
|
|
6
|
+
*/
|
|
7
|
+
host?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The target path to redirect to. Defaults to the current `location.pathname`.
|
|
10
|
+
* @nonreactive
|
|
11
|
+
*/
|
|
12
|
+
path?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Should the redirect happen automatically without user input? Defaults to `true`.
|
|
15
|
+
* @nonreactive
|
|
16
|
+
*/
|
|
17
|
+
auto?: boolean;
|
|
18
|
+
children?: Snippet<[url: string]>;
|
|
19
|
+
};
|
|
20
|
+
declare const Redirect: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
21
|
+
type Redirect = ReturnType<typeof Redirect>;
|
|
22
|
+
export default Redirect;
|
|
23
|
+
//# sourceMappingURL=Redirect.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Redirect.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Redirect.svelte"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,QAAQ,CAAC;AAGnC,KAAK,gBAAgB,GAAI;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;CAClC,CAAC;AA+BH,QAAA,MAAM,QAAQ,sDAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
const minute_of_day = (): number => {
|
|
3
|
+
const now = new Date();
|
|
4
|
+
return now.getHours() * 60 + now.getMinutes();
|
|
5
|
+
};
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<script lang="ts">
|
|
9
|
+
import {random_int, shuffle} from '@fuzdev/fuz_util/random.js';
|
|
10
|
+
import {create_random_alea} from '@fuzdev/fuz_util/random_alea.js';
|
|
11
|
+
|
|
12
|
+
import Svg from './Svg.svelte';
|
|
13
|
+
import {fuz_logo} from './logos.js';
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
spiders = [
|
|
17
|
+
'var(--color_a_5)',
|
|
18
|
+
'var(--color_b_5)',
|
|
19
|
+
'var(--color_c_5)',
|
|
20
|
+
'var(--color_d_5)',
|
|
21
|
+
'var(--color_e_5)',
|
|
22
|
+
'var(--color_f_5)',
|
|
23
|
+
'var(--color_g_5)',
|
|
24
|
+
'var(--color_h_5)',
|
|
25
|
+
'var(--color_i_5)',
|
|
26
|
+
'var(--color_j_5)',
|
|
27
|
+
],
|
|
28
|
+
seed = minute_of_day(),
|
|
29
|
+
random = create_random_alea(seed),
|
|
30
|
+
}: {
|
|
31
|
+
spiders?: Array<string>; // for now, just colors
|
|
32
|
+
seed?: unknown;
|
|
33
|
+
random?: typeof Math.random;
|
|
34
|
+
} = $props();
|
|
35
|
+
|
|
36
|
+
const shuffled = $derived(shuffle(spiders.slice(), (min, max) => random_int(min, max, random)));
|
|
37
|
+
const rotations = $derived(shuffled.map(() => random_int(0, 359, random)));
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<!-- TODO animate each in randomly -->
|
|
41
|
+
<!-- TODO show when intersected in viewport, maybe inline `svelte-intersect` in Fuz? -->
|
|
42
|
+
<div class="spiders" style:--spider_count={spiders.length}>
|
|
43
|
+
{#each shuffled as color, i (color)}
|
|
44
|
+
<Svg data={fuz_logo} fill={color} attrs={{style: `transform: rotate(${rotations[i]}deg)`}} />
|
|
45
|
+
{/each}
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<style>
|
|
49
|
+
.spiders {
|
|
50
|
+
--width: calc(100% / var(--spider_count));
|
|
51
|
+
position: relative;
|
|
52
|
+
z-index: -1;
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
display: grid;
|
|
55
|
+
grid-template-columns: repeat(var(--spider_count), 1fr);
|
|
56
|
+
}
|
|
57
|
+
</style>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
spiders?: Array<string>;
|
|
3
|
+
seed?: unknown;
|
|
4
|
+
random?: typeof Math.random;
|
|
5
|
+
};
|
|
6
|
+
declare const Spiders: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type Spiders = ReturnType<typeof Spiders>;
|
|
8
|
+
export default Spiders;
|
|
9
|
+
//# sourceMappingURL=Spiders.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spiders.svelte.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/Spiders.svelte"],"names":[],"mappings":"AAeC,KAAK,gBAAgB,GAAI;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;CAC5B,CAAC;AA2CH,QAAA,MAAM,OAAO,sDAAwC,CAAC;AACtD,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAC1C,eAAe,OAAO,CAAC"}
|