@turnipxenon/pineapple 2.4.12 → 2.4.14
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/.idea/discord.xml +1 -1
- package/.idea/workspace.xml +139 -121
- package/.svelte-kit/__package__/app.postcss +28 -2
- package/.svelte-kit/__package__/assets/icons/close.svg +1 -0
- package/.svelte-kit/__package__/components/Card.svelte +28 -28
- package/.svelte-kit/__package__/components/CarouselElement.svelte +16 -16
- package/.svelte-kit/__package__/components/Chip.svelte +13 -12
- package/.svelte-kit/__package__/components/ElementVisbilityDetector.svelte +5 -5
- package/.svelte-kit/__package__/components/SocialSection.svelte +162 -159
- package/.svelte-kit/__package__/components/StickyElement.svelte +20 -20
- package/.svelte-kit/__package__/components/ToggleableContent.svelte +8 -8
- package/.svelte-kit/__package__/components/layouts/SeaweedBaseLayout.svelte +1 -8
- package/.svelte-kit/__package__/components/layouts/SeaweedBaseLayout.svelte.d.ts +1 -0
- package/.svelte-kit/__package__/components/{layouts → pineapple}/PineappleBaseLayout.svelte +65 -20
- package/.svelte-kit/__package__/components/pineapple/overlay_manager/OverlayManager.d.ts +0 -0
- package/.svelte-kit/__package__/components/pineapple/overlay_manager/OverlayManager.js +1 -0
- package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.d.ts +8 -0
- package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.js +1 -0
- package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.svelte +48 -0
- package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.svelte.d.ts +20 -0
- package/.svelte-kit/__package__/components/pineapple/toast/Toast.d.ts +27 -0
- package/.svelte-kit/__package__/components/pineapple/toast/Toast.js +37 -0
- package/.svelte-kit/__package__/components/pineapple/toast/Toast.svelte +89 -0
- package/.svelte-kit/__package__/components/pineapple/toast/Toast.svelte.d.ts +14 -0
- package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.d.ts +5 -0
- package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.js +1 -0
- package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.svelte +1 -0
- package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.svelte.d.ts +23 -0
- package/.svelte-kit/__package__/index.d.ts +1 -1
- package/.svelte-kit/__package__/index.js +1 -1
- package/.svelte-kit/__package__/postcss.d.ts +3 -3
- package/.svelte-kit/__package__/styles/global.css +1 -1
- package/.svelte-kit/__package__/theme.postcss +2 -1
- package/.svelte-kit/ambient.d.ts +4 -0
- package/.svelte-kit/generated/client/app.js +6 -5
- package/.svelte-kit/generated/client/nodes/2.js +1 -1
- package/.svelte-kit/generated/client/nodes/3.js +1 -1
- package/.svelte-kit/generated/client/nodes/4.js +1 -1
- package/.svelte-kit/generated/client/nodes/5.js +1 -1
- package/.svelte-kit/generated/client/nodes/6.js +1 -1
- package/.svelte-kit/generated/client/nodes/7.js +1 -0
- package/.svelte-kit/generated/server/internal.js +1 -1
- package/.svelte-kit/types/route_meta_data.json +6 -4
- package/.svelte-kit/types/src/routes/$types.d.ts +1 -4
- package/.svelte-kit/types/src/routes/{personal → (pineapple)}/$types.d.ts +2 -2
- package/.svelte-kit/types/src/routes/{portfolio/actual → (pineapple)/pineapple}/$types.d.ts +2 -2
- package/.svelte-kit/types/src/routes/(seaweed)/$types.d.ts +19 -0
- package/.svelte-kit/types/src/routes/{portfolio → (seaweed)/portfolio}/$types.d.ts +3 -3
- package/.svelte-kit/types/src/routes/(seaweed)/portfolio/actual/$types.d.ts +17 -0
- package/.svelte-kit/types/src/routes/{portfolio → (seaweed)/portfolio}/proxy+page.server.ts +1 -1
- package/README.md +8 -18
- package/dist/app.postcss +28 -2
- package/dist/assets/icons/close.svg +1 -0
- package/dist/components/Card.svelte +28 -28
- package/dist/components/CarouselElement.svelte +16 -16
- package/dist/components/Chip.svelte +13 -12
- package/dist/components/ElementVisbilityDetector.svelte +5 -5
- package/dist/components/SocialSection.svelte +162 -159
- package/dist/components/StickyElement.svelte +20 -20
- package/dist/components/ToggleableContent.svelte +8 -8
- package/dist/components/layouts/SeaweedBaseLayout.svelte +1 -8
- package/dist/components/layouts/SeaweedBaseLayout.svelte.d.ts +1 -0
- package/dist/components/{layouts → pineapple}/PineappleBaseLayout.svelte +65 -20
- package/dist/components/pineapple/overlay_manager/OverlayManager.d.ts +0 -0
- package/dist/components/pineapple/overlay_manager/OverlayManager.js +1 -0
- package/dist/components/pineapple/toast/DefaultToastBody.d.ts +8 -0
- package/dist/components/pineapple/toast/DefaultToastBody.js +1 -0
- package/dist/components/pineapple/toast/DefaultToastBody.svelte +48 -0
- package/dist/components/pineapple/toast/DefaultToastBody.svelte.d.ts +20 -0
- package/dist/components/pineapple/toast/Toast.d.ts +27 -0
- package/dist/components/pineapple/toast/Toast.js +37 -0
- package/dist/components/pineapple/toast/Toast.svelte +89 -0
- package/dist/components/pineapple/toast/Toast.svelte.d.ts +14 -0
- package/dist/components/pineapple/toast/custom-toast/TestCustomToast.d.ts +5 -0
- package/dist/components/pineapple/toast/custom-toast/TestCustomToast.js +1 -0
- package/dist/components/pineapple/toast/custom-toast/TestCustomToast.svelte +1 -0
- package/dist/components/pineapple/toast/custom-toast/TestCustomToast.svelte.d.ts +23 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/postcss.d.ts +3 -3
- package/dist/styles/global.css +1 -1
- package/dist/theme.postcss +2 -1
- package/docs/OverlaySpec.md +23 -0
- package/docs/pull_request_template.md +34 -0
- package/package.json +1 -1
- package/src/lib/app.postcss +28 -2
- package/src/lib/assets/icons/close.svg +1 -0
- package/src/lib/components/Card.svelte +32 -32
- package/src/lib/components/CarouselElement.svelte +22 -22
- package/src/lib/components/Chip.svelte +13 -12
- package/src/lib/components/ElementVisbilityDetector.svelte +22 -22
- package/src/lib/components/OnElementVisbilityChanged.ts +1 -1
- package/src/lib/components/SocialSection.svelte +95 -92
- package/src/lib/components/StickyElement.svelte +39 -39
- package/src/lib/components/ToggleableContent.svelte +85 -85
- package/src/lib/components/ToggleableContentType.ts +4 -4
- package/src/lib/components/layouts/LayoutConstants.ts +1 -1
- package/src/lib/components/layouts/SeaweedBaseLayout.svelte +1 -8
- package/src/lib/components/pineapple/PineappleBaseLayout.svelte +207 -0
- package/src/lib/components/pineapple/overlay_manager/OverlayManager.ts +0 -0
- package/src/lib/components/pineapple/toast/DefaultToastBody.svelte +43 -0
- package/src/lib/components/pineapple/toast/DefaultToastBody.ts +10 -0
- package/src/lib/components/pineapple/toast/Toast.svelte +113 -0
- package/src/lib/components/pineapple/toast/Toast.ts +57 -0
- package/src/lib/components/pineapple/toast/custom-toast/TestCustomToast.svelte +1 -0
- package/src/lib/components/pineapple/toast/custom-toast/TestCustomToast.ts +6 -0
- package/src/lib/consts.ts +2 -2
- package/src/lib/index.ts +1 -1
- package/src/lib/postcss.d.ts +3 -3
- package/src/lib/styles/global.css +1 -1
- package/src/lib/theme.postcss +2 -1
- package/src/lib/util/create_go_to_function.ts +5 -5
- package/src/routes/{personal → (pineapple)}/+layout.svelte +1 -1
- package/src/routes/(pineapple)/+page.svelte +36 -0
- package/src/routes/(pineapple)/pineapple/+page.svelte +44 -0
- package/src/routes/(seaweed)/+layout.svelte +10 -0
- package/src/routes/{portfolio → (seaweed)/portfolio}/+page.server.ts +1 -1
- package/src/routes/{portfolio → (seaweed)/portfolio}/+page.svelte +2 -2
- package/src/routes/{portfolio → (seaweed)/portfolio}/.gitignore +1 -1
- package/src/routes/{portfolio → (seaweed)/portfolio}/actual/+page.svelte +1 -1
- package/src/routes/+layout.svelte +0 -7
- package/static/robots.txt +5 -5
- package/src/lib/components/layouts/PineappleBaseLayout.svelte +0 -161
- package/src/routes/+page.svelte +0 -38
- package/src/routes/personal/+page.svelte +0 -37
- /package/.svelte-kit/__package__/components/{layouts → pineapple}/PineappleBaseLayout.svelte.d.ts +0 -0
- /package/dist/components/{layouts → pineapple}/PineappleBaseLayout.svelte.d.ts +0 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
<script>export let activeGameIndex;
|
|
2
2
|
export let selfIndex;
|
|
3
3
|
import { fly, slide, scale } from "svelte/transition";
|
|
4
|
-
</script>
|
|
5
|
-
|
|
6
|
-
{#if (activeGameIndex === selfIndex)}
|
|
7
|
-
<!--todo: make section consistent size for all-->
|
|
8
|
-
<section class="game-showcase"
|
|
9
|
-
in:fly={{x: '100%'}} out:fly={{x: '-100%'}}>
|
|
10
|
-
<slot/>
|
|
11
|
-
</section>
|
|
12
|
-
{/if}
|
|
13
|
-
|
|
14
|
-
<style>
|
|
15
|
-
.game-showcase {
|
|
16
|
-
scroll-snap-align: center;
|
|
17
|
-
border-radius: var(--theme-rounded-container);
|
|
18
|
-
margin: auto;
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
{#if (activeGameIndex === selfIndex)}
|
|
7
|
+
<!--todo: make section consistent size for all-->
|
|
8
|
+
<section class="game-showcase"
|
|
9
|
+
in:fly={{x: '100%'}} out:fly={{x: '-100%'}}>
|
|
10
|
+
<slot/>
|
|
11
|
+
</section>
|
|
12
|
+
{/if}
|
|
13
|
+
|
|
14
|
+
<style>
|
|
15
|
+
.game-showcase {
|
|
16
|
+
scroll-snap-align: center;
|
|
17
|
+
border-radius: var(--theme-rounded-container);
|
|
18
|
+
margin: auto;
|
|
19
19
|
width: 100%
|
|
20
|
-
}
|
|
20
|
+
}
|
|
21
21
|
</style>
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
<span class="chip variant-filled-tertiary">
|
|
2
|
-
<slot />
|
|
3
|
-
</span>
|
|
4
|
-
|
|
5
|
-
<style>
|
|
6
|
-
.chip {
|
|
7
|
-
border-radius: 1em;
|
|
8
|
-
margin: 0.25em;
|
|
9
|
-
font-weight: bold;
|
|
10
|
-
pointer-events: none;
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
<span class="chip variant-filled-tertiary">
|
|
2
|
+
<slot />
|
|
3
|
+
</span>
|
|
4
|
+
|
|
5
|
+
<style>
|
|
6
|
+
.chip {
|
|
7
|
+
border-radius: 1em;
|
|
8
|
+
margin: 0.25em;
|
|
9
|
+
font-weight: bold;
|
|
10
|
+
pointer-events: none;
|
|
11
|
+
background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
|
|
12
|
+
}
|
|
13
|
+
</style>
|
|
@@ -1,160 +1,163 @@
|
|
|
1
|
-
<script>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
padding-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
--tw-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
:
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
1
|
+
<script>
|
|
2
|
+
export let isSmallVersion = false;
|
|
3
|
+
export let email = "turnipxenon@gmail.com";
|
|
4
|
+
export let linkedinSlug = "turnip-xenon";
|
|
5
|
+
export let isSlot = false;
|
|
6
|
+
|
|
7
|
+
import { ItchLogoHotLink } from "../consts";
|
|
8
|
+
import { onMount } from "svelte";
|
|
9
|
+
import { scale } from "svelte/transition";
|
|
10
|
+
|
|
11
|
+
import MailIcon from "../assets/icons/mail.svg";
|
|
12
|
+
import GithubIcon from "../assets/icons/github-mark.svg";
|
|
13
|
+
import LinkedinIcon from "../assets/icons/linkedin.svg";
|
|
14
|
+
|
|
15
|
+
let shouldShowExtra = false;
|
|
16
|
+
const style = `
|
|
17
|
+
--preferred-justify-content: ${isSlot ? "flex-start" : "center"};
|
|
18
|
+
--preferred-overall-margin-bottom: ${isSlot ? "0" : "0.75lh"};
|
|
19
|
+
`;
|
|
20
|
+
|
|
21
|
+
onMount(() => {
|
|
22
|
+
shouldShowExtra = window.screen.availWidth >= 440;
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<div class="socials" class:isSmall={isSmallVersion} style={style} data-nosnippet>
|
|
27
|
+
<button type="button" class="social-button turnip-button"
|
|
28
|
+
role="link"
|
|
29
|
+
title="https://github.com/TurnipXenon"
|
|
30
|
+
on:click={() => window.open("https://github.com/TurnipXenon")}>
|
|
31
|
+
<img src={GithubIcon} alt="github icon">
|
|
32
|
+
{#if (!isSmallVersion)}
|
|
33
|
+
<span>TurnipXenon</span>
|
|
34
|
+
{/if}
|
|
35
|
+
</button>
|
|
36
|
+
<button type="button" class="social-button turnip-button"
|
|
37
|
+
role="link"
|
|
38
|
+
title={`https://www.linkedin.com/in/${linkedinSlug}/`}
|
|
39
|
+
on:click={() => window.open(`https://www.linkedin.com/in/${linkedinSlug}/`)}>
|
|
40
|
+
<img src={LinkedinIcon} alt="linkedikn icon">
|
|
41
|
+
{#if (!isSmallVersion)}
|
|
42
|
+
<span>{linkedinSlug}</span>
|
|
43
|
+
{/if}
|
|
44
|
+
</button>
|
|
45
|
+
<button type="button" class="social-button turnip-button"
|
|
46
|
+
role="link"
|
|
47
|
+
title={`mailto:${email}`}
|
|
48
|
+
on:click={() => window.open(`mailto:${email}`)}>
|
|
49
|
+
<img src={MailIcon} alt="mail icon" />
|
|
50
|
+
{#if (!isSmallVersion)}
|
|
51
|
+
<span>{email}</span>
|
|
52
|
+
{/if}
|
|
53
|
+
</button>
|
|
54
|
+
{#if (shouldShowExtra)}
|
|
55
|
+
<button type="button" class="social-button turnip-button"
|
|
56
|
+
role="link"
|
|
57
|
+
title="https://turnipxenon.itch.io/"
|
|
58
|
+
transition:scale
|
|
59
|
+
on:click={() => window.open("https://turnipxenon.itch.io/")}>
|
|
60
|
+
<img src={ItchLogoHotLink} alt="itch icon">
|
|
61
|
+
{#if (!isSmallVersion)}
|
|
62
|
+
<span>TurnipXenon</span>
|
|
63
|
+
{/if}
|
|
64
|
+
</button>
|
|
65
|
+
{/if}
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<style>
|
|
69
|
+
:is(.dark .social-button) {
|
|
70
|
+
--tw-bg-opacity: 1;
|
|
71
|
+
background-color: rgb(var(--color-primary-500) / var(--tw-bg-opacity));
|
|
72
|
+
color: rgb(var(--on-primary));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.social-button:disabled {
|
|
76
|
+
cursor: not-allowed;
|
|
77
|
+
opacity: 0.5;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.social-button:disabled:hover {
|
|
81
|
+
--tw-brightness: brightness(1);
|
|
82
|
+
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);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.social-button:disabled:active {
|
|
86
|
+
--tw-scale-x: 1;
|
|
87
|
+
--tw-scale-y: 1;
|
|
88
|
+
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));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.social-button {
|
|
92
|
+
font-size: 1rem;
|
|
93
|
+
line-height: 1.5rem;
|
|
94
|
+
padding-left: 1.25rem;
|
|
95
|
+
padding-right: 1.25rem;
|
|
96
|
+
padding-top: 9px;
|
|
97
|
+
padding-bottom: 9px;
|
|
98
|
+
white-space: nowrap;
|
|
99
|
+
text-align: center;
|
|
100
|
+
display: inline-flex;
|
|
101
|
+
align-items: center;
|
|
102
|
+
justify-content: center;
|
|
103
|
+
transition-property: all;
|
|
104
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
105
|
+
transition-duration: 150ms;
|
|
106
|
+
border-radius: var(--theme-rounded-base);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.social-button > :not([hidden]) ~ :not([hidden]) {
|
|
110
|
+
--tw-space-x-reverse: 0;
|
|
111
|
+
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
|
|
112
|
+
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.social-button:hover {
|
|
116
|
+
--tw-brightness: brightness(1.15);
|
|
117
|
+
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);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.social-button:active {
|
|
121
|
+
--tw-scale-x: 95%;
|
|
122
|
+
--tw-scale-y: 95%;
|
|
123
|
+
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));
|
|
124
|
+
--tw-brightness: brightness(.9);
|
|
125
|
+
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);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.social-button {
|
|
129
|
+
--tw-bg-opacity: 1;
|
|
130
|
+
background-color: rgb(var(--color-primary-500) / var(--tw-bg-opacity));
|
|
131
|
+
color: rgb(var(--on-primary));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
:is(.dark .social-button) {
|
|
135
|
+
--tw-bg-opacity: 1;
|
|
136
|
+
background-color: rgb(var(--color-primary-500) / var(--tw-bg-opacity));
|
|
137
|
+
color: rgb(var(--on-primary));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
button > img {
|
|
141
|
+
max-height: 1lh;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
button {
|
|
145
|
+
min-width: 0;
|
|
146
|
+
min-height: 0;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.socials {
|
|
150
|
+
display: flex;
|
|
151
|
+
flex-wrap: wrap;
|
|
152
|
+
justify-content: var(--preferred-justify-content);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.socials > button {
|
|
156
|
+
margin: 0 0.5em var(--preferred-overall-margin-bottom);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.socials.isSmall > button {
|
|
160
|
+
margin-left: 0.25em;
|
|
161
|
+
margin-right: 0.25em;
|
|
162
|
+
}
|
|
160
163
|
</style>
|
|
@@ -13,24 +13,24 @@ onMount(() => {
|
|
|
13
13
|
);
|
|
14
14
|
observer.observe(stickyElem);
|
|
15
15
|
});
|
|
16
|
-
</script>
|
|
17
|
-
|
|
18
|
-
<span transition:fly={{y: -100}}>
|
|
19
|
-
{#if (isFirst && !isSticky)}
|
|
20
|
-
<!-- intentionally empty -->
|
|
21
|
-
{:else if (isSticky)}
|
|
22
|
-
{" | "}
|
|
23
|
-
{:else }
|
|
24
|
-
<br>
|
|
25
|
-
{/if}
|
|
26
|
-
<span class="sticky-div" bind:this={stickyElem}>
|
|
27
|
-
<slot/>
|
|
28
|
-
</span>
|
|
29
|
-
</span>
|
|
30
|
-
|
|
31
|
-
<style>
|
|
32
|
-
.sticky-div {
|
|
33
|
-
position: sticky;
|
|
34
|
-
top: -1px;
|
|
35
|
-
}
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<span transition:fly={{y: -100}}>
|
|
19
|
+
{#if (isFirst && !isSticky)}
|
|
20
|
+
<!-- intentionally empty -->
|
|
21
|
+
{:else if (isSticky)}
|
|
22
|
+
{" | "}
|
|
23
|
+
{:else }
|
|
24
|
+
<br>
|
|
25
|
+
{/if}
|
|
26
|
+
<span class="sticky-div" bind:this={stickyElem}>
|
|
27
|
+
<slot/>
|
|
28
|
+
</span>
|
|
29
|
+
</span>
|
|
30
|
+
|
|
31
|
+
<style>
|
|
32
|
+
.sticky-div {
|
|
33
|
+
position: sticky;
|
|
34
|
+
top: -1px;
|
|
35
|
+
}
|
|
36
36
|
</style>
|
|
@@ -55,12 +55,12 @@ onMount(() => {
|
|
|
55
55
|
});
|
|
56
56
|
$:
|
|
57
57
|
attachGibberish(gibberishParent);
|
|
58
|
-
</script>
|
|
59
|
-
|
|
60
|
-
{#if toggle === ToggleableContentType.Default}
|
|
61
|
-
<slot />
|
|
62
|
-
{:else if (ToggleableContentType.Gibberish === toggle)}
|
|
63
|
-
<div bind:this={defaultSlot} style={`visibility: ${gibberishState === GibberishState.Binded}`}>
|
|
64
|
-
<slot />
|
|
65
|
-
</div>
|
|
58
|
+
</script>
|
|
59
|
+
|
|
60
|
+
{#if toggle === ToggleableContentType.Default}
|
|
61
|
+
<slot />
|
|
62
|
+
{:else if (ToggleableContentType.Gibberish === toggle)}
|
|
63
|
+
<div bind:this={defaultSlot} style={`visibility: ${gibberishState === GibberishState.Binded}`}>
|
|
64
|
+
<slot />
|
|
65
|
+
</div>
|
|
66
66
|
{/if}
|
|
@@ -18,13 +18,6 @@ let shouldDisplaySocialIcons = writable(false);
|
|
|
18
18
|
{@html `<script>${autoModeWatcher.toString()} autoModeWatcher();</script>`}
|
|
19
19
|
</svelte:head>
|
|
20
20
|
|
|
21
|
-
<!--todo: turn off hidden when it's time-->
|
|
22
|
-
<!--<button type="button" class="fab" on:click={()=>{-->
|
|
23
|
-
<!-- enableDialogueOverlay.set(!enableDialogueOverlayValue);-->
|
|
24
|
-
<!--}}>-->
|
|
25
|
-
<!-- <img src={FABIcon} alt="interactive floating action button represented as a turnip">-->
|
|
26
|
-
<!--</button>-->
|
|
27
|
-
|
|
28
21
|
<AppShell>
|
|
29
22
|
<svelte:fragment slot="header">
|
|
30
23
|
<!-- App Bar -->
|
|
@@ -39,7 +32,7 @@ let shouldDisplaySocialIcons = writable(false);
|
|
|
39
32
|
</div>
|
|
40
33
|
{:else if $$slots.extraLeadingIcons}
|
|
41
34
|
<div hidden>
|
|
42
|
-
<slot name="
|
|
35
|
+
<slot name="s" />
|
|
43
36
|
</div>
|
|
44
37
|
{/if}
|
|
45
38
|
</svelte:fragment>
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import RandomizedBackground from "../RandomizedBackground.svelte";
|
|
3
3
|
import { page } from "$app/stores";
|
|
4
4
|
import { enableBackground } from "../../store";
|
|
5
|
-
import DialogOverlay from "../DialogOverlay.svelte";
|
|
6
5
|
import AresLogo from "../../assets/characters/ares/ares_logo.webp";
|
|
6
|
+
import FABIcon from "../../assets/placeholder/placeholder_circle.png";
|
|
7
7
|
import { enableDialogueOverlay } from "../dialog_manager/DialogManagerStore";
|
|
8
|
+
import Toast from "./toast/Toast.svelte";
|
|
8
9
|
let pages = [];
|
|
9
10
|
const updateBreadcrumb = (pathname) => {
|
|
10
11
|
pages = [];
|
|
@@ -46,18 +47,28 @@ enableDialogueOverlay.subscribe((value) => {
|
|
|
46
47
|
{@html `<script>${autoModeWatcher.toString()} autoModeWatcher();</script>`}
|
|
47
48
|
</svelte:head>
|
|
48
49
|
|
|
50
|
+
<!--todo: turn off hidden when it's time-->
|
|
51
|
+
<button type="button" class="fab" on:click={()=>{
|
|
52
|
+
enableDialogueOverlay.set(!enableDialogueOverlayValue);
|
|
53
|
+
}}>
|
|
54
|
+
<img src={FABIcon} alt="interactive floating action button represented as a turnip">
|
|
55
|
+
</button>
|
|
56
|
+
|
|
49
57
|
<AppShell>
|
|
50
58
|
<svelte:fragment slot="header">
|
|
51
59
|
<!-- App Bar -->
|
|
52
|
-
<AppBar
|
|
60
|
+
<AppBar
|
|
61
|
+
background="app-shell-token"
|
|
62
|
+
slotDefault="place-content-start"
|
|
63
|
+
slotTrail="place-content-end">
|
|
53
64
|
<svelte:fragment slot="lead">
|
|
54
65
|
<!--TODO: add logo or something for the lead in layout-->
|
|
55
66
|
<img
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
67
|
+
alt="Ares's head titled towards the left with his tongue out and winking"
|
|
68
|
+
class="ares-logo"
|
|
69
|
+
src={AresLogo}
|
|
59
70
|
/>
|
|
60
|
-
<span class="mr-2"/>
|
|
71
|
+
<span class="mr-2" />
|
|
61
72
|
<ol class="breadcrumb">
|
|
62
73
|
{#each pages as crumb, i}
|
|
63
74
|
{#if i < pages.length - 1}
|
|
@@ -72,24 +83,30 @@ enableDialogueOverlay.subscribe((value) => {
|
|
|
72
83
|
</ol>
|
|
73
84
|
</svelte:fragment>
|
|
74
85
|
<svelte:fragment slot="trail">
|
|
75
|
-
<LightSwitch bgLight="bg-surface-400"/>
|
|
86
|
+
<LightSwitch bgLight="bg-surface-400" />
|
|
76
87
|
</svelte:fragment>
|
|
77
88
|
</AppBar>
|
|
78
89
|
</svelte:fragment>
|
|
79
90
|
|
|
80
|
-
<RandomizedBackground enable={enableBackgroundValue}/>
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
<slot
|
|
92
|
-
|
|
91
|
+
<RandomizedBackground enable={enableBackgroundValue} />
|
|
92
|
+
|
|
93
|
+
<Toast></Toast>
|
|
94
|
+
|
|
95
|
+
<div class="default-page-container">
|
|
96
|
+
<slot />
|
|
97
|
+
<div class="footer-space" />
|
|
98
|
+
</div>
|
|
99
|
+
<!--{#if enableDialogueOverlayValue}-->
|
|
100
|
+
<!-- <!– Page Route Content –>-->
|
|
101
|
+
<!-- <div class="default-page-container">-->
|
|
102
|
+
<!-- <slot />-->
|
|
103
|
+
<!-- <div class="footer-space" />-->
|
|
104
|
+
<!-- </div>-->
|
|
105
|
+
<!-- <DialogOverlay />-->
|
|
106
|
+
<!--{:else}-->
|
|
107
|
+
<!-- <DialogOverlay />-->
|
|
108
|
+
<!-- <slot />-->
|
|
109
|
+
<!--{/if}-->
|
|
93
110
|
</AppShell>
|
|
94
111
|
|
|
95
112
|
<style>
|
|
@@ -97,6 +114,19 @@ enableDialogueOverlay.subscribe((value) => {
|
|
|
97
114
|
--dialog-left-pad: clamp(0em, 5vw, 2em);
|
|
98
115
|
--dialog-box-width: min(calc(50em + 4em), calc(100vw - var(--dialog-left-pad) - var(--theme-border-base)));
|
|
99
116
|
--dialog-box-height: clamp(15em, 50vw, 18em);
|
|
117
|
+
|
|
118
|
+
/** FAB icon margin/position calculation origin:
|
|
119
|
+
Criteria:
|
|
120
|
+
- We want at mobile (360px) our margin to be at 1em (16px)
|
|
121
|
+
- We want at web (1960px) our margin to be at 2em (32px)
|
|
122
|
+
|
|
123
|
+
A useful scaling factor might vw. At 360px, 16px would be around 4.44vw (360/16).
|
|
124
|
+
At 360px: margin is at 16px or 1em.
|
|
125
|
+
At 1960px: 4.44vw is at 87px but that will be clamped to 32px or 2em.
|
|
126
|
+
The calculation implies that the natural point that the margin becomes 2em is clamped on
|
|
127
|
+
wider screens is at 727px.
|
|
128
|
+
*/
|
|
129
|
+
--fab-margin: clamp(1em, 4.44vw, 2em);
|
|
100
130
|
}
|
|
101
131
|
|
|
102
132
|
.default-page-container {
|
|
@@ -184,4 +214,19 @@ enableDialogueOverlay.subscribe((value) => {
|
|
|
184
214
|
.breadcrumb li:nth-last-child(1) {
|
|
185
215
|
display: block;
|
|
186
216
|
}
|
|
217
|
+
|
|
218
|
+
.fab {
|
|
219
|
+
position: fixed;
|
|
220
|
+
bottom: var(--fab-margin);
|
|
221
|
+
width: 4em;
|
|
222
|
+
border-radius: 50%;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.fab:dir(ltr) {
|
|
226
|
+
right: var(--fab-margin);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.fab:dir(rtl) {
|
|
230
|
+
left: var(--fab-margin);
|
|
231
|
+
}
|
|
187
232
|
</style>
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import DefaultToastBody from "./DefaultToastBody.svelte";
|