@turnipxenon/pineapple 2.4.41 → 2.4.43

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.
@@ -1,6 +1,8 @@
1
1
  <component name="ProjectCodeStyleConfiguration">
2
2
  <code_scheme name="Project" version="173">
3
3
  <HTMLCodeStyleSettings>
4
+ <option name="HTML_ATTRIBUTE_WRAP" value="0" />
5
+ <option name="HTML_TEXT_WRAP" value="0" />
4
6
  <option name="HTML_SPACE_INSIDE_EMPTY_TAG" value="true" />
5
7
  </HTMLCodeStyleSettings>
6
8
  <JSCodeStyleSettings version="0">
@@ -27,7 +29,7 @@
27
29
  <option name="INTERPOLATION_NEW_LINE_BEFORE_END_DELIMITER" value="false" />
28
30
  </VueCodeStyleSettings>
29
31
  <codeStyleSettings language="HTML">
30
- <option name="SOFT_MARGINS" value="100" />
32
+ <option name="SOFT_MARGINS" value="80,120" />
31
33
  <indentOptions>
32
34
  <option name="INDENT_SIZE" value="2" />
33
35
  <option name="CONTINUATION_INDENT_SIZE" value="2" />
@@ -4,8 +4,9 @@
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 allowLinkedin arg in SocialSection">
7
+ <list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="Adjust description">
8
8
  <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
9
+ <change beforePath="$PROJECT_DIR$/src/routes/(seaweed)/portfolio/+page.svelte" beforeDir="false" afterPath="$PROJECT_DIR$/src/routes/(seaweed)/portfolio/+page.svelte" afterDir="false" />
9
10
  </list>
10
11
  <option name="SHOW_DIALOG" value="false" />
11
12
  <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -43,6 +44,11 @@
43
44
  <option value="+page" />
44
45
  <option value="NavigationComponent" />
45
46
  <option value="NavigationControl" />
47
+ <option value="Hepcat" />
48
+ <option value="Pengi" />
49
+ <option value="ChefWings" />
50
+ <option value="Soulwork" />
51
+ <option value="ItchPromo" />
46
52
  <option value="TypeScript File" />
47
53
  </list>
48
54
  </option>
@@ -79,40 +85,40 @@
79
85
  <option name="hideEmptyMiddlePackages" value="true" />
80
86
  <option name="showLibraryContents" value="true" />
81
87
  </component>
82
- <component name="PropertiesComponent">{
83
- &quot;keyToString&quot;: {
84
- &quot;DefaultHtmlFileTemplate&quot;: &quot;HTML File&quot;,
85
- &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
86
- &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
87
- &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
88
- &quot;git-widget-placeholder&quot;: &quot;turnip/improvements&quot;,
89
- &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
90
- &quot;last_opened_file_path&quot;: &quot;C:/Users/Pumpkin/Projects/Web/pineapple/src/routes/(pineapple)/pineapple/(extra-pages)/page3/page7/(test_layout)/page8&quot;,
91
- &quot;list.type.of.created.stylesheet&quot;: &quot;CSS&quot;,
92
- &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
93
- &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
94
- &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
95
- &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
96
- &quot;nodejs_interpreter_path&quot;: &quot;node&quot;,
97
- &quot;nodejs_package_manager_path&quot;: &quot;yarn&quot;,
98
- &quot;npm.build.executor&quot;: &quot;Run&quot;,
99
- &quot;npm.dev (1).executor&quot;: &quot;Run&quot;,
100
- &quot;npm.dev --open.executor&quot;: &quot;Run&quot;,
101
- &quot;npm.dev offline.executor&quot;: &quot;Run&quot;,
102
- &quot;npm.dev-offline.executor&quot;: &quot;Run&quot;,
103
- &quot;npm.dev.executor&quot;: &quot;Run&quot;,
104
- &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
105
- &quot;ts.external.directory.path&quot;: &quot;C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib&quot;,
106
- &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
88
+ <component name="PropertiesComponent"><![CDATA[{
89
+ "keyToString": {
90
+ "DefaultHtmlFileTemplate": "HTML File",
91
+ "RunOnceActivity.OpenProjectViewOnStart": "true",
92
+ "RunOnceActivity.ShowReadmeOnStart": "true",
93
+ "WebServerToolWindowFactoryState": "false",
94
+ "git-widget-placeholder": "turnip/adjust-description",
95
+ "ignore.virus.scanning.warn.message": "true",
96
+ "last_opened_file_path": "C:/Users/Pumpkin/Projects/Web/pineapple/src/lib/template/seaweed/entries",
97
+ "list.type.of.created.stylesheet": "CSS",
98
+ "node.js.detected.package.eslint": "true",
99
+ "node.js.detected.package.tslint": "true",
100
+ "node.js.selected.package.eslint": "(autodetect)",
101
+ "node.js.selected.package.tslint": "(autodetect)",
102
+ "nodejs_interpreter_path": "node",
103
+ "nodejs_package_manager_path": "yarn",
104
+ "npm.build.executor": "Run",
105
+ "npm.dev (1).executor": "Run",
106
+ "npm.dev --open.executor": "Run",
107
+ "npm.dev offline.executor": "Run",
108
+ "npm.dev-offline.executor": "Run",
109
+ "npm.dev.executor": "Run",
110
+ "settings.editor.selected.configurable": "preferences.editor",
111
+ "ts.external.directory.path": "C:\\Users\\Pumpkin\\Projects\\Web\\pineapple\\node_modules\\typescript\\lib",
112
+ "vue.rearranger.settings.migration": "true"
107
113
  }
108
- }</component>
114
+ }]]></component>
109
115
  <component name="RecentsManager">
110
116
  <key name="CopyFile.RECENT_KEYS">
117
+ <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\template\seaweed\entries" />
111
118
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(extra-pages)\page3\page7\(test_layout)\page8" />
112
119
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(extra-pages)\page3\page5" />
113
120
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(extra-pages)\page2" />
114
121
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\lib\components\navigation_component" />
115
- <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\page3\page7\(test_layout)\page8" />
116
122
  </key>
117
123
  <key name="MoveFile.RECENT_KEYS">
118
124
  <recent name="C:\Users\Pumpkin\Projects\Web\pineapple\src\routes\(pineapple)\pineapple\(pineapple)" />
@@ -158,7 +164,7 @@
158
164
  <item itemvalue="npm.dev-offline" />
159
165
  <item itemvalue="npm.dev --open" />
160
166
  <item itemvalue="npm.dev-offline" />
161
- <item itemvalue="npm.dev-offline" />
167
+ <item itemvalue="npm.dev --open" />
162
168
  </list>
163
169
  </recent_temporary>
164
170
  </component>
@@ -254,78 +260,14 @@
254
260
  <workItem from="1711681779901" duration="6000" />
255
261
  <workItem from="1711682341820" duration="414000" />
256
262
  <workItem from="1711682931608" duration="198000" />
257
- </task>
258
- <task id="LOCAL-00070" summary="Clean up todos">
259
- <option name="closed" value="true" />
260
- <created>1710651196828</created>
261
- <option name="number" value="00070" />
262
- <option name="presentableId" value="LOCAL-00070" />
263
- <option name="project" value="LOCAL" />
264
- <updated>1710651196829</updated>
265
- </task>
266
- <task id="LOCAL-00071" summary="Add default PR template">
267
- <option name="closed" value="true" />
268
- <created>1710651695177</created>
269
- <option name="number" value="00071" />
270
- <option name="presentableId" value="LOCAL-00071" />
271
- <option name="project" value="LOCAL" />
272
- <updated>1710651695177</updated>
273
- </task>
274
- <task id="LOCAL-00072" summary="Fix chip in light mode">
275
- <option name="closed" value="true" />
276
- <created>1710654837283</created>
277
- <option name="number" value="00072" />
278
- <option name="presentableId" value="LOCAL-00072" />
279
- <option name="project" value="LOCAL" />
280
- <updated>1710654837283</updated>
281
- </task>
282
- <task id="LOCAL-00073" summary="2.4.14">
283
- <option name="closed" value="true" />
284
- <created>1710655474323</created>
285
- <option name="number" value="00073" />
286
- <option name="presentableId" value="LOCAL-00073" />
287
- <option name="project" value="LOCAL" />
288
- <updated>1710655474323</updated>
289
- </task>
290
- <task id="LOCAL-00074" summary="Run dialog parser in runtime">
291
- <option name="closed" value="true" />
292
- <created>1710731570794</created>
293
- <option name="number" value="00074" />
294
- <option name="presentableId" value="LOCAL-00074" />
295
- <option name="project" value="LOCAL" />
296
- <updated>1710731570794</updated>
297
- </task>
298
- <task id="LOCAL-00075" summary="Fix dialog layout to make it usable on hobby site">
299
- <option name="closed" value="true" />
300
- <created>1710739937750</created>
301
- <option name="number" value="00075" />
302
- <option name="presentableId" value="LOCAL-00075" />
303
- <option name="project" value="LOCAL" />
304
- <updated>1710739937750</updated>
305
- </task>
306
- <task id="LOCAL-00076" summary="Add option to set default dialog behavior in Pineapple">
307
- <option name="closed" value="true" />
308
- <created>1710741953853</created>
309
- <option name="number" value="00076" />
310
- <option name="presentableId" value="LOCAL-00076" />
311
- <option name="project" value="LOCAL" />
312
- <updated>1710741953853</updated>
313
- </task>
314
- <task id="LOCAL-00077" summary="Export Card">
315
- <option name="closed" value="true" />
316
- <created>1711093190088</created>
317
- <option name="number" value="00077" />
318
- <option name="presentableId" value="LOCAL-00077" />
319
- <option name="project" value="LOCAL" />
320
- <updated>1711093190088</updated>
321
- </task>
322
- <task id="LOCAL-00078" summary="Replace all $lib to $pkg">
323
- <option name="closed" value="true" />
324
- <created>1711093944293</created>
325
- <option name="number" value="00078" />
326
- <option name="presentableId" value="LOCAL-00078" />
327
- <option name="project" value="LOCAL" />
328
- <updated>1711093944293</updated>
263
+ <workItem from="1711683164653" duration="79000" />
264
+ <workItem from="1711683280312" duration="11000" />
265
+ <workItem from="1711684148768" duration="1021000" />
266
+ <workItem from="1711910172413" duration="485000" />
267
+ <workItem from="1711910783501" duration="388000" />
268
+ <workItem from="1711930835848" duration="1753000" />
269
+ <workItem from="1711933293449" duration="16410000" />
270
+ <workItem from="1711990899017" duration="1339000" />
329
271
  </task>
330
272
  <task id="LOCAL-00079" summary="Refactor all util functions into util/util">
331
273
  <option name="closed" value="true" />
@@ -647,7 +589,79 @@
647
589
  <option name="project" value="LOCAL" />
648
590
  <updated>1711683031188</updated>
649
591
  </task>
650
- <option name="localTasksCounter" value="119" />
592
+ <task id="LOCAL-00119" summary="Change media to containre">
593
+ <option name="closed" value="true" />
594
+ <created>1711685062499</created>
595
+ <option name="number" value="00119" />
596
+ <option name="presentableId" value="LOCAL-00119" />
597
+ <option name="project" value="LOCAL" />
598
+ <updated>1711685062499</updated>
599
+ </task>
600
+ <task id="LOCAL-00120" summary="Change media to container">
601
+ <option name="closed" value="true" />
602
+ <created>1711685070024</created>
603
+ <option name="number" value="00120" />
604
+ <option name="presentableId" value="LOCAL-00120" />
605
+ <option name="project" value="LOCAL" />
606
+ <updated>1711685070024</updated>
607
+ </task>
608
+ <task id="LOCAL-00121" summary="Add toggle to showcase pagination prevention">
609
+ <option name="closed" value="true" />
610
+ <created>1711910588771</created>
611
+ <option name="number" value="00121" />
612
+ <option name="presentableId" value="LOCAL-00121" />
613
+ <option name="project" value="LOCAL" />
614
+ <updated>1711910588772</updated>
615
+ </task>
616
+ <task id="LOCAL-00122" summary="WIP custom v1">
617
+ <option name="closed" value="true" />
618
+ <created>1711940053335</created>
619
+ <option name="number" value="00122" />
620
+ <option name="presentableId" value="LOCAL-00122" />
621
+ <option name="project" value="LOCAL" />
622
+ <updated>1711940053335</updated>
623
+ </task>
624
+ <task id="LOCAL-00123" summary="Rename Seaweed to seaweed">
625
+ <option name="closed" value="true" />
626
+ <created>1711940145763</created>
627
+ <option name="number" value="00123" />
628
+ <option name="presentableId" value="LOCAL-00123" />
629
+ <option name="project" value="LOCAL" />
630
+ <updated>1711940145763</updated>
631
+ </task>
632
+ <task id="LOCAL-00124" summary="Fully extract all entries from groups">
633
+ <option name="closed" value="true" />
634
+ <created>1711943579891</created>
635
+ <option name="number" value="00124" />
636
+ <option name="presentableId" value="LOCAL-00124" />
637
+ <option name="project" value="LOCAL" />
638
+ <updated>1711943579891</updated>
639
+ </task>
640
+ <task id="LOCAL-00125" summary="Allow full reordering for entries">
641
+ <option name="closed" value="true" />
642
+ <created>1711950000817</created>
643
+ <option name="number" value="00125" />
644
+ <option name="presentableId" value="LOCAL-00125" />
645
+ <option name="project" value="LOCAL" />
646
+ <updated>1711950000817</updated>
647
+ </task>
648
+ <task id="LOCAL-00126" summary="WIP">
649
+ <option name="closed" value="true" />
650
+ <created>1711990921948</created>
651
+ <option name="number" value="00126" />
652
+ <option name="presentableId" value="LOCAL-00126" />
653
+ <option name="project" value="LOCAL" />
654
+ <updated>1711990921949</updated>
655
+ </task>
656
+ <task id="LOCAL-00127" summary="Adjust description">
657
+ <option name="closed" value="true" />
658
+ <created>1711992114854</created>
659
+ <option name="number" value="00127" />
660
+ <option name="presentableId" value="LOCAL-00127" />
661
+ <option name="project" value="LOCAL" />
662
+ <updated>1711992114854</updated>
663
+ </task>
664
+ <option name="localTasksCounter" value="128" />
651
665
  <servers />
652
666
  </component>
653
667
  <component name="TypeScriptGeneratedFilesManager">
@@ -685,7 +699,7 @@
685
699
  <entry key="branch">
686
700
  <value>
687
701
  <list>
688
- <option value="turnip/dev" />
702
+ <option value="turnip/customizable" />
689
703
  </list>
690
704
  </value>
691
705
  </entry>
@@ -705,15 +719,6 @@
705
719
  </option>
706
720
  </component>
707
721
  <component name="VcsManagerConfiguration">
708
- <MESSAGE value="Place fab on a higher z-index" />
709
- <MESSAGE value="v2.4.29" />
710
- <MESSAGE value="Implement basic navigation component logic" />
711
- <MESSAGE value="Add basic navigation component logic" />
712
- <MESSAGE value="Refactor NavigationComponent logic to its component" />
713
- <MESSAGE value="Parse meta from subdirectories" />
714
- <MESSAGE value="Refactor the test pages to have unique headers" />
715
- <MESSAGE value="Document limitations of PageMeta.image" />
716
- <MESSAGE value="Move test pages into a singluar director" />
717
722
  <MESSAGE value="Move test pages into a directory" />
718
723
  <MESSAGE value="Add Navigation control" />
719
724
  <MESSAGE value="Move NavigationControl to a component" />
@@ -730,6 +735,15 @@
730
735
  <MESSAGE value="Allow preventing NavigationComponent pagination" />
731
736
  <MESSAGE value="Export SocialSection" />
732
737
  <MESSAGE value="Fix allowLinkedin arg in SocialSection" />
733
- <option name="LAST_COMMIT_MESSAGE" value="Fix allowLinkedin arg in SocialSection" />
738
+ <MESSAGE value="Change media to containre" />
739
+ <MESSAGE value="Change media to container" />
740
+ <MESSAGE value="Add toggle to showcase pagination prevention" />
741
+ <MESSAGE value="WIP custom v1" />
742
+ <MESSAGE value="Rename Seaweed to seaweed" />
743
+ <MESSAGE value="Fully extract all entries from groups" />
744
+ <MESSAGE value="Allow full reordering for entries" />
745
+ <MESSAGE value="WIP" />
746
+ <MESSAGE value="Adjust description" />
747
+ <option name="LAST_COMMIT_MESSAGE" value="Adjust description" />
734
748
  </component>
735
749
  </project>
@@ -73,7 +73,7 @@ $:
73
73
  </div>
74
74
 
75
75
  <style>
76
- @media (max-width: 800px) {
76
+ @container (max-width: 800px) {
77
77
  img {
78
78
  max-height: 20rem;
79
79
  width: 100%;
@@ -86,7 +86,7 @@ $:
86
86
  }
87
87
  }
88
88
 
89
- @media (min-width: 801px) {
89
+ @container (min-width: 801px) {
90
90
  .navigation-element {
91
91
  flex-direction: row;
92
92
  }
@@ -214,8 +214,8 @@ $:
214
214
  }
215
215
 
216
216
  .navigation-element {
217
+ container-type: inline-size;
217
218
  display: flex;
218
- /*flex-direction: row;*/
219
219
  text-align: start;
220
220
  align-items: flex-start;
221
221
  padding: 0;
@@ -230,6 +230,7 @@ $:
230
230
  }
231
231
 
232
232
  .navigation-component {
233
+ container-type: inline-size;
233
234
  display: flex;
234
235
  flex-direction: column;
235
236
  gap: 2em;
@@ -15,6 +15,7 @@ import GameSection from "./GameSection.svelte";
15
15
  import ProjectSection from "./ProjectSection.svelte";
16
16
  let isVisible = true;
17
17
  let isAdvanceSettingOn = false;
18
+ let shouldAddFunNote = false;
18
19
  $:
19
20
  isSocialsGone = !isVisible;
20
21
  import gameContent from "./GameSection.svelte?raw";
@@ -181,10 +182,12 @@ $:
181
182
  I also graduated with BS Computing Science, Specializing in Software Practice, and a
182
183
  certificate in Computer Game Development at University of Alberta.
183
184
  </p>
184
- <p>
185
- I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
186
- Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
187
- </p>
185
+ {#if shouldAddFunNote}
186
+ <p>
187
+ I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
188
+ Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
189
+ </p>
190
+ {/if}
188
191
 
189
192
  <!-- todo: maybe put cute stuff here -->
190
193
  <!-- </ToggleableContent>-->
@@ -205,23 +208,32 @@ $:
205
208
  <section class="section-card" slot="content">
206
209
  <h1>Experience</h1>
207
210
 
211
+ <h2>Highlight</h2>
212
+ <p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
213
+ active users</b> at Twitch</p>
214
+
208
215
  <h2>Software Engineer</h2>
209
216
  <div class="two-column-separated">
210
217
  <div>July 2023 – January 2024</div>
211
218
  <div style="text-align: end">Twitch, Remote</div>
212
219
  </div>
213
220
  <ul>
214
- <li>Contributed to <span class="qt-go">Golang</span> and <span class="qt-ts">Typescript</span> codebases,
215
- across several teams, to accommodate adjustments for public-facing user safety related features, to better
216
- comply with EU’s <a target="_blank"
217
- href="https://commission.europa.eu/strategy-and-policy/priorities-2019-2024/europe-fit-digital-age/digital-services-act/europe-fit-digital-age-new-online-rules-platforms_en">
218
- Digital Services Act</a>, also including feature flags, alarms, unit tests, end-to-end testing, and
219
- documentation
221
+ <li>
222
+ Contributed to
223
+ <span class="qt-go">Golang</span>
224
+ microservices and
225
+ <span class="qt-ts">Typescript</span>
226
+ <span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
227
+ <a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
228
+ . Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
220
229
  </li>
221
- <li>Improved observability for upcoming features by setting up new <span class="qt-aws qt-infra">AWS</span>
222
- resources to integrate internal data platform tools with existing alarms in our team’s microservice,
223
- utilizing <span class="qt-aws qt-infra">Cloudwatch</span> and <span class="qt-aws qt-infra">Kinesis Data Stream</span>,
224
- while adhering to best practices for <span class="qt-aws qt-infra">AWS CDK</span> (infrastructure as code)
230
+ <li>
231
+ Improved observability for upcoming features by setting up new AWS resources to integrate internal data platform tools with existing alarms in our team’s microservice, utilizing
232
+ <span class="qt-aws qt-observability">Cloudwatch</span>,
233
+ <span class="qt-aws qt-observability">Grafana</span>,
234
+ <span class="qt-aws">Kinesis Data Stream</span>,
235
+ <span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
236
+ <span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
225
237
  </li>
226
238
  </ul>
227
239
  <br>
@@ -266,14 +278,11 @@ $:
266
278
  </div>
267
279
  <ul>
268
280
  <li>
269
- Implemented and wrote tests for a feature in Twitch’s backend authentication
270
- systems and frontend web application that will help suggest security improvements to
271
- over hundreds of thousands of users daily
272
- </li>
273
- <li>
274
- Learned <span class="qt-go">Go</span>, <span class="qt-ts">Typescript</span>, <span
275
- class="qt-react">React</span>, and other new technologies on the go to contribute to
276
- the codebase
281
+ Implemented and wrote tests for a feature in Twitch’s
282
+ <span class="qt-go">Golang</span> backend authentication microservices and
283
+ <span class="qt-ts">Typescript</span>
284
+ <span class="qt-react">React</span> frontend web app that will help suggest security improvements to
285
+ <b>over 100k+ users daily</b>
277
286
  </li>
278
287
  </ul>
279
288
  {:else}
@@ -311,6 +320,9 @@ $:
311
320
  <SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
312
321
  Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
313
322
  </SlideToggle>
323
+ <SlideToggle name="fun-note-slider" bind:checked={shouldAddFunNote}>
324
+ Should add fun note in description: {shouldAddFunNote ? "On" : "Off"}
325
+ </SlideToggle>
314
326
 
315
327
  <h3>Query terms to bold</h3>
316
328
  <div class="query-term-grid">
@@ -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: "85sq1n"
24
+ version_hash: "1dgnh0c"
25
25
  };
26
26
 
27
27
  export async function get_hooks() {
@@ -73,7 +73,7 @@ $:
73
73
  </div>
74
74
 
75
75
  <style>
76
- @media (max-width: 800px) {
76
+ @container (max-width: 800px) {
77
77
  img {
78
78
  max-height: 20rem;
79
79
  width: 100%;
@@ -86,7 +86,7 @@ $:
86
86
  }
87
87
  }
88
88
 
89
- @media (min-width: 801px) {
89
+ @container (min-width: 801px) {
90
90
  .navigation-element {
91
91
  flex-direction: row;
92
92
  }
@@ -214,8 +214,8 @@ $:
214
214
  }
215
215
 
216
216
  .navigation-element {
217
+ container-type: inline-size;
217
218
  display: flex;
218
- /*flex-direction: row;*/
219
219
  text-align: start;
220
220
  align-items: flex-start;
221
221
  padding: 0;
@@ -230,6 +230,7 @@ $:
230
230
  }
231
231
 
232
232
  .navigation-component {
233
+ container-type: inline-size;
233
234
  display: flex;
234
235
  flex-direction: column;
235
236
  gap: 2em;
@@ -15,6 +15,7 @@ import GameSection from "./GameSection.svelte";
15
15
  import ProjectSection from "./ProjectSection.svelte";
16
16
  let isVisible = true;
17
17
  let isAdvanceSettingOn = false;
18
+ let shouldAddFunNote = false;
18
19
  $:
19
20
  isSocialsGone = !isVisible;
20
21
  import gameContent from "./GameSection.svelte?raw";
@@ -181,10 +182,12 @@ $:
181
182
  I also graduated with BS Computing Science, Specializing in Software Practice, and a
182
183
  certificate in Computer Game Development at University of Alberta.
183
184
  </p>
184
- <p>
185
- I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
186
- Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
187
- </p>
185
+ {#if shouldAddFunNote}
186
+ <p>
187
+ I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
188
+ Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
189
+ </p>
190
+ {/if}
188
191
 
189
192
  <!-- todo: maybe put cute stuff here -->
190
193
  <!-- </ToggleableContent>-->
@@ -205,23 +208,32 @@ $:
205
208
  <section class="section-card" slot="content">
206
209
  <h1>Experience</h1>
207
210
 
211
+ <h2>Highlight</h2>
212
+ <p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
213
+ active users</b> at Twitch</p>
214
+
208
215
  <h2>Software Engineer</h2>
209
216
  <div class="two-column-separated">
210
217
  <div>July 2023 – January 2024</div>
211
218
  <div style="text-align: end">Twitch, Remote</div>
212
219
  </div>
213
220
  <ul>
214
- <li>Contributed to <span class="qt-go">Golang</span> and <span class="qt-ts">Typescript</span> codebases,
215
- across several teams, to accommodate adjustments for public-facing user safety related features, to better
216
- comply with EU’s <a target="_blank"
217
- href="https://commission.europa.eu/strategy-and-policy/priorities-2019-2024/europe-fit-digital-age/digital-services-act/europe-fit-digital-age-new-online-rules-platforms_en">
218
- Digital Services Act</a>, also including feature flags, alarms, unit tests, end-to-end testing, and
219
- documentation
221
+ <li>
222
+ Contributed to
223
+ <span class="qt-go">Golang</span>
224
+ microservices and
225
+ <span class="qt-ts">Typescript</span>
226
+ <span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
227
+ <a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
228
+ . Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
220
229
  </li>
221
- <li>Improved observability for upcoming features by setting up new <span class="qt-aws qt-infra">AWS</span>
222
- resources to integrate internal data platform tools with existing alarms in our team’s microservice,
223
- utilizing <span class="qt-aws qt-infra">Cloudwatch</span> and <span class="qt-aws qt-infra">Kinesis Data Stream</span>,
224
- while adhering to best practices for <span class="qt-aws qt-infra">AWS CDK</span> (infrastructure as code)
230
+ <li>
231
+ Improved observability for upcoming features by setting up new AWS resources to integrate internal data platform tools with existing alarms in our team’s microservice, utilizing
232
+ <span class="qt-aws qt-observability">Cloudwatch</span>,
233
+ <span class="qt-aws qt-observability">Grafana</span>,
234
+ <span class="qt-aws">Kinesis Data Stream</span>,
235
+ <span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
236
+ <span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
225
237
  </li>
226
238
  </ul>
227
239
  <br>
@@ -266,14 +278,11 @@ $:
266
278
  </div>
267
279
  <ul>
268
280
  <li>
269
- Implemented and wrote tests for a feature in Twitch’s backend authentication
270
- systems and frontend web application that will help suggest security improvements to
271
- over hundreds of thousands of users daily
272
- </li>
273
- <li>
274
- Learned <span class="qt-go">Go</span>, <span class="qt-ts">Typescript</span>, <span
275
- class="qt-react">React</span>, and other new technologies on the go to contribute to
276
- the codebase
281
+ Implemented and wrote tests for a feature in Twitch’s
282
+ <span class="qt-go">Golang</span> backend authentication microservices and
283
+ <span class="qt-ts">Typescript</span>
284
+ <span class="qt-react">React</span> frontend web app that will help suggest security improvements to
285
+ <b>over 100k+ users daily</b>
277
286
  </li>
278
287
  </ul>
279
288
  {:else}
@@ -311,6 +320,9 @@ $:
311
320
  <SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
312
321
  Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
313
322
  </SlideToggle>
323
+ <SlideToggle name="fun-note-slider" bind:checked={shouldAddFunNote}>
324
+ Should add fun note in description: {shouldAddFunNote ? "On" : "Off"}
325
+ </SlideToggle>
314
326
 
315
327
  <h3>Query terms to bold</h3>
316
328
  <div class="query-term-grid">
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.41",
4
+ "version": "2.4.43",
5
5
  "scripts": {
6
6
  "dev": "vite dev",
7
7
  "build": "npm run check-requirements && vite build && yarn package",
@@ -81,7 +81,7 @@
81
81
  </div>
82
82
 
83
83
  <style lang="postcss">
84
- @media (max-width: 800px) {
84
+ @container (max-width: 800px) {
85
85
  img {
86
86
  max-height: 20rem;
87
87
  width: 100%;
@@ -94,7 +94,7 @@
94
94
  }
95
95
  }
96
96
 
97
- @media (min-width: 801px) {
97
+ @container (min-width: 801px) {
98
98
  .navigation-element {
99
99
  flex-direction: row;
100
100
  }
@@ -106,8 +106,8 @@
106
106
 
107
107
  .navigation-element {
108
108
  @apply btn card card-hover bg-surface-100 dark:bg-surface-900;
109
+ container-type: inline-size;
109
110
  display: flex;
110
- /*flex-direction: row;*/
111
111
  text-align: start;
112
112
  align-items: flex-start;
113
113
  padding: 0;
@@ -121,6 +121,7 @@
121
121
  }
122
122
 
123
123
  .navigation-component {
124
+ container-type: inline-size;
124
125
  display: flex;
125
126
  flex-direction: column;
126
127
  gap: 2em;
@@ -18,6 +18,7 @@
18
18
 
19
19
  let isVisible = true;
20
20
  let isAdvanceSettingOn = false;
21
+ let shouldAddFunNote = false;
21
22
 
22
23
  $: isSocialsGone = !isVisible;
23
24
 
@@ -252,10 +253,12 @@
252
253
  I also graduated with BS Computing Science, Specializing in Software Practice, and a
253
254
  certificate in Computer Game Development at University of Alberta.
254
255
  </p>
255
- <p>
256
- I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
257
- Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
258
- </p>
256
+ {#if shouldAddFunNote}
257
+ <p>
258
+ I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
259
+ Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
260
+ </p>
261
+ {/if}
259
262
 
260
263
  <!-- todo: maybe put cute stuff here -->
261
264
  <!-- </ToggleableContent>-->
@@ -276,23 +279,32 @@
276
279
  <section class="section-card" slot="content">
277
280
  <h1>Experience</h1>
278
281
 
282
+ <h2>Highlight</h2>
283
+ <p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
284
+ active users</b> at Twitch</p>
285
+
279
286
  <h2>Software Engineer</h2>
280
287
  <div class="two-column-separated">
281
288
  <div>July 2023 – January 2024</div>
282
289
  <div style="text-align: end">Twitch, Remote</div>
283
290
  </div>
284
291
  <ul>
285
- <li>Contributed to <span class="qt-go">Golang</span> and <span class="qt-ts">Typescript</span> codebases,
286
- across several teams, to accommodate adjustments for public-facing user safety related features, to better
287
- comply with EU’s <a target="_blank"
288
- href="https://commission.europa.eu/strategy-and-policy/priorities-2019-2024/europe-fit-digital-age/digital-services-act/europe-fit-digital-age-new-online-rules-platforms_en">
289
- Digital Services Act</a>, also including feature flags, alarms, unit tests, end-to-end testing, and
290
- documentation
292
+ <li>
293
+ Contributed to
294
+ <span class="qt-go">Golang</span>
295
+ microservices and
296
+ <span class="qt-ts">Typescript</span>
297
+ <span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
298
+ <a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
299
+ . Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
291
300
  </li>
292
- <li>Improved observability for upcoming features by setting up new <span class="qt-aws qt-infra">AWS</span>
293
- resources to integrate internal data platform tools with existing alarms in our team’s microservice,
294
- utilizing <span class="qt-aws qt-infra">Cloudwatch</span> and <span class="qt-aws qt-infra">Kinesis Data Stream</span>,
295
- while adhering to best practices for <span class="qt-aws qt-infra">AWS CDK</span> (infrastructure as code)
301
+ <li>
302
+ Improved observability for upcoming features by setting up new AWS resources to integrate internal data platform tools with existing alarms in our team’s microservice, utilizing
303
+ <span class="qt-aws qt-observability">Cloudwatch</span>,
304
+ <span class="qt-aws qt-observability">Grafana</span>,
305
+ <span class="qt-aws">Kinesis Data Stream</span>,
306
+ <span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
307
+ <span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
296
308
  </li>
297
309
  </ul>
298
310
  <br>
@@ -337,14 +349,11 @@
337
349
  </div>
338
350
  <ul>
339
351
  <li>
340
- Implemented and wrote tests for a feature in Twitch’s backend authentication
341
- systems and frontend web application that will help suggest security improvements to
342
- over hundreds of thousands of users daily
343
- </li>
344
- <li>
345
- Learned <span class="qt-go">Go</span>, <span class="qt-ts">Typescript</span>, <span
346
- class="qt-react">React</span>, and other new technologies on the go to contribute to
347
- the codebase
352
+ Implemented and wrote tests for a feature in Twitch’s
353
+ <span class="qt-go">Golang</span> backend authentication microservices and
354
+ <span class="qt-ts">Typescript</span>
355
+ <span class="qt-react">React</span> frontend web app that will help suggest security improvements to
356
+ <b>over 100k+ users daily</b>
348
357
  </li>
349
358
  </ul>
350
359
  {:else}
@@ -382,6 +391,9 @@
382
391
  <SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
383
392
  Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
384
393
  </SlideToggle>
394
+ <SlideToggle name="fun-note-slider" bind:checked={shouldAddFunNote}>
395
+ Should add fun note in description: {shouldAddFunNote ? "On" : "Off"}
396
+ </SlideToggle>
385
397
 
386
398
  <h3>Query terms to bold</h3>
387
399
  <div class="query-term-grid">
@@ -5,6 +5,7 @@
5
5
  import { Card, dialogManager, enableDialogueOverlay } from "$pkg";
6
6
  import NavigationComponent from "$pkg/components/navigation_component/NavigationComponent.svelte";
7
7
  import { ImageMap } from "./ImageMap";
8
+ import { SlideToggle } from "@skeletonlabs/skeleton";
8
9
 
9
10
  enableDialogueOverlay.set(false);
10
11
 
@@ -34,6 +35,7 @@
34
35
  // todo: fix fragile relative reference to the root
35
36
  const fileList = import.meta.glob("./../**/+page.svelte", { query: "?raw" });
36
37
  const jsonList = import.meta.glob("./../**/meta.json", { query: "?raw", eager: true });
38
+ let allowPagination = true;
37
39
  </script>
38
40
 
39
41
  <Card>
@@ -52,6 +54,11 @@
52
54
  <button
53
55
  class="btn variant-filled-secondary"
54
56
  on:click={onTestDialogClick}><h3>Test dialog</h3></button>
57
+ <div>
58
+ <SlideToggle name="advanced-setting-slider" bind:checked={allowPagination}>
59
+ Allow pagination: {allowPagination ? "On" : "Off"}
60
+ </SlideToggle>
61
+ </div>
55
62
  </div>
56
63
  </Card>
57
64
 
@@ -59,7 +66,7 @@
59
66
  fileList={fileList}
60
67
  jsonList={jsonList}
61
68
  imageMap={ImageMap}
62
- shouldAllowControl={false}
69
+ shouldAllowControl={allowPagination}
63
70
  parentSubpath="/pineapple/">
64
71
  </NavigationComponent>
65
72
 
@@ -1,9 +1,6 @@
1
1
  <script>
2
2
  import SeaweedTemplate from "$pkg/template/Seaweed/SeaweedTemplate.svelte";
3
-
4
- export let metaWebsite = "https://www.crouton.com/test/portfolio-base-layout";
5
-
6
3
  </script>
7
4
 
8
5
  <!--todo: maybe add check that this is always false? -->
9
- <SeaweedTemplate letChaos={true}></SeaweedTemplate>
6
+ <SeaweedTemplate letChaos={false}></SeaweedTemplate>
@@ -1,5 +1,5 @@
1
1
  <script>
2
- import SeaweedTemplate from "$pkg/template/Seaweed/SeaweedTemplate.svelte";
2
+ import SeaweedTemplate from "$pkg/template/seaweed/SeaweedTemplate.svelte";
3
3
  </script>
4
4
 
5
5
  <SeaweedTemplate letChaos={false}