@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.
Files changed (171) hide show
  1. package/dist/assets/icons/icon-contrast.svg +1 -0
  2. package/dist/assets/icons/icon-dark-mode.svg +1 -0
  3. package/dist/assets/icons/icon-light-mode.svg +1 -0
  4. package/dist/assets/icons/icon-settings.svg +1 -0
  5. package/dist/components/Card.svelte +43 -41
  6. package/dist/components/Card.svelte.d.ts +11 -24
  7. package/dist/components/CarouselElement.svelte +15 -8
  8. package/dist/components/CarouselElement.svelte.d.ts +7 -18
  9. package/dist/components/ElementVisbilityDetector.svelte +23 -14
  10. package/dist/components/ElementVisbilityDetector.svelte.d.ts +6 -17
  11. package/dist/components/LazyAsset.svelte +93 -65
  12. package/dist/components/LazyAsset.svelte.d.ts +9 -19
  13. package/dist/components/PineappleSlideToggle.svelte +19 -7
  14. package/dist/components/PineappleSlideToggle.svelte.d.ts +8 -19
  15. package/dist/components/RandomizedBackground.svelte +46 -27
  16. package/dist/components/RandomizedBackground.svelte.d.ts +5 -15
  17. package/dist/components/RandomizedImage.svelte +15 -8
  18. package/dist/components/RandomizedImage.svelte.d.ts +6 -16
  19. package/dist/components/StickyElement.svelte +25 -16
  20. package/dist/components/StickyElement.svelte.d.ts +6 -17
  21. package/dist/components/ToggleableContent.svelte +88 -59
  22. package/dist/components/ToggleableContent.svelte.d.ts +6 -17
  23. package/dist/components/blog_template/BlogTemplate.svelte +45 -25
  24. package/dist/components/blog_template/BlogTemplate.svelte.d.ts +9 -20
  25. package/dist/components/blog_template/BlogTemplateInner.svelte +11 -3
  26. package/dist/components/blog_template/BlogTemplateInner.svelte.d.ts +6 -17
  27. package/dist/components/chip/Chip.svelte +33 -57
  28. package/dist/components/chip/Chip.svelte.d.ts +7 -18
  29. package/dist/components/combo_box/ComboBox.svelte +10 -4
  30. package/dist/components/combo_box/ComboBox.svelte.d.ts +6 -16
  31. package/dist/components/combo_box/ComboBoxWithButton.svelte +16 -9
  32. package/dist/components/combo_box/ComboBoxWithButton.svelte.d.ts +7 -17
  33. package/dist/components/combo_box/combo-box.postcss +2 -2
  34. package/dist/components/dialog_manager/DialogManager.d.ts +0 -1
  35. package/dist/components/dialog_manager/DialogManagerStore.d.ts +0 -1
  36. package/dist/components/dialog_manager/DialogManagerStore.js +1 -1
  37. package/dist/components/dialog_overlay/DialogOverlay.svelte +42 -34
  38. package/dist/components/dialog_overlay/DialogOverlay.svelte.d.ts +3 -14
  39. package/dist/components/index.d.ts +1 -1
  40. package/dist/components/index.js +1 -1
  41. package/dist/components/layouts/SeaweedBaseLayout.svelte +80 -43
  42. package/dist/components/layouts/SeaweedBaseLayout.svelte.d.ts +8 -21
  43. package/dist/components/navigation_component/NavigationComponent.svelte +52 -141
  44. package/dist/components/navigation_component/NavigationComponent.svelte.d.ts +17 -26
  45. package/dist/components/navigation_component/NavigationControl.svelte +52 -103
  46. package/dist/components/navigation_component/NavigationControl.svelte.d.ts +7 -17
  47. package/dist/components/overrideable_meta/OverridableMeta.svelte +37 -22
  48. package/dist/components/overrideable_meta/OverridableMeta.svelte.d.ts +9 -19
  49. package/dist/components/pineapple/PineappleBaseLayout.svelte +132 -188
  50. package/dist/components/pineapple/PineappleBaseLayout.svelte.d.ts +6 -17
  51. package/dist/components/pineapple/toast/DefaultToastBody.svelte +14 -16
  52. package/dist/components/pineapple/toast/DefaultToastBody.svelte.d.ts +7 -17
  53. package/dist/components/pineapple/toast/Toast.d.ts +0 -1
  54. package/dist/components/pineapple/toast/Toast.svelte +92 -64
  55. package/dist/components/pineapple/toast/Toast.svelte.d.ts +3 -14
  56. package/dist/components/pineapple/toast/custom-toast/TestCustomToast.svelte.d.ts +22 -19
  57. package/dist/paraglide/messages/_index.d.ts +2 -0
  58. package/dist/paraglide/messages/_index.js +3 -0
  59. package/dist/paraglide/messages/example_message.d.ts +5 -0
  60. package/dist/paraglide/messages/example_message.js +39 -0
  61. package/dist/paraglide/messages/settings.d.ts +3 -0
  62. package/dist/paraglide/messages/settings.js +38 -0
  63. package/dist/paraglide/messages.d.ts +2 -0
  64. package/dist/paraglide/messages.js +4 -0
  65. package/dist/paraglide/registry.d.ts +21 -0
  66. package/dist/paraglide/registry.js +31 -0
  67. package/dist/paraglide/runtime.d.ts +400 -0
  68. package/dist/paraglide/runtime.js +1060 -0
  69. package/dist/paraglide/server.d.ts +64 -0
  70. package/dist/paraglide/server.js +161 -0
  71. package/dist/scripts/util/FileManagement.d.ts +1 -1
  72. package/dist/store.d.ts +0 -1
  73. package/dist/styles/app.css +53 -0
  74. package/dist/styles/turnip-theme.css +323 -0
  75. package/dist/template/seaweed/CreateUrlForm.svelte +50 -38
  76. package/dist/template/seaweed/CreateUrlForm.svelte.d.ts +5 -15
  77. package/dist/template/seaweed/SeaweedTemplate.svelte +244 -195
  78. package/dist/template/seaweed/SeaweedTemplate.svelte.d.ts +28 -25
  79. package/dist/template/seaweed/entries/ChefWings.svelte +37 -39
  80. package/dist/template/seaweed/entries/ChefWings.svelte.d.ts +5 -15
  81. package/dist/template/seaweed/entries/CustomizedYarnspinner.svelte +32 -24
  82. package/dist/template/seaweed/entries/CustomizedYarnspinner.svelte.d.ts +5 -15
  83. package/dist/template/seaweed/entries/Hepcat.svelte +58 -49
  84. package/dist/template/seaweed/entries/Hepcat.svelte.d.ts +5 -15
  85. package/dist/template/seaweed/entries/Pengi.svelte +51 -43
  86. package/dist/template/seaweed/entries/Pengi.svelte.d.ts +5 -15
  87. package/dist/template/seaweed/entries/Soulwork.svelte +44 -36
  88. package/dist/template/seaweed/entries/Soulwork.svelte.d.ts +5 -15
  89. package/dist/template/seaweed/entries/ThisWebpage.svelte +47 -38
  90. package/dist/template/seaweed/entries/ThisWebpage.svelte.d.ts +5 -15
  91. package/dist/template/seaweed/entries/WorkExperience.svelte +109 -92
  92. package/dist/template/seaweed/entries/WorkExperience.svelte.d.ts +6 -16
  93. package/dist/template/seaweed/entries/Workset.svelte +51 -42
  94. package/dist/template/seaweed/entries/Workset.svelte.d.ts +5 -15
  95. package/dist/template/seaweed/entry_order_config/EntryOrderConfig.svelte +136 -259
  96. package/dist/template/seaweed/entry_order_config/EntryOrderConfig.svelte.d.ts +10 -20
  97. package/dist/template/seaweed/seaweed.postcss +1 -9
  98. package/dist/{theme.postcss → theme.css} +1 -4
  99. package/dist/ui/components/FourPartCard.svelte +47 -0
  100. package/dist/ui/components/FourPartCard.svelte.d.ts +10 -0
  101. package/dist/ui/components/ModalBase.svelte +75 -0
  102. package/dist/ui/components/ModalBase.svelte.d.ts +8 -0
  103. package/dist/ui/components/SocialSection.svelte +87 -0
  104. package/dist/ui/components/SocialSection.svelte.d.ts +9 -0
  105. package/dist/ui/components/index.d.ts +3 -0
  106. package/dist/ui/components/index.js +3 -0
  107. package/dist/ui/components/randomized-background/RandomizedBackground.svelte +87 -0
  108. package/dist/ui/components/randomized-background/RandomizedBackground.svelte.d.ts +6 -0
  109. package/dist/ui/components/randomized-background/RandomizedImage.svelte +42 -0
  110. package/dist/ui/components/randomized-background/RandomizedImage.svelte.d.ts +7 -0
  111. package/dist/ui/elements/ColorScheme.d.ts +10 -0
  112. package/dist/ui/elements/ColorScheme.js +11 -0
  113. package/dist/ui/elements/GeneralUIProps.d.ts +12 -0
  114. package/dist/ui/elements/GeneralUIProps.js +1 -0
  115. package/dist/ui/elements/ImageIcon.svelte +54 -0
  116. package/dist/ui/elements/ImageIcon.svelte.d.ts +6 -0
  117. package/dist/ui/elements/OnBackground.d.ts +3 -0
  118. package/dist/ui/elements/OnBackground.js +4 -0
  119. package/dist/ui/elements/TextLink.svelte +17 -0
  120. package/dist/ui/elements/TextLink.svelte.d.ts +8 -0
  121. package/dist/ui/elements/WrapperProps.d.ts +4 -0
  122. package/dist/ui/elements/WrapperProps.js +1 -0
  123. package/dist/ui/elements/index.d.ts +8 -0
  124. package/dist/ui/elements/index.js +8 -0
  125. package/dist/ui/elements/pinya-button/component.svelte +47 -0
  126. package/dist/ui/elements/pinya-button/component.svelte.d.ts +4 -0
  127. package/dist/ui/elements/pinya-button/index.d.ts +2 -0
  128. package/dist/ui/elements/pinya-button/index.js +2 -0
  129. package/dist/ui/elements/pinya-button/props.d.ts +13 -0
  130. package/dist/ui/elements/pinya-button/props.js +6 -0
  131. package/dist/ui/elements/pinya-card/component.svelte +19 -0
  132. package/dist/ui/elements/pinya-card/component.svelte.d.ts +7 -0
  133. package/dist/ui/elements/pinya-card/index.d.ts +2 -0
  134. package/dist/ui/elements/pinya-card/index.js +2 -0
  135. package/dist/ui/elements/pinya-card/props.d.ts +7 -0
  136. package/dist/ui/elements/pinya-card/props.js +1 -0
  137. package/dist/ui/modules/index.d.ts +1 -0
  138. package/dist/ui/modules/index.js +1 -0
  139. package/dist/ui/modules/modals/general-settings/GeneralSettingsModal.svelte +110 -0
  140. package/dist/ui/modules/modals/general-settings/GeneralSettingsModal.svelte.d.ts +4 -0
  141. package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte +48 -0
  142. package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte.d.ts +3 -0
  143. package/dist/{template → ui/modules}/seaweed/ChumBucket.svelte +28 -28
  144. package/dist/ui/modules/seaweed/ChumBucket.svelte.d.ts +3 -0
  145. package/dist/ui/modules/seaweed/index.d.ts +3 -0
  146. package/dist/ui/modules/seaweed/index.js +4 -0
  147. package/dist/ui/templates/PinyaBase.svelte +45 -0
  148. package/dist/ui/templates/PinyaBase.svelte.d.ts +7 -0
  149. package/dist/ui/templates/confirmation-modal/component.svelte +47 -0
  150. package/dist/ui/templates/confirmation-modal/component.svelte.d.ts +4 -0
  151. package/dist/ui/templates/confirmation-modal/index.d.ts +2 -0
  152. package/dist/ui/templates/confirmation-modal/index.js +2 -0
  153. package/dist/ui/templates/confirmation-modal/props.d.ts +10 -0
  154. package/dist/ui/templates/confirmation-modal/props.js +1 -0
  155. package/dist/ui/templates/index.d.ts +3 -0
  156. package/dist/ui/templates/index.js +3 -0
  157. package/dist/ui/templates/pinya-page-layout/component.svelte +113 -0
  158. package/dist/ui/templates/pinya-page-layout/component.svelte.d.ts +8 -0
  159. package/dist/ui/templates/pinya-page-layout/index.d.ts +2 -0
  160. package/dist/ui/templates/pinya-page-layout/index.js +2 -0
  161. package/dist/ui/templates/pinya-page-layout/runes.svelte.d.ts +7 -0
  162. package/dist/ui/templates/pinya-page-layout/runes.svelte.js +3 -0
  163. package/package.json +36 -18
  164. package/src/lib/styles/app.css +53 -0
  165. package/src/lib/theme.css +114 -0
  166. package/dist/app.postcss +0 -212
  167. package/dist/components/SocialSection.svelte +0 -166
  168. package/dist/components/SocialSection.svelte.d.ts +0 -31
  169. package/dist/postcss.d.ts +0 -3
  170. package/dist/styles/DefaultGridContainer.css +0 -61
  171. package/dist/template/seaweed/ChumBucket.svelte.d.ts +0 -14
@@ -1,93 +1,128 @@
1
- <script>import {
2
- } from "../SeaweedTemplateData";
3
- import { removeProxyWrapperOnString } from "./EntryOrderConfig";
4
- import ComboBoxWithButton from "../../../components/combo_box/ComboBoxWithButton.svelte";
5
- import CloseIcon from "../../../assets/icons/close.svg";
6
- import UpwardIcon from "../../../assets/icons/arrow-upward.svg";
7
- import "./entry-order-config.postcss";
8
- export let seaweedTemplateData;
9
- export let seaweedEntries;
10
- export let orderUrl;
11
- export let updateUrl;
12
- export let getAllEntryFromGlobal;
13
- export let getEntryFromGlobal;
14
- const updateOrderQuery = () => {
15
- orderUrl = "order=" + seaweedEntries.map((g) => {
16
- const groupUrl = g.items.map(
17
- (e) => removeProxyWrapperOnString(e.name)
18
- ).join("|");
19
- return `${g.name}:${groupUrl}:${g.gridClass}`;
20
- }).join(",");
21
- updateUrl(seaweedTemplateData);
22
- };
23
- const addEntry = (group) => {
24
- return (selected) => {
25
- const c = getEntryFromGlobal(selected);
26
- if (c) {
27
- group.items.push(c);
28
- seaweedEntries = seaweedEntries;
29
- updateOrderQuery();
30
- }
31
- };
32
- };
33
- const swapEntry = (index, group, shouldDecrement) => {
34
- return () => {
35
- let newIndex = index;
36
- if (shouldDecrement && index >= 1) {
37
- newIndex--;
38
- } else if (!shouldDecrement && index <= group.items.length - 2) {
39
- newIndex++;
40
- } else {
41
- return;
42
- }
43
- const tempVar = group.items[newIndex];
44
- group.items[newIndex] = group.items[index];
45
- group.items[index] = tempVar;
46
- seaweedEntries = seaweedEntries;
47
- updateOrderQuery();
48
- };
49
- };
50
- const swapGroups = (index, shouldDecrement) => {
51
- return () => {
52
- let newIndex = index;
53
- if (shouldDecrement && index >= 1) {
54
- newIndex--;
55
- } else if (!shouldDecrement && index <= seaweedEntries.length - 2) {
56
- newIndex++;
57
- } else {
58
- return;
59
- }
60
- const tempVar = seaweedEntries[newIndex];
61
- seaweedEntries[newIndex] = seaweedEntries[index];
62
- seaweedEntries[index] = tempVar;
63
- seaweedEntries = seaweedEntries;
64
- updateOrderQuery();
65
- };
66
- };
67
- const removeGroup = (group) => {
68
- return () => {
69
- const index = seaweedEntries.indexOf(group);
70
- if (index === -1) {
71
- return;
72
- }
73
- seaweedEntries.splice(index, 1);
74
- seaweedEntries = seaweedEntries;
75
- updateOrderQuery();
76
- };
77
- };
78
- const removeEntry = (entry, group) => {
79
- return () => {
80
- for (let i = group.items.length - 1; i >= 0; i--) {
81
- if (group.items[i].name === entry.name) {
82
- group.items.splice(i, 1);
83
- seaweedEntries = seaweedEntries;
84
- updateOrderQuery();
85
- break;
86
- }
87
- }
88
- };
89
- };
90
- const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
1
+ <script lang="ts">
2
+ import {
3
+ type ComponentMeta,
4
+ type EntryGroup,
5
+ type SeaweedTemplateData
6
+ } from "../SeaweedTemplateData";
7
+ import { removeProxyWrapperOnString } from "./EntryOrderConfig";
8
+ import ComboBoxWithButton from "../../../components/combo_box/ComboBoxWithButton.svelte";
9
+ import CloseIcon from "../../../assets/icons/close.svg";
10
+ import UpwardIcon from "../../../assets/icons/arrow-upward.svg";
11
+ import "./entry-order-config.postcss";
12
+
13
+ interface Props {
14
+ seaweedTemplateData: SeaweedTemplateData;
15
+ seaweedEntries: EntryGroup[];
16
+ orderUrl: string;
17
+ updateUrl: (data: SeaweedTemplateData) => void;
18
+ getAllEntryFromGlobal: () => Map<string, ComponentMeta>;
19
+ getEntryFromGlobal: (s: string) => ComponentMeta | undefined;
20
+ }
21
+
22
+ let {
23
+ seaweedTemplateData,
24
+ seaweedEntries = $bindable(),
25
+ orderUrl = $bindable(),
26
+ updateUrl,
27
+ getAllEntryFromGlobal,
28
+ getEntryFromGlobal
29
+ }: Props = $props();
30
+
31
+ const updateOrderQuery = () => {
32
+ orderUrl = "order=" + seaweedEntries.map(g => {
33
+ const groupUrl = g.items.map(
34
+ e => removeProxyWrapperOnString(e.name)
35
+ ).join("|");
36
+ return `${g.name}:${groupUrl}:${g.gridClass}`;
37
+ }).join(",");
38
+ updateUrl(seaweedTemplateData);
39
+ };
40
+
41
+ const addEntry = (group: EntryGroup): ((selected: string) => void) => {
42
+ return (selected: string) => {
43
+ const c = getEntryFromGlobal(selected);
44
+ if (c) {
45
+ group.items.push(c);
46
+ seaweedEntries = seaweedEntries;
47
+ updateOrderQuery();
48
+ }
49
+ };
50
+ };
51
+ const swapEntry = (index: number, group: EntryGroup, shouldDecrement: boolean): (() => void) => {
52
+ return () => {
53
+ let newIndex = index;
54
+ if (shouldDecrement && index >= 1) {
55
+ newIndex--;
56
+ } else if (!shouldDecrement && index <= group.items.length - 2) {
57
+ newIndex++;
58
+ } else {
59
+ return;
60
+ }
61
+
62
+ const tempVar = group.items[newIndex];
63
+ group.items[newIndex] = group.items[index];
64
+ group.items[index] = tempVar;
65
+ seaweedEntries = seaweedEntries;
66
+ updateOrderQuery();
67
+ };
68
+ };
69
+ const swapGroups = (index: number, shouldDecrement: boolean): (() => void) => {
70
+ return () => {
71
+ let newIndex = index;
72
+ if (shouldDecrement && index >= 1) {
73
+ newIndex--;
74
+ } else if (!shouldDecrement && index <= seaweedEntries.length - 2) {
75
+ newIndex++;
76
+ } else {
77
+ return;
78
+ }
79
+
80
+ const tempVar = seaweedEntries[newIndex];
81
+ seaweedEntries[newIndex] = seaweedEntries[index];
82
+ seaweedEntries[index] = tempVar;
83
+ seaweedEntries = seaweedEntries;
84
+ updateOrderQuery();
85
+ };
86
+ };
87
+
88
+ // todo: add group; we might not need it now
89
+ // const addGroup = (group: EntryGroup): (() => void) => {
90
+ // return () => {
91
+ // seaweedEntries.push({
92
+ // name: "",
93
+ // items: [],
94
+ // gridClass: GroupGridClass.Projects.toString()
95
+ // });
96
+ // updateOrderQuery();
97
+ // };
98
+ // };
99
+
100
+ const removeGroup = (group: EntryGroup): (() => void) => {
101
+ return () => {
102
+ const index = seaweedEntries.indexOf(group);
103
+ if (index === -1) {
104
+ return;
105
+ }
106
+
107
+ seaweedEntries.splice(index, 1);
108
+ seaweedEntries = seaweedEntries;
109
+ updateOrderQuery();
110
+ };
111
+ };
112
+ const removeEntry = (entry: ComponentMeta, group: EntryGroup): (() => void) => {
113
+ return () => {
114
+ for (let i = group.items.length - 1; i >= 0; i--) {
115
+ if (group.items[i].name === entry.name) {
116
+ group.items.splice(i, 1);
117
+ seaweedEntries = seaweedEntries;
118
+ updateOrderQuery();
119
+ break;
120
+ }
121
+ }
122
+ };
123
+ };
124
+
125
+ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
91
126
  </script>
92
127
 
93
128
  <br>
@@ -103,21 +138,21 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
103
138
  {#each seaweedEntries as group, groupIndex}
104
139
  <div class="entry-group card">
105
140
 
106
- <div class="btn-group-header">
141
+ <div class="-header">
107
142
  <button title={`Remove ${group.name}`}
108
- on:click={removeGroup(group)}>
143
+ onclick={removeGroup(group)}>
109
144
  <img class="img-icon" src={CloseIcon} alt={`Remove ${group.name}`}>
110
145
  </button>
111
146
 
112
147
  <button title={`Move group ${group.name} upwards`}
113
- on:click={swapGroups(groupIndex, true)}
148
+ onclick={swapGroups(groupIndex, true)}
114
149
  disabled="{groupIndex === 0}">
115
150
  <img class="img-icon" src={UpwardIcon} alt={`Move group ${group.name} upwards`}>
116
151
  </button>
117
152
 
118
153
  <button title={`Move group ${group.name} downwards`}
119
154
  disabled={groupIndex === seaweedEntries.length - 1}
120
- on:click={swapGroups(groupIndex, false)}>
155
+ onclick={swapGroups(groupIndex, false)}>
121
156
  <img class="img-icon flipped-vertically" src={UpwardIcon} alt={`Move group ${group.name} downwards`}>
122
157
  </button>
123
158
 
@@ -133,22 +168,22 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
133
168
  <tbody>
134
169
  {#each group.items as entry, entryIndex}
135
170
  <tr class="entry-row">
136
- <td class="btn-group-entry">
171
+ <td class="-entry">
137
172
 
138
173
  <button title={`Remove ${entry.name}`}
139
- on:click={removeEntry(entry, group)}>
174
+ onclick={removeEntry(entry, group)}>
140
175
  <img class="img-icon" src={CloseIcon} alt={`Remove ${entry.name}`}>
141
176
  </button>
142
177
 
143
178
  <button title={`Move ${entry.name} upwards`}
144
- on:click={swapEntry(entryIndex, group, true)}
179
+ onclick={swapEntry(entryIndex, group, true)}
145
180
  disabled="{entryIndex === 0}">
146
181
  <img class="img-icon" src={UpwardIcon} alt={`Move ${entry.name} upwards`}>
147
182
  </button>
148
183
 
149
184
  <button title={`Move ${entry.name} downwards`}
150
185
  disabled={entryIndex === group.items.length - 1}
151
- on:click={swapEntry(entryIndex, group, false)}>
186
+ onclick={swapEntry(entryIndex, group, false)}>
152
187
  <img class="img-icon flipped-vertically" src={UpwardIcon} alt={`Move ${entry.name} downwards`}>
153
188
  </button>
154
189
  <div class="entry-name">
@@ -180,173 +215,15 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
180
215
  flex-direction: column;
181
216
  }
182
217
 
183
- :is(.dark .btn-group-header) {
184
- --tw-bg-opacity: 1;
185
- background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
186
- color: rgb(var(--on-tertiary));
187
- }
188
-
189
- .btn-group-header > *:disabled {
190
- cursor: not-allowed;
191
- opacity: 0.5;
192
- }
193
-
194
- .btn-group-header > *:disabled:hover {
195
- --tw-brightness: brightness(1);
196
- 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);
197
- }
198
-
199
- .btn-group-header > *:disabled:active {
200
- --tw-scale-x: 1;
201
- --tw-scale-y: 1;
202
- 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));
203
- }
204
-
205
- .btn-group-header {
206
- display: inline-flex;
207
- flex-direction: row;
208
- overflow: hidden;
209
- border-radius: var(--theme-rounded-base);
210
- isolation: isolate;
211
- }
212
-
213
- .btn-group-header > :not([hidden]) ~ :not([hidden]) {
214
- --tw-space-x-reverse: 0;
215
- margin-right: calc(0px * var(--tw-space-x-reverse));
216
- margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));
217
- }
218
-
219
- .btn-group-header button,.btn-group-header a {
220
- font-size: 1rem;
221
- line-height: 1.5rem;
222
- padding-left: 1.25rem;
223
- padding-right: 1.25rem;
224
- padding-top: 9px;
225
- padding-bottom: 9px;
226
- white-space: nowrap;
227
- text-align: center;
228
- display: inline-flex;
229
- align-items: center;
230
- justify-content: center;
231
- transition-property: all;
232
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
233
- transition-duration: 150ms;
234
- color: inherit;
235
- text-decoration-line: none;
236
- }
237
-
238
- .btn-group-header button > :not([hidden]) ~ :not([hidden]),.btn-group-header a > :not([hidden]) ~ :not([hidden]) {
239
- --tw-space-x-reverse: 0;
240
- margin-right: calc(0.5rem * var(--tw-space-x-reverse));
241
- margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
242
- }
243
-
244
- .btn-group-header button:hover,.btn-group-header a:hover {
245
- --tw-brightness: brightness(1.15);
246
- 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);
247
- background-color: rgb(var(--color-surface-50) / 3%);
248
- }
249
-
250
- .btn-group-header button:active,.btn-group-header a:active {
251
- background-color: rgb(var(--color-surface-900) / 3%);
252
- }
253
-
254
- .btn-group-header > * + * {
255
- border-top-width: 0px;
256
- border-left-width: 1px;
257
- border-color: rgb(var(--color-surface-500) / 0.2);
258
- }
259
-
260
- .btn-group-header {
261
- --tw-bg-opacity: 1;
262
- background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
263
- color: rgb(var(--on-tertiary));
264
- }
265
-
266
- :is(.dark .btn-group-header) {
267
- --tw-bg-opacity: 1;
268
- background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
269
- color: rgb(var(--on-tertiary));
270
- }
271
-
272
218
  .btn-group-header {
219
+ @apply preset-filled-tertiary-500;
273
220
  display: flex;
274
221
  align-items: center;
275
222
  margin-bottom: 0.5lh;
276
223
  }
277
224
 
278
- .btn-group-entry > *:disabled {
279
- cursor: not-allowed;
280
- opacity: 0.5;
281
- }
282
-
283
- .btn-group-entry > *:disabled:hover {
284
- --tw-brightness: brightness(1);
285
- 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);
286
- }
287
-
288
- .btn-group-entry > *:disabled:active {
289
- --tw-scale-x: 1;
290
- --tw-scale-y: 1;
291
- 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));
292
- }
293
-
294
- .btn-group-entry {
295
- display: inline-flex;
296
- flex-direction: row;
297
- overflow: hidden;
298
- border-radius: var(--theme-rounded-base);
299
- isolation: isolate;
300
- }
301
-
302
- .btn-group-entry > :not([hidden]) ~ :not([hidden]) {
303
- --tw-space-x-reverse: 0;
304
- margin-right: calc(0px * var(--tw-space-x-reverse));
305
- margin-left: calc(0px * calc(1 - var(--tw-space-x-reverse)));
306
- }
307
-
308
- .btn-group-entry button,.btn-group-entry a {
309
- font-size: 1rem;
310
- line-height: 1.5rem;
311
- padding-left: 1.25rem;
312
- padding-right: 1.25rem;
313
- padding-top: 9px;
314
- padding-bottom: 9px;
315
- white-space: nowrap;
316
- text-align: center;
317
- display: inline-flex;
318
- align-items: center;
319
- justify-content: center;
320
- transition-property: all;
321
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
322
- transition-duration: 150ms;
323
- color: inherit;
324
- text-decoration-line: none;
325
- }
326
-
327
- .btn-group-entry button > :not([hidden]) ~ :not([hidden]),.btn-group-entry a > :not([hidden]) ~ :not([hidden]) {
328
- --tw-space-x-reverse: 0;
329
- margin-right: calc(0.5rem * var(--tw-space-x-reverse));
330
- margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
331
- }
332
-
333
- .btn-group-entry button:hover,.btn-group-entry a:hover {
334
- --tw-brightness: brightness(1.15);
335
- 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);
336
- background-color: rgb(var(--color-surface-50) / 3%);
337
- }
338
-
339
- .btn-group-entry button:active,.btn-group-entry a:active {
340
- background-color: rgb(var(--color-surface-900) / 3%);
341
- }
342
-
343
- .btn-group-entry > * + * {
344
- border-top-width: 0px;
345
- border-left-width: 1px;
346
- border-color: rgb(var(--color-surface-500) / 0.2);
347
- }
348
-
349
225
  .btn-group-entry {
226
+ @apply ;
350
227
  display: flex;
351
228
  padding: 0;
352
229
  }
@@ -373,7 +250,7 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
373
250
  }
374
251
 
375
252
  .entry-name {
376
- flex-grow: 1;
253
+ grow: 1;
377
254
  }
378
255
 
379
256
  tr, td, th {
@@ -1,23 +1,13 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import { type ComponentMeta, type EntryGroup, type SeaweedTemplateData } from "../SeaweedTemplateData";
3
2
  import "./entry-order-config.postcss";
4
- declare const __propDef: {
5
- props: {
6
- seaweedTemplateData: SeaweedTemplateData;
7
- seaweedEntries: EntryGroup[];
8
- orderUrl: string;
9
- updateUrl: (data: SeaweedTemplateData) => void;
10
- getAllEntryFromGlobal: () => Map<string, ComponentMeta>;
11
- getEntryFromGlobal: (s: string) => ComponentMeta | undefined;
12
- };
13
- events: {
14
- [evt: string]: CustomEvent<any>;
15
- };
16
- slots: {};
17
- };
18
- export type EntryOrderConfigProps = typeof __propDef.props;
19
- export type EntryOrderConfigEvents = typeof __propDef.events;
20
- export type EntryOrderConfigSlots = typeof __propDef.slots;
21
- export default class EntryOrderConfig extends SvelteComponent<EntryOrderConfigProps, EntryOrderConfigEvents, EntryOrderConfigSlots> {
3
+ interface Props {
4
+ seaweedTemplateData: SeaweedTemplateData;
5
+ seaweedEntries: EntryGroup[];
6
+ orderUrl: string;
7
+ updateUrl: (data: SeaweedTemplateData) => void;
8
+ getAllEntryFromGlobal: () => Map<string, ComponentMeta>;
9
+ getEntryFromGlobal: (s: string) => ComponentMeta | undefined;
22
10
  }
23
- export {};
11
+ declare const EntryOrderConfig: import("svelte").Component<Props, {}, "seaweedEntries" | "orderUrl">;
12
+ type EntryOrderConfig = ReturnType<typeof EntryOrderConfig>;
13
+ export default EntryOrderConfig;
@@ -7,14 +7,6 @@ main {
7
7
  align-items: center;
8
8
  }
9
9
 
10
- h1 {
11
- font-size: 2em;
12
- }
13
-
14
- h2 {
15
- font-size: 1.5em;
16
- }
17
-
18
10
  .section-card {
19
11
  padding: 3em;
20
12
  max-width: 800px;
@@ -45,7 +37,7 @@ h2 {
45
37
  }
46
38
 
47
39
  .game-button {
48
- @apply btn variant-filled-primary;
40
+ @apply btn preset-filled-primary-500;
49
41
  }
50
42
 
51
43
  .game-button > img {
@@ -1,5 +1,6 @@
1
1
  @tailwind variants;
2
2
 
3
+ /*todo: delete after all downstream works #migration*/
3
4
  :root {
4
5
  /* =~= Theme Properties =~= */
5
6
  --theme-font-family-base: system-ui;
@@ -111,7 +112,3 @@
111
112
  --color-text-800: 38 29 28; /* ⬅ #261d1c */
112
113
  --color-text-900: 31 24 23; /* ⬅ #1f1817 */
113
114
  }
114
-
115
- .app-shell-token {
116
- @apply bg-surface-600 dark:bg-surface-900;
117
- }
@@ -0,0 +1,47 @@
1
+ <script lang="ts">
2
+
3
+ import type { Snippet } from 'svelte';
4
+ import { PinyaCard, type PinyaCardProps } from '../elements';
5
+
6
+ interface Props extends PinyaCardProps {
7
+ headerCover?: Snippet;
8
+ header?: Snippet;
9
+ footer?: Snippet;
10
+ }
11
+
12
+ let {
13
+ children,
14
+ header,
15
+ footer,
16
+ headerCover,
17
+ paddingClass = '',
18
+ ...props
19
+ }: Props = $props();
20
+ </script>
21
+
22
+ <PinyaCard {...props} {paddingClass}>
23
+ <section class="mb-6">
24
+
25
+ {#if headerCover}
26
+ <section class="card-header-cover w-full">
27
+ {@render headerCover()}
28
+ </section>
29
+ {/if}
30
+
31
+ <section class="card-content pl-6 pr-6">
32
+ {#if header}
33
+ <section class="card-header mt-4 mb-4">
34
+ {@render header()}
35
+ </section>
36
+ {/if}
37
+
38
+ {@render children()}
39
+
40
+ {#if footer}
41
+ <section class="card-footer">
42
+ {@render footer()}
43
+ </section>
44
+ {/if}
45
+ </section>
46
+ </section>
47
+ </PinyaCard>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from 'svelte';
2
+ import { type PinyaCardProps } from '../elements';
3
+ interface Props extends PinyaCardProps {
4
+ headerCover?: Snippet;
5
+ header?: Snippet;
6
+ footer?: Snippet;
7
+ }
8
+ declare const FourPartCard: import("svelte").Component<Props, {}, "">;
9
+ type FourPartCard = ReturnType<typeof FourPartCard>;
10
+ export default FourPartCard;
@@ -0,0 +1,75 @@
1
+ <script lang="ts">
2
+ import { scale } from 'svelte/transition';
3
+ import { elasticOut } from 'svelte/easing';
4
+
5
+ import type { ModalProps } from 'svelte-modals';
6
+
7
+ import { onMount, type Snippet } from 'svelte';
8
+ import { PinyaCard } from '../elements';
9
+
10
+ // https://svelte-modals.mattjennin.gs/modal-components/props/#typescript
11
+ interface ModalBaseProps extends ModalProps {
12
+ children: Snippet,
13
+ }
14
+
15
+ let {
16
+ children,
17
+ isOpen,
18
+ close
19
+ }: ModalBaseProps = $props();
20
+
21
+ let container: HTMLDivElement;
22
+ onMount(() => {
23
+ const focusableElement = container.querySelector('input, select, textarea, button, object, a, area[href], [tabindex]');
24
+ if (focusableElement) {
25
+ (focusableElement as HTMLElement).focus();
26
+ }
27
+
28
+ document.addEventListener('keydown', (e) => {
29
+ if (e.code === 'Escape') {
30
+ close();
31
+ }
32
+ });
33
+ });
34
+ </script>
35
+
36
+ {#if isOpen}
37
+ <dialog aria-modal="true" in:scale|global={{
38
+ start: 0.95,
39
+ duration: 750,
40
+ easing: elasticOut,
41
+ opacity: 0.9
42
+ }}>
43
+ <div class="interactable" bind:this={container}>
44
+ <PinyaCard
45
+ widthClass="max-w-xl2"
46
+ paddingClass="pl-8 pr-8 pt-4 pb-8"
47
+ >
48
+ {@render children?.()}
49
+ </PinyaCard>
50
+ </div>
51
+ </dialog>
52
+ {/if}
53
+
54
+ <style>
55
+ dialog {
56
+ padding: 0;
57
+ background-color: transparent;
58
+ border-color: transparent;
59
+ z-index: 20;
60
+ position: fixed;
61
+ top: 0;
62
+ width: 100%;
63
+ height: 100%;
64
+ display: flex;
65
+ justify-content: center;
66
+ align-items: center;
67
+
68
+ /* allow click-through to backdrop */
69
+ pointer-events: none;
70
+ }
71
+
72
+ .interactable {
73
+ pointer-events: auto;
74
+ }
75
+ </style>
@@ -0,0 +1,8 @@
1
+ import type { ModalProps } from 'svelte-modals';
2
+ import { type Snippet } from 'svelte';
3
+ interface ModalBaseProps extends ModalProps {
4
+ children: Snippet;
5
+ }
6
+ declare const ModalBase: import("svelte").Component<ModalBaseProps, {}, "">;
7
+ type ModalBase = ReturnType<typeof ModalBase>;
8
+ export default ModalBase;