@turnipxenon/pineapple 2.10.0 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/icons/icon-contrast.svg +1 -0
- package/dist/assets/icons/icon-dark-mode.svg +1 -0
- package/dist/assets/icons/icon-light-mode.svg +1 -0
- package/dist/assets/icons/icon-settings.svg +1 -0
- package/dist/components/Card.svelte +43 -41
- package/dist/components/Card.svelte.d.ts +11 -24
- package/dist/components/CarouselElement.svelte +15 -8
- package/dist/components/CarouselElement.svelte.d.ts +7 -18
- package/dist/components/ElementVisbilityDetector.svelte +23 -14
- package/dist/components/ElementVisbilityDetector.svelte.d.ts +6 -17
- package/dist/components/LazyAsset.svelte +93 -65
- package/dist/components/LazyAsset.svelte.d.ts +9 -19
- package/dist/components/PineappleSlideToggle.svelte +19 -7
- package/dist/components/PineappleSlideToggle.svelte.d.ts +8 -19
- package/dist/components/RandomizedBackground.svelte +46 -27
- package/dist/components/RandomizedBackground.svelte.d.ts +5 -15
- package/dist/components/RandomizedImage.svelte +15 -8
- package/dist/components/RandomizedImage.svelte.d.ts +6 -16
- package/dist/components/StickyElement.svelte +25 -16
- package/dist/components/StickyElement.svelte.d.ts +6 -17
- package/dist/components/ToggleableContent.svelte +88 -59
- package/dist/components/ToggleableContent.svelte.d.ts +6 -17
- package/dist/components/blog_template/BlogTemplate.svelte +45 -25
- package/dist/components/blog_template/BlogTemplate.svelte.d.ts +9 -20
- package/dist/components/blog_template/BlogTemplateInner.svelte +11 -3
- package/dist/components/blog_template/BlogTemplateInner.svelte.d.ts +6 -17
- package/dist/components/chip/Chip.svelte +33 -57
- package/dist/components/chip/Chip.svelte.d.ts +7 -18
- package/dist/components/combo_box/ComboBox.svelte +10 -4
- package/dist/components/combo_box/ComboBox.svelte.d.ts +6 -16
- package/dist/components/combo_box/ComboBoxWithButton.svelte +16 -9
- package/dist/components/combo_box/ComboBoxWithButton.svelte.d.ts +7 -17
- package/dist/components/combo_box/combo-box.postcss +2 -2
- package/dist/components/dialog_manager/DialogManager.d.ts +0 -1
- package/dist/components/dialog_manager/DialogManagerStore.d.ts +0 -1
- package/dist/components/dialog_manager/DialogManagerStore.js +1 -1
- package/dist/components/dialog_overlay/DialogOverlay.svelte +42 -34
- package/dist/components/dialog_overlay/DialogOverlay.svelte.d.ts +3 -14
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/layouts/SeaweedBaseLayout.svelte +80 -43
- package/dist/components/layouts/SeaweedBaseLayout.svelte.d.ts +8 -21
- package/dist/components/navigation_component/NavigationComponent.svelte +52 -141
- package/dist/components/navigation_component/NavigationComponent.svelte.d.ts +17 -26
- package/dist/components/navigation_component/NavigationControl.svelte +52 -103
- package/dist/components/navigation_component/NavigationControl.svelte.d.ts +7 -17
- package/dist/components/overrideable_meta/OverridableMeta.svelte +37 -22
- package/dist/components/overrideable_meta/OverridableMeta.svelte.d.ts +9 -19
- package/dist/components/pineapple/PineappleBaseLayout.svelte +132 -188
- package/dist/components/pineapple/PineappleBaseLayout.svelte.d.ts +6 -17
- package/dist/components/pineapple/toast/DefaultToastBody.svelte +14 -16
- package/dist/components/pineapple/toast/DefaultToastBody.svelte.d.ts +7 -17
- package/dist/components/pineapple/toast/Toast.d.ts +0 -1
- package/dist/components/pineapple/toast/Toast.svelte +92 -64
- package/dist/components/pineapple/toast/Toast.svelte.d.ts +3 -14
- package/dist/components/pineapple/toast/custom-toast/TestCustomToast.svelte.d.ts +22 -19
- package/dist/paraglide/messages/_index.d.ts +2 -0
- package/dist/paraglide/messages/_index.js +3 -0
- package/dist/paraglide/messages/example_message.d.ts +5 -0
- package/dist/paraglide/messages/example_message.js +39 -0
- package/dist/paraglide/messages/settings.d.ts +3 -0
- package/dist/paraglide/messages/settings.js +38 -0
- package/dist/paraglide/messages.d.ts +2 -0
- package/dist/paraglide/messages.js +4 -0
- package/dist/paraglide/registry.d.ts +21 -0
- package/dist/paraglide/registry.js +31 -0
- package/dist/paraglide/runtime.d.ts +400 -0
- package/dist/paraglide/runtime.js +1060 -0
- package/dist/paraglide/server.d.ts +64 -0
- package/dist/paraglide/server.js +161 -0
- package/dist/scripts/util/FileManagement.d.ts +1 -1
- package/dist/store.d.ts +0 -1
- package/dist/styles/app.css +53 -0
- package/dist/styles/turnip-theme.css +323 -0
- package/dist/template/seaweed/CreateUrlForm.svelte +50 -38
- package/dist/template/seaweed/CreateUrlForm.svelte.d.ts +5 -15
- package/dist/template/seaweed/SeaweedTemplate.svelte +244 -195
- package/dist/template/seaweed/SeaweedTemplate.svelte.d.ts +28 -25
- package/dist/template/seaweed/entries/ChefWings.svelte +37 -39
- package/dist/template/seaweed/entries/ChefWings.svelte.d.ts +5 -15
- package/dist/template/seaweed/entries/CustomizedYarnspinner.svelte +32 -24
- package/dist/template/seaweed/entries/CustomizedYarnspinner.svelte.d.ts +5 -15
- package/dist/template/seaweed/entries/Hepcat.svelte +58 -49
- package/dist/template/seaweed/entries/Hepcat.svelte.d.ts +5 -15
- package/dist/template/seaweed/entries/Pengi.svelte +51 -43
- package/dist/template/seaweed/entries/Pengi.svelte.d.ts +5 -15
- package/dist/template/seaweed/entries/Soulwork.svelte +44 -36
- package/dist/template/seaweed/entries/Soulwork.svelte.d.ts +5 -15
- package/dist/template/seaweed/entries/ThisWebpage.svelte +47 -38
- package/dist/template/seaweed/entries/ThisWebpage.svelte.d.ts +5 -15
- package/dist/template/seaweed/entries/WorkExperience.svelte +109 -92
- package/dist/template/seaweed/entries/WorkExperience.svelte.d.ts +6 -16
- package/dist/template/seaweed/entries/Workset.svelte +51 -42
- package/dist/template/seaweed/entries/Workset.svelte.d.ts +5 -15
- package/dist/template/seaweed/entry_order_config/EntryOrderConfig.svelte +136 -259
- package/dist/template/seaweed/entry_order_config/EntryOrderConfig.svelte.d.ts +10 -20
- package/dist/template/seaweed/seaweed.postcss +1 -9
- package/dist/{theme.postcss → theme.css} +1 -4
- package/dist/ui/components/FourPartCard.svelte +47 -0
- package/dist/ui/components/FourPartCard.svelte.d.ts +10 -0
- package/dist/ui/components/ModalBase.svelte +75 -0
- package/dist/ui/components/ModalBase.svelte.d.ts +8 -0
- package/dist/ui/components/SocialSection.svelte +87 -0
- package/dist/ui/components/SocialSection.svelte.d.ts +9 -0
- package/dist/ui/components/index.d.ts +3 -0
- package/dist/ui/components/index.js +3 -0
- package/dist/ui/components/randomized-background/RandomizedBackground.svelte +87 -0
- package/dist/ui/components/randomized-background/RandomizedBackground.svelte.d.ts +6 -0
- package/dist/ui/components/randomized-background/RandomizedImage.svelte +42 -0
- package/dist/ui/components/randomized-background/RandomizedImage.svelte.d.ts +7 -0
- package/dist/ui/elements/ColorScheme.d.ts +10 -0
- package/dist/ui/elements/ColorScheme.js +11 -0
- package/dist/ui/elements/GeneralUIProps.d.ts +12 -0
- package/dist/ui/elements/GeneralUIProps.js +1 -0
- package/dist/ui/elements/ImageIcon.svelte +54 -0
- package/dist/ui/elements/ImageIcon.svelte.d.ts +6 -0
- package/dist/ui/elements/OnBackground.d.ts +3 -0
- package/dist/ui/elements/OnBackground.js +4 -0
- package/dist/ui/elements/TextLink.svelte +17 -0
- package/dist/ui/elements/TextLink.svelte.d.ts +8 -0
- package/dist/ui/elements/WrapperProps.d.ts +4 -0
- package/dist/ui/elements/WrapperProps.js +1 -0
- package/dist/ui/elements/index.d.ts +8 -0
- package/dist/ui/elements/index.js +8 -0
- package/dist/ui/elements/pinya-button/component.svelte +47 -0
- package/dist/ui/elements/pinya-button/component.svelte.d.ts +4 -0
- package/dist/ui/elements/pinya-button/index.d.ts +2 -0
- package/dist/ui/elements/pinya-button/index.js +2 -0
- package/dist/ui/elements/pinya-button/props.d.ts +13 -0
- package/dist/ui/elements/pinya-button/props.js +6 -0
- package/dist/ui/elements/pinya-card/component.svelte +19 -0
- package/dist/ui/elements/pinya-card/component.svelte.d.ts +7 -0
- package/dist/ui/elements/pinya-card/index.d.ts +2 -0
- package/dist/ui/elements/pinya-card/index.js +2 -0
- package/dist/ui/elements/pinya-card/props.d.ts +7 -0
- package/dist/ui/elements/pinya-card/props.js +1 -0
- package/dist/ui/modules/index.d.ts +1 -0
- package/dist/ui/modules/index.js +1 -0
- package/dist/ui/modules/modals/general-settings/GeneralSettingsModal.svelte +110 -0
- package/dist/ui/modules/modals/general-settings/GeneralSettingsModal.svelte.d.ts +4 -0
- package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte +48 -0
- package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte.d.ts +3 -0
- package/dist/{template → ui/modules}/seaweed/ChumBucket.svelte +28 -28
- package/dist/ui/modules/seaweed/ChumBucket.svelte.d.ts +3 -0
- package/dist/ui/modules/seaweed/index.d.ts +3 -0
- package/dist/ui/modules/seaweed/index.js +4 -0
- package/dist/ui/templates/PinyaBase.svelte +45 -0
- package/dist/ui/templates/PinyaBase.svelte.d.ts +7 -0
- package/dist/ui/templates/confirmation-modal/component.svelte +47 -0
- package/dist/ui/templates/confirmation-modal/component.svelte.d.ts +4 -0
- package/dist/ui/templates/confirmation-modal/index.d.ts +2 -0
- package/dist/ui/templates/confirmation-modal/index.js +2 -0
- package/dist/ui/templates/confirmation-modal/props.d.ts +10 -0
- package/dist/ui/templates/confirmation-modal/props.js +1 -0
- package/dist/ui/templates/index.d.ts +3 -0
- package/dist/ui/templates/index.js +3 -0
- package/dist/ui/templates/pinya-page-layout/component.svelte +113 -0
- package/dist/ui/templates/pinya-page-layout/component.svelte.d.ts +8 -0
- package/dist/ui/templates/pinya-page-layout/index.d.ts +2 -0
- package/dist/ui/templates/pinya-page-layout/index.js +2 -0
- package/dist/ui/templates/pinya-page-layout/runes.svelte.d.ts +7 -0
- package/dist/ui/templates/pinya-page-layout/runes.svelte.js +3 -0
- package/package.json +36 -18
- package/src/lib/styles/app.css +53 -0
- package/src/lib/theme.css +114 -0
- package/dist/app.postcss +0 -212
- package/dist/components/SocialSection.svelte +0 -166
- package/dist/components/SocialSection.svelte.d.ts +0 -31
- package/dist/postcss.d.ts +0 -3
- package/dist/styles/DefaultGridContainer.css +0 -61
- package/dist/template/seaweed/ChumBucket.svelte.d.ts +0 -14
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
src: string;
|
|
4
|
+
rng: () => number;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
let { src, rng }: Props = $props();
|
|
8
|
+
let rotateRandom = rng() * 90 - 45;
|
|
9
|
+
|
|
10
|
+
const paddingLeft = 1 + rng() * 5;
|
|
11
|
+
const paddingRight = 1 + rng() * 5;
|
|
12
|
+
const paddingTop = 1 + rng() * 7;
|
|
8
13
|
</script>
|
|
9
14
|
|
|
10
15
|
<div
|
|
@@ -15,7 +20,9 @@ const paddingTop = 1 + rng() * 7;
|
|
|
15
20
|
aria-hidden="true"
|
|
16
21
|
style="--rotateRandom:{rotateRandom}deg;"
|
|
17
22
|
alt=""
|
|
18
|
-
|
|
23
|
+
/>
|
|
24
|
+
<!-- todo: migration -->
|
|
25
|
+
<!-- class:darkMode={modeCurrent} />-->
|
|
19
26
|
</div>
|
|
20
27
|
|
|
21
28
|
<style>
|
|
@@ -1,17 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
src: string;
|
|
5
|
-
rng: () => number;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {};
|
|
11
|
-
};
|
|
12
|
-
export type RandomizedImageProps = typeof __propDef.props;
|
|
13
|
-
export type RandomizedImageEvents = typeof __propDef.events;
|
|
14
|
-
export type RandomizedImageSlots = typeof __propDef.slots;
|
|
15
|
-
export default class RandomizedImage extends SvelteComponent<RandomizedImageProps, RandomizedImageEvents, RandomizedImageSlots> {
|
|
1
|
+
interface Props {
|
|
2
|
+
src: string;
|
|
3
|
+
rng: () => number;
|
|
16
4
|
}
|
|
17
|
-
|
|
5
|
+
declare const RandomizedImage: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type RandomizedImage = ReturnType<typeof RandomizedImage>;
|
|
7
|
+
export default RandomizedImage;
|
|
@@ -1,18 +1,27 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import {onMount} from "svelte";
|
|
3
|
+
import {fly} from "svelte/transition";
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
isFirst?: boolean;
|
|
7
|
+
children?: import('svelte').Snippet;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
let { isFirst = false, children }: Props = $props();
|
|
11
|
+
|
|
12
|
+
let stickyElem: HTMLElement = $state();
|
|
13
|
+
let isSticky = $state(false);
|
|
14
|
+
|
|
15
|
+
let observer: undefined | IntersectionObserver;
|
|
16
|
+
onMount(() => {
|
|
17
|
+
observer = new IntersectionObserver(
|
|
18
|
+
([e]) => {
|
|
19
|
+
isSticky = e.intersectionRatio < 1;
|
|
20
|
+
},
|
|
21
|
+
{threshold: [1]}
|
|
22
|
+
);
|
|
23
|
+
observer.observe(stickyElem);
|
|
24
|
+
});
|
|
16
25
|
</script>
|
|
17
26
|
|
|
18
27
|
<span transition:fly={{y: -100}}>
|
|
@@ -24,7 +33,7 @@ onMount(() => {
|
|
|
24
33
|
<br>
|
|
25
34
|
{/if}
|
|
26
35
|
<span class="sticky-div" bind:this={stickyElem}>
|
|
27
|
-
|
|
36
|
+
{@render children?.()}
|
|
28
37
|
</span>
|
|
29
38
|
</span>
|
|
30
39
|
|
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
isFirst?: boolean | undefined;
|
|
5
|
-
};
|
|
6
|
-
events: {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
};
|
|
9
|
-
slots: {
|
|
10
|
-
default: {};
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
-
export type StickyElementProps = typeof __propDef.props;
|
|
14
|
-
export type StickyElementEvents = typeof __propDef.events;
|
|
15
|
-
export type StickyElementSlots = typeof __propDef.slots;
|
|
16
|
-
export default class StickyElement extends SvelteComponent<StickyElementProps, StickyElementEvents, StickyElementSlots> {
|
|
1
|
+
interface Props {
|
|
2
|
+
isFirst?: boolean;
|
|
3
|
+
children?: import('svelte').Snippet;
|
|
17
4
|
}
|
|
18
|
-
|
|
5
|
+
declare const StickyElement: import("svelte").Component<Props, {}, "">;
|
|
6
|
+
type StickyElement = ReturnType<typeof StickyElement>;
|
|
7
|
+
export default StickyElement;
|
|
@@ -1,66 +1,95 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
let
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { run } from 'svelte/legacy';
|
|
3
|
+
|
|
4
|
+
import { ToggleableContentType } from "./ToggleableContentType";
|
|
5
|
+
import { onMount } from "svelte";
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
toggle?: ToggleableContentType;
|
|
9
|
+
children?: import('svelte').Snippet;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
let { toggle = ToggleableContentType.Default, children }: Props = $props();
|
|
13
|
+
|
|
14
|
+
enum GibberishState {
|
|
15
|
+
NonExistent,
|
|
16
|
+
CreatingParent,
|
|
17
|
+
Binded
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
let defaultSlot: HTMLDivElement | undefined = $state(undefined);
|
|
21
|
+
let gibberishState: GibberishState = $state(GibberishState.NonExistent);
|
|
22
|
+
let gibberishParent: HTMLDivElement | undefined;
|
|
23
|
+
let gibberishSlot: Node | undefined;
|
|
24
|
+
|
|
25
|
+
const chaoticWordBank = ["niko", "toba", "seal", "aquarium", "ojisan", "baikal"];
|
|
26
|
+
const turnToGibberish = (node: Node) => {
|
|
27
|
+
for (const childNodes of node.childNodes) {
|
|
28
|
+
turnToGibberish(childNodes);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim()) {
|
|
32
|
+
const max = node.textContent.length;
|
|
33
|
+
node.textContent = "";
|
|
34
|
+
while (node.textContent.length < max) {
|
|
35
|
+
node.textContent += (chaoticWordBank[Math.floor(Math.random() * chaoticWordBank.length)]) + " ";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const processDefaultSlot = (slot: HTMLDivElement | undefined) => {
|
|
41
|
+
if (!slot || toggle == ToggleableContentType.Default) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
turnToGibberish(slot);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const attachGibberish = (parent: HTMLDivElement | undefined) => {
|
|
49
|
+
console.log("Help");
|
|
50
|
+
if (gibberishState !== GibberishState.CreatingParent && parent !== undefined) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
console.log("Help1");
|
|
55
|
+
if (gibberishSlot === undefined) {
|
|
56
|
+
console.warn("Gibberish slot was not created");
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
console.log("Help2");
|
|
61
|
+
if (gibberishParent === undefined) {
|
|
62
|
+
console.warn("Gibberish parent was not created");
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
console.log("Help3");
|
|
67
|
+
gibberishParent.appendChild(gibberishSlot);
|
|
68
|
+
console.log(gibberishParent);
|
|
69
|
+
gibberishState = GibberishState.Binded;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
onMount(() => {
|
|
73
|
+
processDefaultSlot(defaultSlot);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// afterUpdate(() => {
|
|
77
|
+
// console.log("after update:", gibberishState);
|
|
78
|
+
// console.log("after update:", gibberishParent);
|
|
79
|
+
// if (gibberishParent !== undefined && gibberishState === GibberishState.CreatingParent) {
|
|
80
|
+
// gibberishState = GibberishState.ParentCreated;
|
|
81
|
+
// }
|
|
82
|
+
// });
|
|
83
|
+
|
|
84
|
+
run(() => {
|
|
85
|
+
attachGibberish(gibberishParent);
|
|
86
|
+
});
|
|
58
87
|
</script>
|
|
59
88
|
|
|
60
89
|
{#if toggle === ToggleableContentType.Default}
|
|
61
|
-
|
|
90
|
+
{@render children?.()}
|
|
62
91
|
{:else if (ToggleableContentType.Gibberish === toggle)}
|
|
63
92
|
<div bind:this={defaultSlot} style={`visibility: ${gibberishState === GibberishState.Binded}`}>
|
|
64
|
-
|
|
93
|
+
{@render children?.()}
|
|
65
94
|
</div>
|
|
66
95
|
{/if}
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import { ToggleableContentType } from "./ToggleableContentType";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {
|
|
11
|
-
default: {};
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export type ToggleableContentProps = typeof __propDef.props;
|
|
15
|
-
export type ToggleableContentEvents = typeof __propDef.events;
|
|
16
|
-
export type ToggleableContentSlots = typeof __propDef.slots;
|
|
17
|
-
export default class ToggleableContent extends SvelteComponent<ToggleableContentProps, ToggleableContentEvents, ToggleableContentSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
toggle?: ToggleableContentType;
|
|
4
|
+
children?: import('svelte').Snippet;
|
|
18
5
|
}
|
|
19
|
-
|
|
6
|
+
declare const ToggleableContent: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type ToggleableContent = ReturnType<typeof ToggleableContent>;
|
|
8
|
+
export default ToggleableContent;
|
|
@@ -1,37 +1,57 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import "
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Card, enableDialogueOverlay, type SimplePageMeta } from "../..";
|
|
3
|
+
import "./blog-template.css";
|
|
4
|
+
import { enableBackground } from "../../store";
|
|
5
|
+
import { onDestroy, onMount } from "svelte";
|
|
6
|
+
import BlogTemplateInner from "./BlogTemplateInner.svelte";
|
|
7
|
+
|
|
8
|
+
// grab page meta from the adjacent meta.json
|
|
9
|
+
interface Props {
|
|
10
|
+
pageMeta: SimplePageMeta;
|
|
11
|
+
shouldFillWholePage?: boolean;
|
|
12
|
+
shouldEnableDialogOverlay?: boolean;
|
|
13
|
+
includeDataNoSnippet?: boolean;
|
|
14
|
+
children?: import('svelte').Snippet;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let {
|
|
18
|
+
pageMeta,
|
|
19
|
+
shouldFillWholePage = false,
|
|
20
|
+
shouldEnableDialogOverlay = false,
|
|
21
|
+
includeDataNoSnippet = false,
|
|
22
|
+
children
|
|
23
|
+
}: Props = $props();
|
|
24
|
+
|
|
25
|
+
enableBackground.set(!shouldFillWholePage);
|
|
26
|
+
let initialDialogState = false;
|
|
27
|
+
|
|
28
|
+
onMount(() => {
|
|
29
|
+
initialDialogState = $enableDialogueOverlay;
|
|
30
|
+
enableDialogueOverlay.set(shouldEnableDialogOverlay);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
onDestroy(() => {
|
|
34
|
+
enableBackground.set(true);
|
|
35
|
+
enableDialogueOverlay.set(initialDialogState);
|
|
36
|
+
});
|
|
37
|
+
|
|
20
38
|
</script>
|
|
21
39
|
|
|
22
40
|
{#if shouldFillWholePage}
|
|
23
41
|
<div class="whole-page">
|
|
24
42
|
<BlogTemplateInner pageMeta={pageMeta}>
|
|
25
|
-
|
|
43
|
+
{@render children?.()}
|
|
26
44
|
</BlogTemplateInner>
|
|
27
45
|
</div>
|
|
28
46
|
{:else}
|
|
29
47
|
<Card includeDataNoSnippet={includeDataNoSnippet}>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
{#snippet content()}
|
|
49
|
+
<div class="default-card">
|
|
50
|
+
<BlogTemplateInner pageMeta={pageMeta}>
|
|
51
|
+
{@render children?.()}
|
|
52
|
+
</BlogTemplateInner>
|
|
53
|
+
</div>
|
|
54
|
+
{/snippet}
|
|
35
55
|
</Card>
|
|
36
56
|
{/if}
|
|
37
57
|
|
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import { type SimplePageMeta } from "../..";
|
|
3
2
|
import "./blog-template.css";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
events: {
|
|
12
|
-
[evt: string]: CustomEvent<any>;
|
|
13
|
-
};
|
|
14
|
-
slots: {
|
|
15
|
-
default: {};
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
export type BlogTemplateProps = typeof __propDef.props;
|
|
19
|
-
export type BlogTemplateEvents = typeof __propDef.events;
|
|
20
|
-
export type BlogTemplateSlots = typeof __propDef.slots;
|
|
21
|
-
export default class BlogTemplate extends SvelteComponent<BlogTemplateProps, BlogTemplateEvents, BlogTemplateSlots> {
|
|
3
|
+
interface Props {
|
|
4
|
+
pageMeta: SimplePageMeta;
|
|
5
|
+
shouldFillWholePage?: boolean;
|
|
6
|
+
shouldEnableDialogOverlay?: boolean;
|
|
7
|
+
includeDataNoSnippet?: boolean;
|
|
8
|
+
children?: import('svelte').Snippet;
|
|
22
9
|
}
|
|
23
|
-
|
|
10
|
+
declare const BlogTemplate: import("svelte").Component<Props, {}, "">;
|
|
11
|
+
type BlogTemplate = ReturnType<typeof BlogTemplate>;
|
|
12
|
+
export default BlogTemplate;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
<script>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { SimplePageMeta } from "../..";
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
pageMeta: SimplePageMeta;
|
|
6
|
+
children?: import('svelte').Snippet;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
let { pageMeta, children }: Props = $props();
|
|
2
10
|
</script>
|
|
3
11
|
|
|
4
12
|
<article>
|
|
@@ -16,14 +24,14 @@
|
|
|
16
24
|
<section id="article-tags">
|
|
17
25
|
Tags:
|
|
18
26
|
{#each pageMeta.tags as tag}
|
|
19
|
-
<span class="badge
|
|
27
|
+
<span class="badge preset-filled">{tag}</span>
|
|
20
28
|
{/each}
|
|
21
29
|
</section>
|
|
22
30
|
{/if}
|
|
23
31
|
</hgroup>
|
|
24
32
|
|
|
25
33
|
<div class="article-content">
|
|
26
|
-
|
|
34
|
+
{@render children?.()}
|
|
27
35
|
</div>
|
|
28
36
|
</article>
|
|
29
37
|
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import type { SimplePageMeta } from "../..";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {
|
|
11
|
-
default: {};
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export type BlogTemplateInnerProps = typeof __propDef.props;
|
|
15
|
-
export type BlogTemplateInnerEvents = typeof __propDef.events;
|
|
16
|
-
export type BlogTemplateInnerSlots = typeof __propDef.slots;
|
|
17
|
-
export default class BlogTemplateInner extends SvelteComponent<BlogTemplateInnerProps, BlogTemplateInnerEvents, BlogTemplateInnerSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
pageMeta: SimplePageMeta;
|
|
4
|
+
children?: import('svelte').Snippet;
|
|
18
5
|
}
|
|
19
|
-
|
|
6
|
+
declare const BlogTemplateInner: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type BlogTemplateInner = ReturnType<typeof BlogTemplateInner>;
|
|
8
|
+
export default BlogTemplateInner;
|
|
@@ -1,69 +1,45 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { run } from "svelte/legacy";
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
onClick?: undefined | (() => void);
|
|
6
|
+
checked?: boolean;
|
|
7
|
+
children?: import("svelte").Snippet;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
let { onClick = undefined, checked = true, children }: Props = $props();
|
|
11
|
+
|
|
12
|
+
// todo: look at isLightMode usage
|
|
13
|
+
// let textColorClass = $derived($isLightMode ? "local-light" : "local-dark");
|
|
14
|
+
let buttonClass = $state("preset-filled-tertiary-500");
|
|
15
|
+
const toggleChipColor = (isLightMode: boolean, checked: boolean) => {
|
|
16
|
+
if (isLightMode) {
|
|
17
|
+
buttonClass = checked ? "normal-bg" : "light-unchecked-bg";
|
|
18
|
+
} else {
|
|
19
|
+
buttonClass = checked ? "normal-bg" : "dark-unchecked-bg";
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
// run(() => {
|
|
23
|
+
// toggleChipColor($isLightMode, checked);
|
|
24
|
+
// });
|
|
16
25
|
</script>
|
|
17
26
|
|
|
18
27
|
{#if onClick}
|
|
19
|
-
<button class={`chip ${buttonClass} ${textColorClass}`}
|
|
20
|
-
|
|
21
|
-
|
|
28
|
+
<!-- <button class={`chip ${buttonClass} ${textColorClass}`}-->
|
|
29
|
+
<button class={`chip ${buttonClass}`}
|
|
30
|
+
onclick={onClick}>
|
|
31
|
+
{@render children?.()}
|
|
22
32
|
</button>
|
|
23
33
|
{:else }
|
|
24
|
-
<span class={`local-chip normal-bg ${textColorClass}`}
|
|
25
|
-
|
|
34
|
+
<!-- <span class={`local-chip normal-bg ${textColorClass}`}>-->
|
|
35
|
+
<span class={`local-chip normal-bg`}>
|
|
36
|
+
{@render children?.()}
|
|
26
37
|
</span>
|
|
27
38
|
{/if}
|
|
28
39
|
|
|
29
40
|
<style>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
white-space: nowrap;
|
|
33
|
-
padding-left: 0.75rem;
|
|
34
|
-
padding-right: 0.75rem;
|
|
35
|
-
padding-top: 0.375rem;
|
|
36
|
-
padding-bottom: 0.375rem;
|
|
37
|
-
text-align: center;
|
|
38
|
-
font-size: 0.75rem;
|
|
39
|
-
line-height: 1rem;
|
|
40
|
-
border-radius: 0.25rem;
|
|
41
|
-
display: inline-flex;
|
|
42
|
-
align-items: center;
|
|
43
|
-
justify-content: center;
|
|
44
|
-
transition-property: all;
|
|
45
|
-
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
46
|
-
transition-duration: 150ms;
|
|
47
|
-
}
|
|
48
|
-
.local-chip > :not([hidden]) ~ :not([hidden]) {
|
|
49
|
-
--tw-space-x-reverse: 0;
|
|
50
|
-
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
|
|
51
|
-
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
|
|
52
|
-
}
|
|
53
|
-
a.local-chip:hover,
|
|
54
|
-
button.local-chip:hover {
|
|
55
|
-
--tw-brightness: brightness(1.15);
|
|
56
|
-
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
57
|
-
}
|
|
58
|
-
.local-chip:disabled {
|
|
59
|
-
cursor: not-allowed;
|
|
60
|
-
opacity: 0.5;
|
|
61
|
-
}
|
|
62
|
-
.local-chip:disabled:active {
|
|
63
|
-
--tw-scale-x: 1;
|
|
64
|
-
--tw-scale-y: 1;
|
|
65
|
-
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
66
|
-
}
|
|
41
|
+
/*todo: migration*/
|
|
42
|
+
/*@apply chip;*/
|
|
67
43
|
.local-chip {
|
|
68
44
|
border-radius: 1em;
|
|
69
45
|
margin: 0.25em;
|
|
@@ -1,19 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
checked?: boolean | undefined;
|
|
6
|
-
};
|
|
7
|
-
events: {
|
|
8
|
-
[evt: string]: CustomEvent<any>;
|
|
9
|
-
};
|
|
10
|
-
slots: {
|
|
11
|
-
default: {};
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export type ChipProps = typeof __propDef.props;
|
|
15
|
-
export type ChipEvents = typeof __propDef.events;
|
|
16
|
-
export type ChipSlots = typeof __propDef.slots;
|
|
17
|
-
export default class Chip extends SvelteComponent<ChipProps, ChipEvents, ChipSlots> {
|
|
1
|
+
interface Props {
|
|
2
|
+
onClick?: undefined | (() => void);
|
|
3
|
+
checked?: boolean;
|
|
4
|
+
children?: import("svelte").Snippet;
|
|
18
5
|
}
|
|
19
|
-
|
|
6
|
+
declare const Chip: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type Chip = ReturnType<typeof Chip>;
|
|
8
|
+
export default Chip;
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import "./combo-box.postcss";
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
stringItems?: string[];
|
|
6
|
+
selectedValue?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
let { stringItems = ["Select item"], selectedValue = $bindable("") }: Props = $props();
|
|
10
|
+
selectedValue = stringItems.length === 0 ? "" : stringItems[0];
|
|
5
11
|
</script>
|
|
6
12
|
|
|
7
13
|
<select bind:value={selectedValue} class="select">
|