@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.
Files changed (127) hide show
  1. package/.idea/discord.xml +1 -1
  2. package/.idea/workspace.xml +139 -121
  3. package/.svelte-kit/__package__/app.postcss +28 -2
  4. package/.svelte-kit/__package__/assets/icons/close.svg +1 -0
  5. package/.svelte-kit/__package__/components/Card.svelte +28 -28
  6. package/.svelte-kit/__package__/components/CarouselElement.svelte +16 -16
  7. package/.svelte-kit/__package__/components/Chip.svelte +13 -12
  8. package/.svelte-kit/__package__/components/ElementVisbilityDetector.svelte +5 -5
  9. package/.svelte-kit/__package__/components/SocialSection.svelte +162 -159
  10. package/.svelte-kit/__package__/components/StickyElement.svelte +20 -20
  11. package/.svelte-kit/__package__/components/ToggleableContent.svelte +8 -8
  12. package/.svelte-kit/__package__/components/layouts/SeaweedBaseLayout.svelte +1 -8
  13. package/.svelte-kit/__package__/components/layouts/SeaweedBaseLayout.svelte.d.ts +1 -0
  14. package/.svelte-kit/__package__/components/{layouts → pineapple}/PineappleBaseLayout.svelte +65 -20
  15. package/.svelte-kit/__package__/components/pineapple/overlay_manager/OverlayManager.d.ts +0 -0
  16. package/.svelte-kit/__package__/components/pineapple/overlay_manager/OverlayManager.js +1 -0
  17. package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.d.ts +8 -0
  18. package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.js +1 -0
  19. package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.svelte +48 -0
  20. package/.svelte-kit/__package__/components/pineapple/toast/DefaultToastBody.svelte.d.ts +20 -0
  21. package/.svelte-kit/__package__/components/pineapple/toast/Toast.d.ts +27 -0
  22. package/.svelte-kit/__package__/components/pineapple/toast/Toast.js +37 -0
  23. package/.svelte-kit/__package__/components/pineapple/toast/Toast.svelte +89 -0
  24. package/.svelte-kit/__package__/components/pineapple/toast/Toast.svelte.d.ts +14 -0
  25. package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.d.ts +5 -0
  26. package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.js +1 -0
  27. package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.svelte +1 -0
  28. package/.svelte-kit/__package__/components/pineapple/toast/custom-toast/TestCustomToast.svelte.d.ts +23 -0
  29. package/.svelte-kit/__package__/index.d.ts +1 -1
  30. package/.svelte-kit/__package__/index.js +1 -1
  31. package/.svelte-kit/__package__/postcss.d.ts +3 -3
  32. package/.svelte-kit/__package__/styles/global.css +1 -1
  33. package/.svelte-kit/__package__/theme.postcss +2 -1
  34. package/.svelte-kit/ambient.d.ts +4 -0
  35. package/.svelte-kit/generated/client/app.js +6 -5
  36. package/.svelte-kit/generated/client/nodes/2.js +1 -1
  37. package/.svelte-kit/generated/client/nodes/3.js +1 -1
  38. package/.svelte-kit/generated/client/nodes/4.js +1 -1
  39. package/.svelte-kit/generated/client/nodes/5.js +1 -1
  40. package/.svelte-kit/generated/client/nodes/6.js +1 -1
  41. package/.svelte-kit/generated/client/nodes/7.js +1 -0
  42. package/.svelte-kit/generated/server/internal.js +1 -1
  43. package/.svelte-kit/types/route_meta_data.json +6 -4
  44. package/.svelte-kit/types/src/routes/$types.d.ts +1 -4
  45. package/.svelte-kit/types/src/routes/{personal → (pineapple)}/$types.d.ts +2 -2
  46. package/.svelte-kit/types/src/routes/{portfolio/actual → (pineapple)/pineapple}/$types.d.ts +2 -2
  47. package/.svelte-kit/types/src/routes/(seaweed)/$types.d.ts +19 -0
  48. package/.svelte-kit/types/src/routes/{portfolio → (seaweed)/portfolio}/$types.d.ts +3 -3
  49. package/.svelte-kit/types/src/routes/(seaweed)/portfolio/actual/$types.d.ts +17 -0
  50. package/.svelte-kit/types/src/routes/{portfolio → (seaweed)/portfolio}/proxy+page.server.ts +1 -1
  51. package/README.md +8 -18
  52. package/dist/app.postcss +28 -2
  53. package/dist/assets/icons/close.svg +1 -0
  54. package/dist/components/Card.svelte +28 -28
  55. package/dist/components/CarouselElement.svelte +16 -16
  56. package/dist/components/Chip.svelte +13 -12
  57. package/dist/components/ElementVisbilityDetector.svelte +5 -5
  58. package/dist/components/SocialSection.svelte +162 -159
  59. package/dist/components/StickyElement.svelte +20 -20
  60. package/dist/components/ToggleableContent.svelte +8 -8
  61. package/dist/components/layouts/SeaweedBaseLayout.svelte +1 -8
  62. package/dist/components/layouts/SeaweedBaseLayout.svelte.d.ts +1 -0
  63. package/dist/components/{layouts → pineapple}/PineappleBaseLayout.svelte +65 -20
  64. package/dist/components/pineapple/overlay_manager/OverlayManager.d.ts +0 -0
  65. package/dist/components/pineapple/overlay_manager/OverlayManager.js +1 -0
  66. package/dist/components/pineapple/toast/DefaultToastBody.d.ts +8 -0
  67. package/dist/components/pineapple/toast/DefaultToastBody.js +1 -0
  68. package/dist/components/pineapple/toast/DefaultToastBody.svelte +48 -0
  69. package/dist/components/pineapple/toast/DefaultToastBody.svelte.d.ts +20 -0
  70. package/dist/components/pineapple/toast/Toast.d.ts +27 -0
  71. package/dist/components/pineapple/toast/Toast.js +37 -0
  72. package/dist/components/pineapple/toast/Toast.svelte +89 -0
  73. package/dist/components/pineapple/toast/Toast.svelte.d.ts +14 -0
  74. package/dist/components/pineapple/toast/custom-toast/TestCustomToast.d.ts +5 -0
  75. package/dist/components/pineapple/toast/custom-toast/TestCustomToast.js +1 -0
  76. package/dist/components/pineapple/toast/custom-toast/TestCustomToast.svelte +1 -0
  77. package/dist/components/pineapple/toast/custom-toast/TestCustomToast.svelte.d.ts +23 -0
  78. package/dist/index.d.ts +1 -1
  79. package/dist/index.js +1 -1
  80. package/dist/postcss.d.ts +3 -3
  81. package/dist/styles/global.css +1 -1
  82. package/dist/theme.postcss +2 -1
  83. package/docs/OverlaySpec.md +23 -0
  84. package/docs/pull_request_template.md +34 -0
  85. package/package.json +1 -1
  86. package/src/lib/app.postcss +28 -2
  87. package/src/lib/assets/icons/close.svg +1 -0
  88. package/src/lib/components/Card.svelte +32 -32
  89. package/src/lib/components/CarouselElement.svelte +22 -22
  90. package/src/lib/components/Chip.svelte +13 -12
  91. package/src/lib/components/ElementVisbilityDetector.svelte +22 -22
  92. package/src/lib/components/OnElementVisbilityChanged.ts +1 -1
  93. package/src/lib/components/SocialSection.svelte +95 -92
  94. package/src/lib/components/StickyElement.svelte +39 -39
  95. package/src/lib/components/ToggleableContent.svelte +85 -85
  96. package/src/lib/components/ToggleableContentType.ts +4 -4
  97. package/src/lib/components/layouts/LayoutConstants.ts +1 -1
  98. package/src/lib/components/layouts/SeaweedBaseLayout.svelte +1 -8
  99. package/src/lib/components/pineapple/PineappleBaseLayout.svelte +207 -0
  100. package/src/lib/components/pineapple/overlay_manager/OverlayManager.ts +0 -0
  101. package/src/lib/components/pineapple/toast/DefaultToastBody.svelte +43 -0
  102. package/src/lib/components/pineapple/toast/DefaultToastBody.ts +10 -0
  103. package/src/lib/components/pineapple/toast/Toast.svelte +113 -0
  104. package/src/lib/components/pineapple/toast/Toast.ts +57 -0
  105. package/src/lib/components/pineapple/toast/custom-toast/TestCustomToast.svelte +1 -0
  106. package/src/lib/components/pineapple/toast/custom-toast/TestCustomToast.ts +6 -0
  107. package/src/lib/consts.ts +2 -2
  108. package/src/lib/index.ts +1 -1
  109. package/src/lib/postcss.d.ts +3 -3
  110. package/src/lib/styles/global.css +1 -1
  111. package/src/lib/theme.postcss +2 -1
  112. package/src/lib/util/create_go_to_function.ts +5 -5
  113. package/src/routes/{personal → (pineapple)}/+layout.svelte +1 -1
  114. package/src/routes/(pineapple)/+page.svelte +36 -0
  115. package/src/routes/(pineapple)/pineapple/+page.svelte +44 -0
  116. package/src/routes/(seaweed)/+layout.svelte +10 -0
  117. package/src/routes/{portfolio → (seaweed)/portfolio}/+page.server.ts +1 -1
  118. package/src/routes/{portfolio → (seaweed)/portfolio}/+page.svelte +2 -2
  119. package/src/routes/{portfolio → (seaweed)/portfolio}/.gitignore +1 -1
  120. package/src/routes/{portfolio → (seaweed)/portfolio}/actual/+page.svelte +1 -1
  121. package/src/routes/+layout.svelte +0 -7
  122. package/static/robots.txt +5 -5
  123. package/src/lib/components/layouts/PineappleBaseLayout.svelte +0 -161
  124. package/src/routes/+page.svelte +0 -38
  125. package/src/routes/personal/+page.svelte +0 -37
  126. /package/.svelte-kit/__package__/components/{layouts → pineapple}/PineappleBaseLayout.svelte.d.ts +0 -0
  127. /package/dist/components/{layouts → pineapple}/PineappleBaseLayout.svelte.d.ts +0 -0
@@ -0,0 +1,27 @@
1
+ /// <reference types="svelte" />
2
+ import type { DefaultToastPair } from "./DefaultToastBody";
3
+ import type { TestCustomToastPair } from "./custom-toast/TestCustomToast";
4
+ /**
5
+ * Default toast duration is 5 seconds
6
+ */
7
+ export declare const DefaultToastParamsDuration = 5000;
8
+ export type CustomToastPairs = DefaultToastPair | TestCustomToastPair;
9
+ export type DismissToastCallback = () => void;
10
+ export interface ToastParams {
11
+ componentAndProps: CustomToastPairs;
12
+ /**
13
+ * Time in millisecond. If undefined, defaults to DefaultToastParamsDuration
14
+ */
15
+ duration?: number;
16
+ }
17
+ /**
18
+ * todo: do not call directly documentation
19
+ */
20
+ export declare const activeToast: import("svelte/store").Writable<ToastParams | undefined>;
21
+ export declare const toastQueue: ToastParams[];
22
+ /**
23
+ *
24
+ * @param newToast
25
+ */
26
+ export declare const showComponentInToast: (newToast: ToastParams) => void;
27
+ export declare const showTextInToast: (message: string) => void;
@@ -0,0 +1,37 @@
1
+ import { writable } from "svelte/store";
2
+ import DefaultToastBody from "./DefaultToastBody.svelte";
3
+ /**
4
+ * Default toast duration is 5 seconds
5
+ */
6
+ export const DefaultToastParamsDuration = 5000;
7
+ /**
8
+ * todo: do not call directly documentation
9
+ */
10
+ export const activeToast = writable();
11
+ export const toastQueue = [];
12
+ /**
13
+ *
14
+ * @param newToast
15
+ */
16
+ export const showComponentInToast = (newToast) => {
17
+ // todo: queue component
18
+ activeToast.update((currentToast) => {
19
+ if (currentToast !== undefined) {
20
+ toastQueue.push(newToast);
21
+ return currentToast;
22
+ }
23
+ else {
24
+ return newToast;
25
+ }
26
+ });
27
+ };
28
+ export const showTextInToast = (message) => {
29
+ showComponentInToast({
30
+ componentAndProps: {
31
+ component: DefaultToastBody,
32
+ props: {
33
+ message
34
+ }
35
+ }
36
+ });
37
+ };
@@ -0,0 +1,89 @@
1
+ <script>import {
2
+ activeToast,
3
+ DefaultToastParamsDuration,
4
+ toastQueue
5
+ } from "./Toast";
6
+ import {} from "svelte";
7
+ import Card from "../../Card.svelte";
8
+ import { spring, tweened } from "svelte/motion";
9
+ let localComponent;
10
+ let localProps;
11
+ const HIDDEN_VALUE = -15;
12
+ const SHOWN_VALUE = 0;
13
+ const progress = tweened(0, { duration: DefaultToastParamsDuration });
14
+ const position = spring(HIDDEN_VALUE);
15
+ position.damping = 0.4;
16
+ let isDismissed = false;
17
+ let shouldEnableButton = false;
18
+ const onToastDisappear = () => {
19
+ localComponent = void 0;
20
+ activeToast.update(() => {
21
+ if (toastQueue.length === 0) {
22
+ return void 0;
23
+ }
24
+ return toastQueue.shift();
25
+ });
26
+ };
27
+ activeToast.subscribe((params) => {
28
+ if (!params) {
29
+ return;
30
+ }
31
+ if (params.componentAndProps?.component === localComponent) {
32
+ return;
33
+ }
34
+ localComponent = params.componentAndProps.component;
35
+ localProps = params.componentAndProps.props;
36
+ progress.set(0, { duration: 0 }).then(() => {
37
+ position.set(SHOWN_VALUE).then(() => {
38
+ shouldEnableButton = true;
39
+ progress.set(100, { delay: 500, duration: params.duration ?? DefaultToastParamsDuration }).then(() => {
40
+ shouldEnableButton = false;
41
+ if (isDismissed) {
42
+ return;
43
+ }
44
+ position.set(HIDDEN_VALUE).then(onToastDisappear);
45
+ });
46
+ });
47
+ });
48
+ });
49
+ const dismissToast = () => {
50
+ shouldEnableButton = false;
51
+ isDismissed = true;
52
+ position.set(HIDDEN_VALUE).then(onToastDisappear);
53
+ };
54
+ </script>
55
+
56
+ {#if (localComponent !== undefined)}
57
+ <div class="toast-positioner" style={`bottom: ${$position}lh;`}>
58
+ <!-- todo: adjust shadow to be more dynamic or transparent -->
59
+ <Card marginBottom="1lh" overrideStyle="box-shadow: 3px 3px 3px var(--shadow-color);">
60
+ <div slot="content">
61
+ {#if (localProps !== undefined)}
62
+ <svelte:component this={localComponent}
63
+ props={localProps}
64
+ dismissToastCallback={dismissToast}
65
+ shouldEnableButton={shouldEnableButton} />
66
+ {:else }
67
+ <svelte:component this={localComponent} />
68
+ {/if}
69
+ <progress id="toast-progress" value={$progress/100}></progress>
70
+ </div>
71
+ </Card>
72
+ </div>
73
+ {/if}
74
+
75
+ <style>
76
+ .toast-positioner {
77
+ position: fixed;
78
+ /* 12em = this component's margin (4em) + fab margin + width (8em) */
79
+ max-width: calc(100vw - 12em);
80
+ }
81
+
82
+ .toast-positioner:dir(ltr) {
83
+ left: 2em;
84
+ }
85
+
86
+ .toast-positioner:dir(rtl) {
87
+ right: 2em;
88
+ }
89
+ </style>
@@ -0,0 +1,14 @@
1
+ import { SvelteComponent } from "svelte";
2
+ declare const __propDef: {
3
+ props: Record<string, never>;
4
+ events: {
5
+ [evt: string]: CustomEvent<any>;
6
+ };
7
+ slots: {};
8
+ };
9
+ export type ToastProps = typeof __propDef.props;
10
+ export type ToastEvents = typeof __propDef.events;
11
+ export type ToastSlots = typeof __propDef.slots;
12
+ export default class Toast extends SvelteComponent<ToastProps, ToastEvents, ToastSlots> {
13
+ }
14
+ export {};
@@ -0,0 +1,5 @@
1
+ import TestCustomToast from "./TestCustomToast.svelte";
2
+ export interface TestCustomToastPair {
3
+ component: typeof TestCustomToast;
4
+ props: undefined;
5
+ }
@@ -0,0 +1 @@
1
+ import TestCustomToast from "./TestCustomToast.svelte";
@@ -0,0 +1,23 @@
1
+ /** @typedef {typeof __propDef.props} TestCustomToastProps */
2
+ /** @typedef {typeof __propDef.events} TestCustomToastEvents */
3
+ /** @typedef {typeof __propDef.slots} TestCustomToastSlots */
4
+ export default class TestCustomToast extends SvelteComponent<{
5
+ [x: string]: never;
6
+ }, {
7
+ [evt: string]: CustomEvent<any>;
8
+ }, {}> {
9
+ }
10
+ export type TestCustomToastProps = typeof __propDef.props;
11
+ export type TestCustomToastEvents = typeof __propDef.events;
12
+ export type TestCustomToastSlots = typeof __propDef.slots;
13
+ import { SvelteComponent } from "svelte";
14
+ declare const __propDef: {
15
+ props: {
16
+ [x: string]: never;
17
+ };
18
+ events: {
19
+ [evt: string]: CustomEvent<any>;
20
+ };
21
+ slots: {};
22
+ };
23
+ export {};
@@ -1,4 +1,4 @@
1
- export { default as PineappleLayoutBase } from "./components/layouts/PineappleBaseLayout.svelte";
1
+ export { default as PineappleLayoutBase } from "./components/pineapple/PineappleBaseLayout.svelte";
2
2
  export { default as SeaweedTemplate } from "./template/SeaweedTemplate.svelte";
3
3
  export { default as LazyAsset } from "./components/LazyAsset.svelte";
4
4
  export * from "./components/dialog_manager/DialogManagerStore";
@@ -1,4 +1,4 @@
1
- export { default as PineappleLayoutBase } from "./components/layouts/PineappleBaseLayout.svelte";
1
+ export { default as PineappleLayoutBase } from "./components/pineapple/PineappleBaseLayout.svelte";
2
2
  export { default as SeaweedTemplate } from "./template/SeaweedTemplate.svelte";
3
3
  export { default as LazyAsset } from "./components/LazyAsset.svelte";
4
4
  export * from "./components/dialog_manager/DialogManagerStore";
@@ -1,3 +1,3 @@
1
- // from https://stackoverflow.com/a/63885623/17836168
2
- declare module "./app.postcss";
3
- declare module "./theme.postcss";
1
+ // from https://stackoverflow.com/a/63885623/17836168
2
+ declare module "./app.postcss";
3
+ declare module "./theme.postcss";
@@ -1 +1 @@
1
- /* todo: delete if unneeded */
1
+ /* todo: delete if unneeded */
@@ -5,7 +5,7 @@
5
5
  --theme-font-family-base: system-ui;
6
6
  --theme-font-family-heading: system-ui;
7
7
  --theme-font-color-base: var(--color-primary-900);
8
- --theme-font-color-dark: var(--color-primary-100);
8
+ --theme-font-color-dark: var(--color-primary-50);
9
9
  --theme-rounded-base: 24px;
10
10
  --theme-rounded-container: 16px;
11
11
  --theme-border-base: 2px;
@@ -99,6 +99,7 @@
99
99
  --color-surface-800: 153 148 136; /* ⬅ #999488 */
100
100
  --color-surface-900: 125 121 111; /* ⬅ #7d796f */
101
101
  /* text color | #3f312f */
102
+ --color-text-25: 237 234 234; /* ⬅ #e2e0e0 */
102
103
  --color-text-50: 226 224 224; /* ⬅ #e2e0e0 */
103
104
  --color-text-100: 217 214 213; /* ⬅ #d9d6d5 */
104
105
  --color-text-200: 207 204 203; /* ⬅ #cfcccb */
@@ -37,6 +37,8 @@ declare module '$env/static/private' {
37
37
  export const COMSPEC: string;
38
38
  export const DriverData: string;
39
39
  export const EXEPATH: string;
40
+ export const FPS_BROWSER_APP_PROFILE_STRING: string;
41
+ export const FPS_BROWSER_USER_PROFILE_STRING: string;
40
42
  export const GIT_XL_PATH: string;
41
43
  export const GoLand: string;
42
44
  export const GOPATH: string;
@@ -228,6 +230,8 @@ declare module '$env/dynamic/private' {
228
230
  COMSPEC: string;
229
231
  DriverData: string;
230
232
  EXEPATH: string;
233
+ FPS_BROWSER_APP_PROFILE_STRING: string;
234
+ FPS_BROWSER_USER_PROFILE_STRING: string;
231
235
  GIT_XL_PATH: string;
232
236
  GoLand: string;
233
237
  GOPATH: string;
@@ -7,16 +7,17 @@ export const nodes = [
7
7
  () => import('./nodes/3'),
8
8
  () => import('./nodes/4'),
9
9
  () => import('./nodes/5'),
10
- () => import('./nodes/6')
10
+ () => import('./nodes/6'),
11
+ () => import('./nodes/7')
11
12
  ];
12
13
 
13
14
  export const server_loads = [];
14
15
 
15
16
  export const dictionary = {
16
- "/": [3],
17
- "/personal": [4,[2]],
18
- "/portfolio": [~5],
19
- "/portfolio/actual": [6]
17
+ "/(pineapple)": [4,[2]],
18
+ "/(pineapple)/pineapple": [5,[2]],
19
+ "/(seaweed)/portfolio": [~6,[3]],
20
+ "/(seaweed)/portfolio/actual": [7,[3]]
20
21
  };
21
22
 
22
23
  export const hooks = {
@@ -1 +1 @@
1
- export { default as component } from "../../../../src/routes/personal/+layout.svelte";
1
+ export { default as component } from "../../../../src/routes/(pineapple)/+layout.svelte";
@@ -1 +1 @@
1
- export { default as component } from "../../../../src/routes/+page.svelte";
1
+ export { default as component } from "../../../../src/routes/(seaweed)/+layout.svelte";
@@ -1 +1 @@
1
- export { default as component } from "../../../../src/routes/personal/+page.svelte";
1
+ export { default as component } from "../../../../src/routes/(pineapple)/+page.svelte";
@@ -1 +1 @@
1
- export { default as component } from "../../../../src/routes/portfolio/+page.svelte";
1
+ export { default as component } from "../../../../src/routes/(pineapple)/pineapple/+page.svelte";
@@ -1 +1 @@
1
- export { default as component } from "../../../../src/routes/portfolio/actual/+page.svelte";
1
+ export { default as component } from "../../../../src/routes/(seaweed)/portfolio/+page.svelte";
@@ -0,0 +1 @@
1
+ export { default as component } from "../../../../src/routes/(seaweed)/portfolio/actual/+page.svelte";
@@ -21,7 +21,7 @@ export const options = {
21
21
  app: ({ head, body, assets, nonce, env }) => "<!DOCTYPE html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width\" />\n\t\t" + head + "\n\t</head>\n\n\t<body data-sveltekit-preload-data=\"hover\" data-theme=\"crimson\">\n\t\t<div style=\"display: contents\" class=\"h-full overflow-hidden\">" + body + "</div>\n\t</body>\n</html>\n",
22
22
  error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
23
23
  },
24
- version_hash: "oug70e"
24
+ version_hash: "3q1q8i"
25
25
  };
26
26
 
27
27
  export async function get_hooks() {
@@ -1,8 +1,10 @@
1
1
  {
2
+ "/(seaweed)": [],
3
+ "/(pineapple)": [],
2
4
  "/": [],
3
- "/personal": [],
4
- "/portfolio": [
5
- "src/routes/portfolio/+page.server.ts"
5
+ "/(pineapple)/pineapple": [],
6
+ "/(seaweed)/portfolio": [
7
+ "src/routes/(seaweed)/portfolio/+page.server.ts"
6
8
  ],
7
- "/portfolio/actual": []
9
+ "/(seaweed)/portfolio/actual": []
8
10
  }
@@ -11,12 +11,9 @@ type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Pa
11
11
  type EnsureDefined<T> = T extends null | undefined ? {} : T;
12
12
  type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
13
13
  export type Snapshot<T = any> = Kit.Snapshot<T>;
14
- type PageParentData = EnsureDefined<LayoutData>;
15
- type LayoutRouteId = RouteId | "/" | "/personal" | "/portfolio" | "/portfolio/actual" | null
14
+ type LayoutRouteId = RouteId | "/(pineapple)" | "/(pineapple)/pineapple" | "/(seaweed)/portfolio" | "/(seaweed)/portfolio/actual" | null
16
15
  type LayoutParams = RouteParams & { }
17
16
  type LayoutParentData = EnsureDefined<{}>;
18
17
 
19
- export type PageServerData = null;
20
- export type PageData = Expand<PageParentData>;
21
18
  export type LayoutServerData = null;
22
19
  export type LayoutData = Expand<LayoutParentData>;
@@ -4,7 +4,7 @@ type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
4
4
  // @ts-ignore
5
5
  type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
6
6
  type RouteParams = { };
7
- type RouteId = '/personal';
7
+ type RouteId = '/(pineapple)';
8
8
  type MaybeWithVoid<T> = {} extends T ? T | void : T;
9
9
  export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
10
10
  type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
@@ -12,7 +12,7 @@ type EnsureDefined<T> = T extends null | undefined ? {} : T;
12
12
  type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
13
13
  export type Snapshot<T = any> = Kit.Snapshot<T>;
14
14
  type PageParentData = Omit<EnsureDefined<import('../$types.js').LayoutData>, keyof LayoutData> & EnsureDefined<LayoutData>;
15
- type LayoutRouteId = RouteId | "/personal"
15
+ type LayoutRouteId = RouteId | "/(pineapple)" | "/(pineapple)/pineapple"
16
16
  type LayoutParams = RouteParams & { }
17
17
  type LayoutParentData = EnsureDefined<import('../$types.js').LayoutData>;
18
18
 
@@ -4,14 +4,14 @@ type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
4
4
  // @ts-ignore
5
5
  type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
6
6
  type RouteParams = { };
7
- type RouteId = '/portfolio/actual';
7
+ type RouteId = '/(pineapple)/pineapple';
8
8
  type MaybeWithVoid<T> = {} extends T ? T | void : T;
9
9
  export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
10
10
  type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
11
11
  type EnsureDefined<T> = T extends null | undefined ? {} : T;
12
12
  type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
13
13
  export type Snapshot<T = any> = Kit.Snapshot<T>;
14
- type PageParentData = EnsureDefined<import('../../$types.js').LayoutData>;
14
+ type PageParentData = Omit<EnsureDefined<import('../../$types.js').LayoutData>, keyof import('../$types.js').LayoutData> & EnsureDefined<import('../$types.js').LayoutData>;
15
15
 
16
16
  export type PageServerData = null;
17
17
  export type PageData = Expand<PageParentData>;
@@ -0,0 +1,19 @@
1
+ import type * as Kit from '@sveltejs/kit';
2
+
3
+ type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
4
+ // @ts-ignore
5
+ type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
6
+ type RouteParams = { };
7
+ type RouteId = '/(seaweed)';
8
+ type MaybeWithVoid<T> = {} extends T ? T | void : T;
9
+ export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
10
+ type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
11
+ type EnsureDefined<T> = T extends null | undefined ? {} : T;
12
+ type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
13
+ export type Snapshot<T = any> = Kit.Snapshot<T>;
14
+ type LayoutRouteId = RouteId | "/(seaweed)/portfolio" | "/(seaweed)/portfolio/actual"
15
+ type LayoutParams = RouteParams & { }
16
+ type LayoutParentData = EnsureDefined<import('../$types.js').LayoutData>;
17
+
18
+ export type LayoutServerData = null;
19
+ export type LayoutData = Expand<LayoutParentData>;
@@ -4,15 +4,15 @@ type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
4
4
  // @ts-ignore
5
5
  type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
6
6
  type RouteParams = { };
7
- type RouteId = '/portfolio';
7
+ type RouteId = '/(seaweed)/portfolio';
8
8
  type MaybeWithVoid<T> = {} extends T ? T | void : T;
9
9
  export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
10
10
  type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
11
11
  type EnsureDefined<T> = T extends null | undefined ? {} : T;
12
12
  type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
13
13
  export type Snapshot<T = any> = Kit.Snapshot<T>;
14
- type PageServerParentData = EnsureDefined<import('../$types.js').LayoutServerData>;
15
- type PageParentData = EnsureDefined<import('../$types.js').LayoutData>;
14
+ type PageServerParentData = Omit<EnsureDefined<import('../../$types.js').LayoutServerData>, keyof import('../$types.js').LayoutServerData> & EnsureDefined<import('../$types.js').LayoutServerData>;
15
+ type PageParentData = Omit<EnsureDefined<import('../../$types.js').LayoutData>, keyof import('../$types.js').LayoutData> & EnsureDefined<import('../$types.js').LayoutData>;
16
16
 
17
17
  export type PageServerLoad<OutputData extends OutputDataShape<PageServerParentData> = OutputDataShape<PageServerParentData>> = Kit.ServerLoad<RouteParams, PageServerParentData, OutputData, RouteId>;
18
18
  export type PageServerLoadEvent = Parameters<PageServerLoad>[0];
@@ -0,0 +1,17 @@
1
+ import type * as Kit from '@sveltejs/kit';
2
+
3
+ type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never;
4
+ // @ts-ignore
5
+ type MatcherParam<M> = M extends (param : string) => param is infer U ? U extends string ? U : string : string;
6
+ type RouteParams = { };
7
+ type RouteId = '/(seaweed)/portfolio/actual';
8
+ type MaybeWithVoid<T> = {} extends T ? T | void : T;
9
+ export type RequiredKeys<T> = { [K in keyof T]-?: {} extends { [P in K]: T[K] } ? never : K; }[keyof T];
10
+ type OutputDataShape<T> = MaybeWithVoid<Omit<App.PageData, RequiredKeys<T>> & Partial<Pick<App.PageData, keyof T & keyof App.PageData>> & Record<string, any>>
11
+ type EnsureDefined<T> = T extends null | undefined ? {} : T;
12
+ type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
13
+ export type Snapshot<T = any> = Kit.Snapshot<T>;
14
+ type PageParentData = Omit<EnsureDefined<import('../../../$types.js').LayoutData>, keyof import('../../$types.js').LayoutData> & EnsureDefined<import('../../$types.js').LayoutData>;
15
+
16
+ export type PageServerData = null;
17
+ export type PageData = Expand<PageParentData>;
@@ -1,5 +1,5 @@
1
1
  // @ts-nocheck
2
- import type {PageLoad} from './$types';
2
+ import type {PageLoad} from '../../../../.svelte-kit/types/src/routes';
3
3
  import * as htmlparser2 from "htmlparser2";
4
4
  import {DomUtils} from "htmlparser2";
5
5
 
package/README.md CHANGED
@@ -1,28 +1,18 @@
1
- # create-svelte
1
+ # Pineapple
2
2
 
3
- Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
3
+ This is the base package for styling my projects in Svelte.
4
4
 
5
- ## Creating a project
6
-
7
- If you're seeing this, you've probably already done this step. Congrats!
8
-
9
- ```bash
10
- # create a new project in the current directory
11
- npm create svelte@latest
12
-
13
- # create a new project in my-app
14
- npm create svelte@latest my-app
15
- ```
5
+ NPM package: https://www.npmjs.com/package/@turnipxenon/pineapple
16
6
 
17
7
  ## Developing
18
8
 
19
- Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
9
+ Once you've created a project and installed dependencies with `yarn`, start a development server:
20
10
 
21
11
  ```bash
22
- npm run dev
12
+ yarn dev
23
13
 
24
14
  # or start the server and open the app in a new browser tab
25
- npm run dev -- --open
15
+ yarn dev -- --open
26
16
  ```
27
17
 
28
18
  ## Building
@@ -30,9 +20,9 @@ npm run dev -- --open
30
20
  To create a production version of your app:
31
21
 
32
22
  ```bash
33
- npm run build
23
+ yarn build
34
24
  ```
35
25
 
36
- You can preview the production build with `npm run preview`.
26
+ You can preview the production build with `yarn preview`.
37
27
 
38
28
  > To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
package/dist/app.postcss CHANGED
@@ -41,11 +41,11 @@ html, body {
41
41
  }
42
42
 
43
43
  /* todo: add some hues to the icon that should be in sync with primary and make them not pure darkness */
44
- .turnip-button > img {
44
+ .turnip-button > img, .img-icon {
45
45
  filter: grayscale(100%) brightness(0%) invert(25%);
46
46
  }
47
47
 
48
- .dark .turnip-button > img {
48
+ .dark .turnip-button > img, .dark .img-icon {
49
49
  filter: grayscale(100%) brightness(0%) invert(100%);
50
50
  }
51
51
 
@@ -164,4 +164,30 @@ a:active {
164
164
  .accordion-item {
165
165
  @apply variant-filled-primary rounded-md;
166
166
  }
167
+
167
168
  /* endregion Accordion css for handling missing styles in package */
169
+
170
+ :root {
171
+ --shadow-color: rgba(91, 79, 54, 0.5);
172
+ }
173
+
174
+ /* todo: adjust shadow for each component + change depending on dark mode or not */
175
+ .fab, #shell-header {
176
+ box-shadow: 3px 3px 3px var(--shadow-color);
177
+ }
178
+
179
+ #toast-progress {
180
+ position: relative;
181
+ top: 5px;
182
+ left: 6px;
183
+ width: calc(100% - 12px);
184
+ border-radius: 8px;
185
+ background: transparent;
186
+ height: 10px;
187
+ }
188
+
189
+ #toast-progress::-moz-progress-bar {
190
+ /*background-color: red;*/
191
+ background: rgba(var(--color-secondary-500));
192
+ }
193
+
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/></svg>
@@ -1,5 +1,5 @@
1
1
  <script>export let margin = "0";
2
- export let marginBottom = "3em";
2
+ export let marginBottom = "2lh";
3
3
  export let overrideStyle = "";
4
4
  export let includeDataNoSnippet = true;
5
5
  const style = `
@@ -7,30 +7,30 @@ const style = `
7
7
  --turnip-card-margin-bottom: ${marginBottom};
8
8
  ${overrideStyle};
9
9
  `;
10
- </script>
11
-
12
- {#if (includeDataNoSnippet)}
13
- <div class="card turnip-card" style={style} data-no-snippet>
14
- <slot name="content" class="card" />
15
- </div>
16
- {:else }
17
- <div class="card turnip-card" style={style}>
18
- <slot name="content" class="card" />
19
- </div>
20
- {/if}
21
-
22
- <style>
23
- .turnip-card {
24
- --tw-bg-opacity: 1;
25
- background-color: rgb(var(--color-surface-100) / var(--tw-bg-opacity));
26
- }
27
- :is(.dark .turnip-card) {
28
- --tw-bg-opacity: 1;
29
- background-color: rgb(var(--color-surface-900) / var(--tw-bg-opacity));
30
- }
31
- .turnip-card {
32
- margin: var(--turnip-card-margin);
33
- margin-bottom: var(--turnip-card-margin-bottom);
34
- border-radius: var(--theme-rounded-container);
35
- }
36
- </style>
10
+ </script>
11
+
12
+ {#if (includeDataNoSnippet)}
13
+ <div class="card turnip-card" style={style} data-no-snippet>
14
+ <slot name="content" class="card" />
15
+ </div>
16
+ {:else }
17
+ <div class="card turnip-card" style={style}>
18
+ <slot name="content" class="card" />
19
+ </div>
20
+ {/if}
21
+
22
+ <style>
23
+ .turnip-card {
24
+ --tw-bg-opacity: 1;
25
+ background-color: rgb(var(--color-surface-100) / var(--tw-bg-opacity));
26
+ }
27
+ :is(.dark .turnip-card) {
28
+ --tw-bg-opacity: 1;
29
+ background-color: rgb(var(--color-surface-900) / var(--tw-bg-opacity));
30
+ }
31
+ .turnip-card {
32
+ margin: var(--turnip-card-margin);
33
+ margin-bottom: var(--turnip-card-margin-bottom);
34
+ border-radius: var(--theme-rounded-container);
35
+ }
36
+ </style>