@turnipxenon/pineapple 2.4.21 → 2.4.23

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.
@@ -0,0 +1,118 @@
1
+ Index: src/lib/app.postcss
2
+ IDEA additional info:
3
+ Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
4
+ <+>@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@tailwind variants;\n\n/* (all other styles below) */\n\n/*place global styles here */\n:root {\n --default-card-max-width: calc(4rem + 4rem + 40rem);\n}\n\nhtml, body {\n @apply h-full overflow-hidden;\n @apply bg-surface-400 dark:bg-surface-800;\n background-color: transparent;\n}\n\n/* font color */\nhtml, body {\n color: rgb(var(--theme-font-color-base));\n}\n\n.accordion-panel {\n color: rgb(var(--color-primary-1000));\n}\n\n.dark body,\n.dark .variant-filled-primary,\n.dark .turnip-button,\n.dark .turnip-button > span,\n.dark .accordion-panel,\n.dark button.accordion-control,\n.chip, .dark .chip {\n color: rgb(var(--theme-font-color-dark));\n}\n\n.turnip-button, .turnip-button > span, button.accordion-control {\n font-weight: bold;\n color: rgb(var(--theme-font-color-base));\n}\n\n/* todo: add some hues to the icon that should be in sync with primary and make them not pure darkness */\n.turnip-button > img, .img-icon {\n filter: grayscale(100%) brightness(0%) invert(25%);\n}\n\n.dark .turnip-button > img, .dark .img-icon {\n filter: grayscale(100%) brightness(0%) invert(100%);\n}\n\n/*\n\n//for reference left here\n\n.bg-surface-custom-token {\n @apply bg-surface-200 dark:bg-surface-700;\n}\n\n.app-bar {\n @apply bg-surface-custom-token;\n}\n*/\n\n.default-card {\n padding: 2em;\n text-align: start;\n max-width: var(--default-card-max-width);\n}\n\nh1,\nh2,\np {\n margin-bottom: 0.5em;\n}\n\nul {\n list-style-type: circle;\n padding-left: 1em;\n}\n\n.default-page-container {\n @apply flex justify-center items-center;\n margin-top: 4em;\n margin-left: 1em;\n margin-right: 1em;\n flex-direction: column;\n z-index: 0;\n}\n\n.footer-space {\n width: 100%;\n height: calc(var(--dialog-box-height) + 4em);\n}\n\na.dialog-choice {\n cursor: url(\"$pkg/assets/icons/chat-cursor.svg\"), auto;\n}\n\na.external-link {\n cursor: url(\"$pkg/assets/icons/external-link.svg\"), auto;\n}\n\nblockquote {\n font-style: italic;\n opacity: 60%;\n font-weight: bold;\n}\n\n/* todo: add --tw-text-opacity division to add ambience based on bg better */\na {\n text-decoration: underline;\n color: rgb(var(--color-secondary-500));\n}\n\na:hover, a:hover:visited {\n color: rgb(var(--color-secondary-400));\n}\n\na:visited {\n color: rgb(var(--color-secondary-800));\n}\n\na:active {\n color: rgb(var(--color-secondary-350));\n}\n\n.dark a {\n text-decoration: underline;\n color: rgb(var(--color-secondary-300));\n}\n\n.dark a:hover, .dark a:hover:visited {\n color: rgb(var(--color-secondary-200));\n}\n\n.dark a:visited {\n color: rgb(var(--color-secondary-350));\n}\n\n.dark a:active {\n color: rgb(var(--color-secondary-100));\n}\n\n/* region Accordion css for handling missing styles in package */\n.accordion {\n @apply variant-filled-primary rounded-md;\n}\n\n.accordion-control {\n @apply hover:bg-surface-hover-token;\n}\n\n.accordion-item {\n @apply variant-filled-primary rounded-md;\n}\n\n/* endregion Accordion css for handling missing styles in package */\n\n:root {\n --shadow-color: rgba(91, 79, 54, 0.5);\n}\n\n/* todo: adjust shadow for each component + change depending on dark mode or not */\n.fab, #shell-header {\n box-shadow: 3px 3px 3px var(--shadow-color);\n}\n\n#toast-progress {\n position: relative;\n top: 5px;\n left: 6px;\n width: calc(100% - 12px);\n border-radius: 8px;\n background: transparent;\n height: 10px;\n}\n\n#toast-progress::-moz-progress-bar {\n /*background-color: red;*/\n background: rgba(var(--color-secondary-500));\n}\n\n.dialog-box {\n background-color: rgb(var(--color-surface-500) / 0.9);\n position: fixed;\n bottom: 0;\n width: var(--dialog-box-width); /*75em + 4em padding*/\n height: var(--dialog-box-height);\n max-width: calc(100vw - ((var(--fab-margin) * 2) + 4em));\n}\n\n.dark .dialog-box {\n background-color: rgb(var(--color-surface-900) / 0.95);\n --tw-ring-color: rgb(var(--color-text-400));\n /*background-color: red;*/\n}\n\n.dark .ares-logo {\n filter: invert(100%);\n}\n
5
+ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
6
+ <+>UTF-8
7
+ ===================================================================
8
+ diff --git a/src/lib/app.postcss b/src/lib/app.postcss
9
+ --- a/src/lib/app.postcss (revision 6a23be06c0482005bd0be5fdcf6f94083ed08c64)
10
+ +++ b/src/lib/app.postcss (date 1711101285355)
11
+ @@ -49,6 +49,10 @@
12
+ filter: grayscale(100%) brightness(0%) invert(100%);
13
+ }
14
+
15
+ +button {
16
+ + color: var(--color-text-50);
17
+ +}
18
+ +
19
+ /*
20
+
21
+ //for reference left here
22
+ Index: src/routes/(pineapple)/+page.svelte
23
+ IDEA additional info:
24
+ Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
25
+ <+><script>\n\timport { PUBLIC_CRINGE_USERNAME } from \"$env/static/public\";\n\n\n\timport { createGoToFunction } from \"$pkg/util/util\";\n\timport { Card } from \"$pkg\";\n</script>\n\n<svelte:head>\n\t<title>Welcome to {PUBLIC_CRINGE_USERNAME}'s Home</title>\n\t<meta content=\"Welcome to {PUBLIC_CRINGE_USERNAME}'s Home\" name=\"og:title\" />\n\t<meta\n\t\tcontent=\"Welcome to {PUBLIC_CRINGE_USERNAME}'s home! It's a neat place to be at if you're feeling lost. Come hang around!\"\n\t\tname=\"og:description\"\n\t/>\n</svelte:head>\n\n<Card>\n\t<div slot=\"content\" class=\"content\">\n\t\t<h1 class=\"mb-8\" style=\"font-weight: bolder\">Directory</h1>\n\n\t\t<div class=\"btn-group\">\n\t\t\t<button on:click={createGoToFunction(\"pineapple\")}><h2>Pineapple playground</h2></button>\n\t\t\t<button on:click={createGoToFunction(\"portfolio\")}><h2>Seaweed playrground</h2></button>\n\t\t</div>\n\t</div>\n</Card>\n\n<style lang=\"postcss\">\n .btn-group {\n padding: 2em;\n\t\t display: flex;\n\t\t gap: 2em;\n\t\t flex-direction: column;\n\n }\n\n button {\n\t\t @apply btn variant-filled-secondary;\n }\n\n .content {\n padding: 2em;\n text-align: center;\n }\n</style>\n
26
+ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
27
+ <+>UTF-8
28
+ ===================================================================
29
+ diff --git a/src/routes/(pineapple)/+page.svelte b/src/routes/(pineapple)/+page.svelte
30
+ --- a/src/routes/(pineapple)/+page.svelte (revision 6a23be06c0482005bd0be5fdcf6f94083ed08c64)
31
+ +++ b/src/routes/(pineapple)/+page.svelte (date 1711101419454)
32
+ @@ -19,24 +19,23 @@
33
+ <div slot="content" class="content">
34
+ <h1 class="mb-8" style="font-weight: bolder">Directory</h1>
35
+
36
+ - <div class="btn-group">
37
+ + <div class="turnip-menu">
38
+ <button on:click={createGoToFunction("pineapple")}><h2>Pineapple playground</h2></button>
39
+ - <button on:click={createGoToFunction("portfolio")}><h2>Seaweed playrground</h2></button>
40
+ + <button on:click={createGoToFunction("portfolio")}><h2>Seaweed playground</h2></button>
41
+ </div>
42
+ </div>
43
+ </Card>
44
+
45
+ <style lang="postcss">
46
+ - .btn-group {
47
+ + .turnip-menu {
48
+ padding: 2em;
49
+ - display: flex;
50
+ - gap: 2em;
51
+ - flex-direction: column;
52
+ -
53
+ + display: flex;
54
+ + gap: 2em;
55
+ + flex-direction: column;
56
+ }
57
+
58
+ button {
59
+ - @apply btn variant-filled-secondary;
60
+ + @apply btn variant-filled-secondary;
61
+ }
62
+
63
+ .content {
64
+ Index: src/routes/(pineapple)/pineapple/+page.svelte
65
+ IDEA additional info:
66
+ Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP
67
+ <+><script lang=\"ts\">\n\timport { PUBLIC_CRINGE_USERNAME } from \"$env/static/public\";\n\timport { showComponentInToast, showTextInToast } from \"$pkg/components/pineapple/toast/Toast\";\n\timport TestCard from \"$pkg/components/pineapple/toast/custom-toast/TestCustomToast.svelte\";\n\timport TestDialogYarn from \"./TestDialog.yarn?raw\";\n\timport { dialogManager } from \"$pkg\";\n\n\n\tlet testingQueueNumber = 1;\n\tconst testingRandomPhrases = [\n\t\t\"Niko\",\n\t\t\"Niko the Baikal seal\",\n\t\t\"Niko the Baikal seal\\nfrom Toba Aquarium\"\n\t];\n\tconst testDialogYarn = TestDialogYarn;\n\n\tlet parsed = false;\n\tconst onTestDialogClick = () => {\n\t\tif (!parsed) {\n\t\t\tdialogManager.parseAndSetDialogTree(testDialogYarn).then(() => {\n\t\t\t\tdialogManager.toggleDialogOverlay();\n\t\t\t});\n\t\t\tparsed = true;\n\t\t} else {\n\t\t\tdialogManager.toggleDialogOverlay();\n\t\t}\n\t};\n</script>\n\n<svelte:head>\n\t<title>Welcome to {PUBLIC_CRINGE_USERNAME}'s Home</title>\n\t<meta content=\"Welcome to {PUBLIC_CRINGE_USERNAME}'s Home\" name=\"og:title\" />\n\t<meta\n\t\tcontent=\"Welcome to {PUBLIC_CRINGE_USERNAME}'s home! It's a neat place to be at if you're feeling lost. Come hang around!\"\n\t\tname=\"og:description\"\n\t/>\n</svelte:head>\n\n<div class=\"card default-card\">\n\t<button\n\t\tclass=\"btn variant-filled-secondary\"\n\t\ton:click={() => {\n\t\t\tshowComponentInToast({componentAndProps: {component: TestCard, props: undefined}});\n\t\t}}><h3>Test custom toast</h3></button>\n\t<button\n\t\tclass=\"btn variant-filled-secondary\"\n\t\ton:click={() => {\n\t\t\tshowTextInToast(`${testingQueueNumber} ${testingRandomPhrases[testingQueueNumber]}`);\n\t\t\ttestingQueueNumber = (testingQueueNumber + 1) % testingRandomPhrases.length;\n\t\t}}><h3>Handy toast</h3></button>\n\t<button\n\t\tclass=\"btn variant-filled-secondary\"\n\t\ton:click={onTestDialogClick}><h3>Test dialog</h3></button>\n</div>\n\n<style lang=\"postcss\">\n .default-card {\n display: flex;\n flex-wrap: wrap;\n gap: 2em;\n }\n</style>\n
68
+ Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
69
+ <+>UTF-8
70
+ ===================================================================
71
+ diff --git a/src/routes/(pineapple)/pineapple/+page.svelte b/src/routes/(pineapple)/pineapple/+page.svelte
72
+ --- a/src/routes/(pineapple)/pineapple/+page.svelte (revision 6a23be06c0482005bd0be5fdcf6f94083ed08c64)
73
+ +++ b/src/routes/(pineapple)/pineapple/+page.svelte (date 1711101466055)
74
+ @@ -3,7 +3,7 @@
75
+ import { showComponentInToast, showTextInToast } from "$pkg/components/pineapple/toast/Toast";
76
+ import TestCard from "$pkg/components/pineapple/toast/custom-toast/TestCustomToast.svelte";
77
+ import TestDialogYarn from "./TestDialog.yarn?raw";
78
+ - import { dialogManager } from "$pkg";
79
+ + import { Card, dialogManager } from "$pkg";
80
+
81
+
82
+ let testingQueueNumber = 1;
83
+ @@ -36,22 +36,24 @@
84
+ />
85
+ </svelte:head>
86
+
87
+ -<div class="card default-card">
88
+ - <button
89
+ - class="btn variant-filled-secondary"
90
+ - on:click={() => {
91
+ +<Card>
92
+ + <div slot="content" class="default-card">
93
+ + <button
94
+ + class="btn variant-filled-secondary"
95
+ + on:click={() => {
96
+ showComponentInToast({componentAndProps: {component: TestCard, props: undefined}});
97
+ }}><h3>Test custom toast</h3></button>
98
+ - <button
99
+ - class="btn variant-filled-secondary"
100
+ - on:click={() => {
101
+ + <button
102
+ + class="btn variant-filled-secondary"
103
+ + on:click={() => {
104
+ showTextInToast(`${testingQueueNumber} ${testingRandomPhrases[testingQueueNumber]}`);
105
+ testingQueueNumber = (testingQueueNumber + 1) % testingRandomPhrases.length;
106
+ }}><h3>Handy toast</h3></button>
107
+ - <button
108
+ - class="btn variant-filled-secondary"
109
+ - on:click={onTestDialogClick}><h3>Test dialog</h3></button>
110
+ -</div>
111
+ + <button
112
+ + class="btn variant-filled-secondary"
113
+ + on:click={onTestDialogClick}><h3>Test dialog</h3></button>
114
+ + </div>
115
+ +</Card>
116
+
117
+ <style lang="postcss">
118
+ .default-card {
@@ -0,0 +1,4 @@
1
+ <changelist name="Changes" date="1711101484346" recycled="false">
2
+ <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Changes/shelved.patch" />
3
+ <option name="DESCRIPTION" value="Changes" />
4
+ </changelist>
@@ -4,13 +4,8 @@
4
4
  <option name="autoReloadType" value="SELECTIVE" />
5
5
  </component>
6
6
  <component name="ChangeListManager">
7
- <list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="Fix breadcrumb layout">
8
- <change afterPath="$PROJECT_DIR$/src/routes/(pineapple)/about/+layout.server.ts" afterDir="false" />
9
- <change afterPath="$PROJECT_DIR$/src/routes/(pineapple)/about/+page.svelte" afterDir="false" />
10
- <change afterPath="$PROJECT_DIR$/src/routes/(pineapple)/about/About.yarn" afterDir="false" />
11
- <change afterPath="$PROJECT_DIR$/src/routes/(pineapple)/about/AboutYarn.ts" afterDir="false" />
12
- <change beforePath="$PROJECT_DIR$/src/lib/app.postcss" beforeDir="false" afterPath="$PROJECT_DIR$/src/lib/app.postcss" afterDir="false" />
13
- <change beforePath="$PROJECT_DIR$/src/lib/components/pineapple/PineappleBaseLayout.svelte" beforeDir="false" afterPath="$PROJECT_DIR$/src/lib/components/pineapple/PineappleBaseLayout.svelte" afterDir="false" />
7
+ <list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="Add external link warning stub">
8
+ <change beforePath="$PROJECT_DIR$/src/lib/util/util.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/lib/util/util.ts" afterDir="false" />
14
9
  </list>
15
10
  <option name="SHOW_DIALOG" value="false" />
16
11
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -47,7 +42,7 @@
47
42
  <component name="Git.Settings">
48
43
  <option name="RECENT_BRANCH_BY_REPOSITORY">
49
44
  <map>
50
- <entry key="$PROJECT_DIR$" value="main" />
45
+ <entry key="$PROJECT_DIR$" value="6a23be06c0482005bd0be5fdcf6f94083ed08c64" />
51
46
  </map>
52
47
  </option>
53
48
  <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -81,39 +76,39 @@
81
76
  <option name="hideEmptyMiddlePackages" value="true" />
82
77
  <option name="showLibraryContents" value="true" />
83
78
  </component>
84
- <component name="PropertiesComponent"><![CDATA[{
85
- "keyToString": {
86
- "DefaultHtmlFileTemplate": "HTML File",
87
- "RunOnceActivity.OpenProjectViewOnStart": "true",
88
- "RunOnceActivity.ShowReadmeOnStart": "true",
89
- "WebServerToolWindowFactoryState": "false",
90
- "git-widget-placeholder": "turnip/dev",
91
- "ignore.virus.scanning.warn.message": "true",
92
- "last_opened_file_path": "C:/Users/Pumpkin/Projects/Web/pineapple/src/routes/(pineapple)/about",
93
- "node.js.detected.package.eslint": "true",
94
- "node.js.detected.package.tslint": "true",
95
- "node.js.selected.package.eslint": "(autodetect)",
96
- "node.js.selected.package.tslint": "(autodetect)",
97
- "nodejs_interpreter_path": "node",
98
- "nodejs_package_manager_path": "yarn",
99
- "npm.build.executor": "Run",
100
- "npm.dev (1).executor": "Run",
101
- "npm.dev --open.executor": "Run",
102
- "npm.dev offline.executor": "Run",
103
- "npm.dev-offline.executor": "Run",
104
- "npm.dev.executor": "Run",
105
- "settings.editor.selected.configurable": "preferences.pluginManager",
106
- "ts.external.directory.path": "C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib",
107
- "vue.rearranger.settings.migration": "true"
79
+ <component name="PropertiesComponent">{
80
+ &quot;keyToString&quot;: {
81
+ &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
82
+ &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
83
+ &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
84
+ &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
85
+ &quot;git-widget-placeholder&quot;: &quot;turnip/dev&quot;,
86
+ &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
87
+ &quot;last_opened_file_path&quot;: &quot;C:/Users/Pumpkin/Projects/Web/pineapple/src/lib/assets/placeholder&quot;,
88
+ &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
89
+ &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
90
+ &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
91
+ &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
92
+ &quot;nodejs_interpreter_path&quot;: &quot;node&quot;,
93
+ &quot;nodejs_package_manager_path&quot;: &quot;yarn&quot;,
94
+ &quot;npm.build.executor&quot;: &quot;Run&quot;,
95
+ &quot;npm.dev (1).executor&quot;: &quot;Run&quot;,
96
+ &quot;npm.dev --open.executor&quot;: &quot;Run&quot;,
97
+ &quot;npm.dev offline.executor&quot;: &quot;Run&quot;,
98
+ &quot;npm.dev-offline.executor&quot;: &quot;Run&quot;,
99
+ &quot;npm.dev.executor&quot;: &quot;Run&quot;,
100
+ &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
101
+ &quot;ts.external.directory.path&quot;: &quot;C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib&quot;,
102
+ &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
108
103
  }
109
- }]]></component>
104
+ }</component>
110
105
  <component name="RecentsManager">
111
106
  <key name="CopyFile.RECENT_KEYS">
107
+ <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\assets\placeholder" />
112
108
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\about" />
113
109
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\scripts\pineapple_fiber" />
114
110
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple" />
115
111
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\pineapple\toast\custom-toast" />
116
- <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\pineapple\toast" />
117
112
  </key>
118
113
  <key name="MoveFile.RECENT_KEYS">
119
114
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\about" />
@@ -154,10 +149,11 @@
154
149
  </list>
155
150
  <recent_temporary>
156
151
  <list>
157
- <item itemvalue="npm.dev --open" />
158
152
  <item itemvalue="npm.dev-offline" />
159
153
  <item itemvalue="npm.dev --open" />
154
+ <item itemvalue="npm.dev --open" />
160
155
  <item itemvalue="npm.dev-offline" />
156
+ <item itemvalue="npm.dev --open" />
161
157
  </list>
162
158
  </recent_temporary>
163
159
  </component>
@@ -218,31 +214,9 @@
218
214
  <workItem from="1710914868232" duration="41000" />
219
215
  <workItem from="1711051949931" duration="144000" />
220
216
  <workItem from="1711052377810" duration="128000" />
221
- <workItem from="1711090540281" duration="7097000" />
222
- </task>
223
- <task id="LOCAL-00033" summary="Finalize available content for portfolio">
224
- <option name="closed" value="true" />
225
- <created>1710007096175</created>
226
- <option name="number" value="00033" />
227
- <option name="presentableId" value="LOCAL-00033" />
228
- <option name="project" value="LOCAL" />
229
- <updated>1710007096175</updated>
230
- </task>
231
- <task id="LOCAL-00034" summary="Quick fix ares logo missing class">
232
- <option name="closed" value="true" />
233
- <created>1710007320331</created>
234
- <option name="number" value="00034" />
235
- <option name="presentableId" value="LOCAL-00034" />
236
- <option name="project" value="LOCAL" />
237
- <updated>1710007320331</updated>
238
- </task>
239
- <task id="LOCAL-00035" summary="Fix light-dark theming">
240
- <option name="closed" value="true" />
241
- <created>1710093358574</created>
242
- <option name="number" value="00035" />
243
- <option name="presentableId" value="LOCAL-00035" />
244
- <option name="project" value="LOCAL" />
245
- <updated>1710093358574</updated>
217
+ <workItem from="1711090540281" duration="11162000" />
218
+ <workItem from="1711104214619" duration="25000" />
219
+ <workItem from="1711108187279" duration="358000" />
246
220
  </task>
247
221
  <task id="LOCAL-00036" summary="Fix broken string width resolution">
248
222
  <option name="closed" value="true" />
@@ -612,7 +586,31 @@
612
586
  <option name="project" value="LOCAL" />
613
587
  <updated>1711096829327</updated>
614
588
  </task>
615
- <option name="localTasksCounter" value="82" />
589
+ <task id="LOCAL-00082" summary="Fix default card postcss style">
590
+ <option name="closed" value="true" />
591
+ <created>1711098795806</created>
592
+ <option name="number" value="00082" />
593
+ <option name="presentableId" value="LOCAL-00082" />
594
+ <option name="project" value="LOCAL" />
595
+ <updated>1711098795806</updated>
596
+ </task>
597
+ <task id="LOCAL-00083" summary="Adjust turnip fab button color">
598
+ <option name="closed" value="true" />
599
+ <created>1711101211481</created>
600
+ <option name="number" value="00083" />
601
+ <option name="presentableId" value="LOCAL-00083" />
602
+ <option name="project" value="LOCAL" />
603
+ <updated>1711101211481</updated>
604
+ </task>
605
+ <task id="LOCAL-00084" summary="Replace btn-group postcss class with turnip-menu&#10;&#10;There is postcss defined class called btn-group which has styles that have !important, which I accidentally used not knowing it exists, and it overrides whatever styles I apply on my class">
606
+ <option name="closed" value="true" />
607
+ <created>1711101645201</created>
608
+ <option name="number" value="00084" />
609
+ <option name="presentableId" value="LOCAL-00084" />
610
+ <option name="project" value="LOCAL" />
611
+ <updated>1711101645201</updated>
612
+ </task>
613
+ <option name="localTasksCounter" value="85" />
616
614
  <servers />
617
615
  </component>
618
616
  <component name="TypeScriptGeneratedFilesManager">
@@ -670,10 +668,6 @@
670
668
  </option>
671
669
  </component>
672
670
  <component name="VcsManagerConfiguration">
673
- <MESSAGE value="Change lib to pkg to prevent the references from breaking from downstream apps" />
674
- <MESSAGE value="Add data-nosnippet" />
675
- <MESSAGE value="Fix wrong link in migrante" />
676
- <MESSAGE value="Reorganize directories to make Pineapple as default layout but still overrideable by Seaweed" />
677
671
  <MESSAGE value="Improve text contrast" />
678
672
  <MESSAGE value="Improve text contrast in dark mode" />
679
673
  <MESSAGE value="Add animation to dynamically added button in social section" />
@@ -695,6 +689,10 @@
695
689
  <MESSAGE value="Refactor all util functions into util/util" />
696
690
  <MESSAGE value="v2.4.19" />
697
691
  <MESSAGE value="Fix breadcrumb layout" />
698
- <option name="LAST_COMMIT_MESSAGE" value="Fix breadcrumb layout" />
692
+ <MESSAGE value="Fix default card postcss style" />
693
+ <MESSAGE value="Adjust turnip fab button color" />
694
+ <MESSAGE value="Replace btn-group postcss class with turnip-menu&#10;&#10;There is postcss defined class called btn-group which has styles that have !important, which I accidentally used not knowing it exists, and it overrides whatever styles I apply on my class" />
695
+ <MESSAGE value="Add external link warning stub" />
696
+ <option name="LAST_COMMIT_MESSAGE" value="Add external link warning stub" />
699
697
  </component>
700
698
  </project>
@@ -45,8 +45,16 @@ html, body {
45
45
  filter: grayscale(100%) brightness(0%) invert(25%);
46
46
  }
47
47
 
48
+ .turnip-icon {
49
+ filter: brightness(0%) invert(90%);
50
+ }
51
+
48
52
  .dark .turnip-button > img, .dark .img-icon {
49
- filter: grayscale(100%) brightness(0%) invert(100%);
53
+ filter: brightness(0%) invert(100%);
54
+ }
55
+
56
+ button {
57
+ color: var(--color-text-50);
50
58
  }
51
59
 
52
60
  /*
@@ -4,7 +4,7 @@ import RandomizedBackground from "../RandomizedBackground.svelte";
4
4
  import { page } from "$app/stores";
5
5
  import { enableBackground } from "../../store";
6
6
  import AresLogo from "../../assets/characters/ares/ares_logo.webp";
7
- import FABIcon from "../../assets/placeholder/placeholder_circle.png";
7
+ import FABIcon from "../../assets/bg_tiled/bg_tiled_turnip.png";
8
8
  import CloseIcon from "../../assets/icons/close.svg";
9
9
  import { dialogManager, enableDialogueOverlay } from "../dialog_manager/DialogManagerStore";
10
10
  import Toast from "./toast/Toast.svelte";
@@ -53,13 +53,13 @@ enableDialogueOverlay.set(showDialogByDefault);
53
53
  </svelte:head>
54
54
 
55
55
  <!--todo: turn off hidden when it's time-->
56
- <button type="button" class="fab" on:click={()=>{
56
+ <button class="fab" on:click={()=>{
57
57
  dialogManager.toggleDialogOverlay()
58
58
  }}>
59
59
  {#if (enableDialogueOverlayValue)}
60
- <img class="img-icon" src={CloseIcon} alt="interactive floating action button represented as a turnip">
60
+ <img class="turnip-icon" src={CloseIcon} alt="interactive floating action button represented as a turnip">
61
61
  {:else }
62
- <img src={FABIcon} alt="interactive floating action button represented as a turnip">
62
+ <img class="turnip-icon" src={FABIcon} alt="interactive floating action button represented as a turnip">
63
63
  {/if}
64
64
  </button>
65
65
 
@@ -83,7 +83,7 @@ enableDialogueOverlay.set(showDialogByDefault);
83
83
  {#if i < pages.length - 1}
84
84
  <li class="crumb" in:fade>
85
85
  <a href={crumb.path}>{crumb.name.charAt(0).toUpperCase() + crumb.name.slice(1)}</a>
86
- &nbsp;&rsaquo;&nbsp;
86
+ &nbsp;&rsaquo;&nbsp;
87
87
  </li>
88
88
  {:else}
89
89
  <li class="crumb" in:fade>{crumb.name.charAt(0).toUpperCase() + crumb.name.slice(1)}</li>
@@ -165,7 +165,7 @@ enableDialogueOverlay.set(showDialogByDefault);
165
165
  display: flex;
166
166
  align-items: center;
167
167
  justify-content: center;
168
- margin: 0.1em;
168
+ margin: 0.1em;
169
169
  }
170
170
 
171
171
  .crumb-separator {
@@ -192,7 +192,79 @@ enableDialogueOverlay.set(showDialogByDefault);
192
192
  display: block;
193
193
  }
194
194
 
195
+ :is(.dark .fab) {
196
+ --tw-bg-opacity: 1;
197
+ background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
198
+ color: rgb(var(--on-tertiary));
199
+ }
200
+
201
+ .fab:disabled {
202
+ cursor: not-allowed;
203
+ opacity: 0.5;
204
+ }
205
+
206
+ .fab:disabled:hover {
207
+ --tw-brightness: brightness(1);
208
+ 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);
209
+ }
210
+
211
+ .fab:disabled:active {
212
+ --tw-scale-x: 1;
213
+ --tw-scale-y: 1;
214
+ 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));
215
+ }
216
+
217
+ .fab {
218
+ font-size: 1rem;
219
+ line-height: 1.5rem;
220
+ padding-left: 1.25rem;
221
+ padding-right: 1.25rem;
222
+ padding-top: 9px;
223
+ padding-bottom: 9px;
224
+ white-space: nowrap;
225
+ text-align: center;
226
+ display: inline-flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ transition-property: all;
230
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
231
+ transition-duration: 150ms;
232
+ border-radius: var(--theme-rounded-base);
233
+ }
234
+
235
+ .fab > :not([hidden]) ~ :not([hidden]) {
236
+ --tw-space-x-reverse: 0;
237
+ margin-right: calc(0.5rem * var(--tw-space-x-reverse));
238
+ margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
239
+ }
240
+
241
+ .fab:hover {
242
+ --tw-brightness: brightness(1.15);
243
+ 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);
244
+ }
245
+
246
+ .fab:active {
247
+ --tw-scale-x: 95%;
248
+ --tw-scale-y: 95%;
249
+ 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));
250
+ --tw-brightness: brightness(.9);
251
+ 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);
252
+ }
253
+
195
254
  .fab {
255
+ --tw-bg-opacity: 1;
256
+ background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
257
+ color: rgb(var(--on-tertiary));
258
+ }
259
+
260
+ :is(.dark .fab) {
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
+ .fab {
267
+ padding: 0;
196
268
  position: fixed;
197
269
  bottom: var(--fab-margin);
198
270
  width: 4em;
@@ -210,4 +282,8 @@ enableDialogueOverlay.set(showDialogByDefault);
210
282
  .fab:dir(rtl) {
211
283
  left: var(--fab-margin);
212
284
  }
285
+
286
+ .turnip-icon {
287
+ margin: 4px;
288
+ }
213
289
  </style>
@@ -1,3 +1,7 @@
1
1
  export declare const generatedDailySeed: () => number;
2
2
  export declare const mulberry32Generator: (a: number) => (() => number);
3
3
  export declare const createGoToFunction: (path: string) => (() => void);
4
+ export interface ExternalLinkWarningArgs {
5
+ href: string;
6
+ }
7
+ export declare const createExternalLinkWarningFunction: (args: ExternalLinkWarningArgs) => (() => void);
@@ -18,3 +18,10 @@ export const createGoToFunction = (path) => {
18
18
  location.href = path;
19
19
  });
20
20
  };
21
+ export const createExternalLinkWarningFunction = (args) => {
22
+ return (() => {
23
+ // todo: https://github.com/TurnipXenon/pineapple/issues/99
24
+ // add the warning here for future functions
25
+ location.href = args.href;
26
+ });
27
+ };
@@ -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: "lfp8bi"
24
+ version_hash: "1h70f76"
25
25
  };
26
26
 
27
27
  export async function get_hooks() {
package/dist/app.postcss CHANGED
@@ -45,8 +45,16 @@ html, body {
45
45
  filter: grayscale(100%) brightness(0%) invert(25%);
46
46
  }
47
47
 
48
+ .turnip-icon {
49
+ filter: brightness(0%) invert(90%);
50
+ }
51
+
48
52
  .dark .turnip-button > img, .dark .img-icon {
49
- filter: grayscale(100%) brightness(0%) invert(100%);
53
+ filter: brightness(0%) invert(100%);
54
+ }
55
+
56
+ button {
57
+ color: var(--color-text-50);
50
58
  }
51
59
 
52
60
  /*
@@ -4,7 +4,7 @@ import RandomizedBackground from "../RandomizedBackground.svelte";
4
4
  import { page } from "$app/stores";
5
5
  import { enableBackground } from "../../store";
6
6
  import AresLogo from "../../assets/characters/ares/ares_logo.webp";
7
- import FABIcon from "../../assets/placeholder/placeholder_circle.png";
7
+ import FABIcon from "../../assets/bg_tiled/bg_tiled_turnip.png";
8
8
  import CloseIcon from "../../assets/icons/close.svg";
9
9
  import { dialogManager, enableDialogueOverlay } from "../dialog_manager/DialogManagerStore";
10
10
  import Toast from "./toast/Toast.svelte";
@@ -53,13 +53,13 @@ enableDialogueOverlay.set(showDialogByDefault);
53
53
  </svelte:head>
54
54
 
55
55
  <!--todo: turn off hidden when it's time-->
56
- <button type="button" class="fab" on:click={()=>{
56
+ <button class="fab" on:click={()=>{
57
57
  dialogManager.toggleDialogOverlay()
58
58
  }}>
59
59
  {#if (enableDialogueOverlayValue)}
60
- <img class="img-icon" src={CloseIcon} alt="interactive floating action button represented as a turnip">
60
+ <img class="turnip-icon" src={CloseIcon} alt="interactive floating action button represented as a turnip">
61
61
  {:else }
62
- <img src={FABIcon} alt="interactive floating action button represented as a turnip">
62
+ <img class="turnip-icon" src={FABIcon} alt="interactive floating action button represented as a turnip">
63
63
  {/if}
64
64
  </button>
65
65
 
@@ -83,7 +83,7 @@ enableDialogueOverlay.set(showDialogByDefault);
83
83
  {#if i < pages.length - 1}
84
84
  <li class="crumb" in:fade>
85
85
  <a href={crumb.path}>{crumb.name.charAt(0).toUpperCase() + crumb.name.slice(1)}</a>
86
- &nbsp;&rsaquo;&nbsp;
86
+ &nbsp;&rsaquo;&nbsp;
87
87
  </li>
88
88
  {:else}
89
89
  <li class="crumb" in:fade>{crumb.name.charAt(0).toUpperCase() + crumb.name.slice(1)}</li>
@@ -165,7 +165,7 @@ enableDialogueOverlay.set(showDialogByDefault);
165
165
  display: flex;
166
166
  align-items: center;
167
167
  justify-content: center;
168
- margin: 0.1em;
168
+ margin: 0.1em;
169
169
  }
170
170
 
171
171
  .crumb-separator {
@@ -192,7 +192,79 @@ enableDialogueOverlay.set(showDialogByDefault);
192
192
  display: block;
193
193
  }
194
194
 
195
+ :is(.dark .fab) {
196
+ --tw-bg-opacity: 1;
197
+ background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
198
+ color: rgb(var(--on-tertiary));
199
+ }
200
+
201
+ .fab:disabled {
202
+ cursor: not-allowed;
203
+ opacity: 0.5;
204
+ }
205
+
206
+ .fab:disabled:hover {
207
+ --tw-brightness: brightness(1);
208
+ 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);
209
+ }
210
+
211
+ .fab:disabled:active {
212
+ --tw-scale-x: 1;
213
+ --tw-scale-y: 1;
214
+ 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));
215
+ }
216
+
217
+ .fab {
218
+ font-size: 1rem;
219
+ line-height: 1.5rem;
220
+ padding-left: 1.25rem;
221
+ padding-right: 1.25rem;
222
+ padding-top: 9px;
223
+ padding-bottom: 9px;
224
+ white-space: nowrap;
225
+ text-align: center;
226
+ display: inline-flex;
227
+ align-items: center;
228
+ justify-content: center;
229
+ transition-property: all;
230
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
231
+ transition-duration: 150ms;
232
+ border-radius: var(--theme-rounded-base);
233
+ }
234
+
235
+ .fab > :not([hidden]) ~ :not([hidden]) {
236
+ --tw-space-x-reverse: 0;
237
+ margin-right: calc(0.5rem * var(--tw-space-x-reverse));
238
+ margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
239
+ }
240
+
241
+ .fab:hover {
242
+ --tw-brightness: brightness(1.15);
243
+ 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);
244
+ }
245
+
246
+ .fab:active {
247
+ --tw-scale-x: 95%;
248
+ --tw-scale-y: 95%;
249
+ 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));
250
+ --tw-brightness: brightness(.9);
251
+ 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);
252
+ }
253
+
195
254
  .fab {
255
+ --tw-bg-opacity: 1;
256
+ background-color: rgb(var(--color-tertiary-500) / var(--tw-bg-opacity));
257
+ color: rgb(var(--on-tertiary));
258
+ }
259
+
260
+ :is(.dark .fab) {
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
+ .fab {
267
+ padding: 0;
196
268
  position: fixed;
197
269
  bottom: var(--fab-margin);
198
270
  width: 4em;
@@ -210,4 +282,8 @@ enableDialogueOverlay.set(showDialogByDefault);
210
282
  .fab:dir(rtl) {
211
283
  left: var(--fab-margin);
212
284
  }
285
+
286
+ .turnip-icon {
287
+ margin: 4px;
288
+ }
213
289
  </style>
@@ -1,3 +1,7 @@
1
1
  export declare const generatedDailySeed: () => number;
2
2
  export declare const mulberry32Generator: (a: number) => (() => number);
3
3
  export declare const createGoToFunction: (path: string) => (() => void);
4
+ export interface ExternalLinkWarningArgs {
5
+ href: string;
6
+ }
7
+ export declare const createExternalLinkWarningFunction: (args: ExternalLinkWarningArgs) => (() => void);
package/dist/util/util.js CHANGED
@@ -18,3 +18,10 @@ export const createGoToFunction = (path) => {
18
18
  location.href = path;
19
19
  });
20
20
  };
21
+ export const createExternalLinkWarningFunction = (args) => {
22
+ return (() => {
23
+ // todo: https://github.com/TurnipXenon/pineapple/issues/99
24
+ // add the warning here for future functions
25
+ location.href = args.href;
26
+ });
27
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@turnipxenon/pineapple",
3
3
  "description": "personal package for base styling for other personal projects",
4
- "version": "2.4.21",
4
+ "version": "2.4.23",
5
5
  "scripts": {
6
6
  "dev": "vite dev",
7
7
  "build": "npm run check-requirements && vite build && yarn package",
@@ -45,8 +45,16 @@ html, body {
45
45
  filter: grayscale(100%) brightness(0%) invert(25%);
46
46
  }
47
47
 
48
+ .turnip-icon {
49
+ filter: brightness(0%) invert(90%);
50
+ }
51
+
48
52
  .dark .turnip-button > img, .dark .img-icon {
49
- filter: grayscale(100%) brightness(0%) invert(100%);
53
+ filter: brightness(0%) invert(100%);
54
+ }
55
+
56
+ button {
57
+ color: var(--color-text-50);
50
58
  }
51
59
 
52
60
  /*
@@ -13,7 +13,7 @@
13
13
  // assets
14
14
  // import DialogOverlay from "$lib/components/DialogOverlay.svelte";
15
15
  import AresLogo from "$pkg/assets/characters/ares/ares_logo.webp";
16
- import FABIcon from "$pkg/assets/placeholder/placeholder_circle.png";
16
+ import FABIcon from "$pkg/assets/bg_tiled/bg_tiled_turnip.png";
17
17
  import CloseIcon from "$pkg/assets/icons/close.svg";
18
18
  import { dialogManager, enableDialogueOverlay } from "$pkg/components/dialog_manager/DialogManagerStore";
19
19
  import Toast from "$pkg/components/pineapple/toast/Toast.svelte";
@@ -70,13 +70,13 @@
70
70
  </svelte:head>
71
71
 
72
72
  <!--todo: turn off hidden when it's time-->
73
- <button type="button" class="fab" on:click={()=>{
73
+ <button class="fab" on:click={()=>{
74
74
  dialogManager.toggleDialogOverlay()
75
75
  }}>
76
76
  {#if (enableDialogueOverlayValue)}
77
- <img class="img-icon" src={CloseIcon} alt="interactive floating action button represented as a turnip">
77
+ <img class="turnip-icon" src={CloseIcon} alt="interactive floating action button represented as a turnip">
78
78
  {:else }
79
- <img src={FABIcon} alt="interactive floating action button represented as a turnip">
79
+ <img class="turnip-icon" src={FABIcon} alt="interactive floating action button represented as a turnip">
80
80
  {/if}
81
81
  </button>
82
82
 
@@ -100,7 +100,7 @@
100
100
  {#if i < pages.length - 1}
101
101
  <li class="crumb" in:fade>
102
102
  <a href={crumb.path}>{crumb.name.charAt(0).toUpperCase() + crumb.name.slice(1)}</a>
103
- &nbsp;&rsaquo;&nbsp;
103
+ &nbsp;&rsaquo;&nbsp;
104
104
  </li>
105
105
  {:else}
106
106
  <li class="crumb" in:fade>{crumb.name.charAt(0).toUpperCase() + crumb.name.slice(1)}</li>
@@ -174,7 +174,7 @@
174
174
 
175
175
  .crumb {
176
176
  @apply flex justify-center items-center;
177
- margin: 0.1em;
177
+ margin: 0.1em;
178
178
  }
179
179
 
180
180
  .crumb-separator {
@@ -195,6 +195,8 @@
195
195
  }
196
196
 
197
197
  .fab {
198
+ @apply btn variant-filled-tertiary;
199
+ padding: 0;
198
200
  position: fixed;
199
201
  bottom: var(--fab-margin);
200
202
  width: 4em;
@@ -212,4 +214,8 @@
212
214
  .fab:dir(rtl) {
213
215
  left: var(--fab-margin);
214
216
  }
217
+
218
+ .turnip-icon {
219
+ margin: 4px;
220
+ }
215
221
  </style>
@@ -19,4 +19,16 @@ export const createGoToFunction = (path: string): (() => void) => {
19
19
  return (() => {
20
20
  location.href = path;
21
21
  });
22
- };
22
+ };
23
+
24
+ export interface ExternalLinkWarningArgs {
25
+ href: string;
26
+ }
27
+
28
+ export const createExternalLinkWarningFunction = (args: ExternalLinkWarningArgs): (() => void) => {
29
+ return (() => {
30
+ // todo: https://github.com/TurnipXenon/pineapple/issues/99
31
+ // add the warning here for future functions
32
+ location.href = args.href;
33
+ });
34
+ };
@@ -19,24 +19,23 @@
19
19
  <div slot="content" class="content">
20
20
  <h1 class="mb-8" style="font-weight: bolder">Directory</h1>
21
21
 
22
- <div class="btn-group">
22
+ <div class="turnip-menu">
23
23
  <button on:click={createGoToFunction("pineapple")}><h2>Pineapple playground</h2></button>
24
- <button on:click={createGoToFunction("portfolio")}><h2>Seaweed playrground</h2></button>
24
+ <button on:click={createGoToFunction("portfolio")}><h2>Seaweed playground</h2></button>
25
25
  </div>
26
26
  </div>
27
27
  </Card>
28
28
 
29
29
  <style lang="postcss">
30
- .btn-group {
30
+ .turnip-menu {
31
31
  padding: 2em;
32
- display: flex;
33
- gap: 2em;
34
- flex-direction: column;
35
-
32
+ display: flex;
33
+ gap: 2em;
34
+ flex-direction: column;
36
35
  }
37
36
 
38
37
  button {
39
- @apply btn variant-filled-secondary;
38
+ @apply btn variant-filled-secondary;
40
39
  }
41
40
 
42
41
  .content {
@@ -3,7 +3,7 @@
3
3
  import { showComponentInToast, showTextInToast } from "$pkg/components/pineapple/toast/Toast";
4
4
  import TestCard from "$pkg/components/pineapple/toast/custom-toast/TestCustomToast.svelte";
5
5
  import TestDialogYarn from "./TestDialog.yarn?raw";
6
- import { dialogManager } from "$pkg";
6
+ import { Card, dialogManager } from "$pkg";
7
7
 
8
8
 
9
9
  let testingQueueNumber = 1;
@@ -36,22 +36,24 @@
36
36
  />
37
37
  </svelte:head>
38
38
 
39
- <div class="card default-card">
40
- <button
41
- class="btn variant-filled-secondary"
42
- on:click={() => {
39
+ <Card>
40
+ <div slot="content" class="default-card">
41
+ <button
42
+ class="btn variant-filled-secondary"
43
+ on:click={() => {
43
44
  showComponentInToast({componentAndProps: {component: TestCard, props: undefined}});
44
45
  }}><h3>Test custom toast</h3></button>
45
- <button
46
- class="btn variant-filled-secondary"
47
- on:click={() => {
46
+ <button
47
+ class="btn variant-filled-secondary"
48
+ on:click={() => {
48
49
  showTextInToast(`${testingQueueNumber} ${testingRandomPhrases[testingQueueNumber]}`);
49
50
  testingQueueNumber = (testingQueueNumber + 1) % testingRandomPhrases.length;
50
51
  }}><h3>Handy toast</h3></button>
51
- <button
52
- class="btn variant-filled-secondary"
53
- on:click={onTestDialogClick}><h3>Test dialog</h3></button>
54
- </div>
52
+ <button
53
+ class="btn variant-filled-secondary"
54
+ on:click={onTestDialogClick}><h3>Test dialog</h3></button>
55
+ </div>
56
+ </Card>
55
57
 
56
58
  <style lang="postcss">
57
59
  .default-card {