lutra 0.0.33 → 0.1.4
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/README.md +4 -24
- package/dist/components/AspectRatio.svelte +26 -0
- package/dist/components/AspectRatio.svelte.d.ts +8 -0
- package/dist/components/Avatar.svelte +105 -0
- package/dist/components/Avatar.svelte.d.ts +14 -0
- package/dist/{display → components}/Close.svelte +25 -7
- package/dist/components/Close.svelte.d.ts +7 -0
- package/dist/components/ContextTip.svelte +41 -0
- package/dist/components/ContextTip.svelte.d.ts +7 -0
- package/dist/components/Dialog.svelte +78 -0
- package/dist/components/Dialog.svelte.d.ts +14 -0
- package/dist/components/Icon.svelte +62 -0
- package/dist/components/Icon.svelte.d.ts +8 -0
- package/dist/{display → components}/IconButton.svelte +43 -14
- package/dist/components/IconButton.svelte.d.ts +16 -0
- package/dist/components/Image.svelte +172 -0
- package/dist/components/Image.svelte.d.ts +56 -0
- package/dist/{display → components}/Indicator.svelte +44 -9
- package/dist/components/Indicator.svelte.d.ts +12 -0
- package/dist/{display → components}/Inset.svelte +8 -3
- package/dist/components/Inset.svelte.d.ts +7 -0
- package/dist/components/Layout.svelte +33 -0
- package/dist/components/Layout.svelte.d.ts +11 -0
- package/dist/components/MenuDropdown.svelte +195 -0
- package/dist/components/MenuDropdown.svelte.d.ts +16 -0
- package/dist/{nav → components}/MenuItem.svelte +46 -38
- package/dist/components/MenuItem.svelte.d.ts +11 -0
- package/dist/components/MenuItemContent.svelte +25 -0
- package/dist/components/MenuItemContent.svelte.d.ts +10 -0
- package/dist/{nav → components}/MenuTypes.d.ts +19 -5
- package/dist/components/Modal.svelte +149 -0
- package/dist/components/Modal.svelte.d.ts +16 -0
- package/dist/{display → components}/Notification.svelte +33 -22
- package/dist/components/Notification.svelte.d.ts +12 -0
- package/dist/components/Overlay.svelte +31 -0
- package/dist/components/Overlay.svelte.d.ts +14 -0
- package/dist/{layout → components}/OverlayContainer.svelte +6 -3
- package/dist/{layout → components}/OverlayContainer.svelte.d.ts +4 -1
- package/dist/components/OverlayLayer.svelte +168 -0
- package/dist/components/OverlayLayer.svelte.d.ts +8 -0
- package/dist/components/PageContent.svelte +108 -0
- package/dist/components/PageContent.svelte.d.ts +38 -0
- package/dist/components/TabbedContent.svelte +74 -0
- package/dist/components/TabbedContent.svelte.d.ts +11 -0
- package/dist/components/TabbedContentItem.svelte +33 -0
- package/dist/components/TabbedContentItem.svelte.d.ts +10 -0
- package/dist/components/Table.svelte +41 -0
- package/dist/components/Table.svelte.d.ts +13 -0
- package/dist/{nav → components}/Tabs.svelte +99 -41
- package/dist/components/Tabs.svelte.d.ts +20 -0
- package/dist/components/Tag.svelte +120 -0
- package/dist/components/Tag.svelte.d.ts +21 -0
- package/dist/components/Theme.svelte +105 -0
- package/dist/components/Theme.svelte.d.ts +17 -0
- package/dist/{display → components}/Tooltip.svelte +41 -16
- package/dist/components/Tooltip.svelte.d.ts +12 -0
- package/dist/components/UIContent.svelte +19 -0
- package/dist/components/UIContent.svelte.d.ts +7 -0
- package/dist/components/index.d.ts +28 -0
- package/dist/components/index.js +29 -0
- package/dist/{display → components}/notifications.svelte.d.ts +1 -1
- package/dist/{display → components}/notifications.svelte.js +3 -4
- package/dist/{layout → components}/overlays.svelte.d.ts +4 -2
- package/dist/config.d.ts +30 -0
- package/dist/config.js +18 -0
- package/dist/css/1-props.css +440 -0
- package/dist/css/2-base.css +343 -0
- package/dist/css/3-typo.css +106 -0
- package/dist/css/4-layout.css +368 -0
- package/dist/css/5-media.css +116 -0
- package/dist/css/lutra.css +7 -0
- package/dist/css/themes/DefaultTheme.css +209 -0
- package/dist/form/Button.svelte +35 -16
- package/dist/form/Button.svelte.d.ts +8 -19
- package/dist/form/Datepicker.svelte +311 -0
- package/dist/form/Datepicker.svelte.d.ts +9 -0
- package/dist/form/FieldContent.svelte +69 -44
- package/dist/form/FieldContent.svelte.d.ts +7 -17
- package/dist/form/FieldError.svelte +16 -6
- package/dist/form/FieldError.svelte.d.ts +4 -15
- package/dist/form/Fieldset.svelte +48 -13
- package/dist/form/Fieldset.svelte.d.ts +5 -16
- package/dist/form/Form.svelte +158 -74
- package/dist/form/Form.svelte.d.ts +17 -17
- package/dist/form/{FieldActions.svelte → FormActions.svelte} +29 -17
- package/dist/form/FormActions.svelte.d.ts +9 -0
- package/dist/form/FormSection.svelte +96 -0
- package/dist/form/FormSection.svelte.d.ts +9 -0
- package/dist/form/ImageUpload.svelte +134 -94
- package/dist/form/ImageUpload.svelte.d.ts +5 -16
- package/dist/form/Input.svelte +254 -136
- package/dist/form/Input.svelte.d.ts +12 -21
- package/dist/form/InputLength.svelte +15 -5
- package/dist/form/InputLength.svelte.d.ts +4 -15
- package/dist/form/Label.svelte +55 -11
- package/dist/form/Label.svelte.d.ts +6 -15
- package/dist/form/LogoUpload.svelte +36 -21
- package/dist/form/LogoUpload.svelte.d.ts +4 -15
- package/dist/form/Select.svelte +100 -50
- package/dist/form/Select.svelte.d.ts +5 -16
- package/dist/form/Textarea.svelte +200 -98
- package/dist/form/Textarea.svelte.d.ts +11 -24
- package/dist/form/Toggle.svelte +3 -1
- package/dist/form/Toggle.svelte.d.ts +4 -1
- package/dist/form/client.svelte.d.ts +1 -0
- package/dist/form/client.svelte.js +6 -2
- package/dist/form/form.d.ts +10 -9
- package/dist/form/form.js +37 -32
- package/dist/form/index.d.ts +3 -4
- package/dist/form/index.js +3 -4
- package/dist/form/types.d.ts +9 -16
- package/dist/icons/IconAlert.svelte.d.ts +4 -1
- package/dist/icons/IconCopy.svelte.d.ts +4 -1
- package/dist/icons/IconDone.svelte.d.ts +4 -1
- package/dist/icons/IconError.svelte.d.ts +4 -1
- package/dist/icons/IconHelp.svelte.d.ts +4 -1
- package/dist/icons/IconHide.svelte.d.ts +4 -1
- package/dist/icons/IconInfo.svelte.d.ts +4 -1
- package/dist/icons/IconLink.svelte.d.ts +4 -1
- package/dist/icons/IconMenuBurger.svelte.d.ts +4 -1
- package/dist/icons/IconMenuDots.svelte.d.ts +4 -1
- package/dist/icons/IconSearch.svelte.d.ts +4 -1
- package/dist/icons/IconShow.svelte.d.ts +4 -1
- package/dist/icons/IconSuccess.svelte.d.ts +4 -1
- package/dist/icons/IconWarning.svelte.d.ts +4 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -2
- package/dist/types.d.ts +39 -0
- package/dist/types.js +25 -0
- package/dist/util/StringOrComponent.svelte +20 -0
- package/dist/util/StringOrComponent.svelte.d.ts +8 -0
- package/dist/util/StringOrSnippet.svelte +16 -0
- package/dist/util/StringOrSnippet.svelte.d.ts +8 -0
- package/dist/{utils → util}/dom.js +1 -2
- package/dist/util/locale.d.ts +1 -0
- package/dist/util/locale.js +47 -0
- package/dist/util/settings.d.ts +4 -0
- package/package.json +35 -79
- package/dist/color.css +0 -0
- package/dist/display/Avatar.svelte +0 -61
- package/dist/display/Avatar.svelte.d.ts +0 -19
- package/dist/display/Badge.svelte +0 -91
- package/dist/display/Badge.svelte.d.ts +0 -30
- package/dist/display/Callout.svelte +0 -109
- package/dist/display/Callout.svelte.d.ts +0 -28
- package/dist/display/Close.svelte.d.ts +0 -18
- package/dist/display/Code.svelte +0 -190
- package/dist/display/Code.svelte.d.ts +0 -32
- package/dist/display/ContextTip.svelte +0 -23
- package/dist/display/ContextTip.svelte.d.ts +0 -18
- package/dist/display/DataList.svelte +0 -16
- package/dist/display/DataList.svelte.d.ts +0 -21
- package/dist/display/Details.svelte +0 -49
- package/dist/display/Details.svelte.d.ts +0 -27
- package/dist/display/Hero.svelte +0 -50
- package/dist/display/Hero.svelte.d.ts +0 -26
- package/dist/display/Icon.svelte +0 -39
- package/dist/display/Icon.svelte.d.ts +0 -19
- package/dist/display/IconButton.svelte.d.ts +0 -27
- package/dist/display/Image.svelte +0 -91
- package/dist/display/Image.svelte.d.ts +0 -26
- package/dist/display/Indicator.svelte.d.ts +0 -23
- package/dist/display/Inset.svelte.d.ts +0 -18
- package/dist/display/LineChart.svelte +0 -385
- package/dist/display/LineChart.svelte.d.ts +0 -24
- package/dist/display/LoadingIndicator.svelte +0 -33
- package/dist/display/LoadingIndicator.svelte.d.ts +0 -15
- package/dist/display/Modal.svelte +0 -116
- package/dist/display/Modal.svelte.d.ts +0 -27
- package/dist/display/Notification.svelte.d.ts +0 -23
- package/dist/display/Panel.svelte +0 -23
- package/dist/display/Panel.svelte.d.ts +0 -19
- package/dist/display/Popup.svelte +0 -111
- package/dist/display/Popup.svelte.d.ts +0 -25
- package/dist/display/Stat.svelte +0 -81
- package/dist/display/Stat.svelte.d.ts +0 -30
- package/dist/display/Table.svelte +0 -28
- package/dist/display/Table.svelte.d.ts +0 -24
- package/dist/display/TablePaginator.svelte +0 -51
- package/dist/display/TablePaginator.svelte.d.ts +0 -21
- package/dist/display/Tag.svelte +0 -90
- package/dist/display/Tag.svelte.d.ts +0 -32
- package/dist/display/Tooltip.svelte.d.ts +0 -23
- package/dist/display/chart.d.ts +0 -78
- package/dist/display/chart.js +0 -212
- package/dist/display/index.d.ts +0 -24
- package/dist/display/index.js +0 -24
- package/dist/form/FieldActions.svelte.d.ts +0 -20
- package/dist/form/FieldContainer.svelte +0 -37
- package/dist/form/FieldContainer.svelte.d.ts +0 -19
- package/dist/form/FieldSection.svelte +0 -86
- package/dist/form/FieldSection.svelte.d.ts +0 -20
- package/dist/layout/Layout.svelte +0 -47
- package/dist/layout/Layout.svelte.d.ts +0 -22
- package/dist/layout/LayoutFooter.svelte +0 -21
- package/dist/layout/LayoutFooter.svelte.d.ts +0 -18
- package/dist/layout/LayoutGrid.svelte +0 -51
- package/dist/layout/LayoutGrid.svelte.d.ts +0 -27
- package/dist/layout/LayoutHeader.svelte +0 -97
- package/dist/layout/LayoutHeader.svelte.d.ts +0 -34
- package/dist/layout/LayoutSideMenu.svelte +0 -55
- package/dist/layout/LayoutSideMenu.svelte.d.ts +0 -21
- package/dist/layout/LayoutTypes.d.ts +0 -15
- package/dist/layout/LayoutTypes.js +0 -9
- package/dist/layout/Overlay.svelte +0 -20
- package/dist/layout/Overlay.svelte.d.ts +0 -25
- package/dist/layout/OverlayLayer.svelte +0 -140
- package/dist/layout/OverlayLayer.svelte.d.ts +0 -19
- package/dist/layout/PageContent.svelte +0 -82
- package/dist/layout/PageContent.svelte.d.ts +0 -25
- package/dist/layout/Theme.svelte +0 -243
- package/dist/layout/Theme.svelte.d.ts +0 -19
- package/dist/layout/UIContent.svelte +0 -15
- package/dist/layout/UIContent.svelte.d.ts +0 -18
- package/dist/layout/index.d.ts +0 -11
- package/dist/layout/index.js +0 -11
- package/dist/nav/Breadcrumb.svelte +0 -82
- package/dist/nav/Breadcrumb.svelte.d.ts +0 -28
- package/dist/nav/Menu.svelte +0 -170
- package/dist/nav/Menu.svelte.d.ts +0 -27
- package/dist/nav/MenuItem.svelte.d.ts +0 -22
- package/dist/nav/NavMenu.svelte +0 -181
- package/dist/nav/NavMenu.svelte.d.ts +0 -19
- package/dist/nav/TabbedContent.svelte +0 -43
- package/dist/nav/TabbedContent.svelte.d.ts +0 -23
- package/dist/nav/Tabs.svelte.d.ts +0 -25
- package/dist/nav/index.d.ts +0 -7
- package/dist/nav/index.js +0 -6
- package/dist/style.css +0 -950
- package/dist/typo/Clamp.svelte +0 -25
- package/dist/typo/Clamp.svelte.d.ts +0 -24
- package/dist/typo/H.svelte +0 -52
- package/dist/typo/H.svelte.d.ts +0 -28
- package/dist/typo/H1.svelte +0 -14
- package/dist/typo/H1.svelte.d.ts +0 -26
- package/dist/typo/H2.svelte +0 -14
- package/dist/typo/H2.svelte.d.ts +0 -26
- package/dist/typo/H3.svelte +0 -14
- package/dist/typo/H3.svelte.d.ts +0 -26
- package/dist/typo/H4.svelte +0 -14
- package/dist/typo/H4.svelte.d.ts +0 -26
- package/dist/typo/H5.svelte +0 -14
- package/dist/typo/H5.svelte.d.ts +0 -26
- package/dist/typo/H6.svelte +0 -14
- package/dist/typo/H6.svelte.d.ts +0 -26
- package/dist/typo/P.svelte +0 -34
- package/dist/typo/P.svelte.d.ts +0 -26
- package/dist/typo/index.d.ts +0 -9
- package/dist/typo/index.js +0 -9
- package/dist/utils/StringOrComponent.svelte +0 -14
- package/dist/utils/StringOrComponent.svelte.d.ts +0 -19
- package/dist/utils/StringOrSnippet.svelte +0 -11
- package/dist/utils/StringOrSnippet.svelte.d.ts +0 -19
- package/dist/utils/defaults.d.ts +0 -4
- package/dist/utils/hooks.server.d.ts +0 -2
- package/dist/utils/hooks.server.js +0 -16
- package/dist/utils/id.d.ts +0 -1
- package/dist/utils/id.js +0 -3
- package/dist/utils/index.d.ts +0 -9
- package/dist/utils/index.js +0 -6
- package/dist/utils/isSnippet.d.ts +0 -3
- package/dist/utils/isSnippet.js +0 -11
- /package/dist/{nav → components}/MenuTypes.js +0 -0
- /package/dist/{layout → components}/overlays.svelte.js +0 -0
- /package/dist/{utils → util}/attr.d.ts +0 -0
- /package/dist/{utils → util}/attr.js +0 -0
- /package/dist/{utils → util}/color.d.ts +0 -0
- /package/dist/{utils → util}/color.js +0 -0
- /package/dist/{utils → util}/dom.d.ts +0 -0
- /package/dist/{utils → util}/keyboard.svelte.d.ts +0 -0
- /package/dist/{utils → util}/keyboard.svelte.js +0 -0
- /package/dist/{utils/defaults.js → util/settings.js} +0 -0
- /package/dist/{utils → util}/transitions.d.ts +0 -0
- /package/dist/{utils → util}/transitions.js +0 -0
@@ -1,97 +0,0 @@
|
|
1
|
-
<script lang="ts">import {} from "svelte";
|
2
|
-
let {
|
3
|
-
left,
|
4
|
-
center,
|
5
|
-
right,
|
6
|
-
sticky,
|
7
|
-
skipToContentText = "Skip to content"
|
8
|
-
} = $props();
|
9
|
-
</script>
|
10
|
-
|
11
|
-
<header class="LayoutHeader" class:sticky>
|
12
|
-
<a href="#skip" class="Skip">{skipToContentText}</a>
|
13
|
-
<ul>
|
14
|
-
{#if left}
|
15
|
-
<li class="left">
|
16
|
-
{@render left()}
|
17
|
-
</li>
|
18
|
-
{/if}
|
19
|
-
{#if center}
|
20
|
-
<li class="center">
|
21
|
-
{@render center()}
|
22
|
-
</li>
|
23
|
-
{/if}
|
24
|
-
{#if right}
|
25
|
-
<li class="right">
|
26
|
-
{@render right()}
|
27
|
-
</li>
|
28
|
-
{/if}
|
29
|
-
</ul>
|
30
|
-
</header>
|
31
|
-
|
32
|
-
<style>
|
33
|
-
.LayoutHeader {
|
34
|
-
position: relative;
|
35
|
-
z-index: 1;
|
36
|
-
padding: 0.5rem 1rem;
|
37
|
-
background: color-mix(in srgb, var(--bg-app) 50%, transparent 50%);
|
38
|
-
backdrop-filter: blur(16px);
|
39
|
-
-webkit-backdrop-filter: blur(16px);
|
40
|
-
display: flex;
|
41
|
-
place-items: center;
|
42
|
-
}
|
43
|
-
.LayoutHeader.sticky {
|
44
|
-
position: sticky;
|
45
|
-
top: 0;
|
46
|
-
}
|
47
|
-
.Skip {
|
48
|
-
position: absolute;
|
49
|
-
top: -40px;
|
50
|
-
left: 0;
|
51
|
-
padding: 0.5rem;
|
52
|
-
background: var(--bg-app);
|
53
|
-
font-size: 1rem;
|
54
|
-
z-index: 1000;
|
55
|
-
}
|
56
|
-
.Skip:focus {
|
57
|
-
top: 0;
|
58
|
-
}
|
59
|
-
.right :global(a) {
|
60
|
-
color: var(--text);
|
61
|
-
}
|
62
|
-
.right :global(a:hover) {
|
63
|
-
color: var(--text-link);
|
64
|
-
}
|
65
|
-
ul {
|
66
|
-
list-style: none;
|
67
|
-
padding: 0;
|
68
|
-
margin: 0;
|
69
|
-
display: grid;
|
70
|
-
grid-template-areas: "left center right";
|
71
|
-
grid-template-columns: 1fr auto 1fr;
|
72
|
-
align-items: center;
|
73
|
-
max-width: var(--max-width, 100%);
|
74
|
-
}
|
75
|
-
li {
|
76
|
-
padding: 0;
|
77
|
-
margin: 0;
|
78
|
-
flex-basis: 0;
|
79
|
-
display: flex;
|
80
|
-
align-items: center;
|
81
|
-
flex-wrap: nowrap;
|
82
|
-
gap: 1rem;
|
83
|
-
}
|
84
|
-
li.left { grid-area: left; }
|
85
|
-
li.center { grid-area: center; }
|
86
|
-
li.right { grid-area: right; }
|
87
|
-
ul > :not(:first-child):not(:last-child) {
|
88
|
-
grid-column: center;
|
89
|
-
}
|
90
|
-
ul > :first-child:last-child {
|
91
|
-
grid-column: 1 / -1;
|
92
|
-
}
|
93
|
-
li.right {
|
94
|
-
display: flex;
|
95
|
-
justify-content: flex-end;
|
96
|
-
}
|
97
|
-
</style>
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import { type Snippet } from "svelte";
|
2
|
-
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> {
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
4
|
-
$$bindings?: Bindings;
|
5
|
-
} & Exports;
|
6
|
-
(internal: unknown, props: Props & {
|
7
|
-
$$events?: Events;
|
8
|
-
$$slots?: Slots;
|
9
|
-
}): Exports;
|
10
|
-
z_$$bindings?: Bindings;
|
11
|
-
}
|
12
|
-
declare const LayoutHeader: $$__sveltets_2_IsomorphicComponent<{
|
13
|
-
left?: Snippet;
|
14
|
-
/**
|
15
|
-
* The center of the header (usually a menu), search bar, etc.
|
16
|
-
*/
|
17
|
-
center?: Snippet;
|
18
|
-
/**
|
19
|
-
* The right side of the header (usually user info, settings, etc.)
|
20
|
-
*/
|
21
|
-
right?: Snippet;
|
22
|
-
/**
|
23
|
-
* The text to display for the skip to content link
|
24
|
-
*/
|
25
|
-
skipToContentText?: string;
|
26
|
-
/**
|
27
|
-
* Whether the header should be sticky
|
28
|
-
*/
|
29
|
-
sticky?: boolean;
|
30
|
-
}, {
|
31
|
-
[evt: string]: CustomEvent<any>;
|
32
|
-
}, {}, {}, "">;
|
33
|
-
type LayoutHeader = InstanceType<typeof LayoutHeader>;
|
34
|
-
export default LayoutHeader;
|
@@ -1,55 +0,0 @@
|
|
1
|
-
<script lang="ts">import MenuItem from "../nav/MenuItem.svelte";
|
2
|
-
let {
|
3
|
-
items,
|
4
|
-
children,
|
5
|
-
navContainer
|
6
|
-
} = $props();
|
7
|
-
</script>
|
8
|
-
|
9
|
-
{#snippet content()}
|
10
|
-
<nav>
|
11
|
-
<ul>
|
12
|
-
{#each items as item, index}
|
13
|
-
<MenuItem {index} {item} />
|
14
|
-
{/each}
|
15
|
-
</ul>
|
16
|
-
</nav>
|
17
|
-
{/snippet}
|
18
|
-
|
19
|
-
<main>
|
20
|
-
<aside>
|
21
|
-
{#if navContainer}
|
22
|
-
{@render navContainer(content)}
|
23
|
-
{:else}
|
24
|
-
{@render content()}
|
25
|
-
{/if}
|
26
|
-
</aside>
|
27
|
-
{@render children()}
|
28
|
-
</main>
|
29
|
-
|
30
|
-
<style>
|
31
|
-
main {
|
32
|
-
display: grid;
|
33
|
-
grid-template-columns: clamp(10rem, 20%, 20rem) 1fr;
|
34
|
-
min-height: 100%;
|
35
|
-
}
|
36
|
-
nav {
|
37
|
-
--menu-item-margin: 0;
|
38
|
-
}
|
39
|
-
ul {
|
40
|
-
list-style: none;
|
41
|
-
margin: 0;
|
42
|
-
padding: 0;
|
43
|
-
position: sticky;
|
44
|
-
top: -1rem;
|
45
|
-
border-left: 1px solid var(--border);
|
46
|
-
}
|
47
|
-
@media(max-width: 800px) {
|
48
|
-
main {
|
49
|
-
grid-template-columns: 1fr;
|
50
|
-
}
|
51
|
-
nav {
|
52
|
-
padding: 0 1rem;
|
53
|
-
}
|
54
|
-
}
|
55
|
-
</style>
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import type { Snippet } from "svelte";
|
2
|
-
import type { MenuItem as Item } from "../nav/MenuTypes.js";
|
3
|
-
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> {
|
4
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
5
|
-
$$bindings?: Bindings;
|
6
|
-
} & Exports;
|
7
|
-
(internal: unknown, props: Props & {
|
8
|
-
$$events?: Events;
|
9
|
-
$$slots?: Slots;
|
10
|
-
}): Exports;
|
11
|
-
z_$$bindings?: Bindings;
|
12
|
-
}
|
13
|
-
declare const LayoutSideMenu: $$__sveltets_2_IsomorphicComponent<{
|
14
|
-
items: Item[];
|
15
|
-
children: Snippet;
|
16
|
-
navContainer?: Snippet<[content: Snippet]>;
|
17
|
-
}, {
|
18
|
-
[evt: string]: CustomEvent<any>;
|
19
|
-
}, {}, {}, "">;
|
20
|
-
type LayoutSideMenu = InstanceType<typeof LayoutSideMenu>;
|
21
|
-
export default LayoutSideMenu;
|
@@ -1,15 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Layout container types.
|
3
|
-
* `ui` is for UI components. It will not add margins.
|
4
|
-
* `page` is for page content. It will add automatic margins to typography and other page content.
|
5
|
-
*/
|
6
|
-
export type LayoutContainerType = 'ui' | 'page';
|
7
|
-
export declare const BREAKPOINTS: {
|
8
|
-
s: number;
|
9
|
-
m: number;
|
10
|
-
l: number;
|
11
|
-
};
|
12
|
-
export declare const BREAKPOINT_SIZES: number[];
|
13
|
-
export declare const SMALLEST_BREAKPOINT: number;
|
14
|
-
export declare const LARGEST_BREAKPOINT: number;
|
15
|
-
export declare const MIN_WIDTH = 280;
|
@@ -1,9 +0,0 @@
|
|
1
|
-
export const BREAKPOINTS = {
|
2
|
-
s: 320,
|
3
|
-
m: 672,
|
4
|
-
l: 1312,
|
5
|
-
};
|
6
|
-
export const BREAKPOINT_SIZES = Object.values(BREAKPOINTS);
|
7
|
-
export const SMALLEST_BREAKPOINT = BREAKPOINT_SIZES[0];
|
8
|
-
export const LARGEST_BREAKPOINT = BREAKPOINT_SIZES[BREAKPOINT_SIZES.length - 1];
|
9
|
-
export const MIN_WIDTH = 280;
|
@@ -1,20 +0,0 @@
|
|
1
|
-
<script lang="ts">import { onDestroy, onMount } from "svelte";
|
2
|
-
import { addOverlay, removeOverlay } from "./overlays.svelte.js";
|
3
|
-
import { createId } from "../utils/id.js";
|
4
|
-
let {
|
5
|
-
id = createId(),
|
6
|
-
children,
|
7
|
-
position = "center",
|
8
|
-
anchor,
|
9
|
-
layer,
|
10
|
-
transition,
|
11
|
-
z
|
12
|
-
} = $props();
|
13
|
-
onMount(() => {
|
14
|
-
addOverlay({ id, z, layer, content: children, transition, position, anchor });
|
15
|
-
});
|
16
|
-
onDestroy(() => {
|
17
|
-
removeOverlay(id);
|
18
|
-
});
|
19
|
-
</script>
|
20
|
-
|
@@ -1,25 +0,0 @@
|
|
1
|
-
import { type Snippet } from "svelte";
|
2
|
-
import { type OverlayPosition, type TransitionOpts } from "./overlays.svelte.js";
|
3
|
-
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> {
|
4
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
5
|
-
$$bindings?: Bindings;
|
6
|
-
} & Exports;
|
7
|
-
(internal: unknown, props: Props & {
|
8
|
-
$$events?: Events;
|
9
|
-
$$slots?: Slots;
|
10
|
-
}): Exports;
|
11
|
-
z_$$bindings?: Bindings;
|
12
|
-
}
|
13
|
-
declare const Overlay: $$__sveltets_2_IsomorphicComponent<{
|
14
|
-
id?: string;
|
15
|
-
children: Snippet;
|
16
|
-
anchor?: HTMLElement;
|
17
|
-
layer?: string;
|
18
|
-
position?: OverlayPosition;
|
19
|
-
transition?: TransitionOpts;
|
20
|
-
z?: number;
|
21
|
-
}, {
|
22
|
-
[evt: string]: CustomEvent<any>;
|
23
|
-
}, {}, {}, "">;
|
24
|
-
type Overlay = InstanceType<typeof Overlay>;
|
25
|
-
export default Overlay;
|
@@ -1,140 +0,0 @@
|
|
1
|
-
<script lang="ts">import {} from "./overlays.svelte.js";
|
2
|
-
import { slidefade } from "../utils/transitions.js";
|
3
|
-
import { BROWSER } from "esm-env";
|
4
|
-
import { isComponent, isSnippet } from "../utils/isSnippet.js";
|
5
|
-
import { untrack } from "svelte";
|
6
|
-
let {
|
7
|
-
position,
|
8
|
-
items
|
9
|
-
} = $props();
|
10
|
-
const fudge = 8;
|
11
|
-
let contentEls = $state({});
|
12
|
-
let scrollX = $state(BROWSER ? window.scrollX : 0);
|
13
|
-
let scrollY = $state(BROWSER ? window.scrollY : 0);
|
14
|
-
let innerWidth = $state(BROWSER ? window.innerWidth : 0);
|
15
|
-
let innerHeight = $state(BROWSER ? window.innerHeight : 0);
|
16
|
-
let positions = $derived.by(() => {
|
17
|
-
innerWidth;
|
18
|
-
innerHeight;
|
19
|
-
scrollX;
|
20
|
-
scrollY;
|
21
|
-
contentEls;
|
22
|
-
return items.map((item) => {
|
23
|
-
const contentEl = contentEls[item.id];
|
24
|
-
if (!item.anchor || !contentEl) return { left: 0, top: 0, index: 1 };
|
25
|
-
const triggerPos = item.anchor.getBoundingClientRect();
|
26
|
-
const height = contentEl.clientHeight;
|
27
|
-
const width = contentEl.clientWidth;
|
28
|
-
const isOffBottom = triggerPos.bottom + height > window.innerHeight - fudge;
|
29
|
-
const isOffRight = triggerPos.left + width > window.innerWidth - fudge;
|
30
|
-
let left = triggerPos.left;
|
31
|
-
let top = triggerPos.top + triggerPos.height + fudge;
|
32
|
-
if (isOffRight) left = left - width + triggerPos.width;
|
33
|
-
if (isOffBottom) top = top - height - triggerPos.height - fudge * 2;
|
34
|
-
return {
|
35
|
-
left,
|
36
|
-
top,
|
37
|
-
index: 1
|
38
|
-
};
|
39
|
-
});
|
40
|
-
});
|
41
|
-
let originCache = $state({});
|
42
|
-
let origins = $derived.by(() => {
|
43
|
-
return items.map((item, index) => {
|
44
|
-
if (!item.anchor || item.position !== "anchor") {
|
45
|
-
return item.position || "center";
|
46
|
-
}
|
47
|
-
const triggerPos = item.anchor.getBoundingClientRect();
|
48
|
-
const contentEl = document.getElementById(item.id);
|
49
|
-
const contentRect = contentEl?.getBoundingClientRect();
|
50
|
-
const height = contentRect.height;
|
51
|
-
const width = contentRect.width;
|
52
|
-
const isOffBottom = triggerPos.bottom + height > innerHeight - fudge;
|
53
|
-
const isOffRight = triggerPos.left + width > innerWidth - fudge;
|
54
|
-
let text = "top left";
|
55
|
-
if (isOffRight) text = text.replace("left", "right");
|
56
|
-
if (isOffBottom) text = text.replace("top", "bottom");
|
57
|
-
return text;
|
58
|
-
});
|
59
|
-
});
|
60
|
-
$effect(() => {
|
61
|
-
origins;
|
62
|
-
origins.forEach((origin, index) => {
|
63
|
-
originCache[untrack(() => items[index].id)] = origin;
|
64
|
-
});
|
65
|
-
});
|
66
|
-
function introstart(item) {
|
67
|
-
document.getElementById(item.id).style.pointerEvents = "none";
|
68
|
-
}
|
69
|
-
function introend(item) {
|
70
|
-
document.getElementById(item.id).style.pointerEvents = "auto";
|
71
|
-
}
|
72
|
-
</script>
|
73
|
-
|
74
|
-
<svelte:window bind:scrollX bind:scrollY bind:innerWidth bind:innerHeight />
|
75
|
-
|
76
|
-
<div class="Layer {position}">
|
77
|
-
{#each items as item, index (item.id)}
|
78
|
-
<div
|
79
|
-
id={item.id}
|
80
|
-
bind:this={contentEls[item.id]}
|
81
|
-
class="LayerItem"
|
82
|
-
class:anchor={item.anchor ? true : false}
|
83
|
-
onintrostart={() => introstart(item)}
|
84
|
-
onintroend={() => introend(item)}
|
85
|
-
transition:slidefade|global={{ duration: 150, origin: originCache[item.id] || origins[index], noMargin: !!!item.anchor }}
|
86
|
-
style="--index: {index}; --z: {item.z}; --left: {positions[index].left}px; --top: {positions[index].top}px;"
|
87
|
-
>
|
88
|
-
{#if isComponent(item.content)}
|
89
|
-
<item.content {...item.props} />
|
90
|
-
{:else if isSnippet(item.content)}
|
91
|
-
{@render item.content()}
|
92
|
-
{/if}
|
93
|
-
</div>
|
94
|
-
{/each}
|
95
|
-
</div>
|
96
|
-
|
97
|
-
<style>
|
98
|
-
.Layer {
|
99
|
-
pointer-events: auto;
|
100
|
-
position: absolute;
|
101
|
-
display: flex;
|
102
|
-
flex-direction: column-reverse;
|
103
|
-
gap: 0.75rem;
|
104
|
-
}
|
105
|
-
.Layer.center {
|
106
|
-
left: 50%;
|
107
|
-
right: auto;
|
108
|
-
transform: translateX(-50%);
|
109
|
-
}
|
110
|
-
.Layer.top {
|
111
|
-
top: calc(1rem + env(safe-area-inset-top));
|
112
|
-
bottom: unset;
|
113
|
-
}
|
114
|
-
.Layer.bottom {
|
115
|
-
top: unset;
|
116
|
-
bottom: calc(1rem + env(safe-area-inset-bottom));
|
117
|
-
}
|
118
|
-
.Layer.right {
|
119
|
-
left: unset;
|
120
|
-
right: calc(1rem + env(safe-area-inset-right));
|
121
|
-
}
|
122
|
-
.Layer.left {
|
123
|
-
left: calc(1rem + env(safe-area-inset-left));
|
124
|
-
right: unset;
|
125
|
-
}
|
126
|
-
.Layer.center:not(.top):not(.bottom):not(.anchor) {
|
127
|
-
top: 50%;
|
128
|
-
bottom: auto;
|
129
|
-
transform: translate(calc(-50% + env(safe-area-inset-left) + env(safe-area-inset-right)), calc(-50% + env(safe-area-inset-top) + env(safe-area-inset-bottom)));
|
130
|
-
}
|
131
|
-
.LayerItem {
|
132
|
-
position: relative;
|
133
|
-
z-index: calc(100 + var(--z, 1) - var(--index, 0));
|
134
|
-
}
|
135
|
-
.LayerItem.anchor {
|
136
|
-
position: absolute;
|
137
|
-
top: var(--top, 0);
|
138
|
-
left: var(--left, 0);
|
139
|
-
}
|
140
|
-
</style>
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { type OverlayItem, type OverlayPosition } from "./overlays.svelte.js";
|
2
|
-
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> {
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
4
|
-
$$bindings?: Bindings;
|
5
|
-
} & Exports;
|
6
|
-
(internal: unknown, props: Props & {
|
7
|
-
$$events?: Events;
|
8
|
-
$$slots?: Slots;
|
9
|
-
}): Exports;
|
10
|
-
z_$$bindings?: Bindings;
|
11
|
-
}
|
12
|
-
declare const OverlayLayer: $$__sveltets_2_IsomorphicComponent<{
|
13
|
-
position?: OverlayPosition;
|
14
|
-
items: OverlayItem[];
|
15
|
-
}, {
|
16
|
-
[evt: string]: CustomEvent<any>;
|
17
|
-
}, {}, {}, "">;
|
18
|
-
type OverlayLayer = InstanceType<typeof OverlayLayer>;
|
19
|
-
export default OverlayLayer;
|
@@ -1,82 +0,0 @@
|
|
1
|
-
<script lang="ts">import { setContext } from "svelte";
|
2
|
-
let {
|
3
|
-
children,
|
4
|
-
pad = false,
|
5
|
-
middle = false,
|
6
|
-
center = false,
|
7
|
-
style
|
8
|
-
} = $props();
|
9
|
-
let padStyle = $derived.by(() => {
|
10
|
-
if (typeof pad === "boolean") {
|
11
|
-
return `--padBlockStart: ${pad ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
|
12
|
-
} else if (typeof pad === "string") {
|
13
|
-
return `--padBlockStart: ${pad}; --padBlockEnd: ${pad}; --padInlineStart: ${pad}; --padInlineEnd: ${pad};`;
|
14
|
-
} else if (Array.isArray(pad) && pad.length > 1 && typeof pad[0] === "string") {
|
15
|
-
switch (pad.length) {
|
16
|
-
case 2:
|
17
|
-
return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[0]}; --padInlineStart: ${pad[1]}; --padInlineEnd: ${pad[1]};`;
|
18
|
-
case 3:
|
19
|
-
return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[2]};`;
|
20
|
-
case 4:
|
21
|
-
return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[3]};`;
|
22
|
-
}
|
23
|
-
} else if (Array.isArray(pad) && pad.length > 1) {
|
24
|
-
switch (pad.length) {
|
25
|
-
case 2:
|
26
|
-
return `--padBlockStart: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad[1] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad[1] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
|
27
|
-
case 3:
|
28
|
-
return `--padBlockStart: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad[2] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad[2] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
|
29
|
-
case 4:
|
30
|
-
return `--padBlockStart: ${pad[0] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--page-padding, var(--padding-block, var(--pad-xl)))" : "0"}; --padInlineStart: ${pad[2] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"}; --padInlineEnd: ${pad[3] ? "var(--page-padding, var(--padding-inline, var(--pad-xl)))" : "0"};`;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
return "";
|
34
|
-
});
|
35
|
-
</script>
|
36
|
-
|
37
|
-
<article
|
38
|
-
class="Page"
|
39
|
-
class:middle
|
40
|
-
class:center
|
41
|
-
style="{padStyle} {style}"
|
42
|
-
>
|
43
|
-
<div class="PaddingContainer">
|
44
|
-
<div class="PageContent">
|
45
|
-
{@render children()}
|
46
|
-
</div>
|
47
|
-
</div>
|
48
|
-
</article>
|
49
|
-
|
50
|
-
<style>
|
51
|
-
.Page {
|
52
|
-
inline-size: 100%;
|
53
|
-
display: grid;
|
54
|
-
grid-template-columns: 1fr;
|
55
|
-
container-type: inline-size;
|
56
|
-
container-name: page;
|
57
|
-
position: relative;
|
58
|
-
}
|
59
|
-
.PageContent {
|
60
|
-
container-type: inline-size;
|
61
|
-
max-inline-size: var(--max-inline-size, 1560px);
|
62
|
-
flex-grow: 1;
|
63
|
-
--isPage: 1;
|
64
|
-
}
|
65
|
-
.Page.center {
|
66
|
-
justify-content: center;
|
67
|
-
}
|
68
|
-
.Page.middle {
|
69
|
-
block-size: 100%;
|
70
|
-
align-items: center;
|
71
|
-
}
|
72
|
-
.Page .PaddingContainer {
|
73
|
-
padding-block-start: var(--padBlockStart);
|
74
|
-
padding-block-end: var(--padBlockEnd);
|
75
|
-
padding-inline-start: var(--padInlineStart);
|
76
|
-
padding-inline-end: var(--padInlineEnd);
|
77
|
-
display: flex;
|
78
|
-
}
|
79
|
-
.Page.center .PaddingContainer {
|
80
|
-
justify-content: center;
|
81
|
-
}
|
82
|
-
</style>
|
@@ -1,25 +0,0 @@
|
|
1
|
-
import { type Snippet } from "svelte";
|
2
|
-
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> {
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
4
|
-
$$bindings?: Bindings;
|
5
|
-
} & Exports;
|
6
|
-
(internal: unknown, props: Props & {
|
7
|
-
$$events?: Events;
|
8
|
-
$$slots?: Slots;
|
9
|
-
}): Exports;
|
10
|
-
z_$$bindings?: Bindings;
|
11
|
-
}
|
12
|
-
declare const PageContent: $$__sveltets_2_IsomorphicComponent<{
|
13
|
-
children: Snippet;
|
14
|
-
/** Add padding to the container. Pass in either a boolean or an array of booleans to specify padding on the block and inline axes. */
|
15
|
-
pad?: boolean | [boolean, boolean] | [boolean, boolean, boolean] | [boolean, boolean, boolean, boolean] | string | [string, string] | [string, string, string] | [string, string, string, string];
|
16
|
-
/** Center the content in the block direction. */
|
17
|
-
middle?: boolean;
|
18
|
-
/** Center the content in the inline direction. */
|
19
|
-
center?: boolean;
|
20
|
-
style?: string;
|
21
|
-
}, {
|
22
|
-
[evt: string]: CustomEvent<any>;
|
23
|
-
}, {}, {}, "">;
|
24
|
-
type PageContent = InstanceType<typeof PageContent>;
|
25
|
-
export default PageContent;
|