lutra 0.0.20 → 0.1.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/README.md +4 -24
- package/dist/components/AspectRatio.svelte +26 -0
- package/dist/components/AspectRatio.svelte.d.ts +8 -0
- package/dist/components/Dialog.svelte +78 -0
- package/dist/components/Dialog.svelte.d.ts +14 -0
- package/dist/components/Layout.svelte +32 -0
- package/dist/components/Layout.svelte.d.ts +11 -0
- package/dist/components/PageContent.svelte +108 -0
- package/dist/components/PageContent.svelte.d.ts +38 -0
- package/dist/components/Theme.svelte +87 -0
- package/dist/components/Theme.svelte.d.ts +17 -0
- package/dist/{display → components}/Tooltip.svelte +37 -11
- package/dist/components/Tooltip.svelte.d.ts +12 -0
- package/dist/config.d.ts +30 -0
- package/dist/config.js +18 -0
- package/dist/css/0-layers.css +1 -0
- package/dist/css/1-props.css +775 -0
- package/dist/css/2-base.css +209 -0
- package/dist/css/3-typo.css +65 -0
- package/dist/css/4-layout.css +5 -0
- package/dist/css/5-media.css +21 -0
- package/dist/css/lutra.css +6 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +5 -2
- package/dist/types.d.ts +39 -0
- package/dist/types.js +25 -0
- package/package.json +29 -75
- package/dist/data/Stat.svelte +0 -89
- package/dist/data/Stat.svelte.d.ts +0 -39
- package/dist/data/index.d.ts +0 -1
- package/dist/data/index.js +0 -1
- package/dist/display/Avatar.svelte +0 -61
- package/dist/display/Avatar.svelte.d.ts +0 -23
- package/dist/display/Badge.svelte +0 -93
- package/dist/display/Badge.svelte.d.ts +0 -34
- package/dist/display/Callout.svelte +0 -109
- package/dist/display/Callout.svelte.d.ts +0 -36
- package/dist/display/Close.svelte +0 -58
- package/dist/display/Close.svelte.d.ts +0 -21
- package/dist/display/Code.svelte +0 -195
- package/dist/display/Code.svelte.d.ts +0 -31
- package/dist/display/ContextTip.svelte +0 -26
- package/dist/display/ContextTip.svelte.d.ts +0 -22
- package/dist/display/Details.svelte +0 -49
- package/dist/display/Details.svelte.d.ts +0 -32
- package/dist/display/Hero.svelte +0 -50
- package/dist/display/Hero.svelte.d.ts +0 -30
- package/dist/display/Icon.svelte +0 -40
- package/dist/display/Icon.svelte.d.ts +0 -24
- package/dist/display/IconButton.svelte +0 -84
- package/dist/display/IconButton.svelte.d.ts +0 -30
- package/dist/display/Image.svelte +0 -91
- package/dist/display/Image.svelte.d.ts +0 -37
- package/dist/display/Indicator.svelte +0 -352
- package/dist/display/Indicator.svelte.d.ts +0 -24
- package/dist/display/Inset.svelte +0 -18
- package/dist/display/Inset.svelte.d.ts +0 -22
- package/dist/display/Notification.svelte +0 -104
- package/dist/display/Notification.svelte.d.ts +0 -42
- package/dist/display/Popup.svelte +0 -111
- package/dist/display/Popup.svelte.d.ts +0 -30
- package/dist/display/Table.svelte +0 -24
- package/dist/display/Table.svelte.d.ts +0 -34
- package/dist/display/Tag.svelte +0 -90
- package/dist/display/Tag.svelte.d.ts +0 -35
- package/dist/display/Tooltip.svelte.d.ts +0 -28
- package/dist/display/index.d.ts +0 -14
- package/dist/display/index.js +0 -14
- package/dist/display/notifications.svelte.d.ts +0 -21
- package/dist/display/notifications.svelte.js +0 -31
- package/dist/form/Button.svelte +0 -34
- package/dist/form/Button.svelte.d.ts +0 -36
- package/dist/form/FieldActions.svelte +0 -46
- package/dist/form/FieldActions.svelte.d.ts +0 -24
- package/dist/form/FieldContainer.svelte +0 -37
- package/dist/form/FieldContainer.svelte.d.ts +0 -24
- package/dist/form/FieldContent.svelte +0 -134
- package/dist/form/FieldContent.svelte.d.ts +0 -59
- package/dist/form/FieldError.svelte +0 -14
- package/dist/form/FieldError.svelte.d.ts +0 -21
- package/dist/form/FieldSection.svelte +0 -86
- package/dist/form/FieldSection.svelte.d.ts +0 -34
- package/dist/form/Fieldset.svelte +0 -68
- package/dist/form/Fieldset.svelte.d.ts +0 -42
- package/dist/form/Form.svelte +0 -98
- package/dist/form/Form.svelte.d.ts +0 -33
- package/dist/form/Input.svelte +0 -287
- package/dist/form/Input.svelte.d.ts +0 -142
- package/dist/form/InputLength.svelte +0 -32
- package/dist/form/InputLength.svelte.d.ts +0 -21
- package/dist/form/Label.svelte +0 -27
- package/dist/form/Label.svelte.d.ts +0 -31
- package/dist/form/Select.svelte +0 -88
- package/dist/form/Select.svelte.d.ts +0 -97
- package/dist/form/client.svelte.d.ts +0 -45
- package/dist/form/client.svelte.js +0 -90
- package/dist/form/form.d.ts +0 -52
- package/dist/form/form.js +0 -326
- package/dist/form/index.d.ts +0 -15
- package/dist/form/index.js +0 -15
- package/dist/form/types.d.ts +0 -52
- package/dist/form/types.js +0 -1
- package/dist/grid/Column.svelte +0 -11
- package/dist/grid/Column.svelte.d.ts +0 -22
- package/dist/grid/Grid.svelte +0 -19
- package/dist/grid/Grid.svelte.d.ts +0 -24
- package/dist/grid/Row.svelte +0 -44
- package/dist/grid/Row.svelte.d.ts +0 -24
- package/dist/icons/Alert.svelte +0 -3
- package/dist/icons/Alert.svelte.d.ts +0 -23
- package/dist/icons/Copy.svelte +0 -3
- package/dist/icons/Copy.svelte.d.ts +0 -23
- package/dist/icons/Done.svelte +0 -3
- package/dist/icons/Done.svelte.d.ts +0 -23
- package/dist/icons/Error.svelte +0 -3
- package/dist/icons/Error.svelte.d.ts +0 -23
- package/dist/icons/Help.svelte +0 -3
- package/dist/icons/Help.svelte.d.ts +0 -23
- package/dist/icons/Hide.svelte +0 -3
- package/dist/icons/Hide.svelte.d.ts +0 -23
- package/dist/icons/Info.svelte +0 -3
- package/dist/icons/Info.svelte.d.ts +0 -23
- package/dist/icons/Link.svelte +0 -3
- package/dist/icons/Link.svelte.d.ts +0 -23
- package/dist/icons/MenuBurger.svelte +0 -3
- package/dist/icons/MenuBurger.svelte.d.ts +0 -23
- package/dist/icons/MenuDots.svelte +0 -3
- package/dist/icons/MenuDots.svelte.d.ts +0 -23
- package/dist/icons/Show.svelte +0 -3
- package/dist/icons/Show.svelte.d.ts +0 -23
- package/dist/icons/Success.svelte +0 -3
- package/dist/icons/Success.svelte.d.ts +0 -23
- package/dist/icons/Warning.svelte +0 -3
- package/dist/icons/Warning.svelte.d.ts +0 -23
- package/dist/icons/index.d.ts +0 -11
- package/dist/icons/index.js +0 -11
- package/dist/layout/Layout.svelte +0 -45
- package/dist/layout/Layout.svelte.d.ts +0 -25
- package/dist/layout/LayoutFooter.svelte +0 -21
- package/dist/layout/LayoutFooter.svelte.d.ts +0 -19
- package/dist/layout/LayoutGrid.svelte +0 -51
- package/dist/layout/LayoutGrid.svelte.d.ts +0 -38
- package/dist/layout/LayoutHeader.svelte +0 -94
- package/dist/layout/LayoutHeader.svelte.d.ts +0 -39
- package/dist/layout/LayoutSideMenu.svelte +0 -54
- package/dist/layout/LayoutSideMenu.svelte.d.ts +0 -25
- 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 -35
- package/dist/layout/OverlayContainer.svelte +0 -28
- package/dist/layout/OverlayContainer.svelte.d.ts +0 -16
- package/dist/layout/OverlayLayer.svelte +0 -145
- package/dist/layout/OverlayLayer.svelte.d.ts +0 -22
- package/dist/layout/PageContent.svelte +0 -97
- package/dist/layout/PageContent.svelte.d.ts +0 -28
- package/dist/layout/Theme.svelte +0 -228
- package/dist/layout/Theme.svelte.d.ts +0 -24
- package/dist/layout/UIContent.svelte +0 -15
- package/dist/layout/UIContent.svelte.d.ts +0 -22
- package/dist/layout/index.d.ts +0 -7
- package/dist/layout/index.js +0 -7
- package/dist/layout/overlays.svelte.d.ts +0 -34
- package/dist/layout/overlays.svelte.js +0 -44
- package/dist/nav/Breadcrumb.svelte +0 -82
- package/dist/nav/Breadcrumb.svelte.d.ts +0 -33
- package/dist/nav/Menu.svelte +0 -177
- package/dist/nav/Menu.svelte.d.ts +0 -33
- package/dist/nav/MenuItem.svelte +0 -140
- package/dist/nav/MenuItem.svelte.d.ts +0 -26
- package/dist/nav/MenuTypes.d.ts +0 -58
- package/dist/nav/MenuTypes.js +0 -1
- package/dist/nav/NavMenu.svelte +0 -183
- package/dist/nav/NavMenu.svelte.d.ts +0 -20
- package/dist/nav/TabbedContent.svelte +0 -43
- package/dist/nav/TabbedContent.svelte.d.ts +0 -24
- package/dist/nav/Tabs.svelte +0 -118
- package/dist/nav/Tabs.svelte.d.ts +0 -26
- package/dist/nav/index.d.ts +0 -6
- package/dist/nav/index.js +0 -5
- package/dist/style.css +0 -853
- package/dist/typo/Clamp.svelte +0 -25
- package/dist/typo/Clamp.svelte.d.ts +0 -28
- package/dist/typo/H.svelte +0 -52
- package/dist/typo/H.svelte.d.ts +0 -32
- package/dist/typo/H1.svelte +0 -14
- package/dist/typo/H1.svelte.d.ts +0 -30
- package/dist/typo/H2.svelte +0 -14
- package/dist/typo/H2.svelte.d.ts +0 -30
- package/dist/typo/H3.svelte +0 -14
- package/dist/typo/H3.svelte.d.ts +0 -30
- package/dist/typo/H4.svelte +0 -14
- package/dist/typo/H4.svelte.d.ts +0 -30
- package/dist/typo/H5.svelte +0 -14
- package/dist/typo/H5.svelte.d.ts +0 -30
- package/dist/typo/H6.svelte +0 -14
- package/dist/typo/H6.svelte.d.ts +0 -30
- package/dist/typo/P.svelte +0 -34
- package/dist/typo/P.svelte.d.ts +0 -30
- package/dist/typo/index.d.ts +0 -9
- package/dist/typo/index.js +0 -9
- package/dist/utils/StringOrComponentOrSnippet.svelte +0 -14
- package/dist/utils/StringOrComponentOrSnippet.svelte.d.ts +0 -24
- package/dist/utils/attr.d.ts +0 -5
- package/dist/utils/attr.js +0 -21
- package/dist/utils/color.d.ts +0 -51
- package/dist/utils/color.js +0 -97
- package/dist/utils/defaults.d.ts +0 -4
- package/dist/utils/defaults.js +0 -1
- package/dist/utils/dom.d.ts +0 -15
- package/dist/utils/dom.js +0 -74
- 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 -8
- package/dist/utils/index.js +0 -5
- package/dist/utils/isSnippet.d.ts +0 -5
- package/dist/utils/isSnippet.js +0 -6
- package/dist/utils/keyboard.svelte.d.ts +0 -22
- package/dist/utils/keyboard.svelte.js +0 -161
- /package/dist/{utils → util}/transitions.d.ts +0 -0
- /package/dist/{utils → util}/transitions.js +0 -0
@@ -1,22 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import type { Snippet } from "svelte";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
tip: string | Snippet;
|
6
|
-
};
|
7
|
-
events: {
|
8
|
-
[evt: string]: CustomEvent<any>;
|
9
|
-
};
|
10
|
-
slots: {};
|
11
|
-
};
|
12
|
-
export type ContextTipProps = typeof __propDef.props;
|
13
|
-
export type ContextTipEvents = typeof __propDef.events;
|
14
|
-
export type ContextTipSlots = typeof __propDef.slots;
|
15
|
-
export default class ContextTip extends SvelteComponent<ContextTipProps, ContextTipEvents, ContextTipSlots> {
|
16
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
17
|
-
tip: string | ((this: void) => typeof import("svelte").SnippetReturn & {
|
18
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
19
|
-
});
|
20
|
-
}>);
|
21
|
-
}
|
22
|
-
export {};
|
@@ -1,49 +0,0 @@
|
|
1
|
-
<script lang="ts">let {
|
2
|
-
summary,
|
3
|
-
contained,
|
4
|
-
rounded,
|
5
|
-
open,
|
6
|
-
children
|
7
|
-
} = $props();
|
8
|
-
</script>
|
9
|
-
|
10
|
-
<details class:contained class:rounded bind:open>
|
11
|
-
<summary>
|
12
|
-
{#if typeof summary === 'string'}
|
13
|
-
<span>{summary}</span>
|
14
|
-
{:else}
|
15
|
-
{@render summary()}
|
16
|
-
{/if}
|
17
|
-
</summary>
|
18
|
-
<section>
|
19
|
-
{@render children()}
|
20
|
-
</section>
|
21
|
-
</details>
|
22
|
-
|
23
|
-
<style>
|
24
|
-
summary {
|
25
|
-
font-weight: 600;
|
26
|
-
font-size: var(--font-size, 1em);
|
27
|
-
cursor: pointer;
|
28
|
-
padding-block-end: 0.5rem;
|
29
|
-
}
|
30
|
-
details.rounded {
|
31
|
-
border-radius: var(--border-radius);
|
32
|
-
}
|
33
|
-
details.contained {
|
34
|
-
border: var(--border);
|
35
|
-
overflow: hidden;
|
36
|
-
}
|
37
|
-
details.contained[open] summary {
|
38
|
-
border-block-end: var(--border);
|
39
|
-
}
|
40
|
-
details.contained summary {
|
41
|
-
padding: var(--padding, 0.5em 1em);
|
42
|
-
background-color: var(--summary-bg, var(--bg-subtle));
|
43
|
-
}
|
44
|
-
details.contained section {
|
45
|
-
font-size: var(--font-size, 1em);
|
46
|
-
padding: var(--padding, 0.5em 1em);
|
47
|
-
background-color: var(--content-bg, transparent);
|
48
|
-
}
|
49
|
-
</style>
|
@@ -1,32 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import type { Snippet } from "svelte";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
summary: string | Snippet;
|
6
|
-
contained?: boolean | undefined;
|
7
|
-
rounded?: boolean | undefined;
|
8
|
-
open?: boolean | undefined;
|
9
|
-
children: Snippet;
|
10
|
-
};
|
11
|
-
events: {
|
12
|
-
[evt: string]: CustomEvent<any>;
|
13
|
-
};
|
14
|
-
slots: {};
|
15
|
-
};
|
16
|
-
export type DetailsProps = typeof __propDef.props;
|
17
|
-
export type DetailsEvents = typeof __propDef.events;
|
18
|
-
export type DetailsSlots = typeof __propDef.slots;
|
19
|
-
export default class Details extends SvelteComponent<DetailsProps, DetailsEvents, DetailsSlots> {
|
20
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
21
|
-
summary: string | ((this: void) => typeof import("svelte").SnippetReturn & {
|
22
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
23
|
-
});
|
24
|
-
contained?: boolean | undefined;
|
25
|
-
rounded?: boolean | undefined;
|
26
|
-
open?: boolean | undefined;
|
27
|
-
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
28
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
29
|
-
};
|
30
|
-
}>);
|
31
|
-
}
|
32
|
-
export {};
|
package/dist/display/Hero.svelte
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
<script lang="ts">import { setContext } from "svelte";
|
2
|
-
let {
|
3
|
-
children,
|
4
|
-
pad = true,
|
5
|
-
center = false,
|
6
|
-
fullWidth = false,
|
7
|
-
contained = false
|
8
|
-
} = $props();
|
9
|
-
</script>
|
10
|
-
|
11
|
-
<section class="Hero" class:pad class:fullWidth class:center class:contained>
|
12
|
-
<main>
|
13
|
-
{@render children()}
|
14
|
-
</main>
|
15
|
-
</section>
|
16
|
-
|
17
|
-
<style>
|
18
|
-
.Hero {
|
19
|
-
background: var(--bg, var(--bg-subtle));
|
20
|
-
container-type: inline-size;
|
21
|
-
text-wrap: balance;
|
22
|
-
}
|
23
|
-
.Hero.contained main {
|
24
|
-
max-inline-size: var(--max-inline-size, 1560px);
|
25
|
-
}
|
26
|
-
/** Header areas where h1 is followed by h2 */
|
27
|
-
.Hero :global(h1:has(+ h2)) {
|
28
|
-
margin-block-end: 1rem;
|
29
|
-
}
|
30
|
-
.Hero :global(h1 + h2) {
|
31
|
-
color: var(--text-subtle);
|
32
|
-
margin-block-start: 0rem;
|
33
|
-
}
|
34
|
-
.Hero {
|
35
|
-
block-size: 100%;
|
36
|
-
margin-inline: 0;
|
37
|
-
}
|
38
|
-
.Hero.fullWidth {
|
39
|
-
inline-size: 100cqi;
|
40
|
-
margin-inline: calc(50% - 50cqi);
|
41
|
-
min-inline-size: 100%;
|
42
|
-
}
|
43
|
-
.Hero.center main {
|
44
|
-
margin-inline: auto;
|
45
|
-
}
|
46
|
-
.Hero.pad {
|
47
|
-
padding-block: var(--padding, var(--padding-block, 4rem));
|
48
|
-
padding-inline: var(--padding, var(--padding-inline, 4rem));
|
49
|
-
}
|
50
|
-
</style>
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import { type Snippet } from "svelte";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
children: Snippet;
|
6
|
-
pad?: string | boolean | [boolean, boolean] | [boolean, boolean, boolean] | [boolean, boolean, boolean, boolean] | [string, string] | [string, string, string] | [string, string, string, string] | undefined;
|
7
|
-
center?: boolean | undefined;
|
8
|
-
fullWidth?: boolean | undefined;
|
9
|
-
contained?: boolean | undefined;
|
10
|
-
};
|
11
|
-
events: {
|
12
|
-
[evt: string]: CustomEvent<any>;
|
13
|
-
};
|
14
|
-
slots: {};
|
15
|
-
};
|
16
|
-
export type HeroProps = typeof __propDef.props;
|
17
|
-
export type HeroEvents = typeof __propDef.events;
|
18
|
-
export type HeroSlots = typeof __propDef.slots;
|
19
|
-
export default class Hero extends SvelteComponent<HeroProps, HeroEvents, HeroSlots> {
|
20
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
21
|
-
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
22
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
23
|
-
};
|
24
|
-
pad?: string | boolean | [boolean, boolean] | [boolean, boolean, boolean] | [boolean, boolean, boolean, boolean] | [string, string] | [string, string, string] | [string, string, string, string] | undefined;
|
25
|
-
center?: boolean | undefined;
|
26
|
-
fullWidth?: boolean | undefined;
|
27
|
-
contained?: boolean | undefined;
|
28
|
-
}>);
|
29
|
-
}
|
30
|
-
export {};
|
package/dist/display/Icon.svelte
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
<script lang="ts">import { isComponent, isSnippet } from "../utils/isSnippet.js";
|
2
|
-
let {
|
3
|
-
icon,
|
4
|
-
alt
|
5
|
-
} = $props();
|
6
|
-
</script>
|
7
|
-
|
8
|
-
<span class="Icon" aria-label="icon">
|
9
|
-
{#if typeof icon === "string"}
|
10
|
-
<img src={icon} alt={alt ? alt : 'Icon'} width="100%" height="100%" />
|
11
|
-
{:else if isComponent(icon)}
|
12
|
-
<svelte:component this={icon} />
|
13
|
-
{:else if isSnippet(icon)}
|
14
|
-
{@render icon()}
|
15
|
-
{/if}
|
16
|
-
</span>
|
17
|
-
|
18
|
-
<style>
|
19
|
-
.Icon {
|
20
|
-
display: inline-flex;
|
21
|
-
align-items: center;
|
22
|
-
justify-content: center;
|
23
|
-
font-size: 1em;
|
24
|
-
line-height: inherit;
|
25
|
-
width: max(
|
26
|
-
var(--icon-width,
|
27
|
-
var(--icon-height, 1rem)
|
28
|
-
), 16px);
|
29
|
-
height: max(var(--icon-height, auto), 16px);
|
30
|
-
overflow: clip;
|
31
|
-
vertical-align: var(--vertical-align, text-bottom);
|
32
|
-
cursor: var(--cursor, default);
|
33
|
-
}
|
34
|
-
img,
|
35
|
-
.Icon :global(svg) {
|
36
|
-
width: 100%;
|
37
|
-
height: auto;
|
38
|
-
display: block;
|
39
|
-
}
|
40
|
-
</style>
|
@@ -1,24 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import type { ComponentType, Snippet } from "svelte";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
icon: string | Snippet | ComponentType;
|
6
|
-
alt?: string | undefined;
|
7
|
-
};
|
8
|
-
events: {
|
9
|
-
[evt: string]: CustomEvent<any>;
|
10
|
-
};
|
11
|
-
slots: {};
|
12
|
-
};
|
13
|
-
export type IconProps = typeof __propDef.props;
|
14
|
-
export type IconEvents = typeof __propDef.events;
|
15
|
-
export type IconSlots = typeof __propDef.slots;
|
16
|
-
export default class Icon extends SvelteComponent<IconProps, IconEvents, IconSlots> {
|
17
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
18
|
-
icon: string | ((this: void) => typeof import("svelte").SnippetReturn & {
|
19
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
20
|
-
}) | ComponentType;
|
21
|
-
alt?: string | undefined;
|
22
|
-
}>);
|
23
|
-
}
|
24
|
-
export {};
|
@@ -1,84 +0,0 @@
|
|
1
|
-
<script lang="ts">import Icon from "./Icon.svelte";
|
2
|
-
import { fly } from "svelte/transition";
|
3
|
-
import { popBezier, popBezierInverse } from "../utils/transitions.js";
|
4
|
-
let {
|
5
|
-
icon,
|
6
|
-
disabled,
|
7
|
-
children,
|
8
|
-
onclick
|
9
|
-
} = $props();
|
10
|
-
</script>
|
11
|
-
|
12
|
-
{#snippet inside()}
|
13
|
-
<span class="IconMask">
|
14
|
-
{#key icon}
|
15
|
-
<span class="IconContent" in:fly={{ duration: 250, y: -32, easing: popBezier }} out:fly={{ duration: 250, y: 32, easing: popBezierInverse }}>
|
16
|
-
<Icon {icon} --cursor="pointer" />
|
17
|
-
{#if children}
|
18
|
-
{@render children()}
|
19
|
-
{/if}
|
20
|
-
</span>
|
21
|
-
{/key}
|
22
|
-
</span>
|
23
|
-
{/snippet}
|
24
|
-
|
25
|
-
{#if onclick}
|
26
|
-
<button type="button" {disabled} class="IconButton" {onclick}>
|
27
|
-
{@render inside()}
|
28
|
-
</button>
|
29
|
-
{:else}
|
30
|
-
<span class="IconButton">
|
31
|
-
{@render inside()}
|
32
|
-
</span>
|
33
|
-
{/if}
|
34
|
-
|
35
|
-
<style>
|
36
|
-
.IconButton {
|
37
|
-
display: inline-flex;
|
38
|
-
align-items: stretch;
|
39
|
-
color: inherit;
|
40
|
-
opacity: 1;
|
41
|
-
background-color: var(--field-bg);
|
42
|
-
transition: background-color 0.04s;
|
43
|
-
border-radius: var(--field-radius);
|
44
|
-
}
|
45
|
-
.IconButton:hover {
|
46
|
-
background-color: var(--menu-bg-hover);
|
47
|
-
}
|
48
|
-
.IconButton:active {
|
49
|
-
scale: 1;
|
50
|
-
}
|
51
|
-
button.IconButton {
|
52
|
-
border: none;
|
53
|
-
background: none;
|
54
|
-
cursor: pointer;
|
55
|
-
color: var(--text);
|
56
|
-
}
|
57
|
-
.IconMask {
|
58
|
-
height: 100%;
|
59
|
-
padding-inline: var(--padding, 0.75em);
|
60
|
-
padding-block: var(--padding, 0.75em);
|
61
|
-
display: inline-grid;
|
62
|
-
gap: 0.5rem;
|
63
|
-
grid-template: "icon";
|
64
|
-
align-items: center;
|
65
|
-
-webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1) 35%, rgba(0, 0, 0, 1) 65%, rgba(0, 0, 0, 0));
|
66
|
-
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1) 35%, rgba(0, 0, 0, 1) 65%, rgba(0, 0, 0, 0));
|
67
|
-
}
|
68
|
-
.IconContent {
|
69
|
-
grid-area: icon;
|
70
|
-
display: inline-flex;
|
71
|
-
}
|
72
|
-
@media(max-width: 960px) {
|
73
|
-
.IconMask {
|
74
|
-
padding-inline: calc(var(--padding, 0.75em) * 0.75);
|
75
|
-
padding-block: calc(var(--padding, 0.75em) * 0.75);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
@media(max-width: 320px) {
|
79
|
-
.IconMask {
|
80
|
-
padding-inline: calc(var(--padding, 0.75em) * 0.6);
|
81
|
-
padding-block: calc(var(--padding, 0.75em) * 0.6);
|
82
|
-
}
|
83
|
-
}
|
84
|
-
</style>
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import type { ComponentType } from "svelte";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
icon: string | ComponentType;
|
6
|
-
children?: ((this: void) => typeof import("svelte").SnippetReturn & {
|
7
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
8
|
-
}) | undefined;
|
9
|
-
onclick?: ((event: MouseEvent) => void) | undefined;
|
10
|
-
disabled?: boolean | undefined;
|
11
|
-
};
|
12
|
-
events: {
|
13
|
-
[evt: string]: CustomEvent<any>;
|
14
|
-
};
|
15
|
-
slots: {};
|
16
|
-
};
|
17
|
-
export type IconButtonProps = typeof __propDef.props;
|
18
|
-
export type IconButtonEvents = typeof __propDef.events;
|
19
|
-
export type IconButtonSlots = typeof __propDef.slots;
|
20
|
-
export default class IconButton extends SvelteComponent<IconButtonProps, IconButtonEvents, IconButtonSlots> {
|
21
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
22
|
-
icon: string | ComponentType;
|
23
|
-
children?: ((this: void) => typeof import("svelte").SnippetReturn & {
|
24
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
25
|
-
}) | undefined;
|
26
|
-
onclick?: ((event: MouseEvent) => void) | undefined;
|
27
|
-
disabled?: boolean | undefined;
|
28
|
-
}>);
|
29
|
-
}
|
30
|
-
export {};
|
@@ -1,91 +0,0 @@
|
|
1
|
-
<script lang="ts">import { decode } from "blurhash";
|
2
|
-
import { fade } from "svelte/transition";
|
3
|
-
let {
|
4
|
-
hash,
|
5
|
-
width,
|
6
|
-
height,
|
7
|
-
aspectRatio,
|
8
|
-
fit,
|
9
|
-
src,
|
10
|
-
srcset,
|
11
|
-
alt,
|
12
|
-
style,
|
13
|
-
class: className
|
14
|
-
} = $props();
|
15
|
-
let canvas = $state(null);
|
16
|
-
let el = $state(null);
|
17
|
-
let elWidth = $state(32);
|
18
|
-
let elHeight = $state(32);
|
19
|
-
if (!src && srcset) {
|
20
|
-
const [src1] = srcset.split(", ");
|
21
|
-
src = src1.split(" ")[0];
|
22
|
-
}
|
23
|
-
if (!style) {
|
24
|
-
style = `aspect-ratio: ${aspectRatio};`;
|
25
|
-
} else {
|
26
|
-
style += ` aspect-ratio: ${aspectRatio};`;
|
27
|
-
}
|
28
|
-
let decoded = $state(false);
|
29
|
-
let loaded = $state(false);
|
30
|
-
const onload = () => {
|
31
|
-
loaded = true;
|
32
|
-
};
|
33
|
-
$effect(() => {
|
34
|
-
if (hash) {
|
35
|
-
setTimeout(() => {
|
36
|
-
const pixels = decode(hash, elWidth, elHeight);
|
37
|
-
const ctx = canvas.getContext("2d");
|
38
|
-
const imageData = ctx.createImageData(elWidth, elHeight);
|
39
|
-
imageData.data.set(pixels);
|
40
|
-
ctx.putImageData(imageData, 0, 0);
|
41
|
-
decoded = true;
|
42
|
-
}, 0);
|
43
|
-
}
|
44
|
-
});
|
45
|
-
</script>
|
46
|
-
|
47
|
-
<div class="BlurHashImage" class:loaded>
|
48
|
-
<img
|
49
|
-
bind:this={el}
|
50
|
-
bind:clientWidth={elWidth}
|
51
|
-
bind:clientHeight={elHeight}
|
52
|
-
onload={onload}
|
53
|
-
src={src}
|
54
|
-
srcset={srcset}
|
55
|
-
alt={alt}
|
56
|
-
width={width}
|
57
|
-
height={height}
|
58
|
-
style={style}
|
59
|
-
class="{className} {fit}"
|
60
|
-
/>
|
61
|
-
{#if !loaded && hash}
|
62
|
-
<canvas class:decoded out:fade={{ duration: 100 }} width={elWidth} height={elHeight} bind:this={canvas}></canvas>
|
63
|
-
{/if}
|
64
|
-
</div>
|
65
|
-
|
66
|
-
<style>
|
67
|
-
.BlurHashImage {
|
68
|
-
position: relative;
|
69
|
-
display: grid;
|
70
|
-
grid-template-areas: "img";
|
71
|
-
}
|
72
|
-
canvas {
|
73
|
-
z-index: 2;
|
74
|
-
opacity: 0;
|
75
|
-
width: 100%;
|
76
|
-
grid-area: img;
|
77
|
-
transition: opacity 200ms;
|
78
|
-
}
|
79
|
-
canvas.decoded {
|
80
|
-
opacity: 1;
|
81
|
-
}
|
82
|
-
img {
|
83
|
-
z-index: 1;
|
84
|
-
grid-area: img;
|
85
|
-
display: inline-block;
|
86
|
-
vertical-align: middle;
|
87
|
-
}
|
88
|
-
img.cover { object-fit: cover; }
|
89
|
-
img.contain { object-fit: contain; }
|
90
|
-
img.scale-down { object-fit: scale-down; }
|
91
|
-
</style>
|
@@ -1,37 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
declare const __propDef: {
|
3
|
-
props: {
|
4
|
-
hash?: string | undefined;
|
5
|
-
aspectRatio?: string | undefined;
|
6
|
-
fit?: "cover" | "contain" | "scale-down" | undefined;
|
7
|
-
src?: string | undefined;
|
8
|
-
srcset?: string | undefined;
|
9
|
-
alt?: string | undefined;
|
10
|
-
width?: string | number | undefined;
|
11
|
-
height?: string | number | undefined;
|
12
|
-
style?: string | undefined;
|
13
|
-
class?: string | undefined;
|
14
|
-
};
|
15
|
-
events: {
|
16
|
-
[evt: string]: CustomEvent<any>;
|
17
|
-
};
|
18
|
-
slots: {};
|
19
|
-
};
|
20
|
-
export type ImageProps = typeof __propDef.props;
|
21
|
-
export type ImageEvents = typeof __propDef.events;
|
22
|
-
export type ImageSlots = typeof __propDef.slots;
|
23
|
-
export default class Image extends SvelteComponent<ImageProps, ImageEvents, ImageSlots> {
|
24
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
25
|
-
hash?: string | undefined;
|
26
|
-
aspectRatio?: string | undefined;
|
27
|
-
fit?: "cover" | "contain" | "scale-down" | undefined;
|
28
|
-
src?: string | undefined;
|
29
|
-
srcset?: string | undefined;
|
30
|
-
alt?: string | undefined;
|
31
|
-
width?: string | number | undefined;
|
32
|
-
height?: string | number | undefined;
|
33
|
-
style?: string | undefined;
|
34
|
-
class?: string | undefined;
|
35
|
-
}>);
|
36
|
-
}
|
37
|
-
export {};
|