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,145 +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)
|
25
|
-
return { left: 0, top: 0, index: 1 };
|
26
|
-
const triggerPos = item.anchor.getBoundingClientRect();
|
27
|
-
const height = contentEl.clientHeight;
|
28
|
-
const width = contentEl.clientWidth;
|
29
|
-
const isOffBottom = triggerPos.bottom + height > window.innerHeight - fudge;
|
30
|
-
const isOffRight = triggerPos.left + width > window.innerWidth - fudge;
|
31
|
-
let left = triggerPos.left;
|
32
|
-
let top = triggerPos.top + triggerPos.height + fudge;
|
33
|
-
if (isOffRight)
|
34
|
-
left = left - width + triggerPos.width;
|
35
|
-
if (isOffBottom)
|
36
|
-
top = top - height - triggerPos.height - fudge * 2;
|
37
|
-
return {
|
38
|
-
left,
|
39
|
-
top,
|
40
|
-
index: 1
|
41
|
-
};
|
42
|
-
});
|
43
|
-
});
|
44
|
-
let originCache = $state({});
|
45
|
-
let origins = $derived.by(() => {
|
46
|
-
return items.map((item, index) => {
|
47
|
-
if (!item.anchor || item.position !== "anchor") {
|
48
|
-
return item.position || "center";
|
49
|
-
}
|
50
|
-
const triggerPos = item.anchor.getBoundingClientRect();
|
51
|
-
const contentEl = document.getElementById(item.id);
|
52
|
-
const contentRect = contentEl?.getBoundingClientRect();
|
53
|
-
const height = contentRect.height;
|
54
|
-
const width = contentRect.width;
|
55
|
-
const isOffBottom = triggerPos.bottom + height > innerHeight - fudge;
|
56
|
-
const isOffRight = triggerPos.left + width > innerWidth - fudge;
|
57
|
-
let text = "top left";
|
58
|
-
if (isOffRight)
|
59
|
-
text = text.replace("left", "right");
|
60
|
-
if (isOffBottom)
|
61
|
-
text = text.replace("top", "bottom");
|
62
|
-
return text;
|
63
|
-
});
|
64
|
-
});
|
65
|
-
$effect(() => {
|
66
|
-
origins;
|
67
|
-
origins.forEach((origin, index) => {
|
68
|
-
originCache[untrack(() => items[index].id)] = origin;
|
69
|
-
});
|
70
|
-
});
|
71
|
-
function introstart(item) {
|
72
|
-
document.getElementById(item.id).style.pointerEvents = "none";
|
73
|
-
}
|
74
|
-
function introend(item) {
|
75
|
-
document.getElementById(item.id).style.pointerEvents = "auto";
|
76
|
-
}
|
77
|
-
</script>
|
78
|
-
|
79
|
-
<svelte:window bind:scrollX bind:scrollY bind:innerWidth bind:innerHeight />
|
80
|
-
|
81
|
-
<div class="Layer {position}">
|
82
|
-
{#each items as item, index (item.id)}
|
83
|
-
<div
|
84
|
-
id={item.id}
|
85
|
-
bind:this={contentEls[item.id]}
|
86
|
-
class="LayerItem"
|
87
|
-
class:anchor={item.anchor ? true : false}
|
88
|
-
onintrostart={() => introstart(item)}
|
89
|
-
onintroend={() => introend(item)}
|
90
|
-
transition:slidefade|global={{ duration: 150, origin: originCache[item.id] || origins[index], noMargin: !!!item.anchor }}
|
91
|
-
style="--index: {index}; --z: {item.z}; --left: {positions[index].left}px; --top: {positions[index].top}px;"
|
92
|
-
>
|
93
|
-
{#if isComponent(item.content)}
|
94
|
-
<svelte:component this={item.content} {...item.props} />
|
95
|
-
{:else if isSnippet(item.content)}
|
96
|
-
{@render item.content()}
|
97
|
-
{/if}
|
98
|
-
</div>
|
99
|
-
{/each}
|
100
|
-
</div>
|
101
|
-
|
102
|
-
<style>
|
103
|
-
.Layer {
|
104
|
-
pointer-events: auto;
|
105
|
-
position: absolute;
|
106
|
-
display: flex;
|
107
|
-
flex-direction: column-reverse;
|
108
|
-
gap: 0.75rem;
|
109
|
-
}
|
110
|
-
.Layer.center {
|
111
|
-
left: 50%;
|
112
|
-
right: auto;
|
113
|
-
transform: translateX(-50%);
|
114
|
-
}
|
115
|
-
.Layer.top {
|
116
|
-
top: calc(1rem + env(safe-area-inset-top));
|
117
|
-
bottom: unset;
|
118
|
-
}
|
119
|
-
.Layer.bottom {
|
120
|
-
top: unset;
|
121
|
-
bottom: calc(1rem + env(safe-area-inset-bottom));
|
122
|
-
}
|
123
|
-
.Layer.right {
|
124
|
-
left: unset;
|
125
|
-
right: calc(1rem + env(safe-area-inset-right));
|
126
|
-
}
|
127
|
-
.Layer.left {
|
128
|
-
left: calc(1rem + env(safe-area-inset-left));
|
129
|
-
right: unset;
|
130
|
-
}
|
131
|
-
.Layer.center:not(.top):not(.bottom):not(.anchor) {
|
132
|
-
top: 50%;
|
133
|
-
bottom: auto;
|
134
|
-
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)));
|
135
|
-
}
|
136
|
-
.LayerItem {
|
137
|
-
position: relative;
|
138
|
-
z-index: calc(100 + var(--z, 1) - var(--index, 0));
|
139
|
-
}
|
140
|
-
.LayerItem.anchor {
|
141
|
-
position: absolute;
|
142
|
-
top: var(--top, 0);
|
143
|
-
left: var(--left, 0);
|
144
|
-
}
|
145
|
-
</style>
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import { type OverlayItem, type OverlayPosition } from "./overlays.svelte.js";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
position?: OverlayPosition | undefined;
|
6
|
-
items: OverlayItem[];
|
7
|
-
};
|
8
|
-
events: {
|
9
|
-
[evt: string]: CustomEvent<any>;
|
10
|
-
};
|
11
|
-
slots: {};
|
12
|
-
};
|
13
|
-
export type OverlayLayerProps = typeof __propDef.props;
|
14
|
-
export type OverlayLayerEvents = typeof __propDef.events;
|
15
|
-
export type OverlayLayerSlots = typeof __propDef.slots;
|
16
|
-
export default class OverlayLayer extends SvelteComponent<OverlayLayerProps, OverlayLayerEvents, OverlayLayerSlots> {
|
17
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
18
|
-
position?: OverlayPosition | undefined;
|
19
|
-
items: OverlayItem[];
|
20
|
-
}>);
|
21
|
-
}
|
22
|
-
export {};
|
@@ -1,97 +0,0 @@
|
|
1
|
-
<script lang="ts">import { setContext } from "svelte";
|
2
|
-
let {
|
3
|
-
children,
|
4
|
-
pad = false,
|
5
|
-
middle = false,
|
6
|
-
center = false
|
7
|
-
} = $props();
|
8
|
-
let style = $derived.by(() => {
|
9
|
-
if (typeof pad === "boolean") {
|
10
|
-
return `--padBlockStart: ${pad ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
|
11
|
-
} else if (typeof pad === "string") {
|
12
|
-
return `--padBlockStart: ${pad}; --padBlockEnd: ${pad}; --padInlineStart: ${pad}; --padInlineEnd: ${pad};`;
|
13
|
-
} else if (Array.isArray(pad) && pad.length > 1 && typeof pad[0] === "string") {
|
14
|
-
switch (pad.length) {
|
15
|
-
case 2:
|
16
|
-
return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[0]}; --padInlineStart: ${pad[1]}; --padInlineEnd: ${pad[1]};`;
|
17
|
-
case 3:
|
18
|
-
return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[2]};`;
|
19
|
-
case 4:
|
20
|
-
return `--padBlockStart: ${pad[0]}; --padBlockEnd: ${pad[1]}; --padInlineStart: ${pad[2]}; --padInlineEnd: ${pad[3]};`;
|
21
|
-
}
|
22
|
-
} else if (Array.isArray(pad) && pad.length > 1) {
|
23
|
-
switch (pad.length) {
|
24
|
-
case 2:
|
25
|
-
return `--padBlockStart: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad[1] ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad[1] ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
|
26
|
-
case 3:
|
27
|
-
return `--padBlockStart: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad[2] ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad[2] ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
|
28
|
-
case 4:
|
29
|
-
return `--padBlockStart: ${pad[0] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padBlockEnd: ${pad[1] ? "var(--padding, var(--padding-block, 4rem))" : "0"}; --padInlineStart: ${pad[2] ? "var(--padding, var(--padding-inline, 4rem))" : "0"}; --padInlineEnd: ${pad[3] ? "var(--padding, var(--padding-inline, 4rem))" : "0"};`;
|
30
|
-
}
|
31
|
-
}
|
32
|
-
return "";
|
33
|
-
});
|
34
|
-
</script>
|
35
|
-
|
36
|
-
<article
|
37
|
-
class="Page"
|
38
|
-
class:middle
|
39
|
-
class:center
|
40
|
-
style={style}
|
41
|
-
>
|
42
|
-
<div class="PaddingContainer">
|
43
|
-
<div class="PageContent">
|
44
|
-
{@render children()}
|
45
|
-
</div>
|
46
|
-
</div>
|
47
|
-
</article>
|
48
|
-
|
49
|
-
<style>
|
50
|
-
.Page {
|
51
|
-
inline-size: 100%;
|
52
|
-
display: grid;
|
53
|
-
grid-template-columns: 1fr;
|
54
|
-
container-type: inline-size;
|
55
|
-
container-name: page;
|
56
|
-
position: relative;
|
57
|
-
}
|
58
|
-
.PageContent {
|
59
|
-
max-inline-size: var(--max-inline-size, 1560px);
|
60
|
-
flex-grow: 1;
|
61
|
-
--isPage: 1;
|
62
|
-
}
|
63
|
-
.Page.center {
|
64
|
-
justify-content: center;
|
65
|
-
}
|
66
|
-
.Page.middle {
|
67
|
-
block-size: 100%;
|
68
|
-
align-items: center;
|
69
|
-
}
|
70
|
-
.Page .PaddingContainer {
|
71
|
-
padding-block-start: var(--padBlockStart);
|
72
|
-
padding-block-end: var(--padBlockEnd);
|
73
|
-
padding-inline-start: var(--padInlineStart);
|
74
|
-
padding-inline-end: var(--padInlineEnd);
|
75
|
-
display: flex;
|
76
|
-
}
|
77
|
-
.Page.center .PaddingContainer {
|
78
|
-
justify-content: center;
|
79
|
-
}
|
80
|
-
|
81
|
-
@media (max-width: 1280px) {
|
82
|
-
.Page .PaddingContainer {
|
83
|
-
padding-block-start: calc(var(--padBlockStart) / 2);
|
84
|
-
padding-block-end: calc(var(--padBlockEnd) / 2);
|
85
|
-
padding-inline-start: calc(var(--padInlineStart) / 2);
|
86
|
-
padding-inline-end: calc(var(--padInlineEnd) / 2);
|
87
|
-
}
|
88
|
-
}
|
89
|
-
@media (max-width: 640px) {
|
90
|
-
.Page .PaddingContainer {
|
91
|
-
padding-block-start: calc(var(--padBlockStart) / 4);
|
92
|
-
padding-block-end: calc(var(--padBlockEnd) / 4);
|
93
|
-
padding-inline-start: calc(var(--padInlineStart) / 4);
|
94
|
-
padding-inline-end: calc(var(--padInlineEnd) / 4);
|
95
|
-
}
|
96
|
-
}
|
97
|
-
</style>
|
@@ -1,28 +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
|
-
middle?: boolean | undefined;
|
8
|
-
center?: boolean | undefined;
|
9
|
-
};
|
10
|
-
events: {
|
11
|
-
[evt: string]: CustomEvent<any>;
|
12
|
-
};
|
13
|
-
slots: {};
|
14
|
-
};
|
15
|
-
export type PageContentProps = typeof __propDef.props;
|
16
|
-
export type PageContentEvents = typeof __propDef.events;
|
17
|
-
export type PageContentSlots = typeof __propDef.slots;
|
18
|
-
export default class PageContent extends SvelteComponent<PageContentProps, PageContentEvents, PageContentSlots> {
|
19
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
20
|
-
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
21
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
22
|
-
};
|
23
|
-
pad?: string | boolean | [boolean, boolean] | [boolean, boolean, boolean] | [boolean, boolean, boolean, boolean] | [string, string] | [string, string, string] | [string, string, string, string] | undefined;
|
24
|
-
middle?: boolean | undefined;
|
25
|
-
center?: boolean | undefined;
|
26
|
-
}>);
|
27
|
-
}
|
28
|
-
export {};
|
package/dist/layout/Theme.svelte
DELETED
@@ -1,228 +0,0 @@
|
|
1
|
-
<script lang="ts">import { browser } from "$app/environment";
|
2
|
-
import { getContext, setContext } from "svelte";
|
3
|
-
let {
|
4
|
-
theme,
|
5
|
-
children
|
6
|
-
} = $props();
|
7
|
-
const root = getContext("theme") === void 0;
|
8
|
-
if (theme === "invert") {
|
9
|
-
const previousTheme = getContext("theme") || "light";
|
10
|
-
theme = previousTheme === "light" ? "dark" : "light";
|
11
|
-
} else {
|
12
|
-
theme = theme || (browser ? localStorage.getItem("theme") || window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : "light");
|
13
|
-
}
|
14
|
-
const existingTheme = getContext("theme");
|
15
|
-
setContext("theme", theme);
|
16
|
-
</script>
|
17
|
-
|
18
|
-
<svelte:body style="background-color: var(--bg-app);" />
|
19
|
-
|
20
|
-
<svelte:head>
|
21
|
-
{#if !existingTheme}
|
22
|
-
<meta name="theme-color" content="{theme === 'dark' ? '#000' : '#fff'}" />
|
23
|
-
{/if}
|
24
|
-
</svelte:head>
|
25
|
-
|
26
|
-
<span class="Theme {theme ? theme : ''}" class:root>
|
27
|
-
{@render children()}
|
28
|
-
</span>
|
29
|
-
|
30
|
-
<style>
|
31
|
-
.Theme {
|
32
|
-
display: contents;
|
33
|
-
}
|
34
|
-
.Theme.light :global(:root) {
|
35
|
-
--scrollbar-color: var(--l-scrollbar-color);
|
36
|
-
}
|
37
|
-
.Theme.dark :global(:root) {
|
38
|
-
--scrollbar-color: var(--d-scrollbar-color);
|
39
|
-
}
|
40
|
-
.Theme.light {
|
41
|
-
--mix-target: var(--l-mix-target);
|
42
|
-
/* bg */
|
43
|
-
--bg-app: var(--l-bg-app);
|
44
|
-
--bg-subtle: var(--l-bg-subtle);
|
45
|
-
--bg-overlay: var(--l-bg-overlay);
|
46
|
-
--shadow: var(--l-shadow);
|
47
|
-
/* border */
|
48
|
-
--border-color: var(--l-border-color);
|
49
|
-
--border-subtle-color: var(--l-border-subtle-color);
|
50
|
-
--focus-color: var(--l-focus-color);
|
51
|
-
--focus-color-error: var(--l-focus-color-error);
|
52
|
-
--border: var(--l-border);
|
53
|
-
--border-subtle: var(--l-border-subtle);
|
54
|
-
--focus-outline: var(--l-focus-outline);
|
55
|
-
/* text */
|
56
|
-
--text: var(--l-text);
|
57
|
-
--text-subtle: var(--l-text-subtle);
|
58
|
-
--text-highlight: var(--l-text-highlight);
|
59
|
-
--text-heading: var(--l-text-heading);
|
60
|
-
--text-link: var(--l-text-link);
|
61
|
-
--text-warn: var(--l-text-warn);
|
62
|
-
--text-icon: var(--l-text-icon);
|
63
|
-
--text-subtle-icon: var(--l-text-subtle-icon);
|
64
|
-
--text-warn-icon: var(--l-text-warn-icon);
|
65
|
-
/* fields */
|
66
|
-
--field-bg: var(--l-field-bg);
|
67
|
-
--field-border-color: var(--l-field-border-color);
|
68
|
-
--field-border-color-error: var(--l-field-border-color-error);
|
69
|
-
--field-border: var(--l-field-border);
|
70
|
-
--field-text: var(--l-field-text);
|
71
|
-
--field-placeholder: var(--l-field-placeholder);
|
72
|
-
--field-label: var(--l-field-label);
|
73
|
-
/* toggle */
|
74
|
-
--toggle-on: var(--l-toggle-on);
|
75
|
-
--toggle-off: var(--l-toggle-off);
|
76
|
-
/* buttons */
|
77
|
-
--button-bg: var(--l-button-bg);
|
78
|
-
--button-text: var(--l-button-text);
|
79
|
-
--button-border-color: var(--l-button-border-color);
|
80
|
-
--button-border: var(--l-button-border);
|
81
|
-
/* buttons: secondary */
|
82
|
-
--button-secondary-bg: var(--l-button-secondary-bg);
|
83
|
-
--button-secondary-text: var(--l-button-secondary-text);
|
84
|
-
--button-secondary-border-color: var(--l-button-secondary-border-color);
|
85
|
-
--button-secondary-border: var(--l-button-secondary-border);
|
86
|
-
/* buttons: disabled */
|
87
|
-
--button-disabled-bg: var(--l-button-disabled-bg);
|
88
|
-
--button-disabled-text: var(--l-button-disabled-text);
|
89
|
-
--button-disabled-border-color: var(--l-button-disabled-border-color);
|
90
|
-
--button-disabled-border: var(--l-button-disabled-border);
|
91
|
-
/* buttons: outlined */
|
92
|
-
--button-outlined-text: var(--l-button-outlined-text);
|
93
|
-
--button-outlined-border-color: var(--l-button-outlined-border-color);
|
94
|
-
--button-outlined-border: var(--l-button-outlined-border);
|
95
|
-
/* buttons: warn */
|
96
|
-
--button-warn-bg: var(--l-button-warn-bg);
|
97
|
-
--button-warn-text: var(--l-button-warn-text);
|
98
|
-
--button-warn-border-color: var(--l-button-warn-border-color);
|
99
|
-
--button-warn-border: var(--l-button-warn-border);
|
100
|
-
/* warn */
|
101
|
-
--warn-bg: var(--l-warn-bg);
|
102
|
-
--warn-border: var(--l-warn-border);
|
103
|
-
--warn-text: var(--l-warn-text);
|
104
|
-
/* success */
|
105
|
-
--success-bg: var(--l-success-bg);
|
106
|
-
--success-border: var(--l-success-border);
|
107
|
-
--success-text: var(--l-success-text);
|
108
|
-
/* error */
|
109
|
-
--error-bg: var(--l-error-bg);
|
110
|
-
--error-border: var(--l-error-border);
|
111
|
-
--error-text: var(--l-error-text);
|
112
|
-
/* info */
|
113
|
-
--info-bg: var(--l-info-bg);
|
114
|
-
--info-border: var(--l-info-border);
|
115
|
-
--info-text: var(--l-info-text);
|
116
|
-
/* menu */
|
117
|
-
--menu-bg: var(--l-menu-bg);
|
118
|
-
--menu-bg-active: var(--l-menu-bg-active);
|
119
|
-
--menu-bg-hover: var(--l-menu-bg-hover);
|
120
|
-
--menu-border: var(--l-menu-border);
|
121
|
-
--menu-text: var(--l-menu-text);
|
122
|
-
--menu-text-subtle: var(--l-menu-text-subtle);
|
123
|
-
--menu-text-active: var(--l-menu-text-active);
|
124
|
-
/* status */
|
125
|
-
--status-default: var(--l-status-default);
|
126
|
-
--status-ok: var(--l-status-ok);
|
127
|
-
--status-alert: var(--l-status-alert);
|
128
|
-
--status-warn: var(--l-status-warn);
|
129
|
-
--status-info: var(--l-status-info);
|
130
|
-
--status-task: var(--l-status-task);
|
131
|
-
--scrollbar-color: var(--l-scrollbar-color);
|
132
|
-
}
|
133
|
-
.Theme.dark {
|
134
|
-
--mix-target: var(--d-mix-target);
|
135
|
-
/* bg */
|
136
|
-
--bg-app: var(--d-bg-app);
|
137
|
-
--bg-subtle: var(--d-bg-subtle);
|
138
|
-
--bg-overlay: var(--d-bg-overlay);
|
139
|
-
--shadow: var(--d-shadow);
|
140
|
-
/* border */
|
141
|
-
--border-color: var(--d-border-color);
|
142
|
-
--border-subtle-color: var(--d-border-subtle-color);
|
143
|
-
--focus-color: var(--d-focus-color);
|
144
|
-
--focus-color-error: var(--d-focus-color-error);
|
145
|
-
--border: var(--d-border);
|
146
|
-
--border-subtle: var(--d-border-subtle);
|
147
|
-
--focus-outline: var(--d-focus-outline);
|
148
|
-
/* text */
|
149
|
-
--text: var(--d-text);
|
150
|
-
--text-subtle: var(--d-text-subtle);
|
151
|
-
--text-highlight: var(--d-text-highlight);
|
152
|
-
--text-heading: var(--d-text-heading);
|
153
|
-
--text-link: var(--d-text-link);
|
154
|
-
--text-link-hover: var(--d-text-link-hover);
|
155
|
-
--text-warn: var(--d-text-warn);
|
156
|
-
--text-icon: var(--d-text-icon);
|
157
|
-
--text-subtle-icon: var(--d-text-subtle-icon);
|
158
|
-
--text-warn-icon: var(--d-text-warn-icon);
|
159
|
-
/* fields */
|
160
|
-
--field-bg: var(--d-field-bg);
|
161
|
-
--field-border-color: var(--d-field-border-color);
|
162
|
-
--field-border-color-error: var(--d-field-border-color-error);
|
163
|
-
--field-border: var(--d-field-border);
|
164
|
-
--field-text: var(--d-field-text);
|
165
|
-
--field-placeholder: var(--d-field-placeholder);
|
166
|
-
--field-label: var(--d-field-label);
|
167
|
-
/* toggle */
|
168
|
-
--toggle-on: var(--d-toggle-on);
|
169
|
-
--toggle-on-hover: var(--d-toggle-on-hover);
|
170
|
-
--toggle-off: var(--d-toggle-off);
|
171
|
-
--toggle-off-hover: var(--d-toggle-off-hover);
|
172
|
-
/* buttons */
|
173
|
-
--button-bg: var(--d-button-bg);
|
174
|
-
--button-text: var(--d-button-text);
|
175
|
-
--button-border-color: var(--d-button-border-color);
|
176
|
-
--button-border: var(--d-button-border);
|
177
|
-
/* buttons: secondary */
|
178
|
-
--button-secondary-bg: var(--d-button-secondary-bg);
|
179
|
-
--button-secondary-text: var(--d-button-secondary-text);
|
180
|
-
--button-secondary-border-color: var(--d-button-secondary-border-color);
|
181
|
-
--button-secondary-border: var(--d-button-secondary-border);
|
182
|
-
/* buttons: disabled */
|
183
|
-
--button-disabled-bg: var(--d-button-disabled-bg);
|
184
|
-
--button-disabled-text: var(--d-button-disabled-text);
|
185
|
-
--button-disabled-border-color: var(--d-button-disabled-border-color);
|
186
|
-
--button-disabled-border: var(--d-button-disabled-border);
|
187
|
-
/* buttons: outlined */
|
188
|
-
--button-outlined-text: var(--d-button-outlined-text);
|
189
|
-
--button-outlined-border-color: var(--d-button-outlined-border-color);
|
190
|
-
--button-outlined-border: var(--d-button-outlined-border);
|
191
|
-
/* buttons: warn */
|
192
|
-
--button-warn-bg: var(--d-button-warn-bg);
|
193
|
-
--button-warn-text: var(--d-button-warn-text);
|
194
|
-
--button-warn-border-color: var(--d-button-warn-border-color);
|
195
|
-
--button-warn-border: var(--d-button-warn-border);
|
196
|
-
/* warn */
|
197
|
-
--warn-bg: var(--d-warn-bg);
|
198
|
-
--warn-border: var(--d-warn-border);
|
199
|
-
--warn-text: var(--d-warn-text);
|
200
|
-
/* success */
|
201
|
-
--success-bg: var(--d-success-bg);
|
202
|
-
--success-border: var(--d-success-border);
|
203
|
-
--success-text: var(--d-success-text);
|
204
|
-
/* error */
|
205
|
-
--error-bg: var(--d-error-bg);
|
206
|
-
--error-border: var(--d-error-border);
|
207
|
-
--error-text: var(--d-error-text);
|
208
|
-
/* info */
|
209
|
-
--info-bg: var(--d-info-bg);
|
210
|
-
--info-border: var(--d-info-border);
|
211
|
-
--info-text: var(--d-info-text);
|
212
|
-
/* menu */
|
213
|
-
--menu-bg: var(--d-menu-bg);
|
214
|
-
--menu-bg-active: var(--d-menu-bg-active);
|
215
|
-
--menu-border: var(--d-menu-border);
|
216
|
-
--menu-text: var(--d-menu-text);
|
217
|
-
--menu-text-subtle: var(--d-menu-text-subtle);
|
218
|
-
--menu-text-active: var(--d-menu-text-active);
|
219
|
-
/* status */
|
220
|
-
--status-default: var(--d-status-default);
|
221
|
-
--status-ok: var(--d-status-ok);
|
222
|
-
--status-alert: var(--d-status-alert);
|
223
|
-
--status-warn: var(--d-status-warn);
|
224
|
-
--status-info: var(--d-status-info);
|
225
|
-
--status-task: var(--d-status-task);
|
226
|
-
--scrollbar-color: var(--d-scrollbar-color);
|
227
|
-
}
|
228
|
-
</style>
|
@@ -1,24 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import { type Snippet } from "svelte";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
theme?: "light" | "dark" | "invert" | undefined;
|
6
|
-
children: Snippet;
|
7
|
-
};
|
8
|
-
events: {
|
9
|
-
[evt: string]: CustomEvent<any>;
|
10
|
-
};
|
11
|
-
slots: {};
|
12
|
-
};
|
13
|
-
export type ThemeProps = typeof __propDef.props;
|
14
|
-
export type ThemeEvents = typeof __propDef.events;
|
15
|
-
export type ThemeSlots = typeof __propDef.slots;
|
16
|
-
export default class Theme extends SvelteComponent<ThemeProps, ThemeEvents, ThemeSlots> {
|
17
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
18
|
-
theme?: "light" | "dark" | "invert" | undefined;
|
19
|
-
children: (this: void) => typeof import("svelte").SnippetReturn & {
|
20
|
-
_: "functions passed to {@render ...} tags must use the `Snippet` type imported from \"svelte\"";
|
21
|
-
};
|
22
|
-
}>);
|
23
|
-
}
|
24
|
-
export {};
|
@@ -1,22 +0,0 @@
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
2
|
-
import type { Snippet } from "svelte";
|
3
|
-
declare const __propDef: {
|
4
|
-
props: {
|
5
|
-
children: Snippet;
|
6
|
-
};
|
7
|
-
events: {
|
8
|
-
[evt: string]: CustomEvent<any>;
|
9
|
-
};
|
10
|
-
slots: {};
|
11
|
-
};
|
12
|
-
export type UiContentProps = typeof __propDef.props;
|
13
|
-
export type UiContentEvents = typeof __propDef.events;
|
14
|
-
export type UiContentSlots = typeof __propDef.slots;
|
15
|
-
export default class UiContent extends SvelteComponent<UiContentProps, UiContentEvents, UiContentSlots> {
|
16
|
-
constructor(options?: import("svelte").ComponentConstructorOptions<{
|
17
|
-
children: (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 {};
|
package/dist/layout/index.d.ts
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export { default as Layout } from './Layout.svelte';
|
2
|
-
export { default as LayoutGrid } from './LayoutGrid.svelte';
|
3
|
-
export { default as LayoutFooter } from './LayoutFooter.svelte';
|
4
|
-
export { default as LayoutHeader } from './LayoutHeader.svelte';
|
5
|
-
export { default as PageContent } from './PageContent.svelte';
|
6
|
-
export { default as UIContent } from './UIContent.svelte';
|
7
|
-
export { default as Theme } from './Theme.svelte';
|
package/dist/layout/index.js
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export { default as Layout } from './Layout.svelte';
|
2
|
-
export { default as LayoutGrid } from './LayoutGrid.svelte';
|
3
|
-
export { default as LayoutFooter } from './LayoutFooter.svelte';
|
4
|
-
export { default as LayoutHeader } from './LayoutHeader.svelte';
|
5
|
-
export { default as PageContent } from './PageContent.svelte';
|
6
|
-
export { default as UIContent } from './UIContent.svelte';
|
7
|
-
export { default as Theme } from './Theme.svelte';
|
@@ -1,34 +0,0 @@
|
|
1
|
-
import type { ComponentType, Snippet } from "svelte";
|
2
|
-
export type OverlayPosition = "top left" | "top center" | "top right" | "bottom left" | "bottom center" | "bottom right" | "center" | "anchor";
|
3
|
-
export type TransitionOpts = {
|
4
|
-
y?: number;
|
5
|
-
x?: number;
|
6
|
-
duration?: number;
|
7
|
-
origin?: string;
|
8
|
-
easing?: (t: number) => number;
|
9
|
-
};
|
10
|
-
export type OverlayItem = {
|
11
|
-
id: string;
|
12
|
-
z?: number;
|
13
|
-
content: string | Snippet | ComponentType;
|
14
|
-
props?: Record<string, any>;
|
15
|
-
layer?: string;
|
16
|
-
anchor?: HTMLElement;
|
17
|
-
transition?: TransitionOpts;
|
18
|
-
position?: OverlayPosition;
|
19
|
-
sticky?: boolean;
|
20
|
-
stack?: string;
|
21
|
-
};
|
22
|
-
declare let overlays: {
|
23
|
-
topRight: OverlayItem[];
|
24
|
-
topLeft: OverlayItem[];
|
25
|
-
topCenter: OverlayItem[];
|
26
|
-
bottomRight: OverlayItem[];
|
27
|
-
bottomLeft: OverlayItem[];
|
28
|
-
bottomCenter: OverlayItem[];
|
29
|
-
center: OverlayItem[];
|
30
|
-
anchor: OverlayItem[];
|
31
|
-
};
|
32
|
-
declare function addOverlay(opts: OverlayItem): void;
|
33
|
-
declare function removeOverlay(id: string): void;
|
34
|
-
export { overlays, addOverlay, removeOverlay };
|
@@ -1,44 +0,0 @@
|
|
1
|
-
let overlays = $state({
|
2
|
-
topRight: [],
|
3
|
-
topLeft: [],
|
4
|
-
topCenter: [],
|
5
|
-
bottomRight: [],
|
6
|
-
bottomLeft: [],
|
7
|
-
bottomCenter: [],
|
8
|
-
center: [],
|
9
|
-
anchor: [],
|
10
|
-
});
|
11
|
-
function addOverlay(opts) {
|
12
|
-
switch (opts.position) {
|
13
|
-
case "top left":
|
14
|
-
overlays.topLeft.push(opts);
|
15
|
-
break;
|
16
|
-
case "top right":
|
17
|
-
overlays.topRight.push(opts);
|
18
|
-
break;
|
19
|
-
case "top center":
|
20
|
-
overlays.topCenter.push(opts);
|
21
|
-
break;
|
22
|
-
case "bottom left":
|
23
|
-
overlays.bottomLeft.push(opts);
|
24
|
-
break;
|
25
|
-
case "bottom right":
|
26
|
-
overlays.bottomRight.push(opts);
|
27
|
-
break;
|
28
|
-
case "bottom center":
|
29
|
-
overlays.bottomCenter.push(opts);
|
30
|
-
break;
|
31
|
-
case "center":
|
32
|
-
overlays.center.push(opts);
|
33
|
-
break;
|
34
|
-
default:
|
35
|
-
overlays.anchor.push(opts);
|
36
|
-
break;
|
37
|
-
}
|
38
|
-
}
|
39
|
-
function removeOverlay(id) {
|
40
|
-
for (const key in overlays) {
|
41
|
-
overlays[key] = overlays[key].filter((o) => o.id !== id);
|
42
|
-
}
|
43
|
-
}
|
44
|
-
export { overlays, addOverlay, removeOverlay };
|