@turnipxenon/pineapple 5.0.0-alpha.11 → 5.0.0-alpha.13
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/styles/app.css +0 -82
- package/dist/styles/tailwind.css +0 -12
- package/dist/ui/elements/CodeBlock/CodeBlock.svelte +161 -18
- package/dist/ui/elements/CodeBlock/CodeBlock.svelte.d.ts.map +1 -1
- package/dist/ui/templates/PinyaPageLayout/PinyaPageLayout.svelte +4 -0
- package/dist/ui/templates/pinya-base/PinyaBase.svelte +5 -4
- package/dist/ui/templates/pinya-base/PinyaBase.svelte.d.ts +3 -3
- package/dist/ui/templates/pinya-base/PinyaBase.svelte.d.ts.map +1 -1
- package/dist/ui/templates/pinya-base/menuPageServerLoadRemote.remote.svelte +1 -0
- package/dist/ui/templates/pinya-base/menuPageServerLoadRemote.remote.svelte.d.ts +27 -0
- package/dist/ui/templates/pinya-base/menuPageServerLoadRemote.remote.svelte.d.ts.map +1 -0
- package/dist/util/context/PineappleBaseContext.svelte +4 -5
- package/dist/util/context/PineappleBaseContext.svelte.d.ts.map +1 -1
- package/dist/util/context/pineappleBaseContextDefinitions.svelte.d.ts +16 -2
- package/dist/util/context/pineappleBaseContextDefinitions.svelte.d.ts.map +1 -1
- package/dist/util/context/pineappleBaseContextDefinitions.svelte.js +13 -0
- package/package.json +9 -8
- package/src/lib/styles/app.css +0 -82
package/dist/styles/app.css
CHANGED
|
@@ -76,88 +76,6 @@ a.external-link {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
/*https://shiki.style/guide/dual-themes*/
|
|
80
|
-
html.dark .shiki,
|
|
81
|
-
html.dark .shiki span {
|
|
82
|
-
color: var(--shiki-dark) !important;
|
|
83
|
-
background-color: var(--shiki-dark-bg) !important;
|
|
84
|
-
/* Optional, if you also want font styles */
|
|
85
|
-
font-style: var(--shiki-dark-font-style) !important;
|
|
86
|
-
font-weight: var(--shiki-dark-font-weight) !important;
|
|
87
|
-
text-decoration: var(--shiki-dark-text-decoration) !important;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.inline-code {
|
|
91
|
-
background-color: aliceblue;
|
|
92
|
-
padding: 0.2rem;
|
|
93
|
-
border-radius: 0.2rem;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
html.dark .inline-code {
|
|
97
|
-
background-color: #303446;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.shiki {
|
|
101
|
-
span {
|
|
102
|
-
white-space: pre-wrap;
|
|
103
|
-
word-wrap: break-word;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/* region shiki copy button */
|
|
108
|
-
pre:has(code) {
|
|
109
|
-
position: relative;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
pre button.copy {
|
|
113
|
-
position: absolute;
|
|
114
|
-
right: 16px;
|
|
115
|
-
top: 16px;
|
|
116
|
-
height: 28px;
|
|
117
|
-
width: 28px;
|
|
118
|
-
padding: 0;
|
|
119
|
-
display: flex;
|
|
120
|
-
|
|
121
|
-
& span {
|
|
122
|
-
width: 100%;
|
|
123
|
-
aspect-ratio: 1 / 1;
|
|
124
|
-
background-repeat: no-repeat;
|
|
125
|
-
background-position: center;
|
|
126
|
-
background-size: cover;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
& .ready {
|
|
130
|
-
background-image: url("$pkg/assets/icons/icon-copy-light-contrast.svg");
|
|
131
|
-
/*todo*/
|
|
132
|
-
/*@variant dark {*/
|
|
133
|
-
/* background-image: url("$pkg/assets/icons/icon-copy-dark-contrast.svg");*/
|
|
134
|
-
/*}*/
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
& .success {
|
|
138
|
-
display: none;
|
|
139
|
-
background-image: url("$pkg/assets/icons/icon-check-light-contrast.svg");
|
|
140
|
-
|
|
141
|
-
/*todo: migration*/
|
|
142
|
-
/*@variant dark {*/
|
|
143
|
-
/* background-image: url("$pkg/assets/icons/icon-check-dark-contrast.svg");*/
|
|
144
|
-
/*}*/
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
&.copied {
|
|
148
|
-
& .success {
|
|
149
|
-
display: block;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
& .ready {
|
|
153
|
-
display: none;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/* endregion shiki copy button */
|
|
159
|
-
|
|
160
|
-
|
|
161
79
|
ul + h2, ol + h2 {
|
|
162
80
|
margin-top: 1rlh;
|
|
163
81
|
}
|
package/dist/styles/tailwind.css
CHANGED
|
@@ -536,9 +536,6 @@
|
|
|
536
536
|
.ig-textarea::placeholder {
|
|
537
537
|
color:var(--color-surface-700-300)
|
|
538
538
|
}
|
|
539
|
-
::selection {
|
|
540
|
-
background-color:#73737380
|
|
541
|
-
}
|
|
542
539
|
:disabled,
|
|
543
540
|
.disabled {
|
|
544
541
|
opacity:.5
|
|
@@ -2715,15 +2712,6 @@ a.external-link {
|
|
|
2715
2712
|
#toast-progress::-moz-progress-bar {
|
|
2716
2713
|
background:rgba(var(--color-secondary-500))
|
|
2717
2714
|
}
|
|
2718
|
-
html.dark .shiki,
|
|
2719
|
-
html.dark .shiki span {
|
|
2720
|
-
color:var(--shiki-dark)!important;
|
|
2721
|
-
background-color:var(--shiki-dark-bg)!important;
|
|
2722
|
-
font-style:var(--shiki-dark-font-style)!important;
|
|
2723
|
-
font-weight:var(--shiki-dark-font-weight)!important;
|
|
2724
|
-
-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;
|
|
2725
|
-
text-decoration:var(--shiki-dark-text-decoration)!important
|
|
2726
|
-
}
|
|
2727
2715
|
.inline-code {
|
|
2728
2716
|
background-color:#f0f8ff;
|
|
2729
2717
|
border-radius:.2rem;
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
<!-- @component Code Block based on: https://shiki.style/ and https://www.skeleton.dev/docs/integrations/code-block/svelte/ -->
|
|
2
2
|
|
|
3
3
|
<script module lang="ts">
|
|
4
|
+
import { transformerNotationDiff } from "@shikijs/transformers";
|
|
4
5
|
import { addCopyButton } from "shiki-transformer-copy-button";
|
|
5
6
|
import { createHighlighterCoreSync } from "shiki/core";
|
|
6
7
|
import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
|
|
7
|
-
// Themes
|
|
8
|
-
// https://shiki.style/themes
|
|
9
|
-
import themeLight from "shiki/themes/catppuccin-latte.mjs";
|
|
10
|
-
import themeDark from "shiki/themes/catppuccin-frappe.mjs";
|
|
11
8
|
// Languages
|
|
12
9
|
// https://shiki.style/languages
|
|
13
|
-
import
|
|
14
|
-
import html from "shiki/langs/html.mjs";
|
|
10
|
+
import shikiConsole from "shiki/langs/console.mjs";
|
|
15
11
|
import css from "shiki/langs/css.mjs";
|
|
12
|
+
import html from "shiki/langs/html.mjs";
|
|
16
13
|
import js from "shiki/langs/javascript.mjs";
|
|
17
|
-
import
|
|
14
|
+
import json from "shiki/langs/json.mjs";
|
|
18
15
|
import markdown from "shiki/langs/markdown.mjs";
|
|
19
|
-
import xml from "shiki/langs/xml.mjs";
|
|
20
16
|
import svelte from "shiki/langs/svelte.mjs";
|
|
17
|
+
import ts from "shiki/langs/typescript.mjs";
|
|
18
|
+
import xml from "shiki/langs/xml.mjs";
|
|
19
|
+
// Themes
|
|
20
|
+
// https://shiki.style/themes
|
|
21
|
+
import themeDark from "shiki/themes/catppuccin-frappe.mjs";
|
|
22
|
+
import themeLight from "shiki/themes/catppuccin-latte.mjs";
|
|
21
23
|
|
|
22
24
|
// https://shiki.style/guide/sync-usage
|
|
23
25
|
const shiki = createHighlighterCoreSync({
|
|
@@ -25,11 +27,12 @@
|
|
|
25
27
|
// Implement your import theme.
|
|
26
28
|
themes: [themeLight, themeDark],
|
|
27
29
|
// Implement your imported and supported languages.
|
|
28
|
-
langs: [
|
|
30
|
+
langs: [shikiConsole, html, css, js, ts, markdown, xml, svelte, json]
|
|
29
31
|
});
|
|
30
32
|
</script>
|
|
31
33
|
|
|
32
34
|
<script lang="ts">
|
|
35
|
+
import { onMount } from "svelte";
|
|
33
36
|
import type { CodeBlockProps } from "./CodeBlockProps";
|
|
34
37
|
|
|
35
38
|
let {
|
|
@@ -54,6 +57,7 @@
|
|
|
54
57
|
dark: "catppuccin-frappe"
|
|
55
58
|
},
|
|
56
59
|
transformers: [
|
|
60
|
+
transformerNotationDiff(),
|
|
57
61
|
addCopyButton({ toggle: 2000 })
|
|
58
62
|
]
|
|
59
63
|
}));
|
|
@@ -67,13 +71,152 @@
|
|
|
67
71
|
</div>
|
|
68
72
|
|
|
69
73
|
<style>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
74
|
+
:global {
|
|
75
|
+
.pinya-code-block {
|
|
76
|
+
margin-bottom: 1rlh;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/*https://shiki.style/guide/dual-themes*/
|
|
80
|
+
|
|
81
|
+
html.dark .shiki,
|
|
82
|
+
html.dark .shiki > span {
|
|
83
|
+
color: var(--shiki-dark);
|
|
84
|
+
background-color: var(--shiki-dark-bg);
|
|
85
|
+
/* Optional, if you also want font styles */
|
|
86
|
+
font-style: var(--shiki-dark-font-style);
|
|
87
|
+
font-weight: var(--shiki-dark-font-weight);
|
|
88
|
+
text-decoration: var(--shiki-dark-text-decoration);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
html.dark .shiki {
|
|
93
|
+
color: var(--shiki-dark) !important;
|
|
94
|
+
background-color: var(--shiki-dark-bg) !important;
|
|
95
|
+
font-style: var(--shiki-dark-font-style) !important;
|
|
96
|
+
font-weight: var(--shiki-dark-font-weight) !important;
|
|
97
|
+
-webkit-text-decoration: var(--shiki-dark-text-decoration) !important;
|
|
98
|
+
text-decoration: var(--shiki-dark-text-decoration) !important
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
html.dark .shiki.has-diff span.diff.add {
|
|
102
|
+
background-color: rgba(0, 255, 0, 0.05);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.inline-code {
|
|
106
|
+
background-color: aliceblue;
|
|
107
|
+
padding: 0.2rem;
|
|
108
|
+
border-radius: 0.2rem;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.shiki {
|
|
112
|
+
span {
|
|
113
|
+
white-space: pre-wrap;
|
|
114
|
+
word-wrap: break-word;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
&.has-diff {
|
|
118
|
+
padding-inline-start: 0;
|
|
119
|
+
padding-inline-end: 0;
|
|
120
|
+
|
|
121
|
+
code {
|
|
122
|
+
display: flex;
|
|
123
|
+
flex-direction: column;
|
|
124
|
+
gap: 0.2lh;
|
|
125
|
+
|
|
126
|
+
& > span {
|
|
127
|
+
display: flex;
|
|
128
|
+
flex-wrap: wrap;
|
|
129
|
+
padding-inline-start: 2em;
|
|
130
|
+
padding-inline-end: 1em;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
span.diff.remove {
|
|
135
|
+
background-color: rgba(255, 0, 0, 0.15);
|
|
136
|
+
|
|
137
|
+
&::before {
|
|
138
|
+
display: block;
|
|
139
|
+
position: absolute;
|
|
140
|
+
content: "-";
|
|
141
|
+
margin-inline-start: calc((var(--spacing) * -4) - 2em);
|
|
142
|
+
padding-inline-start: 1.75em;
|
|
143
|
+
font-weight: bold;
|
|
144
|
+
pointer-events: none;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
span.diff.add {
|
|
149
|
+
background-color: rgba(0, 255, 0, 0.15);
|
|
150
|
+
|
|
151
|
+
&::before {
|
|
152
|
+
display: block;
|
|
153
|
+
position: absolute;
|
|
154
|
+
content: "+";
|
|
155
|
+
margin-inline-start: calc((var(--spacing) * -4) - 2em);
|
|
156
|
+
padding-inline-start: 1.75em;
|
|
157
|
+
font-weight: bold;
|
|
158
|
+
pointer-events: none;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* region shiki copy button */
|
|
165
|
+
|
|
166
|
+
pre:has(code) {
|
|
167
|
+
position: relative;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
pre button.copy {
|
|
171
|
+
position: absolute;
|
|
172
|
+
right: 16px;
|
|
173
|
+
top: 16px;
|
|
174
|
+
height: 28px;
|
|
175
|
+
width: 28px;
|
|
176
|
+
padding: 0;
|
|
177
|
+
display: flex;
|
|
178
|
+
|
|
179
|
+
& span {
|
|
180
|
+
width: 100%;
|
|
181
|
+
aspect-ratio: 1 / 1;
|
|
182
|
+
background-repeat: no-repeat;
|
|
183
|
+
background-position: center;
|
|
184
|
+
background-size: cover;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
& .ready {
|
|
188
|
+
background-image: url("$pkg/assets/icons/icon-copy-light-contrast.svg");
|
|
189
|
+
/*todo*/
|
|
190
|
+
/*@variant dark {*/
|
|
191
|
+
/* background-image: url("$pkg/assets/icons/icon-copy-dark-contrast.svg");*/
|
|
192
|
+
/*}*/
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
& .success {
|
|
196
|
+
display: none;
|
|
197
|
+
background-image: url("$pkg/assets/icons/icon-check-light-contrast.svg");
|
|
198
|
+
|
|
199
|
+
/*todo: migration*/
|
|
200
|
+
/*@variant dark {*/
|
|
201
|
+
/* background-image: url("$pkg/assets/icons/icon-check-dark-contrast.svg");*/
|
|
202
|
+
/*}*/
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
&.copied {
|
|
206
|
+
& .success {
|
|
207
|
+
display: block;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
& .ready {
|
|
211
|
+
display: none;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
/* endregion shiki copy button */
|
|
217
|
+
|
|
218
|
+
h2 + .pinya-code-block {
|
|
219
|
+
margin-top: 0.5rlh;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
79
222
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeBlock.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/elements/CodeBlock/CodeBlock.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CodeBlock.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/elements/CodeBlock/CodeBlock.svelte.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+CvD,kHAAkH;AAClH,QAAA,MAAM,SAAS,oDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
|
@@ -12,13 +12,14 @@
|
|
|
12
12
|
import "../../../styles/app.css";
|
|
13
13
|
import { onMount, type Snippet } from "svelte";
|
|
14
14
|
import { Modals } from "svelte-modals";
|
|
15
|
+
import { getParsnipDataRemote } from "../../../../routes/(pineapple)/pineapple/getParsnipData.remote";
|
|
15
16
|
|
|
16
17
|
let { children, fileList = {}, jsonList = {}, parsnipBasePath = "/pineapple" }
|
|
17
18
|
: {
|
|
18
19
|
children: Snippet,
|
|
19
|
-
fileList
|
|
20
|
-
jsonList
|
|
21
|
-
parsnipBasePath
|
|
20
|
+
fileList?: Record<string, () => Promise<unknown>>,
|
|
21
|
+
jsonList?: Record<string, unknown>,
|
|
22
|
+
parsnipBasePath?: string
|
|
22
23
|
} = $props();
|
|
23
24
|
|
|
24
25
|
// https://github.com/sveltejs/kit/issues/1540#issuecomment-2029016082
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
setSiteLayout(fileBasedList);
|
|
47
48
|
|
|
48
49
|
onMount(() => {
|
|
49
|
-
|
|
50
|
+
getParsnipDataRemote().then(data => {
|
|
50
51
|
fileBasedList.push(...parsePageMetaNested({
|
|
51
52
|
fileList,
|
|
52
53
|
jsonList,
|
|
@@ -3,9 +3,9 @@ import "../../../styles/app.css";
|
|
|
3
3
|
import { type Snippet } from "svelte";
|
|
4
4
|
type $$ComponentProps = {
|
|
5
5
|
children: Snippet;
|
|
6
|
-
fileList
|
|
7
|
-
jsonList
|
|
8
|
-
parsnipBasePath
|
|
6
|
+
fileList?: Record<string, () => Promise<unknown>>;
|
|
7
|
+
jsonList?: Record<string, unknown>;
|
|
8
|
+
parsnipBasePath?: string;
|
|
9
9
|
};
|
|
10
10
|
declare const PinyaBase: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
11
11
|
type PinyaBase = ReturnType<typeof PinyaBase>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PinyaBase.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/templates/pinya-base/PinyaBase.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,wBAAwB,CAAC;AAMhC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"PinyaBase.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/templates/pinya-base/PinyaBase.svelte.ts"],"names":[],"mappings":"AAOA,OAAO,wBAAwB,CAAC;AAMhC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,QAAQ,CAAC;AAI9C,KAAK,gBAAgB,GAAI;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB,CAAC;AAoGH,QAAA,MAAM,SAAS,sDAAwC,CAAC;AACxD,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAC9C,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const menuPageServerLoadRemote =
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export default MenuPageServerLoadRemote;
|
|
2
|
+
type MenuPageServerLoadRemote = SvelteComponent<{
|
|
3
|
+
[x: string]: never;
|
|
4
|
+
}, {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
}, {}> & {
|
|
7
|
+
$$bindings?: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
declare const MenuPageServerLoadRemote: $$__sveltets_2_IsomorphicComponent<{
|
|
10
|
+
[x: string]: never;
|
|
11
|
+
}, {
|
|
12
|
+
[evt: string]: CustomEvent<any>;
|
|
13
|
+
}, {}, {}, string>;
|
|
14
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
15
|
+
new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
|
|
16
|
+
$$bindings?: Bindings;
|
|
17
|
+
} & Exports;
|
|
18
|
+
(internal: unknown, props: {
|
|
19
|
+
$$events?: Events;
|
|
20
|
+
$$slots?: Slots;
|
|
21
|
+
}): Exports & {
|
|
22
|
+
$set?: any;
|
|
23
|
+
$on?: any;
|
|
24
|
+
};
|
|
25
|
+
z_$$bindings?: Bindings;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=menuPageServerLoadRemote.remote.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuPageServerLoadRemote.remote.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/ui/templates/pinya-base/menuPageServerLoadRemote.remote.svelte.js"],"names":[],"mappings":";;;;;;;;AAeA;;;;mBAAoI;6CATvF,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,OAAO,QAAQ;IAC3L,cAAc,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,WAAW,OAAO,SAAS;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IACtG,eAAe,QAAQ,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { enableUniversalOverlaySvelte4 } from "../..";
|
|
3
3
|
import {
|
|
4
|
-
getIgnoreOverlayOverride,
|
|
5
4
|
setEnableDialogOverlayContext,
|
|
6
5
|
setEnableDialogPreferenceContext,
|
|
7
6
|
setEnablePortraitContext,
|
|
@@ -36,12 +35,12 @@
|
|
|
36
35
|
|
|
37
36
|
let enableDialog = $state({ value: enableDialogPrefStore.value });
|
|
38
37
|
setEnableDialogOverlayContext(enableDialog);
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
let ignoreOverlaySet = $state({ value: true });
|
|
39
|
+
setIgnoreOverlayOverride(ignoreOverlaySet);
|
|
41
40
|
onMount(() => {
|
|
42
41
|
enableUniversalOverlaySvelte4.subscribe((value) => {
|
|
43
|
-
if (ignoreOverlaySet) {
|
|
44
|
-
ignoreOverlaySet = false;
|
|
42
|
+
if (ignoreOverlaySet.value) {
|
|
43
|
+
ignoreOverlaySet.value = false;
|
|
45
44
|
// force initial value?
|
|
46
45
|
enableUniversalOverlaySvelte4.set(enableDialogPrefStore.value);
|
|
47
46
|
enableDialog.value = enableDialogPrefStore.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PineappleBaseContext.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/util/context/PineappleBaseContext.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PineappleBaseContext.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/util/context/PineappleBaseContext.svelte.ts"],"names":[],"mappings":"AAmEA,QAAA,MAAM,oBAAoB;cAjD8B,GAAG;UAiDO,CAAC;AACnE,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type OverlayType, type PageMeta } from "../..";
|
|
2
2
|
import { type LocalStore } from "../localStore.svelte";
|
|
3
3
|
export declare const getEnablePortraitContext: () => LocalStore<boolean>, setEnablePortraitContext: (context: LocalStore<boolean>) => LocalStore<boolean>;
|
|
4
4
|
export declare const getEnableDialogPreferenceContext: () => LocalStore<boolean>, setEnableDialogPreferenceContext: (context: LocalStore<boolean>) => LocalStore<boolean>;
|
|
@@ -10,6 +10,20 @@ export declare const getEnableDialogOverlayContext: () => {
|
|
|
10
10
|
value: boolean;
|
|
11
11
|
};
|
|
12
12
|
export declare const getOverlayTypeContext: () => LocalStore<OverlayType>, setOverlayTypeContext: (context: LocalStore<OverlayType>) => LocalStore<OverlayType>;
|
|
13
|
-
export declare const getIgnoreOverlayOverride: () =>
|
|
13
|
+
export declare const getIgnoreOverlayOverride: () => {
|
|
14
|
+
value: boolean;
|
|
15
|
+
}, setIgnoreOverlayOverride: (context: {
|
|
16
|
+
value: boolean;
|
|
17
|
+
}) => {
|
|
18
|
+
value: boolean;
|
|
19
|
+
};
|
|
14
20
|
export declare const getSiteLayout: () => PageMeta[], setSiteLayout: (context: PageMeta[]) => PageMeta[];
|
|
21
|
+
/**
|
|
22
|
+
* useful for on-start dialog appearance
|
|
23
|
+
*
|
|
24
|
+
* use on onMount
|
|
25
|
+
*
|
|
26
|
+
* @param value
|
|
27
|
+
*/
|
|
28
|
+
export declare const forceSetDialog: (value: boolean) => void;
|
|
15
29
|
//# sourceMappingURL=pineappleBaseContextDefinitions.svelte.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pineappleBaseContextDefinitions.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/util/context/pineappleBaseContextDefinitions.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"pineappleBaseContextDefinitions.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/util/context/pineappleBaseContextDefinitions.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtF,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAG9D,eAAO,MAAO,wBAAwB,6BAAE,wBAAwB,uDAAwC,CAAC;AACzG,eAAO,MAAO,gCAAgC,6BAAE,gCAAgC,uDAAwC,CAAC;AAIzH,eAAO,MAAO,6BAA6B;WAAyD,OAAO;GAA9D,6BAA6B;WAA0B,OAAO;;WAAP,OAAO;CAAI,CAAC;AAEhH,eAAO,MAAO,qBAAqB,iCAAE,qBAAqB,+DAA4C,CAAC;AACvG,eAAO,MAAO,wBAAwB;WAAqD,OAAO;GAA1D,wBAAwB;WAA2B,OAAO;;WAAP,OAAO;CAAK,CAAC;AACxG,eAAO,MAAO,aAAa,oBAAE,aAAa,qCAA+B,CAAC;AAE1E;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,SAI5C,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { enableUniversalOverlaySvelte4 } from "../..";
|
|
1
2
|
import {} from "../localStore.svelte";
|
|
2
3
|
import { createContext } from "svelte";
|
|
3
4
|
export const [getEnablePortraitContext, setEnablePortraitContext] = createContext();
|
|
@@ -8,3 +9,15 @@ export const [getEnableDialogOverlayContext, setEnableDialogOverlayContext] = cr
|
|
|
8
9
|
export const [getOverlayTypeContext, setOverlayTypeContext] = createContext();
|
|
9
10
|
export const [getIgnoreOverlayOverride, setIgnoreOverlayOverride] = createContext();
|
|
10
11
|
export const [getSiteLayout, setSiteLayout] = createContext();
|
|
12
|
+
/**
|
|
13
|
+
* useful for on-start dialog appearance
|
|
14
|
+
*
|
|
15
|
+
* use on onMount
|
|
16
|
+
*
|
|
17
|
+
* @param value
|
|
18
|
+
*/
|
|
19
|
+
export const forceSetDialog = (value) => {
|
|
20
|
+
const ignoreOverride = getIgnoreOverlayOverride();
|
|
21
|
+
ignoreOverride.value = false;
|
|
22
|
+
enableUniversalOverlaySvelte4.set(value);
|
|
23
|
+
};
|
package/package.json
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@turnipxenon/pineapple",
|
|
3
3
|
"description": "personal package for base styling for other personal projects",
|
|
4
|
-
"version": "5.0.0-alpha.
|
|
4
|
+
"version": "5.0.0-alpha.13",
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@commitlint/cli": "^19.8.1",
|
|
7
7
|
"@commitlint/config-conventional": "^19.8.1",
|
|
8
8
|
"@eslint/compat": "^1.4.1",
|
|
9
9
|
"@eslint/js": "^9.39.2",
|
|
10
|
+
"@inlang/paraglide-js": "~2.4.0",
|
|
11
|
+
"@prisma/client": "^5.22.0",
|
|
10
12
|
"@sveltejs/adapter-cloudflare": "^7.2.6",
|
|
13
|
+
"@sveltejs/kit": "2.49.5",
|
|
11
14
|
"@sveltejs/package": "^2.5.7",
|
|
15
|
+
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
12
16
|
"@types/htmlparser2": "^3.10.7",
|
|
13
17
|
"@types/mdast": "^4.0.4",
|
|
14
|
-
"@types/node": "^20.19.
|
|
18
|
+
"@types/node": "^20.19.31",
|
|
15
19
|
"eslint": "^9.39.2",
|
|
16
20
|
"eslint-config-prettier": "^10.1.8",
|
|
17
21
|
"eslint-plugin-svelte": "^3.14.0",
|
|
@@ -29,25 +33,22 @@
|
|
|
29
33
|
"publint": "^0.2.12",
|
|
30
34
|
"sass": "^1.97.3",
|
|
31
35
|
"string-width": "^7.2.0",
|
|
32
|
-
"svelte": "^5.49.
|
|
36
|
+
"svelte": "^5.49.2",
|
|
33
37
|
"svelte-check": "^4.3.6",
|
|
34
38
|
"svelte2tsx": "^0.7.47",
|
|
35
39
|
"ts-node": "^10.9.2",
|
|
36
40
|
"tslib": "^2.8.1",
|
|
37
41
|
"typescript": "^5.9.3",
|
|
38
42
|
"typescript-eslint": "^8.54.0",
|
|
39
|
-
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
|
40
43
|
"vite": "^7.3.1",
|
|
41
|
-
"wrangler": "4.59.1"
|
|
42
|
-
"@sveltejs/kit": "2.49.5",
|
|
43
|
-
"@inlang/paraglide-js": "~2.4.0",
|
|
44
|
-
"@prisma/client": "^5.22.0"
|
|
44
|
+
"wrangler": "4.59.1"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"melt": "^0.44.0",
|
|
48
48
|
"mode-watcher": "^0.5.1",
|
|
49
49
|
"shiki": "^3.22.0",
|
|
50
50
|
"shiki-transformer-copy-button": "0.0.3",
|
|
51
|
+
"@shikijs/transformers": "^3.22.0",
|
|
51
52
|
"svelte-modals": "^2.0.1"
|
|
52
53
|
},
|
|
53
54
|
"peerDependencies": {
|
package/src/lib/styles/app.css
CHANGED
|
@@ -76,88 +76,6 @@ a.external-link {
|
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
/*https://shiki.style/guide/dual-themes*/
|
|
80
|
-
html.dark .shiki,
|
|
81
|
-
html.dark .shiki span {
|
|
82
|
-
color: var(--shiki-dark) !important;
|
|
83
|
-
background-color: var(--shiki-dark-bg) !important;
|
|
84
|
-
/* Optional, if you also want font styles */
|
|
85
|
-
font-style: var(--shiki-dark-font-style) !important;
|
|
86
|
-
font-weight: var(--shiki-dark-font-weight) !important;
|
|
87
|
-
text-decoration: var(--shiki-dark-text-decoration) !important;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.inline-code {
|
|
91
|
-
background-color: aliceblue;
|
|
92
|
-
padding: 0.2rem;
|
|
93
|
-
border-radius: 0.2rem;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
html.dark .inline-code {
|
|
97
|
-
background-color: #303446;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.shiki {
|
|
101
|
-
span {
|
|
102
|
-
white-space: pre-wrap;
|
|
103
|
-
word-wrap: break-word;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/* region shiki copy button */
|
|
108
|
-
pre:has(code) {
|
|
109
|
-
position: relative;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
pre button.copy {
|
|
113
|
-
position: absolute;
|
|
114
|
-
right: 16px;
|
|
115
|
-
top: 16px;
|
|
116
|
-
height: 28px;
|
|
117
|
-
width: 28px;
|
|
118
|
-
padding: 0;
|
|
119
|
-
display: flex;
|
|
120
|
-
|
|
121
|
-
& span {
|
|
122
|
-
width: 100%;
|
|
123
|
-
aspect-ratio: 1 / 1;
|
|
124
|
-
background-repeat: no-repeat;
|
|
125
|
-
background-position: center;
|
|
126
|
-
background-size: cover;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
& .ready {
|
|
130
|
-
background-image: url("$pkg/assets/icons/icon-copy-light-contrast.svg");
|
|
131
|
-
/*todo*/
|
|
132
|
-
/*@variant dark {*/
|
|
133
|
-
/* background-image: url("$pkg/assets/icons/icon-copy-dark-contrast.svg");*/
|
|
134
|
-
/*}*/
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
& .success {
|
|
138
|
-
display: none;
|
|
139
|
-
background-image: url("$pkg/assets/icons/icon-check-light-contrast.svg");
|
|
140
|
-
|
|
141
|
-
/*todo: migration*/
|
|
142
|
-
/*@variant dark {*/
|
|
143
|
-
/* background-image: url("$pkg/assets/icons/icon-check-dark-contrast.svg");*/
|
|
144
|
-
/*}*/
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
&.copied {
|
|
148
|
-
& .success {
|
|
149
|
-
display: block;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
& .ready {
|
|
153
|
-
display: none;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/* endregion shiki copy button */
|
|
159
|
-
|
|
160
|
-
|
|
161
79
|
ul + h2, ol + h2 {
|
|
162
80
|
margin-top: 1rlh;
|
|
163
81
|
}
|