@turnipxenon/pineapple 2.10.0 → 3.0.0-alpha-3

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 (223) hide show
  1. package/dist/assets/icons/icon-check-dark-contrast.svg +1 -0
  2. package/dist/assets/icons/icon-check-light-contrast.svg +1 -0
  3. package/dist/assets/icons/icon-contrast.svg +1 -0
  4. package/dist/assets/icons/icon-copy-dark-contrast.svg +1 -0
  5. package/dist/assets/icons/icon-copy-light-contrast.svg +1 -0
  6. package/dist/assets/icons/icon-dark-mode.svg +1 -0
  7. package/dist/assets/icons/icon-light-mode.svg +1 -0
  8. package/dist/assets/icons/icon-settings.svg +1 -0
  9. package/dist/components/Card.svelte +43 -41
  10. package/dist/components/Card.svelte.d.ts +11 -24
  11. package/dist/components/CarouselElement.svelte +15 -8
  12. package/dist/components/CarouselElement.svelte.d.ts +7 -18
  13. package/dist/components/ElementVisbilityDetector.svelte +23 -14
  14. package/dist/components/ElementVisbilityDetector.svelte.d.ts +6 -17
  15. package/dist/components/LazyAsset.svelte +93 -65
  16. package/dist/components/LazyAsset.svelte.d.ts +9 -19
  17. package/dist/components/PineappleSlideToggle.svelte +28 -10
  18. package/dist/components/PineappleSlideToggle.svelte.d.ts +9 -19
  19. package/dist/components/RandomizedBackground.svelte +46 -27
  20. package/dist/components/RandomizedBackground.svelte.d.ts +5 -15
  21. package/dist/components/RandomizedImage.svelte +15 -8
  22. package/dist/components/RandomizedImage.svelte.d.ts +6 -16
  23. package/dist/components/StickyElement.svelte +25 -16
  24. package/dist/components/StickyElement.svelte.d.ts +6 -17
  25. package/dist/components/ToggleableContent.svelte +88 -59
  26. package/dist/components/ToggleableContent.svelte.d.ts +6 -17
  27. package/dist/components/blog_template/BlogTemplate.svelte +45 -25
  28. package/dist/components/blog_template/BlogTemplate.svelte.d.ts +9 -20
  29. package/dist/components/blog_template/BlogTemplateInner.svelte +11 -3
  30. package/dist/components/blog_template/BlogTemplateInner.svelte.d.ts +6 -17
  31. package/dist/components/chip/Chip.svelte +33 -57
  32. package/dist/components/chip/Chip.svelte.d.ts +7 -18
  33. package/dist/components/combo_box/ComboBox.svelte +10 -4
  34. package/dist/components/combo_box/ComboBox.svelte.d.ts +6 -16
  35. package/dist/components/combo_box/ComboBoxWithButton.svelte +16 -9
  36. package/dist/components/combo_box/ComboBoxWithButton.svelte.d.ts +7 -17
  37. package/dist/components/combo_box/combo-box.postcss +2 -2
  38. package/dist/components/dialog_manager/DialogManager.d.ts +0 -1
  39. package/dist/components/dialog_manager/DialogManagerStore.d.ts +0 -1
  40. package/dist/components/dialog_manager/DialogManagerStore.js +1 -1
  41. package/dist/components/dialog_overlay/DialogOverlay.svelte +42 -34
  42. package/dist/components/dialog_overlay/DialogOverlay.svelte.d.ts +3 -14
  43. package/dist/components/index.d.ts +1 -1
  44. package/dist/components/index.js +1 -1
  45. package/dist/components/layouts/SeaweedBaseLayout.svelte +80 -43
  46. package/dist/components/layouts/SeaweedBaseLayout.svelte.d.ts +8 -21
  47. package/dist/components/navigation_component/NavigationComponent.svelte +52 -141
  48. package/dist/components/navigation_component/NavigationComponent.svelte.d.ts +17 -26
  49. package/dist/components/navigation_component/NavigationControl.svelte +52 -103
  50. package/dist/components/navigation_component/NavigationControl.svelte.d.ts +7 -17
  51. package/dist/components/overrideable_meta/OverridableMeta.svelte +37 -22
  52. package/dist/components/overrideable_meta/OverridableMeta.svelte.d.ts +9 -19
  53. package/dist/components/pineapple/PineappleBaseLayout.svelte +132 -188
  54. package/dist/components/pineapple/PineappleBaseLayout.svelte.d.ts +6 -17
  55. package/dist/components/pineapple/toast/DefaultToastBody.svelte +14 -16
  56. package/dist/components/pineapple/toast/DefaultToastBody.svelte.d.ts +7 -17
  57. package/dist/components/pineapple/toast/Toast.d.ts +0 -1
  58. package/dist/components/pineapple/toast/Toast.svelte +92 -64
  59. package/dist/components/pineapple/toast/Toast.svelte.d.ts +3 -14
  60. package/dist/components/pineapple/toast/custom-toast/TestCustomToast.svelte.d.ts +22 -19
  61. package/dist/paraglide/messages/_index.d.ts +2 -0
  62. package/dist/paraglide/messages/_index.js +3 -0
  63. package/dist/paraglide/messages/example_message.d.ts +5 -0
  64. package/dist/paraglide/messages/example_message.js +39 -0
  65. package/dist/paraglide/messages/settings.d.ts +3 -0
  66. package/dist/paraglide/messages/settings.js +38 -0
  67. package/dist/paraglide/messages.d.ts +2 -0
  68. package/dist/paraglide/messages.js +4 -0
  69. package/dist/paraglide/registry.d.ts +21 -0
  70. package/dist/paraglide/registry.js +31 -0
  71. package/dist/paraglide/runtime.d.ts +400 -0
  72. package/dist/paraglide/runtime.js +1060 -0
  73. package/dist/paraglide/server.d.ts +64 -0
  74. package/dist/paraglide/server.js +161 -0
  75. package/dist/scripts/util/FileManagement.d.ts +1 -1
  76. package/dist/store.d.ts +0 -1
  77. package/dist/styles/app.css +144 -0
  78. package/dist/styles/turnip-theme.css +327 -0
  79. package/dist/template/seaweed/CreateUrlForm.svelte +59 -41
  80. package/dist/template/seaweed/CreateUrlForm.svelte.d.ts +8 -15
  81. package/dist/template/seaweed/SeaweedTemplate.svelte +244 -195
  82. package/dist/template/seaweed/SeaweedTemplate.svelte.d.ts +28 -25
  83. package/dist/template/seaweed/ToastSettings.d.ts +15 -0
  84. package/dist/template/seaweed/ToastSettings.js +1 -0
  85. package/dist/template/seaweed/entries/ChefWings.svelte +37 -39
  86. package/dist/template/seaweed/entries/ChefWings.svelte.d.ts +5 -15
  87. package/dist/template/seaweed/entries/CustomizedYarnspinner.svelte +32 -24
  88. package/dist/template/seaweed/entries/CustomizedYarnspinner.svelte.d.ts +5 -15
  89. package/dist/template/seaweed/entries/Hepcat.svelte +58 -49
  90. package/dist/template/seaweed/entries/Hepcat.svelte.d.ts +5 -15
  91. package/dist/template/seaweed/entries/Pengi.svelte +51 -43
  92. package/dist/template/seaweed/entries/Pengi.svelte.d.ts +5 -15
  93. package/dist/template/seaweed/entries/Soulwork.svelte +44 -36
  94. package/dist/template/seaweed/entries/Soulwork.svelte.d.ts +5 -15
  95. package/dist/template/seaweed/entries/ThisWebpage.svelte +47 -38
  96. package/dist/template/seaweed/entries/ThisWebpage.svelte.d.ts +5 -15
  97. package/dist/template/seaweed/entries/WorkExperience.svelte +109 -92
  98. package/dist/template/seaweed/entries/WorkExperience.svelte.d.ts +6 -16
  99. package/dist/template/seaweed/entries/Workset.svelte +51 -42
  100. package/dist/template/seaweed/entries/Workset.svelte.d.ts +5 -15
  101. package/dist/template/seaweed/entry_order_config/EntryOrderConfig.svelte +169 -259
  102. package/dist/template/seaweed/entry_order_config/EntryOrderConfig.svelte.d.ts +10 -21
  103. package/dist/template/seaweed/seaweed.postcss +1 -9
  104. package/dist/{theme.postcss → theme.css} +1 -4
  105. package/dist/ui/components/FourPartCard.svelte +47 -0
  106. package/dist/ui/components/FourPartCard.svelte.d.ts +10 -0
  107. package/dist/ui/components/ModalBase.svelte +75 -0
  108. package/dist/ui/components/ModalBase.svelte.d.ts +8 -0
  109. package/dist/ui/components/SocialSection.svelte +87 -0
  110. package/dist/ui/components/SocialSection.svelte.d.ts +9 -0
  111. package/dist/ui/components/index.d.ts +3 -0
  112. package/dist/ui/components/index.js +3 -0
  113. package/dist/ui/components/randomized-background/RandomizedBackground.svelte +87 -0
  114. package/dist/ui/components/randomized-background/RandomizedBackground.svelte.d.ts +6 -0
  115. package/dist/ui/components/randomized-background/RandomizedImage.svelte +42 -0
  116. package/dist/ui/components/randomized-background/RandomizedImage.svelte.d.ts +7 -0
  117. package/dist/ui/elements/CodeBlock/CodeBlock.svelte +65 -0
  118. package/dist/ui/elements/CodeBlock/CodeBlock.svelte.d.ts +5 -0
  119. package/dist/ui/elements/CodeBlock/CodeBlockProps.d.ts +11 -0
  120. package/dist/ui/elements/CodeBlock/CodeBlockProps.js +1 -0
  121. package/dist/ui/elements/CodeBlock/index.d.ts +2 -0
  122. package/dist/ui/elements/CodeBlock/index.js +2 -0
  123. package/dist/ui/elements/ColorScheme.d.ts +10 -0
  124. package/dist/ui/elements/ColorScheme.js +11 -0
  125. package/dist/ui/elements/GeneralUIProps.d.ts +12 -0
  126. package/dist/ui/elements/GeneralUIProps.js +1 -0
  127. package/dist/ui/elements/ImageIcon.svelte +54 -0
  128. package/dist/ui/elements/ImageIcon.svelte.d.ts +6 -0
  129. package/dist/ui/elements/OnBackground.d.ts +3 -0
  130. package/dist/ui/elements/OnBackground.js +4 -0
  131. package/dist/ui/elements/PineappleSwitch.svelte +29 -0
  132. package/dist/ui/elements/PineappleSwitch.svelte.d.ts +10 -0
  133. package/dist/ui/elements/TextLink.svelte +17 -0
  134. package/dist/ui/elements/TextLink.svelte.d.ts +8 -0
  135. package/dist/ui/elements/WrapperProps.d.ts +4 -0
  136. package/dist/ui/elements/WrapperProps.js +1 -0
  137. package/dist/ui/elements/index.d.ts +10 -0
  138. package/dist/ui/elements/index.js +10 -0
  139. package/dist/ui/elements/pinya-button/component.svelte +47 -0
  140. package/dist/ui/elements/pinya-button/component.svelte.d.ts +4 -0
  141. package/dist/ui/elements/pinya-button/index.d.ts +2 -0
  142. package/dist/ui/elements/pinya-button/index.js +2 -0
  143. package/dist/ui/elements/pinya-button/props.d.ts +13 -0
  144. package/dist/ui/elements/pinya-button/props.js +6 -0
  145. package/dist/ui/elements/pinya-card/component.svelte +21 -0
  146. package/dist/ui/elements/pinya-card/component.svelte.d.ts +7 -0
  147. package/dist/ui/elements/pinya-card/index.d.ts +2 -0
  148. package/dist/ui/elements/pinya-card/index.js +2 -0
  149. package/dist/ui/elements/pinya-card/props.d.ts +10 -0
  150. package/dist/ui/elements/pinya-card/props.js +1 -0
  151. package/dist/ui/elements/pinya-combobox/PinyaCombobox.svelte +35 -0
  152. package/dist/ui/elements/pinya-combobox/PinyaCombobox.svelte.d.ts +18 -0
  153. package/dist/ui/elements/pinya-combobox/PinyaComboboxProps.d.ts +18 -0
  154. package/dist/ui/elements/pinya-combobox/PinyaComboboxProps.js +1 -0
  155. package/dist/ui/elements/text-chip/TextChip.svelte +15 -0
  156. package/dist/ui/elements/text-chip/TextChip.svelte.d.ts +4 -0
  157. package/dist/ui/elements/text-chip/TextChipProps.d.ts +4 -0
  158. package/dist/ui/elements/text-chip/TextChipProps.js +1 -0
  159. package/dist/ui/elements/text-chip/index.d.ts +2 -0
  160. package/dist/ui/elements/text-chip/index.js +2 -0
  161. package/dist/ui/modules/index.d.ts +2 -0
  162. package/dist/ui/modules/index.js +2 -0
  163. package/dist/ui/modules/modals/general-settings/GeneralSettingsModal.svelte +110 -0
  164. package/dist/ui/modules/modals/general-settings/GeneralSettingsModal.svelte.d.ts +4 -0
  165. package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte +38 -0
  166. package/dist/ui/modules/modals/general-settings/LanguagePicker.svelte.d.ts +3 -0
  167. package/dist/ui/modules/projects/Hepcat.svelte +71 -0
  168. package/dist/ui/modules/projects/Hepcat.svelte.d.ts +22 -0
  169. package/dist/ui/modules/projects/Pengi.svelte +60 -0
  170. package/dist/ui/modules/projects/Pengi.svelte.d.ts +22 -0
  171. package/dist/ui/modules/projects/Soulwork.svelte +55 -0
  172. package/dist/ui/modules/projects/Soulwork.svelte.d.ts +22 -0
  173. package/dist/ui/modules/projects/ThisWebpage.svelte +62 -0
  174. package/dist/ui/modules/projects/ThisWebpage.svelte.d.ts +22 -0
  175. package/dist/ui/modules/projects/index.d.ts +4 -0
  176. package/dist/ui/modules/projects/index.js +4 -0
  177. package/dist/ui/modules/seaweed/ChumBucket.svelte +86 -0
  178. package/dist/ui/modules/seaweed/ChumBucket.svelte.d.ts +3 -0
  179. package/dist/ui/modules/seaweed/index.d.ts +3 -0
  180. package/dist/ui/modules/seaweed/index.js +4 -0
  181. package/dist/ui/templates/PinyaBase.svelte +48 -0
  182. package/dist/ui/templates/PinyaBase.svelte.d.ts +7 -0
  183. package/dist/ui/templates/confirmation-modal/component.svelte +47 -0
  184. package/dist/ui/templates/confirmation-modal/component.svelte.d.ts +4 -0
  185. package/dist/ui/templates/confirmation-modal/index.d.ts +2 -0
  186. package/dist/ui/templates/confirmation-modal/index.js +2 -0
  187. package/dist/ui/templates/confirmation-modal/props.d.ts +10 -0
  188. package/dist/ui/templates/confirmation-modal/props.js +1 -0
  189. package/dist/ui/templates/index.d.ts +4 -0
  190. package/dist/ui/templates/index.js +4 -0
  191. package/dist/ui/templates/pinya-page-layout/component.svelte +120 -0
  192. package/dist/ui/templates/pinya-page-layout/component.svelte.d.ts +9 -0
  193. package/dist/ui/templates/pinya-page-layout/index.d.ts +2 -0
  194. package/dist/ui/templates/pinya-page-layout/index.js +2 -0
  195. package/dist/ui/templates/pinya-page-layout/runes.svelte.d.ts +7 -0
  196. package/dist/ui/templates/pinya-page-layout/runes.svelte.js +3 -0
  197. package/dist/ui/templates/seaweed-layout/EntryGroup.svelte +89 -0
  198. package/dist/ui/templates/seaweed-layout/EntryGroup.svelte.d.ts +4 -0
  199. package/dist/ui/templates/seaweed-layout/EntryOrderConfig2.svelte +45 -0
  200. package/dist/ui/templates/seaweed-layout/EntryOrderConfig2.svelte.d.ts +9 -0
  201. package/dist/ui/templates/seaweed-layout/ProjectComponentProps.d.ts +4 -0
  202. package/dist/ui/templates/seaweed-layout/ProjectComponentProps.js +1 -0
  203. package/dist/ui/templates/seaweed-layout/ProjectGroupConfig.svelte +316 -0
  204. package/dist/ui/templates/seaweed-layout/ProjectGroupConfig.svelte.d.ts +14 -0
  205. package/dist/ui/templates/seaweed-layout/SeaweedLayout.md +4 -0
  206. package/dist/ui/templates/seaweed-layout/SeaweedLayout.svelte +196 -0
  207. package/dist/ui/templates/seaweed-layout/SeaweedLayout.svelte.d.ts +4 -0
  208. package/dist/ui/templates/seaweed-layout/index.d.ts +4 -0
  209. package/dist/ui/templates/seaweed-layout/index.js +4 -0
  210. package/dist/ui/templates/seaweed-layout/props.d.ts +25 -0
  211. package/dist/ui/templates/seaweed-layout/props.js +1 -0
  212. package/dist/util/util.d.ts +1 -0
  213. package/dist/util/util.js +9 -0
  214. package/package.json +37 -20
  215. package/src/lib/styles/app.css +144 -0
  216. package/src/lib/theme.css +114 -0
  217. package/dist/app.postcss +0 -212
  218. package/dist/components/SocialSection.svelte +0 -166
  219. package/dist/components/SocialSection.svelte.d.ts +0 -31
  220. package/dist/postcss.d.ts +0 -3
  221. package/dist/styles/DefaultGridContainer.css +0 -61
  222. package/dist/template/seaweed/ChumBucket.svelte +0 -87
  223. package/dist/template/seaweed/ChumBucket.svelte.d.ts +0 -14
@@ -1,93 +1,127 @@
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
+
12
+ interface Props {
13
+ seaweedTemplateData: SeaweedTemplateData;
14
+ seaweedEntries: EntryGroup[];
15
+ orderUrl: string;
16
+ updateUrl: (data: SeaweedTemplateData) => void;
17
+ getAllEntryFromGlobal: () => Map<string, ComponentMeta>;
18
+ getEntryFromGlobal: (s: string) => ComponentMeta | undefined;
19
+ }
20
+
21
+ let {
22
+ seaweedTemplateData,
23
+ seaweedEntries = $bindable(),
24
+ orderUrl = $bindable(),
25
+ updateUrl,
26
+ getAllEntryFromGlobal,
27
+ getEntryFromGlobal
28
+ }: Props = $props();
29
+
30
+ const updateOrderQuery = () => {
31
+ orderUrl = "order=" + seaweedEntries.map(g => {
32
+ const groupUrl = g.items.map(
33
+ e => removeProxyWrapperOnString(e.name)
34
+ ).join("|");
35
+ return `${g.name}:${groupUrl}:${g.gridClass}`;
36
+ }).join(",");
37
+ updateUrl(seaweedTemplateData);
38
+ };
39
+
40
+ const addEntry = (group: EntryGroup): ((selected: string) => void) => {
41
+ return (selected: string) => {
42
+ const c = getEntryFromGlobal(selected);
43
+ if (c) {
44
+ group.items.push(c);
45
+ seaweedEntries = seaweedEntries;
46
+ updateOrderQuery();
47
+ }
48
+ };
49
+ };
50
+ const swapEntry = (index: number, group: EntryGroup, shouldDecrement: boolean): (() => void) => {
51
+ return () => {
52
+ let newIndex = index;
53
+ if (shouldDecrement && index >= 1) {
54
+ newIndex--;
55
+ } else if (!shouldDecrement && index <= group.items.length - 2) {
56
+ newIndex++;
57
+ } else {
58
+ return;
59
+ }
60
+
61
+ const tempVar = group.items[newIndex];
62
+ group.items[newIndex] = group.items[index];
63
+ group.items[index] = tempVar;
64
+ seaweedEntries = seaweedEntries;
65
+ updateOrderQuery();
66
+ };
67
+ };
68
+ const swapGroups = (index: number, shouldDecrement: boolean): (() => void) => {
69
+ return () => {
70
+ let newIndex = index;
71
+ if (shouldDecrement && index >= 1) {
72
+ newIndex--;
73
+ } else if (!shouldDecrement && index <= seaweedEntries.length - 2) {
74
+ newIndex++;
75
+ } else {
76
+ return;
77
+ }
78
+
79
+ const tempVar = seaweedEntries[newIndex];
80
+ seaweedEntries[newIndex] = seaweedEntries[index];
81
+ seaweedEntries[index] = tempVar;
82
+ seaweedEntries = seaweedEntries;
83
+ updateOrderQuery();
84
+ };
85
+ };
86
+
87
+ // todo: add group; we might not need it now
88
+ // const addGroup = (group: EntryGroup): (() => void) => {
89
+ // return () => {
90
+ // seaweedEntries.push({
91
+ // name: "",
92
+ // items: [],
93
+ // gridClass: GroupGridClass.Projects.toString()
94
+ // });
95
+ // updateOrderQuery();
96
+ // };
97
+ // };
98
+
99
+ const removeGroup = (group: EntryGroup): (() => void) => {
100
+ return () => {
101
+ const index = seaweedEntries.indexOf(group);
102
+ if (index === -1) {
103
+ return;
104
+ }
105
+
106
+ seaweedEntries.splice(index, 1);
107
+ seaweedEntries = seaweedEntries;
108
+ updateOrderQuery();
109
+ };
110
+ };
111
+ const removeEntry = (entry: ComponentMeta, group: EntryGroup): (() => void) => {
112
+ return () => {
113
+ for (let i = group.items.length - 1; i >= 0; i--) {
114
+ if (group.items[i].name === entry.name) {
115
+ group.items.splice(i, 1);
116
+ seaweedEntries = seaweedEntries;
117
+ updateOrderQuery();
118
+ break;
119
+ }
120
+ }
121
+ };
122
+ };
123
+
124
+ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
91
125
  </script>
92
126
 
93
127
  <br>
@@ -103,21 +137,21 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
103
137
  {#each seaweedEntries as group, groupIndex}
104
138
  <div class="entry-group card">
105
139
 
106
- <div class="btn-group-header">
140
+ <div class="-header">
107
141
  <button title={`Remove ${group.name}`}
108
- on:click={removeGroup(group)}>
142
+ onclick={removeGroup(group)}>
109
143
  <img class="img-icon" src={CloseIcon} alt={`Remove ${group.name}`}>
110
144
  </button>
111
145
 
112
146
  <button title={`Move group ${group.name} upwards`}
113
- on:click={swapGroups(groupIndex, true)}
147
+ onclick={swapGroups(groupIndex, true)}
114
148
  disabled="{groupIndex === 0}">
115
149
  <img class="img-icon" src={UpwardIcon} alt={`Move group ${group.name} upwards`}>
116
150
  </button>
117
151
 
118
152
  <button title={`Move group ${group.name} downwards`}
119
153
  disabled={groupIndex === seaweedEntries.length - 1}
120
- on:click={swapGroups(groupIndex, false)}>
154
+ onclick={swapGroups(groupIndex, false)}>
121
155
  <img class="img-icon flipped-vertically" src={UpwardIcon} alt={`Move group ${group.name} downwards`}>
122
156
  </button>
123
157
 
@@ -133,22 +167,22 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
133
167
  <tbody>
134
168
  {#each group.items as entry, entryIndex}
135
169
  <tr class="entry-row">
136
- <td class="btn-group-entry">
170
+ <td class="-entry">
137
171
 
138
172
  <button title={`Remove ${entry.name}`}
139
- on:click={removeEntry(entry, group)}>
173
+ onclick={removeEntry(entry, group)}>
140
174
  <img class="img-icon" src={CloseIcon} alt={`Remove ${entry.name}`}>
141
175
  </button>
142
176
 
143
177
  <button title={`Move ${entry.name} upwards`}
144
- on:click={swapEntry(entryIndex, group, true)}
178
+ onclick={swapEntry(entryIndex, group, true)}
145
179
  disabled="{entryIndex === 0}">
146
180
  <img class="img-icon" src={UpwardIcon} alt={`Move ${entry.name} upwards`}>
147
181
  </button>
148
182
 
149
183
  <button title={`Move ${entry.name} downwards`}
150
184
  disabled={entryIndex === group.items.length - 1}
151
- on:click={swapEntry(entryIndex, group, false)}>
185
+ onclick={swapEntry(entryIndex, group, false)}>
152
186
  <img class="img-icon flipped-vertically" src={UpwardIcon} alt={`Move ${entry.name} downwards`}>
153
187
  </button>
154
188
  <div class="entry-name">
@@ -180,173 +214,15 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
180
214
  flex-direction: column;
181
215
  }
182
216
 
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
217
  .btn-group-header {
218
+ @apply preset-filled-tertiary-500;
273
219
  display: flex;
274
220
  align-items: center;
275
221
  margin-bottom: 0.5lh;
276
222
  }
277
223
 
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
224
  .btn-group-entry {
225
+ @apply ;
350
226
  display: flex;
351
227
  padding: 0;
352
228
  }
@@ -373,7 +249,7 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
373
249
  }
374
250
 
375
251
  .entry-name {
376
- flex-grow: 1;
252
+ grow: 1;
377
253
  }
378
254
 
379
255
  tr, td, th {
@@ -383,5 +259,39 @@ const allDefaultEntries = Array.from(getAllEntryFromGlobal().keys());
383
259
  tfoot > tr {
384
260
  display: flex;
385
261
  }
262
+ .btn-group > button {
263
+ padding: 0.3em 0.75em;
264
+ }
386
265
 
266
+ .btn-group-header > h2 {
267
+ font-weight: bolder;
268
+ padding-top: 1lh;
269
+ padding-bottom: 1lh;
270
+ margin-bottom: 0;
271
+ padding-inline-start: 1em;
272
+ }
273
+
274
+ .dark .btn-group-header > h2 {
275
+ color: rgb(var(--theme-font-color-dark));
276
+ }
277
+
278
+ .dark .entry-group {
279
+ background-color: rgb(var(--color-surface-800));
280
+ }
281
+
282
+ tbody tr:nth-child(odd) {
283
+ background-color: rgb(var(--color-surface-500));
284
+ }
285
+
286
+ .dark tbody tr:nth-child(odd) {
287
+ background-color: rgb(var(--color-surface-900));
288
+ }
289
+
290
+ tbody tr:nth-child(even) {
291
+ background-color: rgb(var(--color-surface-200));
292
+ }
293
+
294
+ .dark tbody tr:nth-child(even) {
295
+ background-color: rgb(var(--color-surface-800));
296
+ }
387
297
  </style>
@@ -1,23 +1,12 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import { type ComponentMeta, type EntryGroup, type SeaweedTemplateData } from "../SeaweedTemplateData";
3
- 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> {
2
+ interface Props {
3
+ seaweedTemplateData: SeaweedTemplateData;
4
+ seaweedEntries: EntryGroup[];
5
+ orderUrl: string;
6
+ updateUrl: (data: SeaweedTemplateData) => void;
7
+ getAllEntryFromGlobal: () => Map<string, ComponentMeta>;
8
+ getEntryFromGlobal: (s: string) => ComponentMeta | undefined;
22
9
  }
23
- export {};
10
+ declare const EntryOrderConfig: import("svelte").Component<Props, {}, "seaweedEntries" | "orderUrl">;
11
+ type EntryOrderConfig = ReturnType<typeof EntryOrderConfig>;
12
+ 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;