@turnipxenon/pineapple 2.4.46 → 2.4.48

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 (662) hide show
  1. package/.idea/workspace.xml +36 -31
  2. package/.svelte-kit/__package__/template/seaweed/SeaweedTemplate.svelte +8 -6
  3. package/.svelte-kit/__package__/template/seaweed/SeaweedTemplate.svelte.d.ts +1 -1
  4. package/.svelte-kit/__package__/template/seaweed/SeaweedTemplateData.d.ts +4 -1
  5. package/.svelte-kit/__package__/template/seaweed/SeaweedTemplateData.js +23 -14
  6. package/.svelte-kit/ambient.d.ts +4 -4
  7. package/.svelte-kit/generated/server/internal.js +1 -1
  8. package/build/client/_app/immutable/assets/0.vT28YyQg.css.br +0 -0
  9. package/build/client/_app/immutable/assets/0.vT28YyQg.css.gz +0 -0
  10. package/build/client/_app/immutable/assets/13.BIMIBpeM.css.br +2 -0
  11. package/build/client/_app/immutable/assets/13.BIMIBpeM.css.gz +0 -0
  12. package/build/client/_app/immutable/assets/4.ClTmhFiH.css.br +0 -0
  13. package/build/client/_app/immutable/assets/4.ClTmhFiH.css.gz +0 -0
  14. package/build/client/_app/immutable/assets/Card.BAkK2DAr.css.br +0 -0
  15. package/build/client/_app/immutable/assets/Card.BAkK2DAr.css.gz +0 -0
  16. package/build/client/_app/immutable/assets/NavigationComponent.DAojhPuD.css.br +0 -0
  17. package/build/client/_app/immutable/assets/NavigationComponent.DAojhPuD.css.gz +0 -0
  18. package/build/client/_app/immutable/assets/PineappleBaseLayout.syfctdq0.css.br +0 -0
  19. package/build/client/_app/immutable/assets/PineappleBaseLayout.syfctdq0.css.gz +0 -0
  20. package/build/client/_app/immutable/assets/ProgressBar.Cirlo5Z8.css.br +0 -0
  21. package/build/client/_app/immutable/assets/ProgressBar.Cirlo5Z8.css.gz +0 -0
  22. package/build/client/_app/immutable/assets/SeaweedTemplate.GqF0sFEE.css +1 -0
  23. package/build/client/_app/immutable/assets/SeaweedTemplate.GqF0sFEE.css.br +0 -0
  24. package/build/client/_app/immutable/assets/SeaweedTemplate.GqF0sFEE.css.gz +0 -0
  25. package/build/client/_app/immutable/assets/_layout.h2ESO4YN.css.br +0 -0
  26. package/build/client/_app/immutable/assets/_layout.h2ESO4YN.css.gz +0 -0
  27. package/build/client/_app/immutable/assets/_page.BIMIBpeM.css.br +2 -0
  28. package/build/client/_app/immutable/assets/_page.BIMIBpeM.css.gz +0 -0
  29. package/build/client/_app/immutable/assets/_page.ClTmhFiH.css.br +0 -0
  30. package/build/client/_app/immutable/assets/_page.ClTmhFiH.css.gz +0 -0
  31. package/{.svelte-kit/output/client/_app/immutable/chunks/Card.DH87RA66.js → build/client/_app/immutable/chunks/Card.Cqslzydv.js} +2 -2
  32. package/build/client/_app/immutable/chunks/Card.Cqslzydv.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/Card.Cqslzydv.js.gz +0 -0
  34. package/{.svelte-kit/output/client/_app/immutable/chunks/DialogManagerStore.p-R7jA3N.js → build/client/_app/immutable/chunks/DialogManagerStore.BHUI4V3S.js} +1 -1
  35. package/build/client/_app/immutable/chunks/DialogManagerStore.BHUI4V3S.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/DialogManagerStore.BHUI4V3S.js.gz +0 -0
  37. package/{.svelte-kit/output/client/_app/immutable/chunks/ProgressBar.svelte_svelte_type_style_lang.DiY8SXB3.js → build/client/_app/immutable/chunks/ProgressBar.svelte_svelte_type_style_lang.CsYmxU_7.js} +1 -1
  38. package/build/client/_app/immutable/chunks/ProgressBar.svelte_svelte_type_style_lang.CsYmxU_7.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/ProgressBar.svelte_svelte_type_style_lang.CsYmxU_7.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/SeaweedTemplate.olNF2tjY.js +1070 -0
  41. package/build/client/_app/immutable/chunks/SeaweedTemplate.olNF2tjY.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/SeaweedTemplate.olNF2tjY.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/SeaweedTemplate.svelte_svelte_type_style_lang.DxGjnfBo.js +61 -0
  44. package/build/client/_app/immutable/chunks/SeaweedTemplate.svelte_svelte_type_style_lang.DxGjnfBo.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/SeaweedTemplate.svelte_svelte_type_style_lang.DxGjnfBo.js.gz +0 -0
  46. package/{.svelte-kit/output/client/_app/immutable/chunks/SlideToggle.DGF7DQhk.js → build/client/_app/immutable/chunks/SlideToggle.u1_9_9_F.js} +1 -1
  47. package/build/client/_app/immutable/chunks/SlideToggle.u1_9_9_F.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/SlideToggle.u1_9_9_F.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/Toast.DTsUTF2x.js +1 -0
  50. package/build/client/_app/immutable/chunks/Toast.DTsUTF2x.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/Toast.DTsUTF2x.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/_page.BCsXwAds.js.br +0 -0
  53. package/build/client/_app/immutable/chunks/_page.BCsXwAds.js.gz +0 -0
  54. package/build/client/_app/immutable/chunks/_page.CER3LJw4.js.br +0 -0
  55. package/build/client/_app/immutable/chunks/_page.CER3LJw4.js.gz +0 -0
  56. package/build/client/_app/immutable/chunks/_page.CJqYI1vC.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/_page.CJqYI1vC.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/_page.CRke_Vt-.js.br +0 -0
  59. package/build/client/_app/immutable/chunks/_page.CRke_Vt-.js.gz +0 -0
  60. package/build/client/_app/immutable/chunks/_page.CdlE3ZqM.js.br +0 -0
  61. package/build/client/_app/immutable/chunks/_page.CdlE3ZqM.js.gz +0 -0
  62. package/build/client/_app/immutable/chunks/_page.D8F_fKwN.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/_page.D8F_fKwN.js.gz +0 -0
  64. package/build/client/_app/immutable/chunks/_page.DOjmKWLN.js.br +0 -0
  65. package/build/client/_app/immutable/chunks/_page.DOjmKWLN.js.gz +0 -0
  66. package/build/client/_app/immutable/chunks/_page.UybeXHGE.js.br +0 -0
  67. package/build/client/_app/immutable/chunks/_page.UybeXHGE.js.gz +0 -0
  68. package/build/client/_app/immutable/chunks/each.D6YF6ztN.js.br +0 -0
  69. package/build/client/_app/immutable/chunks/each.D6YF6ztN.js.gz +0 -0
  70. package/build/client/_app/immutable/chunks/entry.CqafanwD.js +3 -0
  71. package/build/client/_app/immutable/chunks/entry.CqafanwD.js.br +0 -0
  72. package/build/client/_app/immutable/chunks/entry.CqafanwD.js.gz +0 -0
  73. package/build/client/_app/immutable/chunks/index.CpCFB3OR.js +1 -0
  74. package/build/client/_app/immutable/chunks/index.CpCFB3OR.js.br +0 -0
  75. package/build/client/_app/immutable/chunks/index.CpCFB3OR.js.gz +0 -0
  76. package/build/{static/_app/immutable/chunks/index.CWCbcDVt.js → client/_app/immutable/chunks/index.CzQb476d.js} +2 -2
  77. package/build/client/_app/immutable/chunks/index.CzQb476d.js.br +0 -0
  78. package/build/client/_app/immutable/chunks/index.CzQb476d.js.gz +0 -0
  79. package/build/client/_app/immutable/chunks/index.DbwYs1Xx.js.br +0 -0
  80. package/build/client/_app/immutable/chunks/index.DbwYs1Xx.js.gz +0 -0
  81. package/{.svelte-kit/output/client/_app/immutable/chunks/index.HfS4ysOO.js → build/client/_app/immutable/chunks/index.XsyeOyy6.js} +1 -1
  82. package/build/client/_app/immutable/chunks/index.XsyeOyy6.js.br +0 -0
  83. package/build/client/_app/immutable/chunks/index.XsyeOyy6.js.gz +0 -0
  84. package/{.svelte-kit/output/client/_app/immutable/chunks/index.BwUaF0YV.js → build/client/_app/immutable/chunks/index.siPN9RHO.js} +2 -2
  85. package/build/client/_app/immutable/chunks/index.siPN9RHO.js.br +0 -0
  86. package/build/client/_app/immutable/chunks/index.siPN9RHO.js.gz +0 -0
  87. package/build/client/_app/immutable/chunks/preload-helper.BQ24v_F8.js.br +0 -0
  88. package/build/client/_app/immutable/chunks/preload-helper.BQ24v_F8.js.gz +0 -0
  89. package/build/client/_app/immutable/chunks/scheduler._lhIxVlV.js +1 -0
  90. package/build/client/_app/immutable/chunks/scheduler._lhIxVlV.js.br +0 -0
  91. package/build/client/_app/immutable/chunks/scheduler._lhIxVlV.js.gz +0 -0
  92. package/build/client/_app/immutable/chunks/spread.CgU5AtxT.js.br +0 -0
  93. package/build/client/_app/immutable/chunks/spread.CgU5AtxT.js.gz +0 -0
  94. package/{.svelte-kit/output/client/_app/immutable/chunks/store.BMp6_Mv-.js → build/client/_app/immutable/chunks/store.RmhKBLzA.js} +1 -1
  95. package/build/client/_app/immutable/chunks/store.RmhKBLzA.js.br +0 -0
  96. package/build/client/_app/immutable/chunks/store.RmhKBLzA.js.gz +0 -0
  97. package/build/client/_app/immutable/chunks/stores.BlLsExs2.js +1 -0
  98. package/build/client/_app/immutable/chunks/stores.BlLsExs2.js.br +2 -0
  99. package/build/client/_app/immutable/chunks/stores.BlLsExs2.js.gz +0 -0
  100. package/{.svelte-kit/output/client/_app/immutable/chunks/stores.C1y1vsDB.js → build/client/_app/immutable/chunks/stores.DIRl0B43.js} +1 -1
  101. package/build/client/_app/immutable/chunks/stores.DIRl0B43.js.br +0 -0
  102. package/build/client/_app/immutable/chunks/stores.DIRl0B43.js.gz +0 -0
  103. package/{.svelte-kit/output/client/_app/immutable/chunks/stores.CTStYDmk.js → build/client/_app/immutable/chunks/stores.UAeg925R.js} +1 -1
  104. package/build/client/_app/immutable/chunks/stores.UAeg925R.js.br +0 -0
  105. package/build/client/_app/immutable/chunks/stores.UAeg925R.js.gz +0 -0
  106. package/build/client/_app/immutable/chunks/transitions.FXurGCgU.js.br +0 -0
  107. package/build/client/_app/immutable/chunks/transitions.FXurGCgU.js.gz +0 -0
  108. package/build/client/_app/immutable/chunks/util.CpV-3U2s.js.br +0 -0
  109. package/build/client/_app/immutable/chunks/util.CpV-3U2s.js.gz +0 -0
  110. package/{.svelte-kit/output/client/_app/immutable/entry/app.DBmRlvle.js → build/client/_app/immutable/entry/app.Roh-CwIG.js} +2 -2
  111. package/build/client/_app/immutable/entry/app.Roh-CwIG.js.br +0 -0
  112. package/build/client/_app/immutable/entry/app.Roh-CwIG.js.gz +0 -0
  113. package/build/client/_app/immutable/entry/start.DcyrsFfL.js +1 -0
  114. package/build/client/_app/immutable/entry/start.DcyrsFfL.js.br +0 -0
  115. package/build/client/_app/immutable/entry/start.DcyrsFfL.js.gz +0 -0
  116. package/build/{static/_app/immutable/nodes/0.DSodj2wf.js → client/_app/immutable/nodes/0.C4avhXVA.js} +2 -2
  117. package/build/client/_app/immutable/nodes/0.C4avhXVA.js.br +0 -0
  118. package/build/client/_app/immutable/nodes/0.C4avhXVA.js.gz +0 -0
  119. package/build/{static/_app/immutable/nodes/1.BRjT3J9Z.js → client/_app/immutable/nodes/1.D0PSlzBz.js} +1 -1
  120. package/build/client/_app/immutable/nodes/1.D0PSlzBz.js.br +0 -0
  121. package/build/client/_app/immutable/nodes/1.D0PSlzBz.js.gz +0 -0
  122. package/{.svelte-kit/output/client/_app/immutable/nodes/10.CNjqd06K.js → build/client/_app/immutable/nodes/10.DOmmqdN-.js} +1 -1
  123. package/build/client/_app/immutable/nodes/10.DOmmqdN-.js.br +0 -0
  124. package/build/client/_app/immutable/nodes/10.DOmmqdN-.js.gz +0 -0
  125. package/{.svelte-kit/output/client/_app/immutable/nodes/11.CNjqd06K.js → build/client/_app/immutable/nodes/11.DOmmqdN-.js} +1 -1
  126. package/build/client/_app/immutable/nodes/11.DOmmqdN-.js.br +0 -0
  127. package/build/client/_app/immutable/nodes/11.DOmmqdN-.js.gz +0 -0
  128. package/build/{static/_app/immutable/nodes/12.BYSc8zlB.js → client/_app/immutable/nodes/12.DsQEbmGE.js} +1 -1
  129. package/build/client/_app/immutable/nodes/12.DsQEbmGE.js.br +0 -0
  130. package/build/client/_app/immutable/nodes/12.DsQEbmGE.js.gz +0 -0
  131. package/{.svelte-kit/output/client/_app/immutable/nodes/13.BlqYNJ3t.js → build/client/_app/immutable/nodes/13.BT4c85jG.js} +5 -5
  132. package/build/client/_app/immutable/nodes/13.BT4c85jG.js.br +0 -0
  133. package/build/client/_app/immutable/nodes/13.BT4c85jG.js.gz +0 -0
  134. package/{.svelte-kit/output/client/_app/immutable/nodes/14.CVCdnjGH.js → build/client/_app/immutable/nodes/14.Of3nlv7V.js} +1 -1
  135. package/build/client/_app/immutable/nodes/14.Of3nlv7V.js.br +0 -0
  136. package/build/client/_app/immutable/nodes/14.Of3nlv7V.js.gz +0 -0
  137. package/build/client/_app/immutable/nodes/15.BPS0gknX.js +1 -0
  138. package/build/client/_app/immutable/nodes/15.BPS0gknX.js.br +0 -0
  139. package/build/client/_app/immutable/nodes/15.BPS0gknX.js.gz +0 -0
  140. package/build/{static/_app/immutable/nodes/2.Ug_nHwAt.js → client/_app/immutable/nodes/2.C0CLaNxi.js} +2 -2
  141. package/build/client/_app/immutable/nodes/2.C0CLaNxi.js.br +0 -0
  142. package/build/client/_app/immutable/nodes/2.C0CLaNxi.js.gz +0 -0
  143. package/build/{static/_app/immutable/nodes/3.baFnd1R-.js → client/_app/immutable/nodes/3.DniefHgr.js} +1 -1
  144. package/build/client/_app/immutable/nodes/3.DniefHgr.js.br +0 -0
  145. package/build/client/_app/immutable/nodes/3.DniefHgr.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/4.CArxSEXv.js +1 -0
  147. package/build/client/_app/immutable/nodes/4.CArxSEXv.js.br +0 -0
  148. package/build/client/_app/immutable/nodes/4.CArxSEXv.js.gz +0 -0
  149. package/{.svelte-kit/output/client/_app/immutable/nodes/5.CNjqd06K.js → build/client/_app/immutable/nodes/5.DOmmqdN-.js} +1 -1
  150. package/build/client/_app/immutable/nodes/5.DOmmqdN-.js.br +0 -0
  151. package/build/client/_app/immutable/nodes/5.DOmmqdN-.js.gz +0 -0
  152. package/{.svelte-kit/output/client/_app/immutable/nodes/6.CNjqd06K.js → build/client/_app/immutable/nodes/6.DOmmqdN-.js} +1 -1
  153. package/build/client/_app/immutable/nodes/6.DOmmqdN-.js.br +0 -0
  154. package/build/client/_app/immutable/nodes/6.DOmmqdN-.js.gz +0 -0
  155. package/build/client/_app/immutable/nodes/7.DOmmqdN-.js +1 -0
  156. package/build/client/_app/immutable/nodes/7.DOmmqdN-.js.br +0 -0
  157. package/build/client/_app/immutable/nodes/7.DOmmqdN-.js.gz +0 -0
  158. package/build/client/_app/immutable/nodes/8.DOmmqdN-.js +1 -0
  159. package/build/client/_app/immutable/nodes/8.DOmmqdN-.js.br +0 -0
  160. package/build/client/_app/immutable/nodes/8.DOmmqdN-.js.gz +0 -0
  161. package/build/client/_app/immutable/nodes/9.DOmmqdN-.js +1 -0
  162. package/build/client/_app/immutable/nodes/9.DOmmqdN-.js.br +0 -0
  163. package/build/client/_app/immutable/nodes/9.DOmmqdN-.js.gz +0 -0
  164. package/build/client/_app/version.json +1 -0
  165. package/build/client/_app/version.json.br +0 -0
  166. package/build/client/_app/version.json.gz +0 -0
  167. package/build/env.js +43 -0
  168. package/build/handler.js +1334 -0
  169. package/build/index.js +323 -0
  170. package/build/prerendered/portfolio/__data.json.br +0 -0
  171. package/build/prerendered/portfolio/__data.json.gz +0 -0
  172. package/build/prerendered/portfolio.html +240 -0
  173. package/build/prerendered/portfolio.html.br +0 -0
  174. package/build/prerendered/portfolio.html.gz +0 -0
  175. package/build/server/chunks/0-KMIjynIm.js +9 -0
  176. package/build/server/chunks/0-KMIjynIm.js.map +1 -0
  177. package/build/server/chunks/1-CPYJlXmE.js +9 -0
  178. package/build/server/chunks/1-CPYJlXmE.js.map +1 -0
  179. package/build/server/chunks/10-ByB12I6i.js +9 -0
  180. package/build/server/chunks/10-ByB12I6i.js.map +1 -0
  181. package/build/server/chunks/11-Bqxt-_Xz.js +9 -0
  182. package/build/server/chunks/11-Bqxt-_Xz.js.map +1 -0
  183. package/build/server/chunks/12-wv3y8eRw.js +9 -0
  184. package/build/server/chunks/12-wv3y8eRw.js.map +1 -0
  185. package/build/server/chunks/13-CqUa6DKb.js +22 -0
  186. package/build/server/chunks/13-CqUa6DKb.js.map +1 -0
  187. package/build/server/chunks/15-D73EDQfd.js +22 -0
  188. package/build/server/chunks/15-D73EDQfd.js.map +1 -0
  189. package/build/server/chunks/2-DGl4iAUS.js +9 -0
  190. package/build/server/chunks/2-DGl4iAUS.js.map +1 -0
  191. package/build/server/chunks/3-BkP0gvW2.js +9 -0
  192. package/build/server/chunks/3-BkP0gvW2.js.map +1 -0
  193. package/build/server/chunks/4-D-IFPEHZ.js +9 -0
  194. package/build/server/chunks/4-D-IFPEHZ.js.map +1 -0
  195. package/build/server/chunks/5-1JJGr-hh.js +9 -0
  196. package/build/server/chunks/5-1JJGr-hh.js.map +1 -0
  197. package/build/server/chunks/6-CsfOsh4P.js +9 -0
  198. package/build/server/chunks/6-CsfOsh4P.js.map +1 -0
  199. package/build/server/chunks/7-ClOFYc99.js +9 -0
  200. package/build/server/chunks/7-ClOFYc99.js.map +1 -0
  201. package/build/server/chunks/8-BQiYCfzA.js +9 -0
  202. package/build/server/chunks/8-BQiYCfzA.js.map +1 -0
  203. package/build/server/chunks/9-BIbW4vaf.js +9 -0
  204. package/build/server/chunks/9-BIbW4vaf.js.map +1 -0
  205. package/{.svelte-kit/adapter-node/chunks/Card.js → build/server/chunks/Card-2Fi14Ee_.js} +5 -4
  206. package/build/server/chunks/Card-2Fi14Ee_.js.map +1 -0
  207. package/{.svelte-kit/output/server/chunks/DialogManagerStore.js → build/server/chunks/DialogManagerStore-_F4uBJWM.js} +9 -25
  208. package/build/server/chunks/DialogManagerStore-_F4uBJWM.js.map +1 -0
  209. package/{.svelte-kit/output/server/chunks/ProgressBar.svelte_svelte_type_style_lang.js → build/server/chunks/ProgressBar.svelte_svelte_type_style_lang-SkkMcEL5.js} +5 -8
  210. package/build/server/chunks/ProgressBar.svelte_svelte_type_style_lang-SkkMcEL5.js.map +1 -0
  211. package/build/server/chunks/SeaweedTemplate.svelte_svelte_type_style_lang-CCbNvvLx.js +331 -0
  212. package/build/server/chunks/SeaweedTemplate.svelte_svelte_type_style_lang-CCbNvvLx.js.map +1 -0
  213. package/{.svelte-kit/adapter-node/chunks/SlideToggle.js → build/server/chunks/SlideToggle-7ZUciZM2.js} +5 -4
  214. package/build/server/chunks/SlideToggle-7ZUciZM2.js.map +1 -0
  215. package/{.svelte-kit/adapter-node/entries/pages/_error.svelte.js → build/server/chunks/_error.svelte-BzIpkAmU.js} +8 -5
  216. package/build/server/chunks/_error.svelte-BzIpkAmU.js.map +1 -0
  217. package/{.svelte-kit/output/server/entries/pages/(pineapple)/_layout.svelte.js → build/server/chunks/_layout.svelte-BJy0SSDg.js} +14 -11
  218. package/build/server/chunks/_layout.svelte-BJy0SSDg.js.map +1 -0
  219. package/{.svelte-kit/output/server/entries/pages/_layout.svelte.js → build/server/chunks/_layout.svelte-BXEPLbGU.js} +14 -10
  220. package/build/server/chunks/_layout.svelte-BXEPLbGU.js.map +1 -0
  221. package/{.svelte-kit/adapter-node/entries/pages/(seaweed)/_layout.svelte.js → build/server/chunks/_layout.svelte-BZmk1pJQ.js} +10 -8
  222. package/build/server/chunks/_layout.svelte-BZmk1pJQ.js.map +1 -0
  223. package/{.svelte-kit/adapter-node/chunks/_page.js → build/server/chunks/_page-C4bdgzNZ.js} +3 -3
  224. package/build/server/chunks/_page-C4bdgzNZ.js.map +1 -0
  225. package/{.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(pineapple)/_page.svelte.js → build/server/chunks/_page.svelte-CoBwY5R6.js} +17 -14
  226. package/build/server/chunks/_page.svelte-CoBwY5R6.js.map +1 -0
  227. package/build/server/chunks/_page.svelte-Cs3TpJ-J.js +25 -0
  228. package/build/server/chunks/_page.svelte-Cs3TpJ-J.js.map +1 -0
  229. package/build/server/chunks/_page.svelte-CwRPslA_.js +25 -0
  230. package/build/server/chunks/_page.svelte-CwRPslA_.js.map +1 -0
  231. package/build/server/chunks/_page.svelte-D4TldIJX.js +25 -0
  232. package/build/server/chunks/_page.svelte-D4TldIJX.js.map +1 -0
  233. package/{.svelte-kit/adapter-node/entries/pages/(pineapple)/_page.svelte.js → build/server/chunks/_page.svelte-DBubSTBJ.js} +14 -10
  234. package/build/server/chunks/_page.svelte-DBubSTBJ.js.map +1 -0
  235. package/build/server/chunks/_page.svelte-DWq_pga0.js +25 -0
  236. package/build/server/chunks/_page.svelte-DWq_pga0.js.map +1 -0
  237. package/build/server/chunks/_page.svelte-DX-wlnYc.js +22 -0
  238. package/build/server/chunks/_page.svelte-DX-wlnYc.js.map +1 -0
  239. package/build/server/chunks/_page.svelte-DmRwzfw2.js +25 -0
  240. package/build/server/chunks/_page.svelte-DmRwzfw2.js.map +1 -0
  241. package/build/server/chunks/_page.svelte-DoXYvCKL.js +1041 -0
  242. package/build/server/chunks/_page.svelte-DoXYvCKL.js.map +1 -0
  243. package/build/server/chunks/_page.svelte-Jf-X5Rnw.js +25 -0
  244. package/build/server/chunks/_page.svelte-Jf-X5Rnw.js.map +1 -0
  245. package/build/server/chunks/_page.svelte-esjB02TA.js +25 -0
  246. package/build/server/chunks/_page.svelte-esjB02TA.js.map +1 -0
  247. package/{.svelte-kit/adapter-node/chunks/_page2.js → build/server/chunks/_page2-C4bdgzNZ.js} +3 -3
  248. package/build/server/chunks/_page2-C4bdgzNZ.js.map +1 -0
  249. package/{.svelte-kit/adapter-node/chunks/_page3.js → build/server/chunks/_page3-C4bdgzNZ.js} +3 -3
  250. package/build/server/chunks/_page3-C4bdgzNZ.js.map +1 -0
  251. package/{.svelte-kit/adapter-node/chunks/_page4.js → build/server/chunks/_page4-C4bdgzNZ.js} +3 -3
  252. package/build/server/chunks/_page4-C4bdgzNZ.js.map +1 -0
  253. package/build/server/chunks/_page5-C4bdgzNZ.js +4 -0
  254. package/build/server/chunks/_page5-C4bdgzNZ.js.map +1 -0
  255. package/build/server/chunks/_page6-C4bdgzNZ.js +4 -0
  256. package/build/server/chunks/_page6-C4bdgzNZ.js.map +1 -0
  257. package/build/server/chunks/_page7-C4bdgzNZ.js +4 -0
  258. package/build/server/chunks/_page7-C4bdgzNZ.js.map +1 -0
  259. package/{.svelte-kit/adapter-node/chunks/_page8.js → build/server/chunks/_page8-DfvDtv49.js} +3 -3
  260. package/build/server/chunks/_page8-DfvDtv49.js.map +1 -0
  261. package/{.svelte-kit/adapter-node/chunks/client.js → build/server/chunks/client-CjdeEz1m.js} +3 -2
  262. package/build/server/chunks/client-CjdeEz1m.js.map +1 -0
  263. package/{.svelte-kit/output/server/chunks/exports.js → build/server/chunks/exports-DuWZopOC.js} +5 -72
  264. package/build/server/chunks/exports-DuWZopOC.js.map +1 -0
  265. package/{.svelte-kit/output/server/chunks/ssr.js → build/server/chunks/index-Dux0Qc2u.js} +51 -26
  266. package/build/server/chunks/index-Dux0Qc2u.js.map +1 -0
  267. package/{.svelte-kit/output/server/chunks/index2.js → build/server/chunks/index2-CKzT37zP.js} +6 -6
  268. package/build/server/chunks/index2-CKzT37zP.js.map +1 -0
  269. package/{.svelte-kit/output/server/chunks/index3.js → build/server/chunks/index3-Bx4sUpqk.js} +6 -6
  270. package/build/server/chunks/index3-Bx4sUpqk.js.map +1 -0
  271. package/{.svelte-kit/output/server/chunks/index4.js → build/server/chunks/index4-Ce-TEB-q.js} +3 -4
  272. package/build/server/chunks/index4-Ce-TEB-q.js.map +1 -0
  273. package/build/server/chunks/prod-ssr-DxkyU4_t.js +5 -0
  274. package/build/server/chunks/prod-ssr-DxkyU4_t.js.map +1 -0
  275. package/{.svelte-kit/adapter-node/chunks/store.js → build/server/chunks/store-wiFecv6I.js} +6 -12
  276. package/build/server/chunks/store-wiFecv6I.js.map +1 -0
  277. package/build/server/chunks/stores-CS43lvG7.js +6 -0
  278. package/build/server/chunks/stores-CS43lvG7.js.map +1 -0
  279. package/{.svelte-kit/adapter-node/chunks/stores2.js → build/server/chunks/stores2-BKuxMr7h.js} +6 -5
  280. package/build/server/chunks/stores2-BKuxMr7h.js.map +1 -0
  281. package/{.svelte-kit/adapter-node/chunks/stores3.js → build/server/chunks/stores3-DzEecBrh.js} +5 -6
  282. package/build/server/chunks/stores3-DzEecBrh.js.map +1 -0
  283. package/{.svelte-kit/adapter-node → build/server}/index.js +1357 -49
  284. package/build/server/index.js.map +1 -0
  285. package/{.svelte-kit/adapter-node → build/server}/manifest.js +22 -19
  286. package/build/server/manifest.js.map +1 -0
  287. package/build/shims.js +32 -0
  288. package/dist/template/seaweed/SeaweedTemplate.svelte +8 -6
  289. package/dist/template/seaweed/SeaweedTemplate.svelte.d.ts +1 -1
  290. package/dist/template/seaweed/SeaweedTemplateData.d.ts +4 -1
  291. package/dist/template/seaweed/SeaweedTemplateData.js +23 -14
  292. package/package.json +3 -6
  293. package/src/lib/template/seaweed/SeaweedTemplate.svelte +8 -7
  294. package/src/lib/template/seaweed/SeaweedTemplateData.ts +27 -15
  295. package/svelte.config.js +1 -1
  296. package/yarn.lock +8 -300
  297. package/.svelte-kit/adapter-node/.vite/manifest.json +0 -612
  298. package/.svelte-kit/adapter-node/_app/immutable/assets/SeaweedTemplate.CVXyf0f_.css +0 -1
  299. package/.svelte-kit/adapter-node/chunks/DialogManagerStore.js +0 -1412
  300. package/.svelte-kit/adapter-node/chunks/ProgressBar.svelte_svelte_type_style_lang.js +0 -60
  301. package/.svelte-kit/adapter-node/chunks/SeaweedTemplate.js +0 -1094
  302. package/.svelte-kit/adapter-node/chunks/_page5.js +0 -4
  303. package/.svelte-kit/adapter-node/chunks/_page6.js +0 -4
  304. package/.svelte-kit/adapter-node/chunks/_page7.js +0 -4
  305. package/.svelte-kit/adapter-node/chunks/exports.js +0 -200
  306. package/.svelte-kit/adapter-node/chunks/index.js +0 -52
  307. package/.svelte-kit/adapter-node/chunks/index2.js +0 -100
  308. package/.svelte-kit/adapter-node/chunks/index3.js +0 -48
  309. package/.svelte-kit/adapter-node/chunks/index4.js +0 -12
  310. package/.svelte-kit/adapter-node/chunks/internal.js +0 -247
  311. package/.svelte-kit/adapter-node/chunks/prod-ssr.js +0 -6
  312. package/.svelte-kit/adapter-node/chunks/ssr.js +0 -322
  313. package/.svelte-kit/adapter-node/chunks/stores.js +0 -5
  314. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/_layout.svelte.js +0 -292
  315. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page1/_page.svelte.js +0 -22
  316. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page2/_page.svelte.js +0 -22
  317. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/_page.svelte.js +0 -22
  318. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page5/_page.svelte.js +0 -22
  319. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page6/_page.svelte.js +0 -22
  320. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page7/(test_layout)/page8/_page.svelte.js +0 -22
  321. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page7/_page.svelte.js +0 -22
  322. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(extra-pages)/page4/_page.svelte.js +0 -18
  323. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(pineapple)/_page.svelte.js +0 -332
  324. package/.svelte-kit/adapter-node/entries/pages/(pineapple)/pineapple/(pineapple)/_page.ts.js +0 -9
  325. package/.svelte-kit/adapter-node/entries/pages/(seaweed)/portfolio/_page.server.ts.js +0 -8
  326. package/.svelte-kit/adapter-node/entries/pages/(seaweed)/portfolio/_page.svelte.js +0 -8
  327. package/.svelte-kit/adapter-node/entries/pages/(seaweed)/portfolio/_page.ts.js +0 -9
  328. package/.svelte-kit/adapter-node/entries/pages/(seaweed)/portfolio/actual/_page.svelte.js +0 -18
  329. package/.svelte-kit/adapter-node/entries/pages/(seaweed)/portfolio/actual/_page.ts.js +0 -9
  330. package/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +0 -58
  331. package/.svelte-kit/adapter-node/internal.js +0 -13
  332. package/.svelte-kit/adapter-node/manifest-full.js +0 -125
  333. package/.svelte-kit/adapter-node/nodes/0.js +0 -8
  334. package/.svelte-kit/adapter-node/nodes/1.js +0 -8
  335. package/.svelte-kit/adapter-node/nodes/10.js +0 -8
  336. package/.svelte-kit/adapter-node/nodes/11.js +0 -8
  337. package/.svelte-kit/adapter-node/nodes/12.js +0 -8
  338. package/.svelte-kit/adapter-node/nodes/13.js +0 -10
  339. package/.svelte-kit/adapter-node/nodes/14.js +0 -13
  340. package/.svelte-kit/adapter-node/nodes/15.js +0 -10
  341. package/.svelte-kit/adapter-node/nodes/2.js +0 -8
  342. package/.svelte-kit/adapter-node/nodes/3.js +0 -8
  343. package/.svelte-kit/adapter-node/nodes/4.js +0 -8
  344. package/.svelte-kit/adapter-node/nodes/5.js +0 -8
  345. package/.svelte-kit/adapter-node/nodes/6.js +0 -8
  346. package/.svelte-kit/adapter-node/nodes/7.js +0 -8
  347. package/.svelte-kit/adapter-node/nodes/8.js +0 -8
  348. package/.svelte-kit/adapter-node/nodes/9.js +0 -8
  349. package/.svelte-kit/azure-tmp/api/host.json +0 -7
  350. package/.svelte-kit/azure-tmp/api/local.settings.json +0 -6
  351. package/.svelte-kit/azure-tmp/api/package.json +0 -1
  352. package/.svelte-kit/azure-tmp/entry.d.ts +0 -8
  353. package/.svelte-kit/azure-tmp/entry.js +0 -103
  354. package/.svelte-kit/azure-tmp/headers.js +0 -67
  355. package/.svelte-kit/azure-tmp/manifest.js +0 -117
  356. package/.svelte-kit/generated/client-optimized/app.js +0 -45
  357. package/.svelte-kit/generated/client-optimized/matchers.js +0 -1
  358. package/.svelte-kit/generated/client-optimized/nodes/0.js +0 -1
  359. package/.svelte-kit/generated/client-optimized/nodes/1.js +0 -1
  360. package/.svelte-kit/generated/client-optimized/nodes/10.js +0 -1
  361. package/.svelte-kit/generated/client-optimized/nodes/11.js +0 -1
  362. package/.svelte-kit/generated/client-optimized/nodes/12.js +0 -1
  363. package/.svelte-kit/generated/client-optimized/nodes/13.js +0 -3
  364. package/.svelte-kit/generated/client-optimized/nodes/14.js +0 -3
  365. package/.svelte-kit/generated/client-optimized/nodes/15.js +0 -3
  366. package/.svelte-kit/generated/client-optimized/nodes/2.js +0 -1
  367. package/.svelte-kit/generated/client-optimized/nodes/3.js +0 -1
  368. package/.svelte-kit/generated/client-optimized/nodes/4.js +0 -1
  369. package/.svelte-kit/generated/client-optimized/nodes/5.js +0 -1
  370. package/.svelte-kit/generated/client-optimized/nodes/6.js +0 -1
  371. package/.svelte-kit/generated/client-optimized/nodes/7.js +0 -1
  372. package/.svelte-kit/generated/client-optimized/nodes/8.js +0 -1
  373. package/.svelte-kit/generated/client-optimized/nodes/9.js +0 -1
  374. package/.svelte-kit/output/client/.vite/manifest.json +0 -688
  375. package/.svelte-kit/output/client/_app/immutable/assets/Card.BAkK2DAr.css +0 -1
  376. package/.svelte-kit/output/client/_app/immutable/assets/NavigationComponent.DAojhPuD.css +0 -1
  377. package/.svelte-kit/output/client/_app/immutable/assets/PineappleBaseLayout.syfctdq0.css +0 -1
  378. package/.svelte-kit/output/client/_app/immutable/assets/ProgressBar.Cirlo5Z8.css +0 -1
  379. package/.svelte-kit/output/client/_app/immutable/assets/SeaweedTemplate.CVXyf0f_.css +0 -1
  380. package/.svelte-kit/output/client/_app/immutable/assets/_layout.h2ESO4YN.css +0 -10
  381. package/.svelte-kit/output/client/_app/immutable/assets/_page.BIMIBpeM.css +0 -1
  382. package/.svelte-kit/output/client/_app/immutable/assets/_page.ClTmhFiH.css +0 -1
  383. package/.svelte-kit/output/client/_app/immutable/assets/ares_blushing.B6Q0SsBp.webp +0 -0
  384. package/.svelte-kit/output/client/_app/immutable/assets/ares_disappointed.LOpkh7Q7.webp +0 -0
  385. package/.svelte-kit/output/client/_app/immutable/assets/ares_happy.Cz9WhdwO.webp +0 -0
  386. package/.svelte-kit/output/client/_app/immutable/assets/ares_lets_go.BxjJjKUv.webp +0 -0
  387. package/.svelte-kit/output/client/_app/immutable/assets/ares_logo.C_a3ZQAP.webp +0 -0
  388. package/.svelte-kit/output/client/_app/immutable/assets/ares_mad.DofDLDmM.webp +0 -0
  389. package/.svelte-kit/output/client/_app/immutable/assets/ares_neutral.Hp923t8N.webp +0 -0
  390. package/.svelte-kit/output/client/_app/immutable/assets/ares_slightly_mad.DdwOp6J5.webp +0 -0
  391. package/.svelte-kit/output/client/_app/immutable/assets/ares_surprised.BxbNH_w8.webp +0 -0
  392. package/.svelte-kit/output/client/_app/immutable/assets/ares_yay.EM2SNr0e.webp +0 -0
  393. package/.svelte-kit/output/client/_app/immutable/assets/bg_tiled_ares.DTcFskeK.png +0 -0
  394. package/.svelte-kit/output/client/_app/immutable/assets/bg_tiled_corn.D22ZwTZ0.png +0 -0
  395. package/.svelte-kit/output/client/_app/immutable/assets/bg_tiled_pineapple.D28N65_A.png +0 -0
  396. package/.svelte-kit/output/client/_app/immutable/assets/bg_tiled_reinhard.D22NV0xw.png +0 -0
  397. package/.svelte-kit/output/client/_app/immutable/assets/bg_tiled_tomato.O9Z7_E07.png +0 -0
  398. package/.svelte-kit/output/client/_app/immutable/assets/bg_tiled_turnip.DMU0uHH4.png +0 -0
  399. package/.svelte-kit/output/client/_app/immutable/assets/footage-chef-wings.dVBm8Uit.gif +0 -0
  400. package/.svelte-kit/output/client/_app/immutable/assets/header-hep-cat.DcyPS3Oy.mp4 +0 -0
  401. package/.svelte-kit/output/client/_app/immutable/assets/header-pengi.DWAOeO4q.mp4 +0 -0
  402. package/.svelte-kit/output/client/_app/immutable/assets/header-soulwork.BQRWmhTu.mp4 +0 -0
  403. package/.svelte-kit/output/client/_app/immutable/assets/placeholder_circle.Ij3bN7bI.png +0 -0
  404. package/.svelte-kit/output/client/_app/immutable/assets/seaweed-showcase.TTVTTC5m.mp4 +0 -0
  405. package/.svelte-kit/output/client/_app/immutable/assets/weaver-footage.sjDEbkrX.gif +0 -0
  406. package/.svelte-kit/output/client/_app/immutable/assets/window-set.IpgsYUna.png +0 -0
  407. package/.svelte-kit/output/client/_app/immutable/chunks/SeaweedTemplate.DeqnsKrn.js +0 -1064
  408. package/.svelte-kit/output/client/_app/immutable/chunks/Toast.Dil_rTuG.js +0 -1
  409. package/.svelte-kit/output/client/_app/immutable/chunks/entry.DIDAHtmj.js +0 -3
  410. package/.svelte-kit/output/client/_app/immutable/chunks/index.CWCbcDVt.js +0 -4
  411. package/.svelte-kit/output/client/_app/immutable/chunks/index.TTW-3Z8m.js +0 -1
  412. package/.svelte-kit/output/client/_app/immutable/chunks/scheduler.LgnVA12N.js +0 -1
  413. package/.svelte-kit/output/client/_app/immutable/chunks/stores.CmlHsN0j.js +0 -1
  414. package/.svelte-kit/output/client/_app/immutable/entry/start.DsC5h-eu.js +0 -1
  415. package/.svelte-kit/output/client/_app/immutable/nodes/0.DSodj2wf.js +0 -2
  416. package/.svelte-kit/output/client/_app/immutable/nodes/1.BRjT3J9Z.js +0 -4
  417. package/.svelte-kit/output/client/_app/immutable/nodes/12.BYSc8zlB.js +0 -1
  418. package/.svelte-kit/output/client/_app/immutable/nodes/15.BzziCvFz.js +0 -1
  419. package/.svelte-kit/output/client/_app/immutable/nodes/2.Ug_nHwAt.js +0 -5
  420. package/.svelte-kit/output/client/_app/immutable/nodes/3.baFnd1R-.js +0 -1
  421. package/.svelte-kit/output/client/_app/immutable/nodes/4.BVz7IBBS.js +0 -1
  422. package/.svelte-kit/output/client/_app/immutable/nodes/7.CNjqd06K.js +0 -1
  423. package/.svelte-kit/output/client/_app/immutable/nodes/8.CNjqd06K.js +0 -1
  424. package/.svelte-kit/output/client/_app/immutable/nodes/9.CNjqd06K.js +0 -1
  425. package/.svelte-kit/output/client/_app/version.json +0 -1
  426. package/.svelte-kit/output/prerendered/pages/portfolio.html +0 -239
  427. package/.svelte-kit/output/server/.vite/manifest.json +0 -612
  428. package/.svelte-kit/output/server/_app/immutable/assets/Card.BAkK2DAr.css +0 -1
  429. package/.svelte-kit/output/server/_app/immutable/assets/NavigationComponent.DAojhPuD.css +0 -1
  430. package/.svelte-kit/output/server/_app/immutable/assets/PineappleBaseLayout.syfctdq0.css +0 -1
  431. package/.svelte-kit/output/server/_app/immutable/assets/ProgressBar.Cirlo5Z8.css +0 -1
  432. package/.svelte-kit/output/server/_app/immutable/assets/SeaweedTemplate.CVXyf0f_.css +0 -1
  433. package/.svelte-kit/output/server/_app/immutable/assets/_layout.h2ESO4YN.css +0 -10
  434. package/.svelte-kit/output/server/_app/immutable/assets/_page.BIMIBpeM.css +0 -1
  435. package/.svelte-kit/output/server/_app/immutable/assets/_page.ClTmhFiH.css +0 -1
  436. package/.svelte-kit/output/server/_app/immutable/assets/ares_blushing.B6Q0SsBp.webp +0 -0
  437. package/.svelte-kit/output/server/_app/immutable/assets/ares_disappointed.LOpkh7Q7.webp +0 -0
  438. package/.svelte-kit/output/server/_app/immutable/assets/ares_happy.Cz9WhdwO.webp +0 -0
  439. package/.svelte-kit/output/server/_app/immutable/assets/ares_lets_go.BxjJjKUv.webp +0 -0
  440. package/.svelte-kit/output/server/_app/immutable/assets/ares_logo.C_a3ZQAP.webp +0 -0
  441. package/.svelte-kit/output/server/_app/immutable/assets/ares_mad.DofDLDmM.webp +0 -0
  442. package/.svelte-kit/output/server/_app/immutable/assets/ares_neutral.Hp923t8N.webp +0 -0
  443. package/.svelte-kit/output/server/_app/immutable/assets/ares_slightly_mad.DdwOp6J5.webp +0 -0
  444. package/.svelte-kit/output/server/_app/immutable/assets/ares_surprised.BxbNH_w8.webp +0 -0
  445. package/.svelte-kit/output/server/_app/immutable/assets/ares_yay.EM2SNr0e.webp +0 -0
  446. package/.svelte-kit/output/server/_app/immutable/assets/bg_tiled_ares.DTcFskeK.png +0 -0
  447. package/.svelte-kit/output/server/_app/immutable/assets/bg_tiled_corn.D22ZwTZ0.png +0 -0
  448. package/.svelte-kit/output/server/_app/immutable/assets/bg_tiled_pineapple.D28N65_A.png +0 -0
  449. package/.svelte-kit/output/server/_app/immutable/assets/bg_tiled_reinhard.D22NV0xw.png +0 -0
  450. package/.svelte-kit/output/server/_app/immutable/assets/bg_tiled_tomato.O9Z7_E07.png +0 -0
  451. package/.svelte-kit/output/server/_app/immutable/assets/bg_tiled_turnip.DMU0uHH4.png +0 -0
  452. package/.svelte-kit/output/server/_app/immutable/assets/footage-chef-wings.dVBm8Uit.gif +0 -0
  453. package/.svelte-kit/output/server/_app/immutable/assets/header-hep-cat.DcyPS3Oy.mp4 +0 -0
  454. package/.svelte-kit/output/server/_app/immutable/assets/header-pengi.DWAOeO4q.mp4 +0 -0
  455. package/.svelte-kit/output/server/_app/immutable/assets/header-soulwork.BQRWmhTu.mp4 +0 -0
  456. package/.svelte-kit/output/server/_app/immutable/assets/placeholder_circle.Ij3bN7bI.png +0 -0
  457. package/.svelte-kit/output/server/_app/immutable/assets/seaweed-showcase.TTVTTC5m.mp4 +0 -0
  458. package/.svelte-kit/output/server/_app/immutable/assets/weaver-footage.sjDEbkrX.gif +0 -0
  459. package/.svelte-kit/output/server/_app/immutable/assets/window-set.IpgsYUna.png +0 -0
  460. package/.svelte-kit/output/server/chunks/Card.js +0 -37
  461. package/.svelte-kit/output/server/chunks/SeaweedTemplate.js +0 -1094
  462. package/.svelte-kit/output/server/chunks/SlideToggle.js +0 -84
  463. package/.svelte-kit/output/server/chunks/_page.js +0 -4
  464. package/.svelte-kit/output/server/chunks/_page2.js +0 -4
  465. package/.svelte-kit/output/server/chunks/_page3.js +0 -4
  466. package/.svelte-kit/output/server/chunks/_page4.js +0 -4
  467. package/.svelte-kit/output/server/chunks/_page5.js +0 -4
  468. package/.svelte-kit/output/server/chunks/_page6.js +0 -4
  469. package/.svelte-kit/output/server/chunks/_page7.js +0 -4
  470. package/.svelte-kit/output/server/chunks/_page8.js +0 -4
  471. package/.svelte-kit/output/server/chunks/client.js +0 -12
  472. package/.svelte-kit/output/server/chunks/index.js +0 -52
  473. package/.svelte-kit/output/server/chunks/internal.js +0 -247
  474. package/.svelte-kit/output/server/chunks/prod-ssr.js +0 -6
  475. package/.svelte-kit/output/server/chunks/store.js +0 -260
  476. package/.svelte-kit/output/server/chunks/stores.js +0 -5
  477. package/.svelte-kit/output/server/chunks/stores2.js +0 -26
  478. package/.svelte-kit/output/server/chunks/stores3.js +0 -38
  479. package/.svelte-kit/output/server/entries/pages/(pineapple)/_page.svelte.js +0 -23
  480. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page1/_page.svelte.js +0 -22
  481. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page2/_page.svelte.js +0 -22
  482. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/_page.svelte.js +0 -22
  483. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page5/_page.svelte.js +0 -22
  484. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page6/_page.svelte.js +0 -22
  485. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page7/(test_layout)/page8/_page.svelte.js +0 -22
  486. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page3/page7/_page.svelte.js +0 -22
  487. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(extra-pages)/page4/_page.svelte.js +0 -18
  488. package/.svelte-kit/output/server/entries/pages/(pineapple)/pineapple/(pineapple)/_page.ts.js +0 -9
  489. package/.svelte-kit/output/server/entries/pages/(seaweed)/_layout.svelte.js +0 -186
  490. package/.svelte-kit/output/server/entries/pages/(seaweed)/portfolio/_page.server.ts.js +0 -8
  491. package/.svelte-kit/output/server/entries/pages/(seaweed)/portfolio/_page.svelte.js +0 -8
  492. package/.svelte-kit/output/server/entries/pages/(seaweed)/portfolio/_page.ts.js +0 -9
  493. package/.svelte-kit/output/server/entries/pages/(seaweed)/portfolio/actual/_page.svelte.js +0 -18
  494. package/.svelte-kit/output/server/entries/pages/(seaweed)/portfolio/actual/_page.ts.js +0 -9
  495. package/.svelte-kit/output/server/entries/pages/_error.svelte.js +0 -29
  496. package/.svelte-kit/output/server/index.js +0 -2955
  497. package/.svelte-kit/output/server/internal.js +0 -13
  498. package/.svelte-kit/output/server/manifest-full.js +0 -125
  499. package/.svelte-kit/output/server/manifest.js +0 -117
  500. package/.svelte-kit/output/server/nodes/0.js +0 -8
  501. package/.svelte-kit/output/server/nodes/1.js +0 -8
  502. package/.svelte-kit/output/server/nodes/10.js +0 -8
  503. package/.svelte-kit/output/server/nodes/11.js +0 -8
  504. package/.svelte-kit/output/server/nodes/12.js +0 -8
  505. package/.svelte-kit/output/server/nodes/13.js +0 -10
  506. package/.svelte-kit/output/server/nodes/14.js +0 -13
  507. package/.svelte-kit/output/server/nodes/15.js +0 -10
  508. package/.svelte-kit/output/server/nodes/2.js +0 -8
  509. package/.svelte-kit/output/server/nodes/3.js +0 -8
  510. package/.svelte-kit/output/server/nodes/4.js +0 -8
  511. package/.svelte-kit/output/server/nodes/5.js +0 -8
  512. package/.svelte-kit/output/server/nodes/6.js +0 -8
  513. package/.svelte-kit/output/server/nodes/7.js +0 -8
  514. package/.svelte-kit/output/server/nodes/8.js +0 -8
  515. package/.svelte-kit/output/server/nodes/9.js +0 -8
  516. package/.svelte-kit/types/src/routes/(pineapple)/pineapple/$types.d.ts +0 -19
  517. package/.svelte-kit/vercel-tmp/index.js +0 -46
  518. package/.svelte-kit/vercel-tmp/manifest.js +0 -52
  519. package/build/server/host.json +0 -7
  520. package/build/server/local.settings.json +0 -6
  521. package/build/server/package-lock.json +0 -6
  522. package/build/server/package.json +0 -1
  523. package/build/server/sk_render/function.json +0 -17
  524. package/build/server/sk_render/index.js +0 -11489
  525. package/build/server/sk_render/index.js.map +0 -7
  526. package/build/static/_app/immutable/assets/0.vT28YyQg.css +0 -10
  527. package/build/static/_app/immutable/assets/13.BIMIBpeM.css +0 -1
  528. package/build/static/_app/immutable/assets/4.ClTmhFiH.css +0 -1
  529. package/build/static/_app/immutable/assets/Card.BAkK2DAr.css +0 -1
  530. package/build/static/_app/immutable/assets/NavigationComponent.DAojhPuD.css +0 -1
  531. package/build/static/_app/immutable/assets/PineappleBaseLayout.syfctdq0.css +0 -1
  532. package/build/static/_app/immutable/assets/ProgressBar.Cirlo5Z8.css +0 -1
  533. package/build/static/_app/immutable/assets/SeaweedTemplate.CVXyf0f_.css +0 -1
  534. package/build/static/_app/immutable/assets/_layout.h2ESO4YN.css +0 -10
  535. package/build/static/_app/immutable/assets/_page.BIMIBpeM.css +0 -1
  536. package/build/static/_app/immutable/assets/_page.ClTmhFiH.css +0 -1
  537. package/build/static/_app/immutable/assets/ares_blushing.B6Q0SsBp.webp +0 -0
  538. package/build/static/_app/immutable/assets/ares_disappointed.LOpkh7Q7.webp +0 -0
  539. package/build/static/_app/immutable/assets/ares_happy.Cz9WhdwO.webp +0 -0
  540. package/build/static/_app/immutable/assets/ares_lets_go.BxjJjKUv.webp +0 -0
  541. package/build/static/_app/immutable/assets/ares_logo.C_a3ZQAP.webp +0 -0
  542. package/build/static/_app/immutable/assets/ares_mad.DofDLDmM.webp +0 -0
  543. package/build/static/_app/immutable/assets/ares_neutral.Hp923t8N.webp +0 -0
  544. package/build/static/_app/immutable/assets/ares_slightly_mad.DdwOp6J5.webp +0 -0
  545. package/build/static/_app/immutable/assets/ares_surprised.BxbNH_w8.webp +0 -0
  546. package/build/static/_app/immutable/assets/ares_yay.EM2SNr0e.webp +0 -0
  547. package/build/static/_app/immutable/assets/bg_tiled_ares.DTcFskeK.png +0 -0
  548. package/build/static/_app/immutable/assets/bg_tiled_corn.D22ZwTZ0.png +0 -0
  549. package/build/static/_app/immutable/assets/bg_tiled_pineapple.D28N65_A.png +0 -0
  550. package/build/static/_app/immutable/assets/bg_tiled_reinhard.D22NV0xw.png +0 -0
  551. package/build/static/_app/immutable/assets/bg_tiled_tomato.O9Z7_E07.png +0 -0
  552. package/build/static/_app/immutable/assets/bg_tiled_turnip.DMU0uHH4.png +0 -0
  553. package/build/static/_app/immutable/assets/footage-chef-wings.dVBm8Uit.gif +0 -0
  554. package/build/static/_app/immutable/assets/header-hep-cat.DcyPS3Oy.mp4 +0 -0
  555. package/build/static/_app/immutable/assets/header-pengi.DWAOeO4q.mp4 +0 -0
  556. package/build/static/_app/immutable/assets/header-soulwork.BQRWmhTu.mp4 +0 -0
  557. package/build/static/_app/immutable/assets/placeholder_circle.Ij3bN7bI.png +0 -0
  558. package/build/static/_app/immutable/assets/seaweed-showcase.TTVTTC5m.mp4 +0 -0
  559. package/build/static/_app/immutable/assets/weaver-footage.sjDEbkrX.gif +0 -0
  560. package/build/static/_app/immutable/assets/window-set.IpgsYUna.png +0 -0
  561. package/build/static/_app/immutable/chunks/Card.DH87RA66.js +0 -5
  562. package/build/static/_app/immutable/chunks/DialogManagerStore.p-R7jA3N.js +0 -7
  563. package/build/static/_app/immutable/chunks/ProgressBar.svelte_svelte_type_style_lang.DiY8SXB3.js +0 -1
  564. package/build/static/_app/immutable/chunks/SeaweedTemplate.DeqnsKrn.js +0 -1064
  565. package/build/static/_app/immutable/chunks/SlideToggle.DGF7DQhk.js +0 -1
  566. package/build/static/_app/immutable/chunks/Toast.Dil_rTuG.js +0 -1
  567. package/build/static/_app/immutable/chunks/_page.BCsXwAds.js +0 -8
  568. package/build/static/_app/immutable/chunks/_page.CER3LJw4.js +0 -8
  569. package/build/static/_app/immutable/chunks/_page.CJqYI1vC.js +0 -7
  570. package/build/static/_app/immutable/chunks/_page.CRke_Vt-.js +0 -8
  571. package/build/static/_app/immutable/chunks/_page.CdlE3ZqM.js +0 -8
  572. package/build/static/_app/immutable/chunks/_page.D8F_fKwN.js +0 -8
  573. package/build/static/_app/immutable/chunks/_page.DOjmKWLN.js +0 -8
  574. package/build/static/_app/immutable/chunks/_page.UybeXHGE.js +0 -8
  575. package/build/static/_app/immutable/chunks/each.D6YF6ztN.js +0 -1
  576. package/build/static/_app/immutable/chunks/entry.DIDAHtmj.js +0 -3
  577. package/build/static/_app/immutable/chunks/index.BwUaF0YV.js +0 -6
  578. package/build/static/_app/immutable/chunks/index.DbwYs1Xx.js +0 -1
  579. package/build/static/_app/immutable/chunks/index.HfS4ysOO.js +0 -1
  580. package/build/static/_app/immutable/chunks/index.TTW-3Z8m.js +0 -1
  581. package/build/static/_app/immutable/chunks/preload-helper.BQ24v_F8.js +0 -1
  582. package/build/static/_app/immutable/chunks/scheduler.LgnVA12N.js +0 -1
  583. package/build/static/_app/immutable/chunks/spread.CgU5AtxT.js +0 -1
  584. package/build/static/_app/immutable/chunks/store.BMp6_Mv-.js +0 -1
  585. package/build/static/_app/immutable/chunks/stores.C1y1vsDB.js +0 -1
  586. package/build/static/_app/immutable/chunks/stores.CTStYDmk.js +0 -1
  587. package/build/static/_app/immutable/chunks/stores.CmlHsN0j.js +0 -1
  588. package/build/static/_app/immutable/chunks/transitions.FXurGCgU.js +0 -1
  589. package/build/static/_app/immutable/chunks/util.CpV-3U2s.js +0 -1
  590. package/build/static/_app/immutable/entry/app.DBmRlvle.js +0 -7
  591. package/build/static/_app/immutable/entry/start.DsC5h-eu.js +0 -1
  592. package/build/static/_app/immutable/nodes/10.CNjqd06K.js +0 -1
  593. package/build/static/_app/immutable/nodes/11.CNjqd06K.js +0 -1
  594. package/build/static/_app/immutable/nodes/13.BlqYNJ3t.js +0 -61
  595. package/build/static/_app/immutable/nodes/14.CVCdnjGH.js +0 -1
  596. package/build/static/_app/immutable/nodes/15.BzziCvFz.js +0 -1
  597. package/build/static/_app/immutable/nodes/4.BVz7IBBS.js +0 -1
  598. package/build/static/_app/immutable/nodes/5.CNjqd06K.js +0 -1
  599. package/build/static/_app/immutable/nodes/6.CNjqd06K.js +0 -1
  600. package/build/static/_app/immutable/nodes/7.CNjqd06K.js +0 -1
  601. package/build/static/_app/immutable/nodes/8.CNjqd06K.js +0 -1
  602. package/build/static/_app/immutable/nodes/9.CNjqd06K.js +0 -1
  603. package/build/static/_app/version.json +0 -1
  604. package/build/static/default-card.png +0 -0
  605. package/build/static/favicon.png +0 -0
  606. package/build/static/index.html +0 -0
  607. package/build/static/portfolio/__data.json +0 -1
  608. package/build/static/portfolio.html +0 -239
  609. package/build/static/robots.txt +0 -5
  610. package/build/staticwebapp.config.json +0 -39
  611. /package/{.svelte-kit/output → build}/client/_app/immutable/assets/0.vT28YyQg.css +0 -0
  612. /package/{.svelte-kit/output → build}/client/_app/immutable/assets/13.BIMIBpeM.css +0 -0
  613. /package/{.svelte-kit/output → build}/client/_app/immutable/assets/4.ClTmhFiH.css +0 -0
  614. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/Card.BAkK2DAr.css +0 -0
  615. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/NavigationComponent.DAojhPuD.css +0 -0
  616. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/PineappleBaseLayout.syfctdq0.css +0 -0
  617. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ProgressBar.Cirlo5Z8.css +0 -0
  618. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/_layout.h2ESO4YN.css +0 -0
  619. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/_page.BIMIBpeM.css +0 -0
  620. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/_page.ClTmhFiH.css +0 -0
  621. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_blushing.B6Q0SsBp.webp +0 -0
  622. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_disappointed.LOpkh7Q7.webp +0 -0
  623. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_happy.Cz9WhdwO.webp +0 -0
  624. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_lets_go.BxjJjKUv.webp +0 -0
  625. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_logo.C_a3ZQAP.webp +0 -0
  626. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_mad.DofDLDmM.webp +0 -0
  627. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_neutral.Hp923t8N.webp +0 -0
  628. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_slightly_mad.DdwOp6J5.webp +0 -0
  629. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_surprised.BxbNH_w8.webp +0 -0
  630. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/ares_yay.EM2SNr0e.webp +0 -0
  631. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/bg_tiled_ares.DTcFskeK.png +0 -0
  632. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/bg_tiled_corn.D22ZwTZ0.png +0 -0
  633. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/bg_tiled_pineapple.D28N65_A.png +0 -0
  634. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/bg_tiled_reinhard.D22NV0xw.png +0 -0
  635. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/bg_tiled_tomato.O9Z7_E07.png +0 -0
  636. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/bg_tiled_turnip.DMU0uHH4.png +0 -0
  637. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/footage-chef-wings.dVBm8Uit.gif +0 -0
  638. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/header-hep-cat.DcyPS3Oy.mp4 +0 -0
  639. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/header-pengi.DWAOeO4q.mp4 +0 -0
  640. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/header-soulwork.BQRWmhTu.mp4 +0 -0
  641. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/placeholder_circle.Ij3bN7bI.png +0 -0
  642. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/seaweed-showcase.TTVTTC5m.mp4 +0 -0
  643. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/weaver-footage.sjDEbkrX.gif +0 -0
  644. /package/{.svelte-kit/adapter-node → build/client}/_app/immutable/assets/window-set.IpgsYUna.png +0 -0
  645. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.BCsXwAds.js +0 -0
  646. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.CER3LJw4.js +0 -0
  647. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.CJqYI1vC.js +0 -0
  648. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.CRke_Vt-.js +0 -0
  649. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.CdlE3ZqM.js +0 -0
  650. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.D8F_fKwN.js +0 -0
  651. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.DOjmKWLN.js +0 -0
  652. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/_page.UybeXHGE.js +0 -0
  653. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/each.D6YF6ztN.js +0 -0
  654. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/index.DbwYs1Xx.js +0 -0
  655. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/preload-helper.BQ24v_F8.js +0 -0
  656. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/spread.CgU5AtxT.js +0 -0
  657. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/transitions.FXurGCgU.js +0 -0
  658. /package/{.svelte-kit/output → build}/client/_app/immutable/chunks/util.CpV-3U2s.js +0 -0
  659. /package/{.svelte-kit/output → build}/client/default-card.png +0 -0
  660. /package/{.svelte-kit/output → build}/client/favicon.png +0 -0
  661. /package/{.svelte-kit/output → build}/client/robots.txt +0 -0
  662. /package/{.svelte-kit/output/prerendered/dependencies → build/prerendered}/portfolio/__data.json +0 -0
@@ -1,1064 +0,0 @@
1
- import{s as gt,D as ut,e as y,a as w,b as A,f as _,g as r,i as O,E as dt,F as ht,G as ft,c as zt,l as at,q as It,C as Mt,r as E,u as L,h as d,x as et,y as $t,A as ke,B as ye,m as ot,Q as xt,n as st,ah as Ee,H as Ht,t as J,d as K,S as jt,T as Ot,K as ct,R as Le,j as mt,W as je,U as wt,w as Bt,M as Ut,k as D,Z as Oe,N as qt,J as we,ag as Et,_ as Pe}from"./scheduler.LgnVA12N.js";import{S as bt,i as vt,t as H,b as N,g as _t,e as kt,f as He,j as Ae,h as At,c as V,a as W,m as G,d as F,k as Lt}from"./index.CWCbcDVt.js";import{e as Vt}from"./each.D6YF6ztN.js";import{s as Wt,b as Gt,a as Ft}from"./index.BwUaF0YV.js";/* empty css */import{w as Ce}from"./index.HfS4ysOO.js";import{p as De,a as Ne}from"./ProgressBar.svelte_svelte_type_style_lang.DiY8SXB3.js";import{A as ze,e as xe,R as Ue,a as Be,L as Ve}from"./store.BMp6_Mv-.js";import{e as We}from"./DialogManagerStore.p-R7jA3N.js";import{d as Rt}from"./transitions.FXurGCgU.js";import{S as Nt}from"./SlideToggle.DGF7DQhk.js";import{s as Ge}from"./stores.CmlHsN0j.js";import{p as Fe}from"./stores.CTStYDmk.js";import{C as it}from"./Card.DH87RA66.js";import{g as Te}from"./stores.C1y1vsDB.js";function Re(a,t){if(!window.isSecureContext)return console.error("Clipboard action failed: app not running in secure context, see: https://developer.mozilla.org/en-US/docs/Web/API/Clipboard"),{};const e=()=>{a.dispatchEvent(new CustomEvent("copyComplete"))},n=()=>{if(typeof t=="object"){if("element"in t){const i=document.querySelector(`[data-clipboard="${t.element}"]`);if(!i)throw new Error(`Missing HTMLElement with an attribute of [data-clipboard="${t.element}"]`);Dt(i.innerHTML,"text/html").then(e);return}if("input"in t){const i=document.querySelector(`[data-clipboard="${t.input}"]`);if(!i)throw new Error(`Missing HTMLInputElement with an attribute of [data-clipboard="${t.input}"]`);Dt(i.value).then(e);return}}Dt(t).then(e)};return a.addEventListener("click",n),{update(i){t=i},destroy(){a.removeEventListener("click",n)}}}async function Dt(a,t="text/plain"){navigator.clipboard.write?await navigator.clipboard.write([new ClipboardItem({[t]:new Blob([a],{type:t}),"text/plain":new Blob([a],{type:"text/plain"})})]):await new Promise(e=>{e(navigator.clipboard.writeText(String(a)))})}function Qe(a){let t,e,n;const i=a[19].default,s=ut(i,a,a[18],null);return{c(){t=y("div"),s&&s.c(),this.h()},l(o){t=w(o,"DIV",{class:!0,"data-testid":!0});var u=A(t);s&&s.l(u),u.forEach(_),this.h()},h(){r(t,"class",e="accordion "+a[0]),r(t,"data-testid","accordion")},m(o,u){O(o,t,u),s&&s.m(t,null),n=!0},p(o,[u]){s&&s.p&&(!n||u&262144)&&dt(s,i,o,o[18],n?ft(i,o[18],u,null):ht(o[18]),null),(!n||u&1&&e!==(e="accordion "+o[0]))&&r(t,"class",e)},i(o){n||(H(s,o),n=!0)},o(o){N(s,o),n=!1},d(o){o&&_(t),s&&s.d(o)}}}function Ze(a,t,e){let n,i;zt(a,De,v=>e(20,i=v));let{$$slots:s={},$$scope:o}=t,{autocollapse:u=!1}=t,{width:c="w-full"}=t,{spacing:l="space-y-1"}=t,{disabled:h=!1}=t,{padding:b="py-2 px-4"}=t,{hover:m="hover:bg-primary-hover-token"}=t,{rounded:S="rounded-container-token"}=t,{caretOpen:g="rotate-180"}=t,{caretClosed:p=""}=t,{regionControl:C=""}=t,{regionPanel:I="space-y-4"}=t,{regionCaret:k=""}=t,{transitions:f=!i}=t,{transitionIn:$=Wt}=t,{transitionInParams:q={duration:200}}=t,{transitionOut:T=Wt}=t,{transitionOutParams:M={duration:200}}=t;const j=Ce(null);return at("active",j),at("autocollapse",u),at("disabled",h),at("padding",b),at("hover",m),at("rounded",S),at("caretOpen",g),at("caretClosed",p),at("regionControl",C),at("regionPanel",I),at("regionCaret",k),at("transitions",f),at("transitionIn",$),at("transitionInParams",q),at("transitionOut",T),at("transitionOutParams",M),a.$$set=v=>{e(22,t=It(It({},t),Mt(v))),"autocollapse"in v&&e(1,u=v.autocollapse),"width"in v&&e(2,c=v.width),"spacing"in v&&e(3,l=v.spacing),"disabled"in v&&e(4,h=v.disabled),"padding"in v&&e(5,b=v.padding),"hover"in v&&e(6,m=v.hover),"rounded"in v&&e(7,S=v.rounded),"caretOpen"in v&&e(8,g=v.caretOpen),"caretClosed"in v&&e(9,p=v.caretClosed),"regionControl"in v&&e(10,C=v.regionControl),"regionPanel"in v&&e(11,I=v.regionPanel),"regionCaret"in v&&e(12,k=v.regionCaret),"transitions"in v&&e(13,f=v.transitions),"transitionIn"in v&&e(14,$=v.transitionIn),"transitionInParams"in v&&e(15,q=v.transitionInParams),"transitionOut"in v&&e(16,T=v.transitionOut),"transitionOutParams"in v&&e(17,M=v.transitionOutParams),"$$scope"in v&&e(18,o=v.$$scope)},a.$$.update=()=>{e(0,n=`${c} ${l} ${t.class??""}`)},t=Mt(t),[n,u,c,l,h,b,m,S,g,p,C,I,k,f,$,q,T,M,o,s]}class Xe extends bt{constructor(t){super(),vt(this,t,Ze,Qe,gt,{autocollapse:1,width:2,spacing:3,disabled:4,padding:5,hover:6,rounded:7,caretOpen:8,caretClosed:9,regionControl:10,regionPanel:11,regionCaret:12,transitions:13,transitionIn:14,transitionInParams:15,transitionOut:16,transitionOutParams:17})}}const Ye=a=>({}),Qt=a=>({}),Je=a=>({}),Zt=a=>({}),Ke=a=>({}),Xt=a=>({}),tn=a=>({}),Yt=a=>({}),en=a=>({}),Jt=a=>({});function Kt(a){let t,e;const n=a[30].lead,i=ut(n,a,a[29],Jt);return{c(){t=y("div"),i&&i.c(),this.h()},l(s){t=w(s,"DIV",{class:!0});var o=A(t);i&&i.l(o),o.forEach(_),this.h()},h(){r(t,"class","accordion-lead")},m(s,o){O(s,t,o),i&&i.m(t,null),e=!0},p(s,o){i&&i.p&&(!e||o[0]&536870912)&&dt(i,n,s,s[29],e?ft(n,s[29],o,en):ht(s[29]),Jt)},i(s){e||(H(i,s),e=!0)},o(s){N(i,s),e=!1},d(s){s&&_(t),i&&i.d(s)}}}function nn(a){let t;return{c(){t=J("(summary)")},l(e){t=K(e,"(summary)")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function sn(a){let t,e,n;return{c(){t=y("div"),e=new jt(!1),this.h()},l(i){t=w(i,"DIV",{class:!0});var s=A(t);e=Ot(s,!1),s.forEach(_),this.h()},h(){e.a=null,r(t,"class",n="accordion-summary-caret "+a[11])},m(i,s){O(i,t,s),e.m(a[14],t)},p(i,s){s[0]&2048&&n!==(n="accordion-summary-caret "+i[11])&&r(t,"class",n)},i:st,o:st,d(i){i&&_(t)}}}function an(a){let t,e,n,i,s;const o=[ln,on],u=[];function c(l,h){return l[8]?0:1}return e=c(a),n=u[e]=o[e](a),{c(){t=y("div"),n.c(),this.h()},l(l){t=w(l,"DIV",{class:!0});var h=A(t);n.l(h),h.forEach(_),this.h()},h(){r(t,"class",i="accordion-summary-icons "+a[10])},m(l,h){O(l,t,h),u[e].m(t,null),s=!0},p(l,h){let b=e;e=c(l),e===b?u[e].p(l,h):(_t(),N(u[b],1,1,()=>{u[b]=null}),kt(),n=u[e],n?n.p(l,h):(n=u[e]=o[e](l),n.c()),H(n,1),n.m(t,null)),(!s||h[0]&1024&&i!==(i="accordion-summary-icons "+l[10]))&&r(t,"class",i)},i(l){s||(H(n),s=!0)},o(l){N(n),s=!1},d(l){l&&_(t),u[e].d()}}}function on(a){let t;const e=a[30].iconOpen,n=ut(e,a,a[29],Zt),i=n||rn(a);return{c(){i&&i.c()},l(s){i&&i.l(s)},m(s,o){i&&i.m(s,o),t=!0},p(s,o){n&&n.p&&(!t||o[0]&536870912)&&dt(n,e,s,s[29],t?ft(e,s[29],o,Je):ht(s[29]),Zt)},i(s){t||(H(i,s),t=!0)},o(s){N(i,s),t=!1},d(s){i&&i.d(s)}}}function ln(a){let t;const e=a[30].iconClosed,n=ut(e,a,a[29],Xt),i=n||cn(a);return{c(){i&&i.c()},l(s){i&&i.l(s)},m(s,o){i&&i.m(s,o),t=!0},p(s,o){n&&n.p&&(!t||o[0]&536870912)&&dt(n,e,s,s[29],t?ft(e,s[29],o,Ke):ht(s[29]),Xt)},i(s){t||(H(i,s),t=!0)},o(s){N(i,s),t=!1},d(s){i&&i.d(s)}}}function rn(a){let t,e;return{c(){t=new jt(!1),e=ct(),this.h()},l(n){t=Ot(n,!1),e=ct(),this.h()},h(){t.a=e},m(n,i){t.m(a[14],n,i),O(n,e,i)},p:st,d(n){n&&(_(e),t.d())}}}function cn(a){let t,e;return{c(){t=new jt(!1),e=ct(),this.h()},l(n){t=Ot(n,!1),e=ct(),this.h()},h(){t.a=e},m(n,i){t.m(a[14],n,i),O(n,e,i)},p:st,d(n){n&&(_(e),t.d())}}}function te(a){let t,e,n,i,s,o,u;const c=a[30].content,l=ut(c,a,a[29],Qt),h=l||un();return{c(){t=y("div"),h&&h.c(),this.h()},l(b){t=w(b,"DIV",{class:!0,id:!0,role:!0,"aria-hidden":!0,"aria-labelledby":!0});var m=A(t);h&&h.l(m),m.forEach(_),this.h()},h(){r(t,"class",e="accordion-panel "+a[9]),r(t,"id",n="accordion-panel-"+a[0]),r(t,"role","region"),r(t,"aria-hidden",i=!a[8]),r(t,"aria-labelledby",a[0])},m(b,m){O(b,t,m),h&&h.m(t,null),u=!0},p(b,m){a=b,l&&l.p&&(!u||m[0]&536870912)&&dt(l,c,a,a[29],u?ft(c,a[29],m,Ye):ht(a[29]),Qt),(!u||m[0]&512&&e!==(e="accordion-panel "+a[9]))&&r(t,"class",e),(!u||m[0]&1&&n!==(n="accordion-panel-"+a[0]))&&r(t,"id",n),(!u||m[0]&256&&i!==(i=!a[8]))&&r(t,"aria-hidden",i),(!u||m[0]&1)&&r(t,"aria-labelledby",a[0])},i(b){u||(H(h,b),b&&xt(()=>{u&&(o&&o.end(1),s=He(t,Rt,{transition:a[4],params:a[5],enabled:a[3]}),s.start())}),u=!0)},o(b){N(h,b),s&&s.invalidate(),b&&(o=Ae(t,Rt,{transition:a[6],params:a[7],enabled:a[3]})),u=!1},d(b){b&&_(t),h&&h.d(b),b&&o&&o.end()}}}function un(a){let t;return{c(){t=J("(content)")},l(e){t=K(e,"(content)")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function dn(a){let t,e,n,i,s,o,u,c,l,h,b,m,S,g,p=a[16].lead&&Kt(a);const C=a[30].summary,I=ut(C,a,a[29],Yt),k=I||nn(),f=[an,sn],$=[];function q(M,j){return M[16].iconClosed||M[16].iconOpen?0:1}o=q(a),u=$[o]=f[o](a);let T=a[8]&&te(a);return{c(){t=y("div"),e=y("button"),p&&p.c(),n=E(),i=y("div"),k&&k.c(),s=E(),u.c(),h=E(),T&&T.c(),this.h()},l(M){t=w(M,"DIV",{class:!0,"data-testid":!0});var j=A(t);e=w(j,"BUTTON",{type:!0,class:!0,id:!0,"aria-expanded":!0,"aria-controls":!0});var v=A(e);p&&p.l(v),n=L(v),i=w(v,"DIV",{class:!0});var z=A(i);k&&k.l(z),z.forEach(_),s=L(v),u.l(v),v.forEach(_),h=L(j),T&&T.l(j),j.forEach(_),this.h()},h(){r(i,"class","accordion-summary flex-1"),r(e,"type","button"),r(e,"class",c="accordion-control "+a[12]),r(e,"id",a[0]),r(e,"aria-expanded",a[8]),r(e,"aria-controls",l="accordion-panel-"+a[0]),e.disabled=a[2],r(t,"class",b="accordion-item "+a[13]),r(t,"data-testid","accordion-item")},m(M,j){O(M,t,j),d(t,e),p&&p.m(e,null),d(e,n),d(e,i),k&&k.m(i,null),d(e,s),$[o].m(e,null),d(t,h),T&&T.m(t,null),m=!0,S||(g=[et(e,"click",a[15]),et(e,"click",a[31]),et(e,"keydown",a[32]),et(e,"keyup",a[33]),et(e,"keypress",a[34])],S=!0)},p(M,j){M[16].lead?p?(p.p(M,j),j[0]&65536&&H(p,1)):(p=Kt(M),p.c(),H(p,1),p.m(e,n)):p&&(_t(),N(p,1,1,()=>{p=null}),kt()),I&&I.p&&(!m||j[0]&536870912)&&dt(I,C,M,M[29],m?ft(C,M[29],j,tn):ht(M[29]),Yt);let v=o;o=q(M),o===v?$[o].p(M,j):(_t(),N($[v],1,1,()=>{$[v]=null}),kt(),u=$[o],u?u.p(M,j):(u=$[o]=f[o](M),u.c()),H(u,1),u.m(e,null)),(!m||j[0]&4096&&c!==(c="accordion-control "+M[12]))&&r(e,"class",c),(!m||j[0]&1)&&r(e,"id",M[0]),(!m||j[0]&256)&&r(e,"aria-expanded",M[8]),(!m||j[0]&1&&l!==(l="accordion-panel-"+M[0]))&&r(e,"aria-controls",l),(!m||j[0]&4)&&(e.disabled=M[2]),M[8]?T?(T.p(M,j),j[0]&256&&H(T,1)):(T=te(M),T.c(),H(T,1),T.m(t,null)):T&&(_t(),N(T,1,1,()=>{T=null}),kt()),(!m||j[0]&8192&&b!==(b="accordion-item "+M[13]))&&r(t,"class",b)},i(M){m||(H(p),H(k,M),H(u),H(T),m=!0)},o(M){N(p),N(k,M),N(u),N(T),m=!1},d(M){M&&_(t),p&&p.d(),k&&k.d(M),$[o].d(),T&&T.d(),S=!1,$t(g)}}}const hn="",fn="text-start w-full flex items-center space-x-4",ee="fill-current w-3 transition-transform duration-[200ms]",mn="";function pn(a,t,e){let n,i,s,o,u,c,l,h,b=st,m=()=>(b(),b=Ee($,B=>e(28,h=B)),$);a.$$.on_destroy.push(()=>b());let{$$slots:S={},$$scope:g}=t;const p=ke(S),C=ye();let{open:I=!1}=t,{id:k=String(Math.random())}=t,{autocollapse:f=ot("autocollapse")}=t,{active:$=ot("active")}=t;m();let{disabled:q=ot("disabled")}=t,{padding:T=ot("padding")}=t,{hover:M=ot("hover")}=t,{rounded:j=ot("rounded")}=t,{caretOpen:v=ot("caretOpen")}=t,{caretClosed:z=ot("caretClosed")}=t,{regionControl:Q=ot("regionControl")}=t,{regionPanel:Z=ot("regionPanel")}=t,{regionCaret:X=ot("regionCaret")}=t,{transitions:Y=ot("transitions")}=t,{transitionIn:tt=ot("transitionIn")}=t,{transitionInParams:nt=ot("transitionInParams")}=t,{transitionOut:P=ot("transitionOut")}=t,{transitionOutParams:R=ot("transitionOutParams")}=t;const U=`
2
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class={classesControlCaret}>
3
- <path d="M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z" />
4
- </svg>`;function x(B){f===!0?$.set(k):e(17,I=!I),lt(B)}function lt(B){const qe=f?h===k:I;C("toggle",{event:B,id:k,panelId:`accordion-panel-${k}`,open:qe,autocollapse:f})}f&&I&&x();function yt(B){Ht.call(this,a,B)}function Ct(B){Ht.call(this,a,B)}function Tt(B){Ht.call(this,a,B)}function St(B){Ht.call(this,a,B)}return a.$$set=B=>{e(37,t=It(It({},t),Mt(B))),"open"in B&&e(17,I=B.open),"id"in B&&e(0,k=B.id),"autocollapse"in B&&e(18,f=B.autocollapse),"active"in B&&m(e(1,$=B.active)),"disabled"in B&&e(2,q=B.disabled),"padding"in B&&e(19,T=B.padding),"hover"in B&&e(20,M=B.hover),"rounded"in B&&e(21,j=B.rounded),"caretOpen"in B&&e(22,v=B.caretOpen),"caretClosed"in B&&e(23,z=B.caretClosed),"regionControl"in B&&e(24,Q=B.regionControl),"regionPanel"in B&&e(25,Z=B.regionPanel),"regionCaret"in B&&e(26,X=B.regionCaret),"transitions"in B&&e(3,Y=B.transitions),"transitionIn"in B&&e(4,tt=B.transitionIn),"transitionInParams"in B&&e(5,nt=B.transitionInParams),"transitionOut"in B&&e(6,P=B.transitionOut),"transitionOutParams"in B&&e(7,R=B.transitionOutParams),"$$scope"in B&&e(29,g=B.$$scope)},a.$$.update=()=>{a.$$.dirty[0]&393216&&I&&f&&x(),a.$$.dirty[0]&268828673&&e(8,n=f?h===k:I),e(13,i=`${hn} ${t.class??""}`),a.$$.dirty[0]&20447232&&e(12,s=`${fn} ${T} ${M} ${j} ${Q}`),a.$$.dirty[0]&12583168&&e(27,o=n?v:z),a.$$.dirty[0]&201326592&&e(11,u=`${ee} ${X} ${o}`),a.$$.dirty[0]&67108864&&e(10,c=`${ee} ${X}`),a.$$.dirty[0]&36175872&&e(9,l=`${mn} ${T} ${j} ${Z}`)},t=Mt(t),[k,$,q,Y,tt,nt,P,R,n,l,c,u,s,i,U,x,p,I,f,T,M,j,v,z,Q,Z,X,o,h,g,S,yt,Ct,Tt,St]}class gn extends bt{constructor(t){super(),vt(this,t,pn,dn,gt,{open:17,id:0,autocollapse:18,active:1,disabled:2,padding:19,hover:20,rounded:21,caretOpen:22,caretClosed:23,regionControl:24,regionPanel:25,regionCaret:26,transitions:3,transitionIn:4,transitionInParams:5,transitionOut:6,transitionOutParams:7},null,[-1,-1])}}function ne(a){let t,e,n,i=se(a[0])+"",s,o,u,c=(a[7]?a[4]:a[3])+"",l,h,b,m,S,g,p,C,I,k;function f(T,M){return T[6]?vn:bn}let $=f(a),q=$(a);return{c(){t=y("div"),e=y("header"),n=y("span"),s=J(i),o=E(),u=y("button"),l=J(c),m=E(),S=y("pre"),g=y("code"),q.c(),this.h()},l(T){t=w(T,"DIV",{class:!0,"data-testid":!0});var M=A(t);e=w(M,"HEADER",{class:!0});var j=A(e);n=w(j,"SPAN",{class:!0});var v=A(n);s=K(v,i),v.forEach(_),o=L(j),u=w(j,"BUTTON",{type:!0,class:!0});var z=A(u);l=K(z,c),z.forEach(_),j.forEach(_),m=L(M),S=w(M,"PRE",{class:!0});var Q=A(S);g=w(Q,"CODE",{class:!0});var Z=A(g);q.l(Z),Z.forEach(_),Q.forEach(_),M.forEach(_),this.h()},h(){r(n,"class","codeblock-language"),r(u,"type","button"),r(u,"class",h="codeblock-btn "+a[2]),r(e,"class","codeblock-header "+yn),r(g,"class",p="codeblock-code language-"+a[0]+" lineNumbers"),r(S,"class","codeblock-pre "+wn),r(t,"class",C="codeblock "+a[8]),r(t,"data-testid","codeblock")},m(T,M){O(T,t,M),d(t,e),d(e,n),d(n,s),d(e,o),d(e,u),d(u,l),d(t,m),d(t,S),d(S,g),q.m(g,null),I||(k=[et(u,"click",a[9]),Le(b=Re.call(null,u,a[1]))],I=!0)},p(T,M){M&1&&i!==(i=se(T[0])+"")&&mt(s,i),M&152&&c!==(c=(T[7]?T[4]:T[3])+"")&&mt(l,c),M&4&&h!==(h="codeblock-btn "+T[2])&&r(u,"class",h),b&&je(b.update)&&M&2&&b.update.call(null,T[1]),$===($=f(T))&&q?q.p(T,M):(q.d(1),q=$(T),q&&(q.c(),q.m(g,null))),M&1&&p!==(p="codeblock-code language-"+T[0]+" lineNumbers")&&r(g,"class",p),M&256&&C!==(C="codeblock "+T[8])&&r(t,"class",C)},d(T){T&&_(t),q.d(),I=!1,$t(k)}}}function bn(a){let t=a[1].trim()+"",e;return{c(){e=J(t)},l(n){e=K(n,t)},m(n,i){O(n,e,i)},p(n,i){i&2&&t!==(t=n[1].trim()+"")&&mt(e,t)},d(n){n&&_(e)}}}function vn(a){let t,e;return{c(){t=new jt(!1),e=ct(),this.h()},l(n){t=Ot(n,!1),e=ct(),this.h()},h(){t.a=e},m(n,i){t.m(a[5],n,i),O(n,e,i)},p(n,i){i&32&&t.p(n[5])},d(n){n&&(_(e),t.d())}}}function _n(a){let t,e=a[0]&&a[1]&&ne(a);return{c(){e&&e.c(),t=ct()},l(n){e&&e.l(n),t=ct()},m(n,i){e&&e.m(n,i),O(n,t,i)},p(n,[i]){n[0]&&n[1]?e?e.p(n,i):(e=ne(n),e.c(),e.m(t.parentNode,t)):e&&(e.d(1),e=null)},i:st,o:st,d(n){n&&_(t),e&&e.d(n)}}}const kn="overflow-hidden shadow",yn="text-xs text-white/50 uppercase flex justify-between items-center p-2 pl-4",wn="whitespace-pre-wrap break-all p-4 pt-1";function se(a){return a==="js"?"javascript":a==="ts"?"typescript":a==="shell"?"terminal":a}function Cn(a,t,e){let n,i;zt(a,Ge,T=>e(17,i=T));const s=ye();let{language:o="plaintext"}=t,{code:u=""}=t,{lineNumbers:c=!1}=t,{background:l="bg-neutral-900/90"}=t,{blur:h=""}=t,{text:b="text-sm"}=t,{color:m="text-white"}=t,{rounded:S="rounded-container-token"}=t,{shadow:g="shadow"}=t,{button:p="btn btn-sm variant-soft !text-white"}=t,{buttonLabel:C="Copy"}=t,{buttonCopied:I="👍"}=t,k=!1,f=u,$=!1;function q(){e(7,$=!0),setTimeout(()=>{e(7,$=!1)},2e3),s("copy")}return a.$$set=T=>{e(19,t=It(It({},t),Mt(T))),"language"in T&&e(0,o=T.language),"code"in T&&e(1,u=T.code),"lineNumbers"in T&&e(10,c=T.lineNumbers),"background"in T&&e(11,l=T.background),"blur"in T&&e(12,h=T.blur),"text"in T&&e(13,b=T.text),"color"in T&&e(14,m=T.color),"rounded"in T&&e(15,S=T.rounded),"shadow"in T&&e(16,g=T.shadow),"button"in T&&e(2,p=T.button),"buttonLabel"in T&&e(3,C=T.buttonLabel),"buttonCopied"in T&&e(4,I=T.buttonCopied)},a.$$.update=()=>{a.$$.dirty&131075&&i!==void 0&&(e(5,f=i.highlight(u,{language:o}).value.trim()),e(6,k=!0)),a.$$.dirty&1056&&c&&(e(5,f=f.replace(/^/gm,()=>'<span class="line"></span> ')),e(6,k=!0)),e(8,n=`${kn} ${l} ${h} ${b} ${m} ${S} ${g} ${t.class??""}`)},t=Mt(t),[o,u,p,C,I,f,k,$,n,q,c,l,h,b,m,S,g,i]}class Tn extends bt{constructor(t){super(),vt(this,t,Cn,_n,gt,{language:0,code:1,lineNumbers:10,background:11,blur:12,text:13,color:14,rounded:15,shadow:16,button:2,buttonLabel:3,buttonCopied:4})}}const Pt="https://static.itch.io/images/itchio-textless-black.svg",Sn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24'%20viewBox='0%20-960%20960%20960'%20width='24'%3e%3cpath%20d='M160-160q-33%200-56.5-23.5T80-240v-480q0-33%2023.5-56.5T160-800h640q33%200%2056.5%2023.5T880-720v480q0%2033-23.5%2056.5T800-160H160Zm320-280L160-640v400h640v-400L480-440Zm0-80%20320-200H160l320%20200ZM160-640v-80%20480-400Z'/%3e%3c/svg%3e",pt="data:image/svg+xml,%3csvg%20width='98'%20height='96'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M48.854%200C21.839%200%200%2022%200%2049.217c0%2021.756%2013.993%2040.172%2033.405%2046.69%202.427.49%203.316-1.059%203.316-2.362%200-1.141-.08-5.052-.08-9.127-13.59%202.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015%204.934.326%207.523%205.052%207.523%205.052%204.367%207.496%2011.404%205.378%2014.235%204.074.404-3.178%201.699-5.378%203.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283%200-5.378%201.94-9.778%205.014-13.2-.485-1.222-2.184-6.275.486-13.038%200%200%204.125-1.304%2013.426%205.052a46.97%2046.97%200%200%201%2012.214-1.63c4.125%200%208.33.571%2012.213%201.63%209.302-6.356%2013.427-5.052%2013.427-5.052%202.67%206.763.97%2011.816.485%2013.038%203.155%203.422%205.015%207.822%205.015%2013.2%200%2018.905-11.404%2023.06-22.324%2024.283%201.78%201.548%203.316%204.481%203.316%209.126%200%206.6-.08%2011.897-.08%2013.526%200%201.304.89%202.853%203.316%202.364%2019.412-6.52%2033.405-24.935%2033.405-46.691C97.707%2022%2075.788%200%2048.854%200z'%20fill='%2324292f'/%3e%3c/svg%3e",$n="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M19%200h-14c-2.761%200-5%202.239-5%205v14c0%202.761%202.239%205%205%205h14c2.762%200%205-2.239%205-5v-14c0-2.761-2.238-5-5-5zm-11%2019h-3v-11h3v11zm-1.5-12.268c-.966%200-1.75-.79-1.75-1.764s.784-1.764%201.75-1.764%201.75.79%201.75%201.764-.783%201.764-1.75%201.764zm13.5%2012.268h-3v-5.604c0-3.368-4-3.113-4%200v5.604h-3v-11h3v1.765c1.396-2.586%207-2.777%207%202.476v6.759z'/%3e%3c/svg%3e";function ie(a){let t,e="TurnipXenon";return{c(){t=y("span"),t.textContent=e,this.h()},l(n){t=w(n,"SPAN",{class:!0,"data-svelte-h":!0}),D(t)!=="svelte-1yx4gc2"&&(t.textContent=e),this.h()},h(){r(t,"class","svelte-urhqdc")},m(n,i){O(n,t,i)},d(n){n&&_(t)}}}function ae(a){let t,e,n,i,s,o,u,c=!a[0]&&oe(a);return{c(){t=y("button"),e=y("img"),i=E(),c&&c.c(),this.h()},l(l){t=w(l,"BUTTON",{type:!0,class:!0,role:!0,title:!0});var h=A(t);e=w(h,"IMG",{src:!0,alt:!0,class:!0}),i=L(h),c&&c.l(h),h.forEach(_),this.h()},h(){wt(e.src,n=$n)||r(e,"src",n),r(e,"alt","linkedin icon"),r(e,"class","svelte-urhqdc"),r(t,"type","button"),r(t,"class","social-button turnip-button svelte-urhqdc"),r(t,"role","link"),r(t,"title",s=`https://www.linkedin.com/in/${a[2]}/`)},m(l,h){O(l,t,h),d(t,e),d(t,i),c&&c.m(t,null),o||(u=et(t,"click",a[8]),o=!0)},p(l,h){l[0]?c&&(c.d(1),c=null):c?c.p(l,h):(c=oe(l),c.c(),c.m(t,null)),h&4&&s!==(s=`https://www.linkedin.com/in/${l[2]}/`)&&r(t,"title",s)},d(l){l&&_(t),c&&c.d(),o=!1,u()}}}function oe(a){let t,e;return{c(){t=y("span"),e=J(a[2]),this.h()},l(n){t=w(n,"SPAN",{class:!0});var i=A(t);e=K(i,a[2]),i.forEach(_),this.h()},h(){r(t,"class","svelte-urhqdc")},m(n,i){O(n,t,i),d(t,e)},p(n,i){i&4&&mt(e,n[2])},d(n){n&&_(t)}}}function le(a){let t,e;return{c(){t=y("span"),e=J(a[1]),this.h()},l(n){t=w(n,"SPAN",{class:!0});var i=A(t);e=K(i,a[1]),i.forEach(_),this.h()},h(){r(t,"class","svelte-urhqdc")},m(n,i){O(n,t,i),d(t,e)},p(n,i){i&2&&mt(e,n[1])},d(n){n&&_(t)}}}function re(a){let t,e,n,i,s,o,u,c,l=!a[0]&&ce();return{c(){t=y("button"),e=y("img"),i=E(),l&&l.c(),this.h()},l(h){t=w(h,"BUTTON",{type:!0,class:!0,role:!0,title:!0});var b=A(t);e=w(b,"IMG",{src:!0,alt:!0,class:!0}),i=L(b),l&&l.l(b),b.forEach(_),this.h()},h(){wt(e.src,n=Pt)||r(e,"src",n),r(e,"alt","itch icon"),r(e,"class","svelte-urhqdc"),r(t,"type","button"),r(t,"class","social-button turnip-button svelte-urhqdc"),r(t,"role","link"),r(t,"title","https://turnipxenon.itch.io/")},m(h,b){O(h,t,b),d(t,e),d(t,i),l&&l.m(t,null),o=!0,u||(c=et(t,"click",a[10]),u=!0)},p(h,b){h[0]?l&&(l.d(1),l=null):l||(l=ce(),l.c(),l.m(t,null))},i(h){o||(h&&xt(()=>{o&&(s||(s=At(t,Gt,{},!0)),s.run(1))}),o=!0)},o(h){h&&(s||(s=At(t,Gt,{},!1)),s.run(0)),o=!1},d(h){h&&_(t),l&&l.d(),h&&s&&s.end(),u=!1,c()}}}function ce(a){let t,e="TurnipXenon";return{c(){t=y("span"),t.textContent=e,this.h()},l(n){t=w(n,"SPAN",{class:!0,"data-svelte-h":!0}),D(t)!=="svelte-1yx4gc2"&&(t.textContent=e),this.h()},h(){r(t,"class","svelte-urhqdc")},m(n,i){O(n,t,i)},d(n){n&&_(t)}}}function In(a){let t,e,n,i,s,o,u,c,l,h,b,m,S,g,p,C=!a[0]&&ie(),I=a[3]&&ae(a),k=!a[0]&&le(a),f=a[4]&&re(a);return{c(){t=y("div"),e=y("button"),n=y("img"),s=E(),C&&C.c(),o=E(),I&&I.c(),u=E(),c=y("button"),l=y("img"),b=E(),k&&k.c(),S=E(),f&&f.c(),this.h()},l($){t=w($,"DIV",{class:!0,style:!0,"data-nosnippet":!0});var q=A(t);e=w(q,"BUTTON",{type:!0,class:!0,role:!0,title:!0});var T=A(e);n=w(T,"IMG",{src:!0,alt:!0,class:!0}),s=L(T),C&&C.l(T),T.forEach(_),o=L(q),I&&I.l(q),u=L(q),c=w(q,"BUTTON",{type:!0,class:!0,role:!0,title:!0});var M=A(c);l=w(M,"IMG",{src:!0,alt:!0,class:!0}),b=L(M),k&&k.l(M),M.forEach(_),S=L(q),f&&f.l(q),q.forEach(_),this.h()},h(){wt(n.src,i=pt)||r(n,"src",i),r(n,"alt","github icon"),r(n,"class","svelte-urhqdc"),r(e,"type","button"),r(e,"class","social-button turnip-button svelte-urhqdc"),r(e,"role","link"),r(e,"title","https://github.com/TurnipXenon"),wt(l.src,h=Sn)||r(l,"src",h),r(l,"alt","mail icon"),r(l,"class","svelte-urhqdc"),r(c,"type","button"),r(c,"class","social-button turnip-button svelte-urhqdc"),r(c,"role","link"),r(c,"title",m=`mailto:${a[1]}`),r(t,"class","socials svelte-urhqdc"),r(t,"style",a[5]),r(t,"data-nosnippet",""),Bt(t,"isSmall",a[0])},m($,q){O($,t,q),d(t,e),d(e,n),d(e,s),C&&C.m(e,null),d(t,o),I&&I.m(t,null),d(t,u),d(t,c),d(c,l),d(c,b),k&&k.m(c,null),d(t,S),f&&f.m(t,null),g||(p=[et(e,"click",a[7]),et(c,"click",a[9])],g=!0)},p($,[q]){$[0]?C&&(C.d(1),C=null):C||(C=ie(),C.c(),C.m(e,null)),$[3]?I?I.p($,q):(I=ae($),I.c(),I.m(t,u)):I&&(I.d(1),I=null),$[0]?k&&(k.d(1),k=null):k?k.p($,q):(k=le($),k.c(),k.m(c,null)),q&2&&m!==(m=`mailto:${$[1]}`)&&r(c,"title",m),$[4]?f?(f.p($,q),q&16&&H(f,1)):(f=re($),f.c(),H(f,1),f.m(t,null)):f&&(_t(),N(f,1,1,()=>{f=null}),kt()),q&1&&Bt(t,"isSmall",$[0])},i($){H(f)},o($){N(f)},d($){$&&_(t),C&&C.d(),I&&I.d(),k&&k.d(),f&&f.d(),g=!1,$t(p)}}}function Mn(a,t,e){let{isSmallVersion:n=!1}=t,{email:i="turnipxenon@gmail.com"}=t,{linkedinSlug:s="turnip-xenon"}=t,{isSlot:o=!1}=t,{allowLinkedIn:u=!0}=t,c=!1;const l=`
5
- --preferred-justify-content: ${o?"flex-start":"center"};
6
- --preferred-overall-margin-bottom: ${o?"0":"0.75lh"};
7
- `;Ut(()=>{e(4,c=window.screen.availWidth>=440)});const h=()=>window.open("https://github.com/TurnipXenon"),b=()=>window.open(`https://www.linkedin.com/in/${s}/`),m=()=>window.open(`mailto:${i}`),S=()=>window.open("https://turnipxenon.itch.io/");return a.$$set=g=>{"isSmallVersion"in g&&e(0,n=g.isSmallVersion),"email"in g&&e(1,i=g.email),"linkedinSlug"in g&&e(2,s=g.linkedinSlug),"isSlot"in g&&e(6,o=g.isSlot),"allowLinkedIn"in g&&e(3,u=g.allowLinkedIn)},[n,i,s,u,c,l,o,h,b,m,S]}class Se extends bt{constructor(t){super(),vt(this,t,Mn,In,gt,{isSmallVersion:0,email:1,linkedinSlug:2,isSlot:6,allowLinkedIn:3})}}const qn=a=>({}),ue=a=>({shouldDisplaySocialIcons:a[2]}),En=a=>({}),de=a=>({}),Ln=a=>({}),he=a=>({});function jn(a){let t,e,n,i,s,o;t=new Ue({props:{enable:a[1]}});const u=a[4].default,c=ut(u,a,a[5],ue);return{c(){V(t.$$.fragment),e=E(),n=y("div"),c&&c.c(),i=E(),s=y("div"),this.h()},l(l){W(t.$$.fragment,l),e=L(l),n=w(l,"DIV",{class:!0});var h=A(n);c&&c.l(h),i=L(h),s=w(h,"DIV",{class:!0}),A(s).forEach(_),h.forEach(_),this.h()},h(){r(s,"class","footer-space"),r(n,"class","default-page-container svelte-17jndg7")},m(l,h){G(t,l,h),O(l,e,h),O(l,n,h),c&&c.m(n,null),d(n,i),d(n,s),o=!0},p(l,h){const b={};h&2&&(b.enable=l[1]),t.$set(b),c&&c.p&&(!o||h&32)&&dt(c,u,l,l[5],o?ft(u,l[5],h,qn):ht(l[5]),ue)},i(l){o||(H(t.$$.fragment,l),H(c,l),o=!0)},o(l){N(t.$$.fragment,l),N(c,l),o=!1},d(l){l&&(_(e),_(n)),F(t,l),c&&c.d(l)}}}function On(a){let t,e;const n=a[4].s,i=ut(n,a,a[5],de);return{c(){t=y("div"),i&&i.c(),this.h()},l(s){t=w(s,"DIV",{});var o=A(t);i&&i.l(o),o.forEach(_),this.h()},h(){t.hidden=!0},m(s,o){O(s,t,o),i&&i.m(t,null),e=!0},p(s,o){i&&i.p&&(!e||o&32)&&dt(i,n,s,s[5],e?ft(n,s[5],o,En):ht(s[5]),de)},i(s){e||(H(i,s),e=!0)},o(s){N(i,s),e=!1},d(s){s&&_(t),i&&i.d(s)}}}function Pn(a){let t,e,n;const i=a[4].extraLeadingIcons,s=ut(i,a,a[5],he);return{c(){t=y("div"),s&&s.c()},l(o){t=w(o,"DIV",{});var u=A(t);s&&s.l(u),u.forEach(_)},m(o,u){O(o,t,u),s&&s.m(t,null),n=!0},p(o,u){s&&s.p&&(!n||u&32)&&dt(s,i,o,o[5],n?ft(i,o[5],u,Ln):ht(o[5]),he)},i(o){n||(H(s,o),o&&xt(()=>{n&&(e||(e=At(t,Ft,{x:-10},!0)),e.run(1))}),n=!0)},o(o){N(s,o),o&&(e||(e=At(t,Ft,{x:-10},!1)),e.run(0)),n=!1},d(o){o&&_(t),s&&s.d(o),o&&e&&e.end()}}}function Hn(a){let t,e,n,i,s,o;const u=[Pn,On],c=[];function l(h,b){return h[3].extraLeadingIcons&&h[0]?0:h[3].extraLeadingIcons?1:-1}return~(n=l(a))&&(i=c[n]=u[n](a)),{c(){t=y("span"),e=E(),i&&i.c(),s=ct(),this.h()},l(h){t=w(h,"SPAN",{class:!0}),A(t).forEach(_),e=L(h),i&&i.l(h),s=ct(),this.h()},h(){r(t,"class","lead-slot-placeholder svelte-17jndg7")},m(h,b){O(h,t,b),O(h,e,b),~n&&c[n].m(h,b),O(h,s,b),o=!0},p(h,b){let m=n;n=l(h),n===m?~n&&c[n].p(h,b):(i&&(_t(),N(c[m],1,1,()=>{c[m]=null}),kt()),~n?(i=c[n],i?i.p(h,b):(i=c[n]=u[n](h),i.c()),H(i,1),i.m(s.parentNode,s)):i=null)},i(h){o||(H(i),o=!0)},o(h){N(i),o=!1},d(h){h&&(_(t),_(e),_(s)),~n&&c[n].d(h)}}}function An(a){let t,e;return t=new Ve({props:{bgLight:"bg-surface-400"}}),{c(){V(t.$$.fragment)},l(n){W(t.$$.fragment,n)},m(n,i){G(t,n,i),e=!0},p:st,i(n){e||(H(t.$$.fragment,n),e=!0)},o(n){N(t.$$.fragment,n),e=!1},d(n){F(t,n)}}}function Dn(a){let t,e;return t=new Be({props:{slotDefault:"place-content-start",background:"app-shell-token",$$slots:{trail:[An],lead:[Hn]},$$scope:{ctx:a}}}),{c(){V(t.$$.fragment)},l(n){W(t.$$.fragment,n)},m(n,i){G(t,n,i),e=!0},p(n,i){const s={};i&41&&(s.$$scope={dirty:i,ctx:n}),t.$set(s)},i(n){e||(H(t.$$.fragment,n),e=!0)},o(n){N(t.$$.fragment,n),e=!1},d(n){F(t,n)}}}function Nn(a){let t,e=`<script>${Ne.toString()} autoModeWatcher();<\/script>`,n,i,s,o;return s=new ze({props:{$$slots:{header:[Dn],default:[jn]},$$scope:{ctx:a}}}),{c(){t=new jt(!1),n=ct(),i=E(),V(s.$$.fragment),this.h()},l(u){const c=Oe("svelte-19or0ga",document.head);t=Ot(c,!1),n=ct(),c.forEach(_),i=L(u),W(s.$$.fragment,u),this.h()},h(){t.a=n},m(u,c){t.m(e,document.head),d(document.head,n),O(u,i,c),G(s,u,c),o=!0},p(u,[c]){const l={};c&43&&(l.$$scope={dirty:c,ctx:u}),s.$set(l)},i(u){o||(H(s.$$.fragment,u),o=!0)},o(u){N(s.$$.fragment,u),o=!1},d(u){u&&(t.d(),_(i)),_(n),F(s,u)}}}function zn(a,t,e){let{$$slots:n={},$$scope:i}=t;const s=ke(n);let{shouldDisplayLeadingIcons:o=!1}=t,u=!0;xe.subscribe(l=>{e(1,u=l)}),We.set(!1);let c=Ce(!1);return a.$$set=l=>{"shouldDisplayLeadingIcons"in l&&e(0,o=l.shouldDisplayLeadingIcons),"$$scope"in l&&e(5,i=l.$$scope)},[o,u,c,s,n,i]}class xn extends bt{constructor(t){super(),vt(this,t,zn,Nn,gt,{shouldDisplayLeadingIcons:0})}}function Un(a){let t,e;const n=a[3].default,i=ut(n,a,a[2],null);return{c(){t=y("span"),i&&i.c()},l(s){t=w(s,"SPAN",{});var o=A(t);i&&i.l(o),o.forEach(_)},m(s,o){O(s,t,o),i&&i.m(t,null),a[4](t),e=!0},p(s,[o]){i&&i.p&&(!e||o&4)&&dt(i,n,s,s[2],e?ft(n,s[2],o,null):ht(s[2]),null)},i(s){e||(H(i,s),e=!0)},o(s){N(i,s),e=!1},d(s){s&&_(t),i&&i.d(s),a[4](null)}}}function Bn(a,t,e){let{$$slots:n={},$$scope:i}=t,{isVisible:s=!0}=t,o,u;Ut(()=>{u=new IntersectionObserver(([l])=>{e(1,s=l.intersectionRatio>=1)},{threshold:[1]}),u.observe(o)});function c(l){qt[l?"unshift":"push"](()=>{o=l,e(0,o)})}return a.$$set=l=>{"isVisible"in l&&e(1,s=l.isVisible),"$$scope"in l&&e(2,i=l.$$scope)},[o,s,i,n,c]}class Vn extends bt{constructor(t){super(),vt(this,t,Bn,Un,gt,{isVisible:1})}}const Wn=""+new URL("../assets/header-pengi.DWAOeO4q.mp4",import.meta.url).href,Gn=""+new URL("../assets/header-hep-cat.DcyPS3Oy.mp4",import.meta.url).href,Fn="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjwhRE9DVFlQRSBzdmcgIFBVQkxJQyAnLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4nICAnaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkJz48c3ZnIGhlaWdodD0iNTEycHgiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDUxMiA1MTI7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiB3aWR0aD0iNTEycHgiIHhtbDpzcGFjZT0icHJlc2VydmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxnIGlkPSJfeDM0XzQtYml0YnVja2V0Ij48Zz48cGF0aCBkPSJNNDAuOTI5LDQ5LjE3OGMtOC4xMDgtMC4wOTItMTQuODM1LDYuMzU4LTE0LjkyOCwxNC41NTljMCwwLjgyOSwwLjA5MywxLjc1LDAuMTg2LDIuNTggICAgbDYyLjU2NiwzNzkuNzM1YzEuNTY2LDkuNTgyLDkuODYsMTYuNjgsMTkuNjI3LDE2Ljc3aDMwMC4xMThjNy4yODEsMC4wOTMsMTMuNTQ2LTUuMTU5LDE0Ljc0NS0xMi4zNDdMNDg1LjgxLDY2LjQwOSAgICBjMS4yOS04LjAxNi00LjE0Ni0xNS41NzItMTIuMTYzLTE2Ljg2MmMtMC44MjktMC4wOTEtMS42NTgtMC4xODQtMi41NzgtMC4xODRMNDAuOTI5LDQ5LjE3OEw0MC45MjksNDkuMTc4eiBNMzA0LjM3NSwzMjMuNTkgICAgaC05NS44MzFsLTI1Ljg5NS0xMzUuNDU2aDE0NC45NDVMMzA0LjM3NSwzMjMuNTlMMzA0LjM3NSwzMjMuNTl6IiBzdHlsZT0iZmlsbDojMjY4NEZGOyIvPjwvZz48L2c+PGcgaWQ9IkxheWVyXzEiLz48L3N2Zz4=",Rn=""+new URL("../assets/footage-chef-wings.dVBm8Uit.gif",import.meta.url).href,$e="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24'%20viewBox='0%20-960%20960%20960'%20width='24'%3e%3cpath%20d='M440-280H280q-83%200-141.5-58.5T80-480q0-83%2058.5-141.5T280-680h160v80H280q-50%200-85%2035t-35%2085q0%2050%2035%2085t85%2035h160v80ZM320-440v-80h320v80H320Zm200%20160v-80h160q50%200%2085-35t35-85q0-50-35-85t-85-35H520v-80h160q83%200%20141.5%2058.5T880-480q0%2083-58.5%20141.5T680-280H520Z'/%3e%3c/svg%3e",Qn=""+new URL("../assets/header-soulwork.BQRWmhTu.mp4",import.meta.url).href;function Zn(a){let t,e='<h1 class="text-center">Games</h1>';return{c(){t=y("div"),t.innerHTML=e,this.h()},l(n){t=w(n,"DIV",{class:!0,slot:!0,"data-svelte-h":!0}),D(t)!=="svelte-1b7bf2z"&&(t.innerHTML=e),this.h()},h(){r(t,"class","section-card title-card"),r(t,"slot","content")},m(n,i){O(n,t,i)},p:st,d(n){n&&_(t)}}}function Xn(a){let t,e,n=`video unavailable. original video contains pengi gameplay showing the dynamic dialog
8
- layout and character animation.
9
- <source src="${Wn}" type="video/mp4"/>`,i,s,o,u="Pengi",c,l,h=`Well well, quite the dreamer, aren’t you? Might be hard to get in... costs a lot of
10
- money...`,b,m,S=`Pengi is a text-based adventure made in <span class="qt-unity">Unity</span>. I acted as the sole
11
- programmer for the team. Most of the work revolves around UI and creating <a href="https://yarnspinner.dev/" target="_blank">YarnSpinner</a> commands for writers
12
- to use to create expressive stage directions in the script.`,g,p,C,I=`<img alt="github icon" src="${pt}"/>`,k,f,$=`<img alt="itch.io icon" src="${Pt}"/>`,q,T;return{c(){t=y("section"),e=y("video"),e.innerHTML=n,i=E(),s=y("section"),o=y("h1"),o.textContent=u,c=E(),l=y("blockquote"),l.textContent=h,b=E(),m=y("p"),m.innerHTML=S,g=E(),p=y("section"),C=y("button"),C.innerHTML=I,k=E(),f=y("button"),f.innerHTML=$,this.h()},l(M){t=w(M,"SECTION",{class:!0,slot:!0});var j=A(t);e=w(j,"VIDEO",{preload:!0,"data-svelte-h":!0}),D(e)!=="svelte-14tfe19"&&(e.innerHTML=n),i=L(j),s=w(j,"SECTION",{class:!0});var v=A(s);o=w(v,"H1",{"data-svelte-h":!0}),D(o)!=="svelte-kn1e7n"&&(o.textContent=u),c=L(v),l=w(v,"BLOCKQUOTE",{"data-svelte-h":!0}),D(l)!=="svelte-nbh0iu"&&(l.textContent=h),b=L(v),m=w(v,"P",{"data-svelte-h":!0}),D(m)!=="svelte-17y45xl"&&(m.innerHTML=S),g=L(v),p=w(v,"SECTION",{class:!0});var z=A(p);C=w(z,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(C)!=="svelte-l7s9gj"&&(C.innerHTML=I),k=L(z),f=w(z,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(f)!=="svelte-uciqk6"&&(f.innerHTML=$),z.forEach(_),v.forEach(_),j.forEach(_),this.h()},h(){e.playsInline=!0,e.autoplay=!0,e.muted=!0,e.loop=!0,r(e,"preload","none"),r(C,"type","button"),r(C,"class","game-button turnip-button"),r(C,"role","link"),r(C,"title","https://github.com/GreenTea-M/ProjectPengi"),r(f,"type","button"),r(f,"class","game-button turnip-button"),r(f,"role","link"),r(f,"title","https://turnipxenon.itch.io/pengi"),r(p,"class","game-link-section"),r(s,"class","game-card-body"),r(t,"class","game-card"),r(t,"slot","content")},m(M,j){O(M,t,j),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),d(s,g),d(s,p),d(p,C),d(p,k),d(p,f),q||(T=[et(C,"click",a[3]),et(f,"click",a[4])],q=!0)},p:st,d(M){M&&_(t),q=!1,$t(T)}}}function Yn(a){let t,e,n=`<source src="${Gn}" type="video/mp4"/>`,i,s,o,u="Hepcat",c,l,h='"Cats, Jazz, and a little bit of Death. What more could anyone ask for?"',b,m,S='This is a course project made by a team of six for <a href="https://sites.google.com/ualberta.ca/cmput250/">CMPUT 250</a>, and it won <a href="https://webdocs.cs.ualberta.ca/~nathanst/certificate/">Game of the year.</a>',g,p,C=`Hep Cat is a rhythm game made in <a href="https://www.rpgmakerweb.com/products/programs/rpg-maker-mv" target="_blank" class="qt-rpgmaker">RPG Maker MV</a> with the help of additional custom-made <span class="qt-js">Javascript</span> plugins. I
13
- wrote the rhythm game plugin&#39;s framework. For this plugin to work, I
14
- had to write a <span class="qt-python">Python</span> script that parses osu! files into readable JSON
15
- files.`,I,k,f,$=`<img alt="bitbucket icon" src="${Fn}"/>`,q,T,M=`<img alt="itch.io icon" src="${Pt}"/>`,j,v;return{c(){t=y("section"),e=y("video"),e.innerHTML=n,i=E(),s=y("section"),o=y("h1"),o.textContent=u,c=E(),l=y("blockquote"),l.textContent=h,b=E(),m=y("p"),m.innerHTML=S,g=E(),p=y("p"),p.innerHTML=C,I=E(),k=y("section"),f=y("button"),f.innerHTML=$,q=E(),T=y("button"),T.innerHTML=M,this.h()},l(z){t=w(z,"SECTION",{class:!0,slot:!0});var Q=A(t);e=w(Q,"VIDEO",{preload:!0,id:!0,"data-svelte-h":!0}),D(e)!=="svelte-f94lws"&&(e.innerHTML=n),i=L(Q),s=w(Q,"SECTION",{class:!0});var Z=A(s);o=w(Z,"H1",{"data-svelte-h":!0}),D(o)!=="svelte-1iabfbj"&&(o.textContent=u),c=L(Z),l=w(Z,"BLOCKQUOTE",{"data-svelte-h":!0}),D(l)!=="svelte-tw25hi"&&(l.textContent=h),b=L(Z),m=w(Z,"P",{"data-svelte-h":!0}),D(m)!=="svelte-qudb2d"&&(m.innerHTML=S),g=L(Z),p=w(Z,"P",{"data-svelte-h":!0}),D(p)!=="svelte-1bf1ah2"&&(p.innerHTML=C),I=L(Z),k=w(Z,"SECTION",{class:!0});var X=A(k);f=w(X,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(f)!=="svelte-62tj5f"&&(f.innerHTML=$),q=L(X),T=w(X,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(T)!=="svelte-yjc836"&&(T.innerHTML=M),X.forEach(_),Z.forEach(_),Q.forEach(_),this.h()},h(){e.playsInline=!0,e.autoplay=!0,e.muted=!0,e.loop=!0,r(e,"preload","none"),r(e,"id","hepcat-video"),r(f,"type","button"),r(f,"class","game-button turnip-button"),r(f,"role","link"),r(f,"title","https://bitbucket.org/egginchicken/hep-cat/src/master/"),r(T,"type","button"),r(T,"class","game-button turnip-button"),r(T,"role","link"),r(T,"title","https://just-a-phantom.itch.io/hep-cat"),r(k,"class","game-link-section"),r(s,"class","game-card-body"),r(t,"class","game-card"),r(t,"slot","content")},m(z,Q){O(z,t,Q),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),d(s,g),d(s,p),d(s,I),d(s,k),d(k,f),d(k,q),d(k,T),j||(v=[et(f,"click",a[5]),et(T,"click",a[6])],j=!0)},p:st,d(z){z&&_(t),j=!1,$t(v)}}}function Jn(a){let t,e,n,i,s,o,u="Chef Wings",c,l,h=`A “roguelite-lite” where you gather ingredients in a procedurally-generated dungeon and use
16
- them to cook for customers and then critics!`,b,m,S=`I built and documented several of the game’s systems including the game state management
17
- system that extends <span class="qt-unity">Unity’s</span> existing Monobehavior lifecycle with new events,
18
- and the dialogue, event, and level systems that coordinate the game flow using the interactive
19
- dialogue tool YarnSpinner`,g,p,C,I=`<img alt="itch.io icon" src="${$e}"/> <span>selk.io/birb-project/trunk/</span>`,k,f;return{c(){t=y("section"),e=y("img"),i=E(),s=y("section"),o=y("h1"),o.textContent=u,c=E(),l=y("p"),l.textContent=h,b=E(),m=y("p"),m.innerHTML=S,g=E(),p=y("section"),C=y("button"),C.innerHTML=I,this.h()},l($){t=w($,"SECTION",{class:!0,slot:!0});var q=A(t);e=w(q,"IMG",{src:!0,alt:!0,loading:!0}),i=L(q),s=w(q,"SECTION",{class:!0});var T=A(s);o=w(T,"H1",{"data-svelte-h":!0}),D(o)!=="svelte-u3x25k"&&(o.textContent=u),c=L(T),l=w(T,"P",{"data-svelte-h":!0}),D(l)!=="svelte-vvbg9r"&&(l.textContent=h),b=L(T),m=w(T,"P",{"data-svelte-h":!0}),D(m)!=="svelte-okkjf"&&(m.innerHTML=S),g=L(T),p=w(T,"SECTION",{class:!0});var M=A(p);C=w(M,"BUTTON",{type:!0,class:!0,title:!0,"data-svelte-h":!0}),D(C)!=="svelte-1ta0pkf"&&(C.innerHTML=I),M.forEach(_),T.forEach(_),q.forEach(_),this.h()},h(){wt(e.src,n=Rn)||r(e,"src",n),r(e,"alt","todo"),r(e,"loading","lazy"),r(C,"type","button"),r(C,"class","game-button turnip-button"),r(C,"title","https://selk.io/birb-project/trunk/"),r(p,"class","game-link-section"),r(s,"class","game-card-body"),r(t,"class","game-card"),r(t,"slot","content")},m($,q){O($,t,q),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),d(s,g),d(s,p),d(p,C),k||(f=et(C,"click",a[7]),k=!0)},p:st,d($){$&&_(t),k=!1,f()}}}function Kn(a){let t,e,n=`<source src="${Qn}" type="video/mp4"/>`,i,s,o,u="Soulwork",c,l,h=`Soulwork is a 2D platforming game that uses unique physics to solve puzzle-based levels.
20
- This project is a Time to Game Jam entry, restricting game development to be under 48
21
- hours.`,b,m,S=`I helped make the level designing tools used by the designers to drag-and-drop objects
22
- on the stage. I also helped program the unique physics-based gameplay mechanic. This was
23
- was made in <span class="qt-unity">Unity</span> written using <span class="qt-cs">C#</span>.`,g,p,C,I=`<img alt="github icon" src="${pt}"/>`,k,f,$=`<img alt="itch.io icon" src="${Pt}"/>`,q,T;return{c(){t=y("section"),e=y("video"),e.innerHTML=n,i=E(),s=y("section"),o=y("h1"),o.textContent=u,c=E(),l=y("p"),l.textContent=h,b=E(),m=y("p"),m.innerHTML=S,g=E(),p=y("section"),C=y("button"),C.innerHTML=I,k=E(),f=y("button"),f.innerHTML=$,this.h()},l(M){t=w(M,"SECTION",{class:!0,slot:!0});var j=A(t);e=w(j,"VIDEO",{preload:!0,"data-svelte-h":!0}),D(e)!=="svelte-1bwkex8"&&(e.innerHTML=n),i=L(j),s=w(j,"SECTION",{class:!0});var v=A(s);o=w(v,"H1",{"data-svelte-h":!0}),D(o)!=="svelte-2ce69i"&&(o.textContent=u),c=L(v),l=w(v,"P",{"data-svelte-h":!0}),D(l)!=="svelte-1fxnla3"&&(l.textContent=h),b=L(v),m=w(v,"P",{"data-svelte-h":!0}),D(m)!=="svelte-lzcrfa"&&(m.innerHTML=S),g=L(v),p=w(v,"SECTION",{class:!0});var z=A(p);C=w(z,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(C)!=="svelte-bq417h"&&(C.innerHTML=I),k=L(z),f=w(z,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(f)!=="svelte-1e6rmoq"&&(f.innerHTML=$),z.forEach(_),v.forEach(_),j.forEach(_),this.h()},h(){e.playsInline=!0,e.autoplay=!0,e.muted=!0,e.loop=!0,r(e,"preload","none"),r(C,"type","button"),r(C,"class","game-button turnip-button"),r(C,"role","link"),r(C,"title","https://github.com/Zeyu-Li/Clockwork"),r(f,"type","button"),r(f,"class","game-button turnip-button"),r(f,"role","link"),r(f,"title","https://itch.io/jam/time-to-game-jam-gadec-fall-game-jam/rate/514331"),r(p,"class","game-link-section"),r(s,"class","game-card-body"),r(t,"class","game-card"),r(t,"slot","content")},m(M,j){O(M,t,j),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),d(s,g),d(s,p),d(p,C),d(p,k),d(p,f),q||(T=[et(C,"click",a[8]),et(f,"click",a[9])],q=!0)},p:st,d(M){M&&_(t),q=!1,$t(T)}}}function ts(a){let t,e,n="Check out my itch.io page for more games",i,s,o,u=`<img src="${Pt}" class="long-btn-image" alt="itch icon"/> <span>TurnipXenon</span>`,c,l;return{c(){t=y("section"),e=y("h1"),e.textContent=n,i=E(),s=y("section"),o=y("button"),o.innerHTML=u,this.h()},l(h){t=w(h,"SECTION",{class:!0,slot:!0});var b=A(t);e=w(b,"H1",{class:!0,"data-svelte-h":!0}),D(e)!=="svelte-10vk3r5"&&(e.textContent=n),i=L(b),s=w(b,"SECTION",{class:!0});var m=A(s);o=w(m,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(o)!=="svelte-w8jle3"&&(o.innerHTML=u),m.forEach(_),b.forEach(_),this.h()},h(){r(e,"class","mb-12 text-center"),r(o,"type","button"),r(o,"class","btn variant-filled-primary turnip-button"),r(o,"role","link"),r(o,"title","https://turnipxenon.itch.io/"),r(s,"class","game-link-section"),r(t,"class","game-card itch-promo"),r(t,"slot","content")},m(h,b){O(h,t,b),d(t,e),d(t,i),d(t,s),d(s,o),c||(l=et(o,"click",a[10]),c=!0)},p:st,d(h){h&&_(t),c=!1,l()}}}function es(a){let t,e,n,i,s,o,u,c,l,h,b,m,S;return t=new it({props:{$$slots:{content:[Zn]},$$scope:{ctx:a}}}),i=new it({props:{$$slots:{content:[Xn]},$$scope:{ctx:a}}}),o=new it({props:{$$slots:{content:[Yn]},$$scope:{ctx:a}}}),c=new it({props:{$$slots:{content:[Jn]},$$scope:{ctx:a}}}),h=new it({props:{$$slots:{content:[Kn]},$$scope:{ctx:a}}}),m=new it({props:{overrideStyle:"align-self: flex-start;",$$slots:{content:[ts]},$$scope:{ctx:a}}}),{c(){V(t.$$.fragment),e=E(),n=y("section"),V(i.$$.fragment),s=E(),V(o.$$.fragment),u=E(),V(c.$$.fragment),l=E(),V(h.$$.fragment),b=E(),V(m.$$.fragment),this.h()},l(g){W(t.$$.fragment,g),e=L(g),n=w(g,"SECTION",{class:!0});var p=A(n);W(i.$$.fragment,p),s=L(p),W(o.$$.fragment,p),u=L(p),W(c.$$.fragment,p),l=L(p),W(h.$$.fragment,p),b=L(p),W(m.$$.fragment,p),p.forEach(_),this.h()},h(){r(n,"class","games-section")},m(g,p){G(t,g,p),O(g,e,p),O(g,n,p),G(i,n,null),d(n,s),G(o,n,null),d(n,u),G(c,n,null),d(n,l),G(h,n,null),d(n,b),G(m,n,null),S=!0},p(g,[p]){const C={};p&2048&&(C.$$scope={dirty:p,ctx:g}),t.$set(C);const I={};p&2048&&(I.$$scope={dirty:p,ctx:g}),i.$set(I);const k={};p&2048&&(k.$$scope={dirty:p,ctx:g}),o.$set(k);const f={};p&2048&&(f.$$scope={dirty:p,ctx:g}),c.$set(f);const $={};p&2048&&($.$$scope={dirty:p,ctx:g}),h.$set($);const q={};p&2048&&(q.$$scope={dirty:p,ctx:g}),m.$set(q)},i(g){S||(H(t.$$.fragment,g),H(i.$$.fragment,g),H(o.$$.fragment,g),H(c.$$.fragment,g),H(h.$$.fragment,g),H(m.$$.fragment,g),S=!0)},o(g){N(t.$$.fragment,g),N(i.$$.fragment,g),N(o.$$.fragment,g),N(c.$$.fragment,g),N(h.$$.fragment,g),N(m.$$.fragment,g),S=!1},d(g){g&&(_(e),_(n)),F(t,g),F(i),F(o),F(c),F(h),F(m)}}}function ns(a,t,e){let{email:n="turnipxenon@gmail.com"}=t;const i=Te(),s={type:"confirm",title:"Warning: please confirm",body:`This will directly link to the game itself, since this game does not have any game page or any publicly viewable source code. The game is only playable on desktop. Are you sure you wish to proceed? If there are any bugs, please report at <a href='mailto:${n}' target='_blank'>${n}</a>.`,response:g=>{g&&window.open("https://selk.io/birb-project/trunk/")}},o=()=>window.open("https://github.com/GreenTea-M/ProjectPengi"),u=()=>window.open("https://turnipxenon.itch.io/pengi"),c=()=>window.open("https://bitbucket.org/egginchicken/hep-cat/src/master/"),l=()=>window.open("https://just-a-phantom.itch.io/hep-cat"),h=()=>i.trigger(s),b=()=>window.open("https://github.com/Zeyu-Li/Clockwork"),m=()=>window.open("https://itch.io/jam/time-to-game-jam-gadec-fall-game-jam/rate/514331"),S=()=>window.open("https://turnipxenon.itch.io/");return a.$$set=g=>{"email"in g&&e(2,n=g.email)},[i,s,n,o,u,c,l,h,b,m,S]}class Ie extends bt{constructor(t){super(),vt(this,t,ns,es,gt,{email:2})}}const ss=""+new URL("../assets/weaver-footage.sjDEbkrX.gif",import.meta.url).href,is=""+new URL("../assets/window-set.IpgsYUna.png",import.meta.url).href,as=""+new URL("../assets/seaweed-showcase.TTVTTC5m.mp4",import.meta.url).href;function os(a){let t,e;const n=a[1].default,i=ut(n,a,a[0],null);return{c(){t=y("span"),i&&i.c(),this.h()},l(s){t=w(s,"SPAN",{class:!0});var o=A(t);i&&i.l(o),o.forEach(_),this.h()},h(){r(t,"class","chip variant-filled-tertiary svelte-11qczsb")},m(s,o){O(s,t,o),i&&i.m(t,null),e=!0},p(s,[o]){i&&i.p&&(!e||o&1)&&dt(i,n,s,s[0],e?ft(n,s[0],o,null):ht(s[0]),null)},i(s){e||(H(i,s),e=!0)},o(s){N(i,s),e=!1},d(s){s&&_(t),i&&i.d(s)}}}function ls(a,t,e){let{$$slots:n={},$$scope:i}=t;return a.$$set=s=>{"$$scope"in s&&e(0,i=s.$$scope)},[i,n]}class rt extends bt{constructor(t){super(),vt(this,t,ls,os,gt,{})}}function rs(a){let t,e='<h1 class="text-center">Projects</h1>';return{c(){t=y("section"),t.innerHTML=e,this.h()},l(n){t=w(n,"SECTION",{class:!0,slot:!0,"data-svelte-h":!0}),D(t)!=="svelte-co2bri"&&(t.innerHTML=e),this.h()},h(){r(t,"class","section-card title-card"),r(t,"slot","content")},m(n,i){O(n,t,i)},p:st,d(n){n&&_(t)}}}function cs(a){let t;return{c(){t=J("Flutter")},l(e){t=K(e,"Flutter")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function us(a){let t;return{c(){t=J("Dart")},l(e){t=K(e,"Dart")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function ds(a){let t;return{c(){t=J("Python")},l(e){t=K(e,"Python")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function hs(a){let t;return{c(){t=J("Django")},l(e){t=K(e,"Django")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function fs(a){let t;return{c(){t=J("Heroku")},l(e){t=K(e,"Heroku")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function ms(a){let t;return{c(){t=J("Android")},l(e){t=K(e,"Android")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function ps(a){let t;return{c(){t=J("Postgresql")},l(e){t=K(e,"Postgresql")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function gs(a){let t,e,n,i,s,o,u="Migrante Alberta",c,l,h=`We developed a mobile-first cross-platform application to be used by the Canadian-based
24
- Filipino non-profit advocacy group, Migrante Alberta, to help new immigrants navigate
25
- through local services and events`,b,m,S,g,p,C,I,k,f,$,q,T,M,j,v,z,Q,Z,X=`<img src="${$e}" class="long-btn-image" alt="itch icon"/> <span>cmput401.ca</span>`,Y,tt,nt;return S=new rt({props:{$$slots:{default:[cs]},$$scope:{ctx:a}}}),p=new rt({props:{$$slots:{default:[us]},$$scope:{ctx:a}}}),I=new rt({props:{$$slots:{default:[ds]},$$scope:{ctx:a}}}),f=new rt({props:{$$slots:{default:[hs]},$$scope:{ctx:a}}}),q=new rt({props:{$$slots:{default:[fs]},$$scope:{ctx:a}}}),M=new rt({props:{$$slots:{default:[ms]},$$scope:{ctx:a}}}),v=new rt({props:{$$slots:{default:[ps]},$$scope:{ctx:a}}}),{c(){t=y("section"),e=y("iframe"),i=E(),s=y("div"),o=y("h2"),o.textContent=u,c=E(),l=y("p"),l.textContent=h,b=E(),m=y("p"),V(S.$$.fragment),g=E(),V(p.$$.fragment),C=E(),V(I.$$.fragment),k=E(),V(f.$$.fragment),$=E(),V(q.$$.fragment),T=E(),V(M.$$.fragment),j=E(),V(v.$$.fragment),z=E(),Q=y("section"),Z=y("button"),Z.innerHTML=X,this.h()},l(P){t=w(P,"SECTION",{class:!0,slot:!0});var R=A(t);e=w(R,"IFRAME",{id:!0,width:!0,height:!0,src:!0,title:!0,style:!0}),A(e).forEach(_),i=L(R),s=w(R,"DIV",{class:!0});var U=A(s);o=w(U,"H2",{"data-svelte-h":!0}),D(o)!=="svelte-1eni4fk"&&(o.textContent=u),c=L(U),l=w(U,"P",{"data-svelte-h":!0}),D(l)!=="svelte-78l1f9"&&(l.textContent=h),b=L(U),m=w(U,"P",{});var x=A(m);W(S.$$.fragment,x),g=L(x),W(p.$$.fragment,x),C=L(x),W(I.$$.fragment,x),k=L(x),W(f.$$.fragment,x),$=L(x),W(q.$$.fragment,x),T=L(x),W(M.$$.fragment,x),j=L(x),W(v.$$.fragment,x),x.forEach(_),z=L(U),Q=w(U,"SECTION",{class:!0});var lt=A(Q);Z=w(lt,"BUTTON",{type:!0,class:!0,title:!0,"data-svelte-h":!0}),D(Z)!=="svelte-13nvyw"&&(Z.innerHTML=X),lt.forEach(_),U.forEach(_),R.forEach(_),this.h()},h(){r(e,"id","migrante-alberta"),r(e,"width","560"),r(e,"height","315"),wt(e.src,n="https://www.youtube.com/embed/ZemWwf8jh8E?si=RZwSfYHI-0Ael-RE")||r(e,"src",n),r(e,"title","YouTube video player"),we(e,"border","none"),e.allowFullscreen=!0,r(Z,"type","button"),r(Z,"class","btn variant-filled-primary turnip-button"),r(Z,"title","https://selk.io/birb-project/trunk/"),r(Q,"class","game-link-section"),r(s,"class","project-card-body"),r(t,"class","project-card"),r(t,"slot","content")},m(P,R){O(P,t,R),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),G(S,m,null),d(m,g),G(p,m,null),d(m,C),G(I,m,null),d(m,k),G(f,m,null),d(m,$),G(q,m,null),d(m,T),G(M,m,null),d(m,j),G(v,m,null),d(s,z),d(s,Q),d(Q,Z),Y=!0,tt||(nt=et(Z,"click",a[3]),tt=!0)},p(P,R){const U={};R&2048&&(U.$$scope={dirty:R,ctx:P}),S.$set(U);const x={};R&2048&&(x.$$scope={dirty:R,ctx:P}),p.$set(x);const lt={};R&2048&&(lt.$$scope={dirty:R,ctx:P}),I.$set(lt);const yt={};R&2048&&(yt.$$scope={dirty:R,ctx:P}),f.$set(yt);const Ct={};R&2048&&(Ct.$$scope={dirty:R,ctx:P}),q.$set(Ct);const Tt={};R&2048&&(Tt.$$scope={dirty:R,ctx:P}),M.$set(Tt);const St={};R&2048&&(St.$$scope={dirty:R,ctx:P}),v.$set(St)},i(P){Y||(H(S.$$.fragment,P),H(p.$$.fragment,P),H(I.$$.fragment,P),H(f.$$.fragment,P),H(q.$$.fragment,P),H(M.$$.fragment,P),H(v.$$.fragment,P),Y=!0)},o(P){N(S.$$.fragment,P),N(p.$$.fragment,P),N(I.$$.fragment,P),N(f.$$.fragment,P),N(q.$$.fragment,P),N(M.$$.fragment,P),N(v.$$.fragment,P),Y=!1},d(P){P&&_(t),F(S),F(p),F(I),F(f),F(q),F(M),F(v),tt=!1,nt()}}}function bs(a){let t,e,n,i="Decentralized social media",s,o,u=`We made a full stack decentralized social media app made with <span class="qt-react">React</span> +
26
- <span class="qt-js">Javascript</span> for the client code, <span class="qt-django">Django</span> + <span class="qt-python">Python</span> for the backend code, and <span class="qt-heroku">Heroku</span> for
27
- deployment. This project was made
28
- for
29
- our Web Applications and Architecture class.`,c,l,h="The application can connect with three other decentralized social media app in the same class:",b,m,S=`<li><a href="https://github.com/hgshah/cmput404-project/blob/main/docs/testing_other_teams.md#team-14" target="_blank">Also
30
- a social media with the same Django + Python backend server where they act on behalf of
31
- our users interacting with theirs</a></li> <li><a href="https://github.com/hgshah/cmput404-project/blob/main/docs/testing_other_teams.md#team-7" target="_blank">A
32
- social media that uses Fast API + Python for their backend server</a></li> <li><a href="https://github.com/hgshah/cmput404-project/blob/main/docs/testing_other_teams.md#team-12" target="_blank">Another
33
- social media that has Django + Python for their backend but we have to act on behalf of
34
- our
35
- users interacting with their users</a></li>`,g,p,C,I=`<img src="${pt}" alt="github icon"/>`,k,f;return{c(){t=y("section"),e=y("div"),n=y("h2"),n.textContent=i,s=E(),o=y("p"),o.innerHTML=u,c=E(),l=y("p"),l.textContent=h,b=E(),m=y("ul"),m.innerHTML=S,g=E(),p=y("section"),C=y("button"),C.innerHTML=I,this.h()},l($){t=w($,"SECTION",{class:!0,slot:!0});var q=A(t);e=w(q,"DIV",{class:!0});var T=A(e);n=w(T,"H2",{"data-svelte-h":!0}),D(n)!=="svelte-1ir48d3"&&(n.textContent=i),s=L(T),o=w(T,"P",{"data-svelte-h":!0}),D(o)!=="svelte-1sz4jzz"&&(o.innerHTML=u),c=L(T),l=w(T,"P",{"data-svelte-h":!0}),D(l)!=="svelte-w4z81z"&&(l.textContent=h),b=L(T),m=w(T,"UL",{"data-svelte-h":!0}),D(m)!=="svelte-8b0hfl"&&(m.innerHTML=S),g=L(T),p=w(T,"SECTION",{class:!0});var M=A(p);C=w(M,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(C)!=="svelte-1uoj7sj"&&(C.innerHTML=I),M.forEach(_),T.forEach(_),q.forEach(_),this.h()},h(){r(C,"type","button"),r(C,"class","game-button turnip-button"),r(C,"role","link"),r(C,"title","https://github.com/hgshah/cmput404-project"),r(p,"class","game-link-section"),r(e,"class","project-card-body"),r(t,"class","project-card"),r(t,"slot","content")},m($,q){O($,t,q),d(t,e),d(e,n),d(e,s),d(e,o),d(e,c),d(e,l),d(e,b),d(e,m),d(e,g),d(e,p),d(p,C),k||(f=et(C,"click",a[4]),k=!0)},p:st,d($){$&&_(t),k=!1,f()}}}function vs(a){let t,e,n,i,s,o,u="Customized Yarnspinner interpreter and dialog runner",c,l,h="Typescript",b,m,S="Typescript",g,p,C="Svelte",I,k,f,$=`<img src="${pt}" alt="github icon"/>`,q,T;return{c(){t=y("section"),e=y("img"),i=E(),s=y("div"),o=y("h2"),o.textContent=u,c=J(`
36
-
37
- A custom dialog interpreter, written in `),l=y("span"),l.textContent=h,b=J(`, that tokenizes then
38
- transpiles custom Yarnspinner dialog into a `),m=y("span"),m.textContent=S,g=J(` file. The said files can
39
- be used on a corresponding runner or library, also implemented alongside it, allowing the ability to play a
40
- custom-flavor of YarnSpinner dialogs on `),p=y("span"),p.textContent=C,I=J(`.
41
-
42
- `),k=y("section"),f=y("button"),f.innerHTML=$,this.h()},l(M){t=w(M,"SECTION",{class:!0,slot:!0});var j=A(t);e=w(j,"IMG",{alt:!0,src:!0}),i=L(j),s=w(j,"DIV",{class:!0});var v=A(s);o=w(v,"H2",{"data-svelte-h":!0}),D(o)!=="svelte-1tprdy5"&&(o.textContent=u),c=K(v,`
43
-
44
- A custom dialog interpreter, written in `),l=w(v,"SPAN",{class:!0,"data-svelte-h":!0}),D(l)!=="svelte-o30c37"&&(l.textContent=h),b=K(v,`, that tokenizes then
45
- transpiles custom Yarnspinner dialog into a `),m=w(v,"SPAN",{class:!0,"data-svelte-h":!0}),D(m)!=="svelte-o30c37"&&(m.textContent=S),g=K(v,` file. The said files can
46
- be used on a corresponding runner or library, also implemented alongside it, allowing the ability to play a
47
- custom-flavor of YarnSpinner dialogs on `),p=w(v,"SPAN",{class:!0,"data-svelte-h":!0}),D(p)!=="svelte-19momqd"&&(p.textContent=C),I=K(v,`.
48
-
49
- `),k=w(v,"SECTION",{class:!0});var z=A(k);f=w(z,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(f)!=="svelte-o238xj"&&(f.innerHTML=$),z.forEach(_),v.forEach(_),j.forEach(_),this.h()},h(){r(e,"alt","Footage of a visual novel-like dynamic dialog interaction happening on the same page we are on"),wt(e.src,n=ss)||r(e,"src",n),r(l,"class","qt-ts"),r(m,"class","qt-ts"),r(p,"class","qt-svelte"),r(f,"type","button"),r(f,"class","game-button turnip-button"),r(f,"role","link"),r(f,"title","https://github.com/TurnipXenon/pineapple/blob/main/docs/PineappleFiberSpec.md"),r(k,"class","game-link-section"),r(s,"class","project-card-body"),r(t,"class","project-card"),r(t,"slot","content")},m(M,j){O(M,t,j),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),d(s,g),d(s,p),d(s,I),d(s,k),d(k,f),q||(T=et(f,"click",a[5]),q=!0)},p:st,d(M){M&&_(t),q=!1,T()}}}function _s(a){let t,e,n,i='Full-stack <span class="qt-c">C</span> app',s,o,u=`A terminal-based app consisting of a server observing several terminal apps all concurrently
50
- sending updates to the server, which then broadcasts these information concurrently to all the
51
- other terminal apps connected.`,c,l,h=`The project involves <span class="qt-foundation">multiprocessing</span> programming featuring pthreads and
52
- mutexes, and <span class="qt-foundation">networking</span> via sockets.`,b,m,S,g=`<img src="${pt}" class="long-btn-image" alt="github icon"/>`,p,C;return{c(){t=y("section"),e=y("div"),n=y("h2"),n.innerHTML=i,s=E(),o=y("p"),o.textContent=u,c=E(),l=y("p"),l.innerHTML=h,b=E(),m=y("section"),S=y("button"),S.innerHTML=g,this.h()},l(I){t=w(I,"SECTION",{class:!0,slot:!0});var k=A(t);e=w(k,"DIV",{class:!0});var f=A(e);n=w(f,"H2",{"data-svelte-h":!0}),D(n)!=="svelte-1g6x1gh"&&(n.innerHTML=i),s=L(f),o=w(f,"P",{"data-svelte-h":!0}),D(o)!=="svelte-jmxifv"&&(o.textContent=u),c=L(f),l=w(f,"P",{"data-svelte-h":!0}),D(l)!=="svelte-1a1crpo"&&(l.innerHTML=h),b=L(f),m=w(f,"SECTION",{class:!0});var $=A(m);S=w($,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(S)!=="svelte-zxt8b7"&&(S.innerHTML=g),$.forEach(_),f.forEach(_),k.forEach(_),this.h()},h(){r(S,"type","button"),r(S,"class","game-button turnip-button"),r(S,"role","link"),r(S,"title","https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment02/DESIGN.md"),r(m,"class","game-link-section"),r(e,"class","project-card-body"),r(t,"class","project-card"),r(t,"slot","content")},m(I,k){O(I,t,k),d(t,e),d(e,n),d(e,s),d(e,o),d(e,c),d(e,l),d(e,b),d(e,m),d(m,S),p||(C=et(S,"click",a[6]),p=!0)},p:st,d(I){I&&_(t),p=!1,C()}}}function ks(a){let t,e,n,i,s,o,u="Working set simulation",c,l,h=`A <span class="qt-c">C</span> program that simulates the working set model based on the output of memory
53
- addresses
54
- <span class="qt-valgrind">valgrind</span> detects as being accessed by a program being ran. It&#39;s
55
- implemented using a nested hashmap <span class="qt-foundation">data structure</span> implemented from
56
- scratch. The working set is the collection of memory pages referenced by a program within a certain time
57
- frame. It comes with a report analyzing and benchmarking how memory allocation, between sorting <span class="qt-foundation">algorithms</span> heapsort, quicksort, and radixsort, is affected by the window set
58
- size, page size, and their input size.`,b,m,S,g=`<img src="${pt}" class="long-btn-image" alt="github icon"/> <span>Benchmark report</span>`,p,C,I=`<img src="${pt}" class="long-btn-image" alt="github icon"/> <span>Design</span>`,k,f;return{c(){t=y("section"),e=y("img"),i=E(),s=y("div"),o=y("h2"),o.textContent=u,c=E(),l=y("p"),l.innerHTML=h,b=E(),m=y("section"),S=y("button"),S.innerHTML=g,p=E(),C=y("button"),C.innerHTML=I,this.h()},l($){t=w($,"SECTION",{class:!0,slot:!0});var q=A(t);e=w(q,"IMG",{alt:!0,src:!0}),i=L(q),s=w(q,"DIV",{class:!0});var T=A(s);o=w(T,"H2",{"data-svelte-h":!0}),D(o)!=="svelte-1owlizc"&&(o.textContent=u),c=L(T),l=w(T,"P",{"data-svelte-h":!0}),D(l)!=="svelte-xtyavc"&&(l.innerHTML=h),b=L(T),m=w(T,"SECTION",{class:!0});var M=A(m);S=w(M,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(S)!=="svelte-8dctad"&&(S.innerHTML=g),p=L(M),C=w(M,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(C)!=="svelte-119y13c"&&(C.innerHTML=I),M.forEach(_),T.forEach(_),q.forEach(_),this.h()},h(){r(e,"alt",`A graph that visualizes the number of memory pages made by Quicksort cached within the window set as
59
- time goes by. The trend appears to look like a damping harmonic motion that does not go below the zero line. More
60
- details include the data size being 200000 entries, each data point skips 1060174 data points, with a
61
- page size of 4096 bytes, and window size of 100000 bytes.`),wt(e.src,n=is)||r(e,"src",n),r(S,"type","button"),r(S,"class","game-button turnip-button"),r(S,"role","link"),r(S,"title","https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/REPORT.pdf"),r(C,"type","button"),r(C,"class","game-button turnip-button"),r(C,"role","link"),r(C,"title","https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/DESIGN.md"),r(m,"class","game-link-section"),r(s,"class","project-card-body"),r(t,"class","project-card"),r(t,"slot","content")},m($,q){O($,t,q),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),d(m,S),d(m,p),d(m,C),k||(f=[et(S,"click",a[7]),et(C,"click",a[8])],k=!0)},p:st,d($){$&&_(t),k=!1,$t(f)}}}function ys(a){let t;return{c(){t=J("Svelte")},l(e){t=K(e,"Svelte")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function ws(a){let t;return{c(){t=J("Skeleton (Svelte UI library)")},l(e){t=K(e,"Skeleton (Svelte UI library)")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function Cs(a){let t;return{c(){t=J("Typescript")},l(e){t=K(e,"Typescript")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function Ts(a){let t;return{c(){t=J("Vercel")},l(e){t=K(e,"Vercel")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function Ss(a){let t;return{c(){t=J("YarnSpinner")},l(e){t=K(e,"YarnSpinner")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function $s(a){let t,e,n=`<source src="${as}" type="video/mp4"/>
62
- video unavailable. original video contains clips of this website being resized and light-dark mode being
63
- toggled.`,i,s,o,u="This webpage!",c,l,h=`The webpage is made of two parts. The webpage that has the content for everything here, I've
64
- lovingly called Seaweed. I kept seaweed as a private package. On the other hand, the base package which I
65
- want to use for all spin offs of my websites is called Pineapple and have kept that codebase public.`,b,m,S,g,p,C,I,k,f,$,q,T,M,j,v=`<img src="${pt}" class="long-btn-image" alt="github icon"/>`,z,Q,Z;return S=new rt({props:{$$slots:{default:[ys]},$$scope:{ctx:a}}}),p=new rt({props:{$$slots:{default:[ws]},$$scope:{ctx:a}}}),I=new rt({props:{$$slots:{default:[Cs]},$$scope:{ctx:a}}}),f=new rt({props:{$$slots:{default:[Ts]},$$scope:{ctx:a}}}),q=new rt({props:{$$slots:{default:[Ss]},$$scope:{ctx:a}}}),{c(){t=y("section"),e=y("video"),e.innerHTML=n,i=E(),s=y("div"),o=y("h2"),o.textContent=u,c=E(),l=y("p"),l.textContent=h,b=E(),m=y("p"),V(S.$$.fragment),g=E(),V(p.$$.fragment),C=E(),V(I.$$.fragment),k=E(),V(f.$$.fragment),$=E(),V(q.$$.fragment),T=E(),M=y("section"),j=y("button"),j.innerHTML=v,this.h()},l(X){t=w(X,"SECTION",{class:!0,slot:!0});var Y=A(t);e=w(Y,"VIDEO",{preload:!0,"data-svelte-h":!0}),D(e)!=="svelte-cfgpwb"&&(e.innerHTML=n),i=L(Y),s=w(Y,"DIV",{class:!0});var tt=A(s);o=w(tt,"H2",{"data-svelte-h":!0}),D(o)!=="svelte-5puumm"&&(o.textContent=u),c=L(tt),l=w(tt,"P",{"data-svelte-h":!0}),D(l)!=="svelte-19b5rkl"&&(l.textContent=h),b=L(tt),m=w(tt,"P",{});var nt=A(m);W(S.$$.fragment,nt),g=L(nt),W(p.$$.fragment,nt),C=L(nt),W(I.$$.fragment,nt),k=L(nt),W(f.$$.fragment,nt),$=L(nt),W(q.$$.fragment,nt),nt.forEach(_),T=L(tt),M=w(tt,"SECTION",{class:!0});var P=A(M);j=w(P,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(j)!=="svelte-3ahxmv"&&(j.innerHTML=v),P.forEach(_),tt.forEach(_),Y.forEach(_),this.h()},h(){e.playsInline=!0,e.autoplay=!0,e.muted=!0,e.loop=!0,r(e,"preload","none"),r(j,"type","button"),r(j,"class","btn variant-filled-primary turnip-button"),r(j,"role","link"),r(j,"title","https://github.com/TurnipXenon/pineapple"),r(M,"class","game-link-section"),r(s,"class","project-card-body"),r(t,"class","project-card"),r(t,"slot","content")},m(X,Y){O(X,t,Y),d(t,e),d(t,i),d(t,s),d(s,o),d(s,c),d(s,l),d(s,b),d(s,m),G(S,m,null),d(m,g),G(p,m,null),d(m,C),G(I,m,null),d(m,k),G(f,m,null),d(m,$),G(q,m,null),d(s,T),d(s,M),d(M,j),z=!0,Q||(Z=et(j,"click",a[9]),Q=!0)},p(X,Y){const tt={};Y&2048&&(tt.$$scope={dirty:Y,ctx:X}),S.$set(tt);const nt={};Y&2048&&(nt.$$scope={dirty:Y,ctx:X}),p.$set(nt);const P={};Y&2048&&(P.$$scope={dirty:Y,ctx:X}),I.$set(P);const R={};Y&2048&&(R.$$scope={dirty:Y,ctx:X}),f.$set(R);const U={};Y&2048&&(U.$$scope={dirty:Y,ctx:X}),q.$set(U)},i(X){z||(H(S.$$.fragment,X),H(p.$$.fragment,X),H(I.$$.fragment,X),H(f.$$.fragment,X),H(q.$$.fragment,X),z=!0)},o(X){N(S.$$.fragment,X),N(p.$$.fragment,X),N(I.$$.fragment,X),N(f.$$.fragment,X),N(q.$$.fragment,X),z=!1},d(X){X&&_(t),F(S),F(p),F(I),F(f),F(q),Q=!1,Z()}}}function Is(a){let t,e,n,i="Mock Uber App",s,o,u='A course project app meant to emulate how Uber works by playing with <span class="qt-google">Google Maps API</span>.',c,l,h=`I implemented all interfaces related to the NoSQL cloud database <span class="qt-firebase qt-google qt-infra">Firebase</span>, making writing code easier for other programmers
66
- (<span class="qt-android">Android</span> / <span class="qt-java">Java</span>). I also wrote documentation to said
67
- code and added instrumented tests that are tested by the continuous integration tool <span class="qt-infra">Travis CI</span>, ensuring that our code is tested`,b,m,S,g=`<img src="${pt}" class="long-btn-image" alt="github icon"/>`,p,C;return{c(){t=y("section"),e=y("div"),n=y("h2"),n.textContent=i,s=E(),o=y("p"),o.innerHTML=u,c=E(),l=y("p"),l.innerHTML=h,b=E(),m=y("section"),S=y("button"),S.innerHTML=g,this.h()},l(I){t=w(I,"SECTION",{class:!0,slot:!0});var k=A(t);e=w(k,"DIV",{class:!0});var f=A(e);n=w(f,"H2",{"data-svelte-h":!0}),D(n)!=="svelte-1vw6xk1"&&(n.textContent=i),s=L(f),o=w(f,"P",{"data-svelte-h":!0}),D(o)!=="svelte-1o0nprs"&&(o.innerHTML=u),c=L(f),l=w(f,"P",{"data-svelte-h":!0}),D(l)!=="svelte-14gprsk"&&(l.innerHTML=h),b=L(f),m=w(f,"SECTION",{class:!0});var $=A(m);S=w($,"BUTTON",{type:!0,class:!0,role:!0,title:!0,"data-svelte-h":!0}),D(S)!=="svelte-oq5unl"&&(S.innerHTML=g),$.forEach(_),f.forEach(_),k.forEach(_),this.h()},h(){r(S,"type","button"),r(S,"class","game-button turnip-button"),r(S,"role","link"),r(S,"title","https://github.com/CMPUT301W20T10/UberApp"),r(m,"class","game-link-section"),r(e,"class","project-card-body"),r(t,"class","project-card"),r(t,"slot","content")},m(I,k){O(I,t,k),d(t,e),d(e,n),d(e,s),d(e,o),d(e,c),d(e,l),d(e,b),d(e,m),d(m,S),p||(C=et(S,"click",a[10]),p=!0)},p:st,d(I){I&&_(t),p=!1,C()}}}function Ms(a){let t,e,n,i,s,o,u,c,l,h,b,m,S,g,p,C,I;return t=new it({props:{$$slots:{content:[rs]},$$scope:{ctx:a}}}),i=new it({props:{$$slots:{content:[gs]},$$scope:{ctx:a}}}),o=new it({props:{$$slots:{content:[bs]},$$scope:{ctx:a}}}),c=new it({props:{$$slots:{content:[vs]},$$scope:{ctx:a}}}),h=new it({props:{$$slots:{content:[_s]},$$scope:{ctx:a}}}),m=new it({props:{$$slots:{content:[ks]},$$scope:{ctx:a}}}),g=new it({props:{$$slots:{content:[$s]},$$scope:{ctx:a}}}),C=new it({props:{$$slots:{content:[Is]},$$scope:{ctx:a}}}),{c(){V(t.$$.fragment),e=E(),n=y("section"),V(i.$$.fragment),s=E(),V(o.$$.fragment),u=E(),V(c.$$.fragment),l=E(),V(h.$$.fragment),b=E(),V(m.$$.fragment),S=E(),V(g.$$.fragment),p=E(),V(C.$$.fragment),this.h()},l(k){W(t.$$.fragment,k),e=L(k),n=w(k,"SECTION",{class:!0});var f=A(n);W(i.$$.fragment,f),s=L(f),W(o.$$.fragment,f),u=L(f),W(c.$$.fragment,f),l=L(f),W(h.$$.fragment,f),b=L(f),W(m.$$.fragment,f),S=L(f),W(g.$$.fragment,f),p=L(f),W(C.$$.fragment,f),f.forEach(_),this.h()},h(){r(n,"class","projects-section")},m(k,f){G(t,k,f),O(k,e,f),O(k,n,f),G(i,n,null),d(n,s),G(o,n,null),d(n,u),G(c,n,null),d(n,l),G(h,n,null),d(n,b),G(m,n,null),d(n,S),G(g,n,null),d(n,p),G(C,n,null),I=!0},p(k,[f]){const $={};f&2048&&($.$$scope={dirty:f,ctx:k}),t.$set($);const q={};f&2048&&(q.$$scope={dirty:f,ctx:k}),i.$set(q);const T={};f&2048&&(T.$$scope={dirty:f,ctx:k}),o.$set(T);const M={};f&2048&&(M.$$scope={dirty:f,ctx:k}),c.$set(M);const j={};f&2048&&(j.$$scope={dirty:f,ctx:k}),h.$set(j);const v={};f&2048&&(v.$$scope={dirty:f,ctx:k}),m.$set(v);const z={};f&2048&&(z.$$scope={dirty:f,ctx:k}),g.$set(z);const Q={};f&2048&&(Q.$$scope={dirty:f,ctx:k}),C.$set(Q)},i(k){I||(H(t.$$.fragment,k),H(i.$$.fragment,k),H(o.$$.fragment,k),H(c.$$.fragment,k),H(h.$$.fragment,k),H(m.$$.fragment,k),H(g.$$.fragment,k),H(C.$$.fragment,k),I=!0)},o(k){N(t.$$.fragment,k),N(i.$$.fragment,k),N(o.$$.fragment,k),N(c.$$.fragment,k),N(h.$$.fragment,k),N(m.$$.fragment,k),N(g.$$.fragment,k),N(C.$$.fragment,k),I=!1},d(k){k&&(_(e),_(n)),F(t,k),F(i),F(o),F(c),F(h),F(m),F(g),F(C)}}}function qs(a,t,e){let{email:n="turnipxenon@gmail.com"}=t;const i=Te(),s={type:"confirm",title:"Information",body:`As a full disclosure, this link will lead you to <a href='https://cmput401.ca/projects/e5b13586-09c7-4ddd-baf6-fdb078d23398' target='_blank'>https://cmput401.ca/projects/e5b13586-09c7-4ddd-baf6-fdb078d23398</a>. We currently don't have any tests yet ensuring that the link is correct. Click confirm to go to the site. Please report any bugs at <a href='mailto:${n}' target='_blank'>${n}</a>.`,response:g=>{g&&window.open("https://cmput401.ca/projects/e5b13586-09c7-4ddd-baf6-fdb078d23398")}},o=()=>i.trigger(s),u=()=>window.open("https://github.com/hgshah/cmput404-project"),c=()=>window.open("https://github.com/TurnipXenon/pineapple/blob/main/docs/PineappleFiberSpec.md"),l=()=>window.open("https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment02/DESIGN.md"),h=()=>window.open("https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/REPORT.pdf"),b=()=>window.open("https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/DESIGN.md"),m=()=>window.open("https://github.com/TurnipXenon/pineapple"),S=()=>window.open("https://github.com/CMPUT301W20T10/UberApp");return a.$$set=g=>{"email"in g&&e(2,n=g.email)},[i,s,n,o,u,c,l,h,b,m,S]}class Me extends bt{constructor(t){super(),vt(this,t,qs,Ms,gt,{email:2})}}const Es=`<script lang="ts">
68
- export let email = "turnipxenon@gmail.com";
69
-
70
- import "./seaweed.postcss";
71
- import HeaderPengi from "$pkg/assets/temp/header-pengi.mp4";
72
- import GithubIcon from "$pkg/assets/icons/github-mark.svg";
73
- import { ItchLogoHotLink } from "$pkg/consts";
74
- import HeaderHepCat from "$pkg/assets/temp/header-hep-cat.mp4";
75
- import BitbucketIcon from "$pkg/assets/icons/bitbucket-icon.svg";
76
- import HeaderChefWings from "$pkg/assets/game_dev/footage-chef-wings.gif";
77
- import LinkIcon from "$pkg/assets/icons/link-icon.svg";
78
- import HeaderSoulwork from "$pkg/assets/temp/header-soulwork.mp4";
79
- import Card from "$pkg/components/Card.svelte";
80
- import { getModalStore, type ModalSettings } from "@skeletonlabs/skeleton";
81
-
82
- const modalStore = getModalStore();
83
- const chefWingsWarning: ModalSettings = {
84
- type: "confirm",
85
- title: "Warning: please confirm",
86
- body: "This will directly link to the game itself, since this game does not have any game page or any " +
87
- "publicly viewable source code. The game is only playable on desktop. " +
88
- \`Are you sure you wish to proceed? If there are any bugs, please report at <a href='mailto:\${email}' target='_blank'>\` +
89
- \`\${email}</a>.\`,
90
- response: (r: boolean) => {
91
- if (r) {
92
- window.open("https://selk.io/birb-project/trunk/");
93
- }
94
- }
95
- };
96
- <\/script>
97
-
98
- <Card>
99
- <div class="section-card title-card" slot="content">
100
- <h1 class="text-center">Games</h1>
101
- </div>
102
- </Card>
103
-
104
- <section class="games-section">
105
-
106
- <Card>
107
- <section class="game-card" slot="content">
108
- <video playsinline autoplay muted loop preload="none">
109
- video unavailable. original video contains pengi gameplay showing the dynamic dialog
110
- layout and character animation.
111
- <source src={HeaderPengi} type="video/mp4">
112
- </video>
113
-
114
- <section class="game-card-body">
115
-
116
- <h1>Pengi</h1>
117
-
118
- <blockquote>
119
- Well well, quite the dreamer, aren’t you? Might be hard to get in... costs a lot of
120
- money...
121
- </blockquote>
122
-
123
- <p>
124
- Pengi is a text-based adventure made in <span class="qt-unity">Unity</span>. I acted as the sole
125
- programmer for the team. Most of the work revolves around UI and creating <a
126
- href="https://yarnspinner.dev/" target="_blank">YarnSpinner</a> commands for writers
127
- to use to create expressive stage directions in the script.
128
- </p>
129
-
130
- <section class="game-link-section">
131
- <button type="button" class="game-button turnip-button"
132
- role="link"
133
- title="https://github.com/GreenTea-M/ProjectPengi"
134
- on:click={()=> window.open("https://github.com/GreenTea-M/ProjectPengi")}>
135
- <img alt="github icon" src={GithubIcon}>
136
- </button>
137
- <button type="button" class="game-button turnip-button"
138
- role="link"
139
- title="https://turnipxenon.itch.io/pengi"
140
- on:click={()=> window.open("https://turnipxenon.itch.io/pengi")}>
141
- <img alt="itch.io icon" src={ItchLogoHotLink}>
142
- </button>
143
- </section>
144
- </section>
145
- </section>
146
- </Card>
147
-
148
- <Card>
149
- <section class="game-card" slot="content">
150
- <!-- todo: move the image crop a bit lower -->
151
- <video playsinline autoplay muted loop preload="none" id="hepcat-video">
152
- <source src={HeaderHepCat} type="video/mp4">
153
- </video>
154
-
155
- <section class="game-card-body">
156
-
157
- <h1>Hepcat</h1>
158
-
159
- <blockquote>
160
- "Cats, Jazz, and a little bit of Death. What more could anyone ask for?"
161
- </blockquote>
162
-
163
-
164
- <p>This is a course project made by a team of six for <a
165
- href="https://sites.google.com/ualberta.ca/cmput250/">CMPUT 250</a>, and it won <a
166
- href="https://webdocs.cs.ualberta.ca/~nathanst/certificate/">Game of the year.</a>
167
- </p>
168
-
169
- <p>
170
- Hep Cat is a rhythm game made in <a
171
- href="https://www.rpgmakerweb.com/products/programs/rpg-maker-mv" target="_blank" class="qt-rpgmaker">
172
- RPG Maker MV</a> with the help of additional custom-made <span class="qt-js">Javascript</span> plugins. I
173
- wrote the rhythm game plugin's framework. For this plugin to work, I
174
- had to write a <span class="qt-python">Python</span> script that parses osu! files into readable JSON
175
- files.
176
- </p>
177
-
178
-
179
- <section class="game-link-section">
180
- <button type="button" class="game-button turnip-button"
181
- role="link"
182
- title="https://bitbucket.org/egginchicken/hep-cat/src/master/"
183
- on:click={()=> window.open("https://bitbucket.org/egginchicken/hep-cat/src/master/")}>
184
- <img alt="bitbucket icon" src={BitbucketIcon}>
185
- </button>
186
- <button type="button" class="game-button turnip-button"
187
- role="link"
188
- title="https://just-a-phantom.itch.io/hep-cat"
189
- on:click={()=> window.open("https://just-a-phantom.itch.io/hep-cat")}>
190
- <img alt="itch.io icon" src={ItchLogoHotLink}>
191
- </button>
192
- </section>
193
- </section>
194
- </section>
195
- </Card>
196
-
197
- <Card>
198
- <section class="game-card" slot="content">
199
- <img src={HeaderChefWings} alt="todo" loading="lazy">
200
- <section class="game-card-body">
201
-
202
- <h1>Chef Wings</h1>
203
- <p>
204
- A “roguelite-lite” where you gather ingredients in a procedurally-generated dungeon and use
205
- them to cook for customers and then critics!
206
- </p>
207
- <p>
208
- I built and documented several of the game’s systems including the game state management
209
- system that extends <span class="qt-unity">Unity’s</span> existing Monobehavior lifecycle with new events,
210
- and the dialogue, event, and level systems that coordinate the game flow using the interactive
211
- dialogue tool YarnSpinner
212
- </p>
213
-
214
- <section class="game-link-section">
215
- <button type="button" class="game-button turnip-button"
216
- title="https://selk.io/birb-project/trunk/"
217
- on:click={()=>modalStore.trigger(chefWingsWarning)}>
218
- <img alt="itch.io icon" src={LinkIcon}>
219
- <span>selk.io/birb-project/trunk/</span>
220
- </button>
221
- </section>
222
- </section>
223
- </section>
224
- </Card>
225
- <Card>
226
- <section class="game-card" slot="content">
227
- <video playsinline autoplay muted loop preload="none">
228
- <source src={HeaderSoulwork} type="video/mp4">
229
- </video>
230
- <section class="game-card-body">
231
-
232
- <h1>Soulwork</h1>
233
-
234
- <p>
235
- Soulwork is a 2D platforming game that uses unique physics to solve puzzle-based levels.
236
- This project is a Time to Game Jam entry, restricting game development to be under 48
237
- hours.
238
- </p>
239
- <p>
240
- I helped make the level designing tools used by the designers to drag-and-drop objects
241
- on the stage. I also helped program the unique physics-based gameplay mechanic. This was
242
- was made in <span class="qt-unity">Unity</span> written using <span class="qt-cs">C#</span>.
243
- </p>
244
-
245
-
246
- <section class="game-link-section">
247
- <button type="button" class="game-button turnip-button"
248
- role="link"
249
- title="https://github.com/Zeyu-Li/Clockwork"
250
- on:click={()=> window.open("https://github.com/Zeyu-Li/Clockwork")}>
251
- <img alt="github icon" src={GithubIcon}>
252
- </button>
253
- <button type="button" class="game-button turnip-button"
254
- role="link"
255
- title="https://itch.io/jam/time-to-game-jam-gadec-fall-game-jam/rate/514331"
256
- on:click={()=> window.open("https://itch.io/jam/time-to-game-jam-gadec-fall-game-jam/rate/514331")}>
257
- <img alt="itch.io icon" src={ItchLogoHotLink}>
258
- </button>
259
- </section>
260
- </section>
261
- </section>
262
- </Card>
263
- <Card overrideStyle="align-self: flex-start;">
264
- <section class="game-card itch-promo" slot="content">
265
- <h1 class="mb-12 text-center">Check out my itch.io page for more games</h1>
266
-
267
- <section class="game-link-section">
268
- <button type="button" class="btn variant-filled-primary turnip-button"
269
- role="link"
270
- title="https://turnipxenon.itch.io/"
271
- on:click={() => window.open("https://turnipxenon.itch.io/")}>
272
- <img src={ItchLogoHotLink} class="long-btn-image" alt="itch icon">
273
- <span>TurnipXenon</span>
274
- </button>
275
- </section>
276
-
277
- </section>
278
- </Card>
279
- </section>
280
- `,Ls=`<script lang="ts">
281
-
282
- export let email = "turnipxenon@gmail.com";
283
-
284
- import "./seaweed.postcss";
285
- import { getModalStore } from "@skeletonlabs/skeleton";
286
- import LinkIcon from "$pkg/assets/icons/link-icon.svg";
287
- import GithubIcon from "$pkg/assets/icons/github-mark.svg";
288
- import WeaverFootage from "$pkg/assets/others/weaver-footage.gif";
289
- import WindowSetGraph from "$pkg/assets/others/window-set.png";
290
- import ThisWebsiteFootage from "$pkg/assets/others/seaweed-showcase.mp4";
291
- import Card from "$pkg/components/Card.svelte";
292
- import Chip from "$pkg/components/Chip.svelte";
293
- import type { ModalSettings } from "@skeletonlabs/skeleton";
294
-
295
- const modalStore = getModalStore();
296
- const cmput401Info: ModalSettings = {
297
- type: "confirm",
298
- title: "Information",
299
- body: "As a full disclosure, this link will lead you to <a href='https://cmput401.ca/projects/e5b13586-09c7-4ddd-baf6-fdb078d23398' target='_blank'>" +
300
- "https://cmput401.ca/projects/e5b13586-09c7-4ddd-baf6-fdb078d23398</a>. " +
301
- "We currently don't have any tests yet ensuring that the link is correct. " +
302
- \`Click confirm to go to the site. Please report any bugs at <a href='mailto:\${email}' target='_blank'>\` +
303
- \`\${email}</a>.\`,
304
- response: (r: boolean) => {
305
- if (r) {
306
- window.open("https://cmput401.ca/projects/e5b13586-09c7-4ddd-baf6-fdb078d23398");
307
- }
308
- }
309
- };
310
- <\/script>
311
-
312
- <Card>
313
- <section class="section-card title-card" slot="content">
314
- <h1 class="text-center">Projects</h1>
315
- </section>
316
- </Card>
317
-
318
- <section class="projects-section">
319
- <Card>
320
- <section class="project-card" slot="content">
321
- <iframe id="migrante-alberta"
322
- width="560" height="315" src="https://www.youtube.com/embed/ZemWwf8jh8E?si=RZwSfYHI-0Ael-RE"
323
- title="YouTube video player" style="border: none"
324
- allowfullscreen></iframe>
325
- <div class="project-card-body">
326
- <!-- todo: add regression to see if page is gone: https://cmput401.ca/api/projects/e5b13586-09c7-4ddd-baf6-fdb078d23398 -->
327
-
328
- <h2>Migrante Alberta</h2>
329
- <p>We developed a mobile-first cross-platform application to be used by the Canadian-based
330
- Filipino non-profit advocacy group, Migrante Alberta, to help new immigrants navigate
331
- through local services and events
332
- </p>
333
- <p>
334
- <Chip>Flutter</Chip>
335
- <Chip>Dart</Chip>
336
- <Chip>Python</Chip>
337
- <Chip>Django</Chip>
338
- <Chip>Heroku</Chip>
339
- <Chip>Android</Chip>
340
- <Chip>Postgresql</Chip>
341
- </p>
342
- <!-- todo: add a way to ask what did i do via chat? -->
343
- <!-- <p>-->
344
- <!-- I helped make reusable Flutter components for the application’s frontend, Dart utility files to-->
345
- <!-- help ease writing and debugging calls to the backend, and a troubleshooting documentation-->
346
- <!-- for handling common issues-->
347
- <!-- </p>-->
348
- <!-- <p>-->
349
- <!-- Added Python unit tests to the backend endpoints, refactored the backend’s authentication-->
350
- <!-- system from plain text to using Django’s authentication system, and wrote a script to ease-->
351
- <!-- deployment to Heroku-->
352
- <!-- </p>-->
353
-
354
- <!-- todo: add tags with Dart, Flutter, Python, Django, Heroku, Android -->
355
-
356
- <section class="game-link-section">
357
- <button type="button" class="btn variant-filled-primary turnip-button"
358
- title="https://selk.io/birb-project/trunk/"
359
- on:click={() => modalStore.trigger(cmput401Info)}>
360
- <img src={LinkIcon} class="long-btn-image" alt="itch icon">
361
- <span>cmput401.ca</span>
362
- </button>
363
- </section>
364
-
365
- </div>
366
- </section>
367
- </Card>
368
-
369
- <Card>
370
- <section class="project-card" slot="content">
371
- <div class="project-card-body">
372
-
373
- <h2>Decentralized social media</h2>
374
-
375
- <p>We made a full stack decentralized social media app made with <span class="qt-react">React</span> +
376
- <span class="qt-js">Javascript</span> for the client code, <span class="qt-django">Django</span> + <span
377
- class="qt-python">Python</span> for the backend code, and <span class="qt-heroku">Heroku</span> for
378
- deployment. This project was made
379
- for
380
- our Web Applications and Architecture class.</p>
381
- <p>The application can connect with three other decentralized social media app in the same class:
382
- </p>
383
- <ul>
384
- <li>
385
- <a href="https://github.com/hgshah/cmput404-project/blob/main/docs/testing_other_teams.md#team-14"
386
- target="_blank">Also
387
- a social media with the same Django + Python backend server where they act on behalf of
388
- our users interacting with theirs</a></li>
389
- <li>
390
- <a href="https://github.com/hgshah/cmput404-project/blob/main/docs/testing_other_teams.md#team-7"
391
- target="_blank">A
392
- social media that uses Fast API + Python for their backend server</a></li>
393
- <li>
394
- <a href="https://github.com/hgshah/cmput404-project/blob/main/docs/testing_other_teams.md#team-12"
395
- target="_blank">Another
396
- social media that has Django + Python for their backend but we have to act on behalf of
397
- our
398
- users interacting with their users</a>
399
- </li>
400
- </ul>
401
-
402
- <!-- todo: add tags with Javascript, React, Python, Django, Heroku -->
403
-
404
- <section class="game-link-section">
405
- <button type="button" class="game-button turnip-button"
406
- role="link"
407
- title="https://github.com/hgshah/cmput404-project"
408
- on:click={() => window.open("https://github.com/hgshah/cmput404-project")}>
409
- <img src={GithubIcon} alt="github icon">
410
- </button>
411
- </section>
412
- </div>
413
- </section>
414
- </Card>
415
-
416
- <Card>
417
- <section class="project-card" slot="content">
418
- <img alt="Footage of a visual novel-like dynamic dialog interaction happening on the same page we are on"
419
- src={WeaverFootage} />
420
-
421
- <div class="project-card-body">
422
- <h2>Customized Yarnspinner interpreter and dialog runner</h2>
423
-
424
- A custom dialog interpreter, written in <span class="qt-ts">Typescript</span>, that tokenizes then
425
- transpiles custom Yarnspinner dialog into a <span class="qt-ts">Typescript</span> file. The said files can
426
- be used on a corresponding runner or library, also implemented alongside it, allowing the ability to play a
427
- custom-flavor of YarnSpinner dialogs on <span class="qt-svelte">Svelte</span>.
428
-
429
- <section class="game-link-section">
430
- <button type="button" class="game-button turnip-button"
431
- role="link"
432
- title="https://github.com/TurnipXenon/pineapple/blob/main/docs/PineappleFiberSpec.md"
433
- on:click={() => window.open("https://github.com/TurnipXenon/pineapple/blob/main/docs/PineappleFiberSpec.md")}>
434
- <img src={GithubIcon} alt="github icon">
435
- </button>
436
- </section>
437
- </div>
438
- </section>
439
- </Card>
440
-
441
- <Card>
442
- <section class="project-card" slot="content">
443
- <div class="project-card-body">
444
- <h2>Full-stack <span class="qt-c">C</span> app</h2>
445
-
446
- <p>
447
- A terminal-based app consisting of a server observing several terminal apps all concurrently
448
- sending updates to the server, which then broadcasts these information concurrently to all the
449
- other terminal apps connected.
450
- </p>
451
- <p>
452
- The project involves <span class="qt-foundation">multiprocessing</span> programming featuring pthreads and
453
- mutexes, and <span class="qt-foundation">networking</span> via sockets.
454
- </p>
455
-
456
- <section class="game-link-section">
457
- <button type="button" class="game-button turnip-button"
458
- role="link"
459
- title="https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment02/DESIGN.md"
460
- on:click={() => window.open("https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment02/DESIGN.md")}>
461
- <img src={GithubIcon} class="long-btn-image" alt="github icon">
462
- </button>
463
- </section>
464
- </div>
465
- </section>
466
- </Card>
467
-
468
- <Card>
469
- <section class="project-card" slot="content">
470
- <img
471
- alt="A graph that visualizes the number of memory pages made by Quicksort cached within the window set as
472
- time goes by. The trend appears to look like a damping harmonic motion that does not go below the zero line. More
473
- details include the data size being 200000 entries, each data point skips 1060174 data points, with a
474
- page size of 4096 bytes, and window size of 100000 bytes."
475
- src={WindowSetGraph} />
476
- <div class="project-card-body">
477
- <h2>Working set simulation</h2>
478
-
479
- <p>
480
- A <span class="qt-c">C</span> program that simulates the working set model based on the output of memory
481
- addresses
482
- <span class="qt-valgrind">valgrind</span> detects as being accessed by a program being ran. It's
483
- implemented using a nested hashmap <span class="qt-foundation">data structure</span> implemented from
484
- scratch. The working set is the collection of memory pages referenced by a program within a certain time
485
- frame. It comes with a report analyzing and benchmarking how memory allocation, between sorting <span
486
- class="qt-foundation">algorithms</span> heapsort, quicksort, and radixsort, is affected by the window set
487
- size, page size, and their input size.
488
- </p>
489
-
490
- <section class="game-link-section">
491
- <button type="button" class="game-button turnip-button"
492
- role="link"
493
- title="https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/REPORT.pdf"
494
- on:click={() => window.open("https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/REPORT.pdf")}>
495
- <img src={GithubIcon} class="long-btn-image" alt="github icon">
496
- <span>Benchmark report</span>
497
- </button>
498
- <button type="button" class="game-button turnip-button"
499
- role="link"
500
- title="https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/DESIGN.md"
501
- on:click={() => window.open("https://github.com/TurnipXenon/C380-1Code/blob/main/Assignment03/DESIGN.md")}>
502
- <img src={GithubIcon} class="long-btn-image" alt="github icon">
503
- <span>Design</span>
504
- </button>
505
- </section>
506
- </div>
507
- </section>
508
- </Card>
509
-
510
- <Card>
511
- <section class="project-card" slot="content">
512
-
513
- <video playsinline autoplay muted loop preload="none">
514
- <source src={ThisWebsiteFootage} type="video/mp4">
515
- video unavailable. original video contains clips of this website being resized and light-dark mode being
516
- toggled.
517
- </video>
518
- <div class="project-card-body">
519
- <h2>This webpage!</h2>
520
-
521
- <p>
522
- The webpage is made of two parts. The webpage that has the content for everything here, I've
523
- lovingly called Seaweed. I kept seaweed as a private package. On the other hand, the base package which I
524
- want to use for all spin offs of my websites is called Pineapple and have kept that codebase public.
525
- </p>
526
-
527
- <p>
528
- <Chip>Svelte</Chip>
529
- <Chip>Skeleton (Svelte UI library)</Chip>
530
- <Chip>Typescript</Chip>
531
- <Chip>Vercel</Chip>
532
- <Chip>YarnSpinner</Chip>
533
- </p>
534
-
535
- <section class="game-link-section">
536
- <button type="button" class="btn variant-filled-primary turnip-button"
537
- role="link"
538
- title="https://github.com/TurnipXenon/pineapple"
539
- on:click={() => window.open("https://github.com/TurnipXenon/pineapple")}>
540
- <img src={GithubIcon} class="long-btn-image" alt="github icon">
541
- </button>
542
- </section>
543
- </div>
544
- </section>
545
- </Card>
546
-
547
- <Card>
548
- <section class="project-card" slot="content">
549
- <div class="project-card-body">
550
- <h2>Mock Uber App</h2>
551
-
552
- <p>A course project app meant to emulate how Uber works by playing with <span
553
- class="qt-google">Google Maps API</span>.
554
- </p>
555
- <p>
556
- I implemented all interfaces related to the NoSQL cloud database <span
557
- class="qt-firebase qt-google qt-infra">Firebase</span>, making writing code easier for other programmers
558
- (<span
559
- class="qt-android">Android</span> / <span class="qt-java">Java</span>). I also wrote documentation to said
560
- code and added instrumented tests that are tested by the continuous integration tool <span
561
- class="qt-infra">Travis CI</span>, ensuring that our code is tested
562
- </p>
563
-
564
- <section class="game-link-section">
565
- <!-- todo: mock uber app find link -->
566
- <button type="button" class="game-button turnip-button"
567
- role="link"
568
- title="https://github.com/CMPUT301W20T10/UberApp"
569
- on:click={() => window.open("https://github.com/CMPUT301W20T10/UberApp")}>
570
- <img src={GithubIcon} class="long-btn-image" alt="github icon">
571
- </button>
572
- </section>
573
- </div>
574
- </section>
575
- </Card>
576
-
577
- </section>
578
- `,js=`<script lang="ts">
579
- export let letChaos = true;
580
- export let name = "Turnip";
581
- export let email = "turnipxenon@gmail.com";
582
- export let linkedinSlug = "turnip-xenon";
583
- export let domain = "http://localhost:5173/portfolio/actual/";
584
-
585
- import SocialSection from "$pkg/components/SocialSection.svelte";
586
- import "./seaweed.postcss";
587
- import SeaweedBaseLayout from "$pkg/components/layouts/SeaweedBaseLayout.svelte";
588
- import { Accordion, AccordionItem, CodeBlock, SlideToggle } from "@skeletonlabs/skeleton";
589
- import { page } from "$app/stores";
590
- import Card from "$pkg/components/Card.svelte";
591
- import { onMount } from "svelte";
592
- import ElementVisbilityDetector from "$pkg/components/ElementVisbilityDetector.svelte";
593
- import GameSection from "$pkg/template/Seaweed/GameSection.svelte";
594
- import ProjectSection from "$pkg/template/Seaweed/ProjectSection.svelte";
595
-
596
- let isVisible = true;
597
- let isAdvanceSettingOn = false;
598
- let shouldAddFunNote = false;
599
-
600
- $: isSocialsGone = !isVisible;
601
-
602
- // region query params
603
- import gameContent from "./GameSection.svelte?raw";
604
- import projectContent from "./ProjectSection.svelte?raw";
605
- import selfContent from "./SeaweedTemplate.svelte?raw";
606
-
607
- let qtMap = new Map<string, boolean>();
608
- const paramQTSet = new Set<string>();
609
-
610
- const syncQT = () => {
611
- if (qtMap.size === 0 || paramQTSet.size === 0) {
612
- return;
613
- }
614
-
615
- qtMap.forEach((_, k) => {
616
- qtMap.set(k, paramQTSet.has(k));
617
- });
618
-
619
- // force svelte refresh
620
- qtMap = qtMap;
621
- };
622
-
623
- const parseQTTerms = async () => {
624
- const qtSet = new Set<string>();
625
- const rawTermList: string[] = [];
626
- [gameContent, projectContent, selfContent].forEach(body => {
627
- // parse the qt-* term which exists within elements like:
628
- // <span class="qt-*">TERM</span>
629
- rawTermList.push(
630
- ...body // step 3: destructure the array
631
- .split("\\"") // step 1: split the text as double quotations (") as the delimiter
632
- .filter(s => s.startsWith("qt-")) // step 2: filter out texts that does not begin with "qt-"
633
- );
634
- });
635
-
636
- // step 4: some spans contain multiple classes, split them up
637
- // then add them to qtTerms
638
- // e.g. <span class="qt-1 qt-2">TERM</span>
639
- rawTermList.forEach(t => {
640
- t.split(" ").forEach(nt => {
641
- // filter out some of this meta terms
642
- if (["qt-1", "qt-2", "qt-*", "qt-"].includes(nt)) {
643
- return;
644
- }
645
-
646
- // adding to set ensures the entry is unique
647
- qtSet.add(nt);
648
- });
649
- });
650
-
651
- // activate svelte reactivity
652
- qtSet.forEach(t => qtMap.set(t, true));
653
- syncQT();
654
- };
655
- parseQTTerms();
656
-
657
- // todo: fix fragile relative reference to the root
658
- // const fileList = import.meta.glob("./**/+page.svelte", { query: "?raw", eager: true });
659
- // const titleToLink = new Map<string, string>();
660
-
661
- let gameSectionFirst = true;
662
- let qtfontWeight = "normal";
663
- let additionalFontWeight = "";
664
- /** qt values and what they mean:
665
- * undefined: set all qt terms to font-weight: bold
666
- * todo: implement clear
667
- * clear: unset all terms to font-weight: normal
668
- * <term>: only set qt-<term> to bold
669
- * <term1>,<term2>: only set qt-<term1> and qt-<term2> to bold,
670
- *
671
- * ONLY CALL INSIDE onMount()
672
- **/
673
- const filterSearchParams = (searchParams: URLSearchParams) => {
674
- const isFunOn = searchParams.get("fun")?.trim();
675
- if (isFunOn === "true") {
676
- shouldAddFunNote = true;
677
- }
678
-
679
- const gameSectionFirstParam = searchParams.get("game-section-first")?.trim();
680
- if (gameSectionFirstParam === "false") {
681
- gameSectionFirst = false;
682
- }
683
-
684
- // region Bold terms
685
- const qtValue = searchParams.get("qt")?.trim();
686
- if (qtValue === undefined) {
687
- qtfontWeight = "bold";
688
- return;
689
- }
690
- qtfontWeight = "normal";
691
- const dynamicStyle = qtValue.split(",").map((term) => {
692
- // side-effect
693
- paramQTSet.add(\`qt-\${term}\`);
694
-
695
- // main effect
696
- return \`span.qt-\${term} { font-weight: bold !important; }\`;
697
- }).join("\\n");
698
-
699
- // https://stackoverflow.com/a/24285947/17836168
700
- const style = document.createElement("style");
701
- // noinspection JSDeprecatedSymbols
702
- style.type = "text/css";
703
- style.innerText = dynamicStyle;
704
- document.head.appendChild(style);
705
- syncQT();
706
- // endregion Bold terms
707
- };
708
- // endregion query params
709
-
710
- /* region chaos scripts */
711
- const chaoticWordBank = ["niko", "toba", "seal", "aquarium", "ojisan", "baikal"];
712
- let chaosDone = false;
713
- const runChaos = (node: Element) => {
714
- // change all text content to gibberish
715
- for (let child of Array.from(node.children)) {
716
- if (child.nodeType === Node.ELEMENT_NODE) {
717
- runChaos(child);
718
- for (const childOfChild of child.childNodes) {
719
- if (childOfChild.nodeType === Node.TEXT_NODE && childOfChild.textContent?.trim()) {
720
- const max = childOfChild.textContent.length;
721
- childOfChild.textContent = "";
722
- while (childOfChild.textContent.length < max) {
723
- childOfChild.textContent += (chaoticWordBank[Math.floor(Math.random() * chaoticWordBank.length)] + " ");
724
- }
725
- }
726
- }
727
-
728
- // change all links to crouton
729
- if (child.hasAttribute("href")) {
730
- child.setAttribute("href", "https://crouton.net/");
731
- }
732
-
733
- // change all images to niko if aria != hidden?
734
- if (child.hasAttribute("src") && !child.hasAttribute("aria-hidden")) {
735
- if (child.hasAttribute("alt")) {
736
- child.setAttribute("src", "https://p.potaufeu.asahi.com/a2b9-p/picture/21583312/5c3310aec77068e24844c663aa62b37c.jpg");
737
- } else {
738
- child.setAttribute("src", "https://video.twimg.com/ext_tw_video/1318728494256410624/pu/vid/640x360/TMklz6hiTkQu3xhn.mp4");
739
- child.setAttribute("muted", "true");
740
- }
741
- }
742
- if (child.tagName.trim() === "VIDEO") {
743
- child.setAttribute("src", "https://video.twimg.com/ext_tw_video/1318728494256410624/pu/vid/640x360/TMklz6hiTkQu3xhn.mp4");
744
- child.setAttribute("muted", "true");
745
- }
746
-
747
- // change all button events
748
- if (child.tagName.trim() === "BUTTON") {
749
- // remove anon function: https://stackoverflow.com/a/41343451/17836168
750
- child.setAttribute("disabled", "true");
751
- }
752
- }
753
- }
754
- };
755
-
756
- let mainVisibility = "visible";
757
- $: mainVisibility = letChaos && !chaosDone ? "hidden" : "visible";
758
- /* endregion chaos scripts */
759
-
760
- onMount(() => {
761
- if (!letChaos && $page.url.searchParams) {
762
- filterSearchParams($page.url.searchParams);
763
- }
764
-
765
- if (letChaos) {
766
- runChaos(document.body);
767
- chaosDone = true;
768
- }
769
- });
770
-
771
- const toggleTerm = (term: string) => {
772
- qtMap.set(term, !qtMap.get(term));
773
- qtMap = qtMap;
774
- };
775
-
776
- // when either gameSectionFirst or the queryTerms are updated, update advancedUrl
777
- let advancedUrl = domain;
778
- const updateUrl = () => {
779
- const queryParams: string[] = [];
780
-
781
- const qtList: string[] = [];
782
- qtMap.forEach((shouldBold, term) => {
783
- if (shouldBold) {
784
- qtList.push(term);
785
- }
786
- });
787
-
788
- if (qtList.length === 0) {
789
- queryParams.push("qt=clear");
790
- } else if (qtMap.size !== qtList.length) {
791
- // we'll only add if the lengths are not equal
792
- // dont need to add query if all terms in qtMap is true
793
- queryParams.push(\`qt=\${qtList.map(t => t.slice(3, t.length)).join(",")}\`);
794
- }
795
-
796
- if (shouldAddFunNote) {
797
- queryParams.push("fun=true");
798
- }
799
-
800
- if (!gameSectionFirst) {
801
- queryParams.push("game-section-first=false");
802
- }
803
-
804
- if (queryParams.length > 0) {
805
- advancedUrl = \`\${domain}?\${queryParams.join("&")}\`;
806
- } else {
807
- advancedUrl = domain;
808
- }
809
- };
810
- $: // noinspection CommaExpressionJS
811
- gameSectionFirst, qtMap, shouldAddFunNote, updateUrl();
812
- // $: gameSectionQuery = gameSectionFirst ? "" : "game-section-first=false";
813
- <\/script>
814
-
815
- <SeaweedBaseLayout bind:shouldDisplayLeadingIcons={isSocialsGone}>
816
- <!-- todo: limit main size to 1080 px? -->
817
- <main style={\`
818
- --qt-font-weight: \${qtfontWeight};\${additionalFontWeight};
819
- visibility: \${mainVisibility};
820
- \`}>
821
-
822
- <div class="experience-and-about-div">
823
-
824
- <div class="greater-about-div">
825
-
826
- <Card includeDataNoSnippet={false}>
827
- <section class="section-card" slot="content">
828
-
829
- <h1>About</h1>
830
-
831
- <p>
832
- Hi! My name is {name}! I work as a software developer. Outside of that, I like making games, and
833
- trying to do everything in between required to make one. I have some showcased below, our visit
834
- my itch.io page for more of them.
835
- </p>
836
- <!-- todo: link the degree details idk -->
837
- <p>
838
- I also graduated with BS Computing Science, Specializing in Software Practice, and a
839
- certificate in Computer Game Development at University of Alberta.
840
- </p>
841
- {#if shouldAddFunNote}
842
- <p>
843
- I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
844
- Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
845
- </p>
846
- {/if}
847
-
848
- <!-- todo: maybe put cute stuff here -->
849
- <!-- </ToggleableContent>-->
850
- </section>
851
- </Card>
852
-
853
- <Card>
854
- <section class="section-card" slot="content">
855
- <SocialSection email={email} linkedinSlug={linkedinSlug}></SocialSection>
856
- <ElementVisbilityDetector bind:isVisible={isVisible}>
857
- </ElementVisbilityDetector>
858
- </section>
859
- </Card>
860
-
861
- </div>
862
-
863
- <Card>
864
- <section class="section-card" slot="content">
865
- <h1>Experience</h1>
866
-
867
- <h2>Highlight</h2>
868
- <p>Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
869
- active users</b> at Twitch</p>
870
-
871
- <h2>Software Engineer</h2>
872
- <div class="two-column-separated">
873
- <div>July 2023 – January 2024</div>
874
- <div style="text-align: end">Twitch, Remote</div>
875
- </div>
876
- <ul>
877
- <li>
878
- Contributed to
879
- <span class="qt-go">Golang</span>
880
- microservices and
881
- <span class="qt-ts">Typescript</span>
882
- <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
883
- <a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
884
- . Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
885
- </li>
886
- <li>
887
- 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
888
- <span class="qt-aws qt-observability">Cloudwatch</span>,
889
- <span class="qt-aws qt-observability">Grafana</span>,
890
- <span class="qt-aws">Kinesis Data Stream</span>,
891
- <span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
892
- <span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
893
- </li>
894
- </ul>
895
- <br>
896
-
897
- <h2>Software Engineer Intern</h2>
898
- <div class="two-column-separated">
899
- <div>May 2022 – Aug 2022</div>
900
- <div style="text-align: end">Twitch, San Francisco</div>
901
- </div>
902
- <ul>
903
- <li>
904
- Built a <span class="qt-infra">load testing service</span> that can be configured to generate different
905
- message types at different volumes that can be easily extended to target different chat services
906
- </li>
907
- <li>
908
- Used Twitch’s set of custom tools, including Twitch’s custom RPC protocol, to create a backend
909
- service with business logic written in <span class="qt-go">Go</span> and cloud infrastructure utilizing
910
- <span
911
- class="qt-infra qt-aws">ECS on Fargate, Cloudwatch, and DynamoDB</span>
912
- , defined in <span class="qt-ts">Typescript</span>-flavored CDK
913
- </li>
914
- <li>
915
- Wrote a technical specification document for the service’s MVP and possible future features, and
916
- additional documentation on how to use the service and how to extend the load testing service to include
917
- new services to test
918
- </li>
919
- </ul>
920
- <br>
921
- <!-- todo: turn off flashing when accordion is expanded -->
922
- <Accordion>
923
- <AccordionItem>
924
- <div slot="summary">
925
- <h2 class="accordion-header">More experience</h2>
926
- </div>
927
- <svelte:fragment slot="content">
928
- <section class="more-section">
929
- {#if (!letChaos)}
930
- <h2>Software Engineer Intern</h2>
931
- <div class="two-column-separated">
932
- <div>May 2021 – Dec 2021</div>
933
- <div style="text-align: end">Twitch / Amazon Web Services Canada, Remote</div>
934
- </div>
935
- <ul>
936
- <li>
937
- Implemented and wrote tests for a feature in Twitch’s
938
- <span class="qt-go">Golang</span> backend authentication microservices and
939
- <span class="qt-ts">Typescript</span>
940
- <span class="qt-react">React</span> frontend web app that will help suggest security improvements to
941
- <b>over 100k+ users daily</b>
942
- </li>
943
- </ul>
944
- {:else}
945
- niko baikal seal from toba aquarium
946
- {/if}
947
- <br>
948
- </section>
949
- </svelte:fragment>
950
- </AccordionItem>
951
- </Accordion>
952
- </section>
953
- </Card>
954
-
955
- </div>
956
-
957
- {#if (gameSectionFirst)}
958
- <GameSection email={email}></GameSection>
959
- <ProjectSection email={email}></ProjectSection>
960
- {:else }
961
- <ProjectSection email={email}></ProjectSection>
962
- <GameSection email={email}></GameSection>
963
- {/if}
964
-
965
- {#if (!letChaos)}
966
- <div aria-hidden="true" style="height: 25vh" />
967
-
968
- <Card>
969
- <div slot="content" class="default-card advanced-setting">
970
- <h1>Advanced settings</h1>
971
- <p>This one is for those curious how I customize this page.</p>
972
- <SlideToggle name="advanced-setting-slider" bind:checked={isAdvanceSettingOn}>
973
- Advanced settings: {isAdvanceSettingOn ? "On" : "Off"}
974
- </SlideToggle>
975
- {#if (isAdvanceSettingOn)}
976
- <SlideToggle name="game-section-slider" bind:checked={gameSectionFirst}>
977
- Should game section appear first over projects: {gameSectionFirst ? "On" : "Off"}
978
- </SlideToggle>
979
- <SlideToggle name="fun-note-slider" bind:checked={shouldAddFunNote}>
980
- Should add fun note in description: {shouldAddFunNote ? "On" : "Off"}
981
- </SlideToggle>
982
-
983
- <h3>Query terms to bold</h3>
984
- <div class="query-term-grid">
985
- {#each qtMap.entries() as [term, shouldBold]}
986
- <!--{@const shouldBold = false}-->
987
- <button
988
- class="chip {shouldBold ? 'variant-filled-tertiary' : 'variant-soft-tertiary'}"
989
- on:click={() => {toggleTerm(term)}}
990
- >
991
- <!-- todo: change shouldBold -->
992
- {#if (shouldBold)}&check;{/if}
993
- {term}
994
- </button>
995
- {/each}
996
- </div>
997
-
998
- <br>
999
- <p>Copy the url below and open a new page with it</p>
1000
- <CodeBlock language="url" code={advancedUrl}></CodeBlock>
1001
- {/if}
1002
- </div>
1003
- </Card>
1004
- {/if}
1005
- </main>
1006
-
1007
- <SocialSection slot="extraLeadingIcons"
1008
- isSlot={true}
1009
- email={email}
1010
- linkedinSlug={linkedinSlug}
1011
- isSmallVersion={true}></SocialSection>
1012
- </SeaweedBaseLayout>
1013
-
1014
- <style lang="postcss">
1015
- .advanced-setting {
1016
- display: flex;
1017
- flex-direction: column;
1018
- gap: 0.5lh;
1019
- }
1020
-
1021
- h3 {
1022
- font-size: 1.5em;
1023
- line-height: 1.5lh;
1024
- }
1025
-
1026
- .query-term-grid {
1027
- display: flex;
1028
- gap: 0.25em;
1029
- flex-wrap: wrap;
1030
- }
1031
- </style>`;function fe(a,t,e){const n=a.slice();return n[30]=t[e][0],n[31]=t[e][1],n}function me(a){let t,e=`I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
1032
- Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.`;return{c(){t=y("p"),t.textContent=e},l(n){t=w(n,"P",{"data-svelte-h":!0}),D(t)!=="svelte-1cp5bb"&&(t.textContent=e)},m(n,i){O(n,t,i)},d(n){n&&_(t)}}}function Os(a){let t,e,n="About",i,s,o,u,c,l,h,b=`I also graduated with BS Computing Science, Specializing in Software Practice, and a
1033
- certificate in Computer Game Development at University of Alberta.`,m,S=a[5]&&me();return{c(){t=y("section"),e=y("h1"),e.textContent=n,i=E(),s=y("p"),o=J("Hi! My name is "),u=J(a[1]),c=J(`! I work as a software developer. Outside of that, I like making games, and
1034
- trying to do everything in between required to make one. I have some showcased below, our visit
1035
- my itch.io page for more of them.`),l=E(),h=y("p"),h.textContent=b,m=E(),S&&S.c(),this.h()},l(g){t=w(g,"SECTION",{class:!0,slot:!0});var p=A(t);e=w(p,"H1",{"data-svelte-h":!0}),D(e)!=="svelte-soqi9t"&&(e.textContent=n),i=L(p),s=w(p,"P",{});var C=A(s);o=K(C,"Hi! My name is "),u=K(C,a[1]),c=K(C,`! I work as a software developer. Outside of that, I like making games, and
1036
- trying to do everything in between required to make one. I have some showcased below, our visit
1037
- my itch.io page for more of them.`),C.forEach(_),l=L(p),h=w(p,"P",{"data-svelte-h":!0}),D(h)!=="svelte-1htq5b8"&&(h.textContent=b),m=L(p),S&&S.l(p),p.forEach(_),this.h()},h(){r(t,"class","section-card"),r(t,"slot","content")},m(g,p){O(g,t,p),d(t,e),d(t,i),d(t,s),d(s,o),d(s,u),d(s,c),d(t,l),d(t,h),d(t,m),S&&S.m(t,null)},p(g,p){p[0]&2&&mt(u,g[1]),g[5]?S||(S=me(),S.c(),S.m(t,null)):S&&(S.d(1),S=null)},d(g){g&&_(t),S&&S.d()}}}function Ps(a){let t,e,n,i,s,o;e=new Se({props:{email:a[2],linkedinSlug:a[3]}});function u(l){a[16](l)}let c={};return a[4]!==void 0&&(c.isVisible=a[4]),i=new Vn({props:c}),qt.push(()=>Lt(i,"isVisible",u)),{c(){t=y("section"),V(e.$$.fragment),n=E(),V(i.$$.fragment),this.h()},l(l){t=w(l,"SECTION",{class:!0,slot:!0});var h=A(t);W(e.$$.fragment,h),n=L(h),W(i.$$.fragment,h),h.forEach(_),this.h()},h(){r(t,"class","section-card"),r(t,"slot","content")},m(l,h){O(l,t,h),G(e,t,null),d(t,n),G(i,t,null),o=!0},p(l,h){const b={};h[0]&4&&(b.email=l[2]),h[0]&8&&(b.linkedinSlug=l[3]),e.$set(b);const m={};!s&&h[0]&16&&(s=!0,m.isVisible=l[4],Et(()=>s=!1)),i.$set(m)},i(l){o||(H(e.$$.fragment,l),H(i.$$.fragment,l),o=!0)},o(l){N(e.$$.fragment,l),N(i.$$.fragment,l),o=!1},d(l){l&&_(t),F(e),F(i)}}}function Hs(a){let t,e='<h2 class="accordion-header">More experience</h2>';return{c(){t=y("div"),t.innerHTML=e,this.h()},l(n){t=w(n,"DIV",{slot:!0,"data-svelte-h":!0}),D(t)!=="svelte-jx0pzv"&&(t.innerHTML=e),this.h()},h(){r(t,"slot","summary")},m(n,i){O(n,t,i)},p:st,d(n){n&&_(t)}}}function As(a){let t;return{c(){t=J("niko baikal seal from toba aquarium")},l(e){t=K(e,"niko baikal seal from toba aquarium")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function Ds(a){let t,e="Software Engineer Intern",n,i,s='<div>May 2021 – Dec 2021</div> <div style="text-align: end">Twitch / Amazon Web Services Canada, Remote</div>',o,u,c=`<li>Implemented and wrote tests for a feature in Twitch’s
1038
- <span class="qt-go">Golang</span> backend authentication microservices and
1039
- <span class="qt-ts">Typescript</span> <span class="qt-react">React</span> frontend web app that will help suggest security improvements to
1040
- <b>over 100k+ users daily</b></li>`;return{c(){t=y("h2"),t.textContent=e,n=E(),i=y("div"),i.innerHTML=s,o=E(),u=y("ul"),u.innerHTML=c,this.h()},l(l){t=w(l,"H2",{"data-svelte-h":!0}),D(t)!=="svelte-wd964g"&&(t.textContent=e),n=L(l),i=w(l,"DIV",{class:!0,"data-svelte-h":!0}),D(i)!=="svelte-b9eewq"&&(i.innerHTML=s),o=L(l),u=w(l,"UL",{"data-svelte-h":!0}),D(u)!=="svelte-1xnf9zz"&&(u.innerHTML=c),this.h()},h(){r(i,"class","two-column-separated")},m(l,h){O(l,t,h),O(l,n,h),O(l,i,h),O(l,o,h),O(l,u,h)},d(l){l&&(_(t),_(n),_(i),_(o),_(u))}}}function Ns(a){let t,e,n;function i(u,c){return u[0]?As:Ds}let s=i(a),o=s(a);return{c(){t=y("section"),o.c(),e=E(),n=y("br"),this.h()},l(u){t=w(u,"SECTION",{class:!0});var c=A(t);o.l(c),e=L(c),n=w(c,"BR",{}),c.forEach(_),this.h()},h(){r(t,"class","more-section")},m(u,c){O(u,t,c),o.m(t,null),d(t,e),d(t,n)},p(u,c){s!==(s=i(u))&&(o.d(1),o=s(u),o&&(o.c(),o.m(t,e)))},d(u){u&&_(t),o.d()}}}function zs(a){let t,e;return t=new gn({props:{$$slots:{content:[Ns],summary:[Hs]},$$scope:{ctx:a}}}),{c(){V(t.$$.fragment)},l(n){W(t.$$.fragment,n)},m(n,i){G(t,n,i),e=!0},p(n,i){const s={};i[0]&1|i[1]&8&&(s.$$scope={dirty:i,ctx:n}),t.$set(s)},i(n){e||(H(t.$$.fragment,n),e=!0)},o(n){N(t.$$.fragment,n),e=!1},d(n){F(t,n)}}}function xs(a){let t,e,n="Experience",i,s,o="Highlight",u,c,l=`Worked on Go backend microservices and Typescript React frontend app, serving <b>over 30 million daily
1041
- active users</b> at Twitch`,h,b,m="Software Engineer",S,g,p='<div>July 2023 – January 2024</div> <div style="text-align: end">Twitch, Remote</div>',C,I,k=`<li>Contributed to
1042
- <span class="qt-go">Golang</span>
1043
- microservices and
1044
- <span class="qt-ts">Typescript</span> <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
1045
- <a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
1046
- . Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.</li> <li>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
1047
- <span class="qt-aws qt-observability">Cloudwatch</span>,
1048
- <span class="qt-aws qt-observability">Grafana</span>,
1049
- <span class="qt-aws">Kinesis Data Stream</span>,
1050
- <span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
1051
- <span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span></li>`,f,$,q,T,M="Software Engineer Intern",j,v,z='<div>May 2022 – Aug 2022</div> <div style="text-align: end">Twitch, San Francisco</div>',Q,Z,X=`<li>Built a <span class="qt-infra">load testing service</span> that can be configured to generate different
1052
- message types at different volumes that can be easily extended to target different chat services</li> <li>Used Twitch’s set of custom tools, including Twitch’s custom RPC protocol, to create a backend
1053
- service with business logic written in <span class="qt-go">Go</span> and cloud infrastructure utilizing
1054
- <span class="qt-infra qt-aws">ECS on Fargate, Cloudwatch, and DynamoDB</span>
1055
- , defined in <span class="qt-ts">Typescript</span>-flavored CDK</li> <li>Wrote a technical specification document for the service’s MVP and possible future features, and
1056
- additional documentation on how to use the service and how to extend the load testing service to include
1057
- new services to test</li>`,Y,tt,nt,P,R;return P=new Xe({props:{$$slots:{default:[zs]},$$scope:{ctx:a}}}),{c(){t=y("section"),e=y("h1"),e.textContent=n,i=E(),s=y("h2"),s.textContent=o,u=E(),c=y("p"),c.innerHTML=l,h=E(),b=y("h2"),b.textContent=m,S=E(),g=y("div"),g.innerHTML=p,C=E(),I=y("ul"),I.innerHTML=k,f=E(),$=y("br"),q=E(),T=y("h2"),T.textContent=M,j=E(),v=y("div"),v.innerHTML=z,Q=E(),Z=y("ul"),Z.innerHTML=X,Y=E(),tt=y("br"),nt=E(),V(P.$$.fragment),this.h()},l(U){t=w(U,"SECTION",{class:!0,slot:!0});var x=A(t);e=w(x,"H1",{"data-svelte-h":!0}),D(e)!=="svelte-1r6ig88"&&(e.textContent=n),i=L(x),s=w(x,"H2",{"data-svelte-h":!0}),D(s)!=="svelte-vsxr46"&&(s.textContent=o),u=L(x),c=w(x,"P",{"data-svelte-h":!0}),D(c)!=="svelte-1aso2jy"&&(c.innerHTML=l),h=L(x),b=w(x,"H2",{"data-svelte-h":!0}),D(b)!=="svelte-a3jo9c"&&(b.textContent=m),S=L(x),g=w(x,"DIV",{class:!0,"data-svelte-h":!0}),D(g)!=="svelte-psdxr0"&&(g.innerHTML=p),C=L(x),I=w(x,"UL",{"data-svelte-h":!0}),D(I)!=="svelte-1htsnlv"&&(I.innerHTML=k),f=L(x),$=w(x,"BR",{}),q=L(x),T=w(x,"H2",{"data-svelte-h":!0}),D(T)!=="svelte-wd964g"&&(T.textContent=M),j=L(x),v=w(x,"DIV",{class:!0,"data-svelte-h":!0}),D(v)!=="svelte-cx1fi3"&&(v.innerHTML=z),Q=L(x),Z=w(x,"UL",{"data-svelte-h":!0}),D(Z)!=="svelte-1coh9hk"&&(Z.innerHTML=X),Y=L(x),tt=w(x,"BR",{}),nt=L(x),W(P.$$.fragment,x),x.forEach(_),this.h()},h(){r(g,"class","two-column-separated"),r(v,"class","two-column-separated"),r(t,"class","section-card"),r(t,"slot","content")},m(U,x){O(U,t,x),d(t,e),d(t,i),d(t,s),d(t,u),d(t,c),d(t,h),d(t,b),d(t,S),d(t,g),d(t,C),d(t,I),d(t,f),d(t,$),d(t,q),d(t,T),d(t,j),d(t,v),d(t,Q),d(t,Z),d(t,Y),d(t,tt),d(t,nt),G(P,t,null),R=!0},p(U,x){const lt={};x[0]&1|x[1]&8&&(lt.$$scope={dirty:x,ctx:U}),P.$set(lt)},i(U){R||(H(P.$$.fragment,U),R=!0)},o(U){N(P.$$.fragment,U),R=!1},d(U){U&&_(t),F(P)}}}function Us(a){let t,e,n,i;return t=new Me({props:{email:a[2]}}),n=new Ie({props:{email:a[2]}}),{c(){V(t.$$.fragment),e=E(),V(n.$$.fragment)},l(s){W(t.$$.fragment,s),e=L(s),W(n.$$.fragment,s)},m(s,o){G(t,s,o),O(s,e,o),G(n,s,o),i=!0},p(s,o){const u={};o[0]&4&&(u.email=s[2]),t.$set(u);const c={};o[0]&4&&(c.email=s[2]),n.$set(c)},i(s){i||(H(t.$$.fragment,s),H(n.$$.fragment,s),i=!0)},o(s){N(t.$$.fragment,s),N(n.$$.fragment,s),i=!1},d(s){s&&_(e),F(t,s),F(n,s)}}}function Bs(a){let t,e,n,i;return t=new Ie({props:{email:a[2]}}),n=new Me({props:{email:a[2]}}),{c(){V(t.$$.fragment),e=E(),V(n.$$.fragment)},l(s){W(t.$$.fragment,s),e=L(s),W(n.$$.fragment,s)},m(s,o){G(t,s,o),O(s,e,o),G(n,s,o),i=!0},p(s,o){const u={};o[0]&4&&(u.email=s[2]),t.$set(u);const c={};o[0]&4&&(c.email=s[2]),n.$set(c)},i(s){i||(H(t.$$.fragment,s),H(n.$$.fragment,s),i=!0)},o(s){N(t.$$.fragment,s),N(n.$$.fragment,s),i=!1},d(s){s&&_(e),F(t,s),F(n,s)}}}function pe(a){let t,e,n,i;return n=new it({props:{$$slots:{content:[Fs]},$$scope:{ctx:a}}}),{c(){t=y("div"),e=E(),V(n.$$.fragment),this.h()},l(s){t=w(s,"DIV",{"aria-hidden":!0,style:!0}),A(t).forEach(_),e=L(s),W(n.$$.fragment,s),this.h()},h(){r(t,"aria-hidden","true"),we(t,"height","25vh")},m(s,o){O(s,t,o),O(s,e,o),G(n,s,o),i=!0},p(s,o){const u={};o[0]&2528|o[1]&8&&(u.$$scope={dirty:o,ctx:s}),n.$set(u)},i(s){i||(H(n.$$.fragment,s),i=!0)},o(s){N(n.$$.fragment,s),i=!1},d(s){s&&(_(t),_(e)),F(n,s)}}}function Vs(a){let t,e=a[8]?"On":"Off",n;return{c(){t=J("Advanced settings: "),n=J(e)},l(i){t=K(i,"Advanced settings: "),n=K(i,e)},m(i,s){O(i,t,s),O(i,n,s)},p(i,s){s[0]&256&&e!==(e=i[8]?"On":"Off")&&mt(n,e)},d(i){i&&(_(t),_(n))}}}function ge(a){let t,e,n,i,s,o,u,c="Query terms to bold",l,h,b,m,S,g,p="Copy the url below and open a new page with it",C,I,k;function f(v){a[18](v)}let $={name:"game-section-slider",$$slots:{default:[Ws]},$$scope:{ctx:a}};a[7]!==void 0&&($.checked=a[7]),t=new Nt({props:$}),qt.push(()=>Lt(t,"checked",f));function q(v){a[19](v)}let T={name:"fun-note-slider",$$slots:{default:[Gs]},$$scope:{ctx:a}};a[5]!==void 0&&(T.checked=a[5]),i=new Nt({props:T}),qt.push(()=>Lt(i,"checked",q));let M=Vt(a[6].entries()),j=[];for(let v=0;v<M.length;v+=1)j[v]=ve(fe(a,M,v));return I=new Tn({props:{language:"url",code:a[11]}}),{c(){V(t.$$.fragment),n=E(),V(i.$$.fragment),o=E(),u=y("h3"),u.textContent=c,l=E(),h=y("div");for(let v=0;v<j.length;v+=1)j[v].c();b=E(),m=y("br"),S=E(),g=y("p"),g.textContent=p,C=E(),V(I.$$.fragment),this.h()},l(v){W(t.$$.fragment,v),n=L(v),W(i.$$.fragment,v),o=L(v),u=w(v,"H3",{class:!0,"data-svelte-h":!0}),D(u)!=="svelte-1bh8env"&&(u.textContent=c),l=L(v),h=w(v,"DIV",{class:!0});var z=A(h);for(let Q=0;Q<j.length;Q+=1)j[Q].l(z);z.forEach(_),b=L(v),m=w(v,"BR",{}),S=L(v),g=w(v,"P",{"data-svelte-h":!0}),D(g)!=="svelte-1e17ji"&&(g.textContent=p),C=L(v),W(I.$$.fragment,v),this.h()},h(){r(u,"class","svelte-1r5yyuh"),r(h,"class","query-term-grid svelte-1r5yyuh")},m(v,z){G(t,v,z),O(v,n,z),G(i,v,z),O(v,o,z),O(v,u,z),O(v,l,z),O(v,h,z);for(let Q=0;Q<j.length;Q+=1)j[Q]&&j[Q].m(h,null);O(v,b,z),O(v,m,z),O(v,S,z),O(v,g,z),O(v,C,z),G(I,v,z),k=!0},p(v,z){const Q={};z[0]&128|z[1]&8&&(Q.$$scope={dirty:z,ctx:v}),!e&&z[0]&128&&(e=!0,Q.checked=v[7],Et(()=>e=!1)),t.$set(Q);const Z={};if(z[0]&32|z[1]&8&&(Z.$$scope={dirty:z,ctx:v}),!s&&z[0]&32&&(s=!0,Z.checked=v[5],Et(()=>s=!1)),i.$set(Z),z[0]&8256){M=Vt(v[6].entries());let Y;for(Y=0;Y<M.length;Y+=1){const tt=fe(v,M,Y);j[Y]?j[Y].p(tt,z):(j[Y]=ve(tt),j[Y].c(),j[Y].m(h,null))}for(;Y<j.length;Y+=1)j[Y].d(1);j.length=M.length}const X={};z[0]&2048&&(X.code=v[11]),I.$set(X)},i(v){k||(H(t.$$.fragment,v),H(i.$$.fragment,v),H(I.$$.fragment,v),k=!0)},o(v){N(t.$$.fragment,v),N(i.$$.fragment,v),N(I.$$.fragment,v),k=!1},d(v){v&&(_(n),_(o),_(u),_(l),_(h),_(b),_(m),_(S),_(g),_(C)),F(t,v),F(i,v),Pe(j,v),F(I,v)}}}function Ws(a){let t,e=a[7]?"On":"Off",n;return{c(){t=J("Should game section appear first over projects: "),n=J(e)},l(i){t=K(i,"Should game section appear first over projects: "),n=K(i,e)},m(i,s){O(i,t,s),O(i,n,s)},p(i,s){s[0]&128&&e!==(e=i[7]?"On":"Off")&&mt(n,e)},d(i){i&&(_(t),_(n))}}}function Gs(a){let t,e=a[5]?"On":"Off",n;return{c(){t=J("Should add fun note in description: "),n=J(e)},l(i){t=K(i,"Should add fun note in description: "),n=K(i,e)},m(i,s){O(i,t,s),O(i,n,s)},p(i,s){s[0]&32&&e!==(e=i[5]?"On":"Off")&&mt(n,e)},d(i){i&&(_(t),_(n))}}}function be(a){let t;return{c(){t=J("✓")},l(e){t=K(e,"✓")},m(e,n){O(e,t,n)},d(e){e&&_(t)}}}function ve(a){let t,e,n=a[30]+"",i,s,o,u,c,l=a[31]&&be();function h(){return a[20](a[30])}return{c(){t=y("button"),l&&l.c(),e=E(),i=J(n),s=E(),this.h()},l(b){t=w(b,"BUTTON",{class:!0});var m=A(t);l&&l.l(m),e=L(m),i=K(m,n),s=L(m),m.forEach(_),this.h()},h(){r(t,"class",o="chip "+(a[31]?"variant-filled-tertiary":"variant-soft-tertiary"))},m(b,m){O(b,t,m),l&&l.m(t,null),d(t,e),d(t,i),d(t,s),u||(c=et(t,"click",h),u=!0)},p(b,m){a=b,a[31]?l||(l=be(),l.c(),l.m(t,e)):l&&(l.d(1),l=null),m[0]&64&&n!==(n=a[30]+"")&&mt(i,n),m[0]&64&&o!==(o="chip "+(a[31]?"variant-filled-tertiary":"variant-soft-tertiary"))&&r(t,"class",o)},d(b){b&&_(t),l&&l.d(),u=!1,c()}}}function Fs(a){let t,e,n="Advanced settings",i,s,o="This one is for those curious how I customize this page.",u,c,l,h,b;function m(p){a[17](p)}let S={name:"advanced-setting-slider",$$slots:{default:[Vs]},$$scope:{ctx:a}};a[8]!==void 0&&(S.checked=a[8]),c=new Nt({props:S}),qt.push(()=>Lt(c,"checked",m));let g=a[8]&&ge(a);return{c(){t=y("div"),e=y("h1"),e.textContent=n,i=E(),s=y("p"),s.textContent=o,u=E(),V(c.$$.fragment),h=E(),g&&g.c(),this.h()},l(p){t=w(p,"DIV",{slot:!0,class:!0});var C=A(t);e=w(C,"H1",{"data-svelte-h":!0}),D(e)!=="svelte-gt787v"&&(e.textContent=n),i=L(C),s=w(C,"P",{"data-svelte-h":!0}),D(s)!=="svelte-2s1b5f"&&(s.textContent=o),u=L(C),W(c.$$.fragment,C),h=L(C),g&&g.l(C),C.forEach(_),this.h()},h(){r(t,"slot","content"),r(t,"class","default-card advanced-setting svelte-1r5yyuh")},m(p,C){O(p,t,C),d(t,e),d(t,i),d(t,s),d(t,u),G(c,t,null),d(t,h),g&&g.m(t,null),b=!0},p(p,C){const I={};C[0]&256|C[1]&8&&(I.$$scope={dirty:C,ctx:p}),!l&&C[0]&256&&(l=!0,I.checked=p[8],Et(()=>l=!1)),c.$set(I),p[8]?g?(g.p(p,C),C[0]&256&&H(g,1)):(g=ge(p),g.c(),H(g,1),g.m(t,null)):g&&(_t(),N(g,1,1,()=>{g=null}),kt())},i(p){b||(H(c.$$.fragment,p),H(g),b=!0)},o(p){N(c.$$.fragment,p),N(g),b=!1},d(p){p&&_(t),F(c),g&&g.d()}}}function Rs(a){let t,e,n,i,s,o,u,c,l,h,b,m,S,g;i=new it({props:{includeDataNoSnippet:!1,$$slots:{content:[Os]},$$scope:{ctx:a}}}),o=new it({props:{$$slots:{content:[Ps]},$$scope:{ctx:a}}}),c=new it({props:{$$slots:{content:[xs]},$$scope:{ctx:a}}});const p=[Bs,Us],C=[];function I(f,$){return f[7]?0:1}h=I(a),b=C[h]=p[h](a);let k=!a[0]&&pe(a);return{c(){t=y("main"),e=y("div"),n=y("div"),V(i.$$.fragment),s=E(),V(o.$$.fragment),u=E(),V(c.$$.fragment),l=E(),b.c(),m=E(),k&&k.c(),this.h()},l(f){t=w(f,"MAIN",{style:!0});var $=A(t);e=w($,"DIV",{class:!0});var q=A(e);n=w(q,"DIV",{class:!0});var T=A(n);W(i.$$.fragment,T),s=L(T),W(o.$$.fragment,T),T.forEach(_),u=L(q),W(c.$$.fragment,q),q.forEach(_),l=L($),b.l($),m=L($),k&&k.l($),$.forEach(_),this.h()},h(){r(n,"class","greater-about-div"),r(e,"class","experience-and-about-div"),r(t,"style",S=`
1058
- --qt-font-weight: ${a[9]};${_e};
1059
- visibility: ${a[10]};
1060
- `)},m(f,$){O(f,t,$),d(t,e),d(e,n),G(i,n,null),d(n,s),G(o,n,null),d(e,u),G(c,e,null),d(t,l),C[h].m(t,null),d(t,m),k&&k.m(t,null),g=!0},p(f,$){const q={};$[0]&34|$[1]&8&&(q.$$scope={dirty:$,ctx:f}),i.$set(q);const T={};$[0]&28|$[1]&8&&(T.$$scope={dirty:$,ctx:f}),o.$set(T);const M={};$[0]&1|$[1]&8&&(M.$$scope={dirty:$,ctx:f}),c.$set(M);let j=h;h=I(f),h===j?C[h].p(f,$):(_t(),N(C[j],1,1,()=>{C[j]=null}),kt(),b=C[h],b?b.p(f,$):(b=C[h]=p[h](f),b.c()),H(b,1),b.m(t,m)),f[0]?k&&(_t(),N(k,1,1,()=>{k=null}),kt()):k?(k.p(f,$),$[0]&1&&H(k,1)):(k=pe(f),k.c(),H(k,1),k.m(t,null)),(!g||$[0]&1536&&S!==(S=`
1061
- --qt-font-weight: ${f[9]};${_e};
1062
- visibility: ${f[10]};
1063
- `))&&r(t,"style",S)},i(f){g||(H(i.$$.fragment,f),H(o.$$.fragment,f),H(c.$$.fragment,f),H(b),H(k),g=!0)},o(f){N(i.$$.fragment,f),N(o.$$.fragment,f),N(c.$$.fragment,f),N(b),N(k),g=!1},d(f){f&&_(t),F(i),F(o),F(c),C[h].d(),k&&k.d()}}}function Qs(a){let t,e;return t=new Se({props:{slot:"extraLeadingIcons",isSlot:!0,email:a[2],linkedinSlug:a[3],isSmallVersion:!0}}),{c(){V(t.$$.fragment)},l(n){W(t.$$.fragment,n)},m(n,i){G(t,n,i),e=!0},p(n,i){const s={};i[0]&4&&(s.email=n[2]),i[0]&8&&(s.linkedinSlug=n[3]),t.$set(s)},i(n){e||(H(t.$$.fragment,n),e=!0)},o(n){N(t.$$.fragment,n),e=!1},d(n){F(t,n)}}}function Zs(a){let t,e,n;function i(o){a[21](o)}let s={$$slots:{extraLeadingIcons:[Qs],default:[Rs]},$$scope:{ctx:a}};return a[12]!==void 0&&(s.shouldDisplayLeadingIcons=a[12]),t=new xn({props:s}),qt.push(()=>Lt(t,"shouldDisplayLeadingIcons",i)),{c(){V(t.$$.fragment)},l(o){W(t.$$.fragment,o)},m(o,u){G(t,o,u),n=!0},p(o,u){const c={};u[0]&4095|u[1]&8&&(c.$$scope={dirty:u,ctx:o}),!e&&u[0]&4096&&(e=!0,c.shouldDisplayLeadingIcons=o[12],Et(()=>e=!1)),t.$set(c)},i(o){n||(H(t.$$.fragment,o),n=!0)},o(o){N(t.$$.fragment,o),n=!1},d(o){F(t,o)}}}let _e="";function Xs(a,t,e){let n,i;zt(a,Fe,P=>e(22,i=P));let{letChaos:s=!0}=t,{name:o="Turnip"}=t,{email:u="turnipxenon@gmail.com"}=t,{linkedinSlug:c="turnip-xenon"}=t,{domain:l="http://localhost:5173/portfolio/actual/"}=t,h=!0,b=!1,m=!1,S=new Map;const g=new Set,p=()=>{S.size===0||g.size===0||(S.forEach((P,R)=>{S.set(R,g.has(R))}),e(6,S))};(async()=>{const P=new Set,R=[];[Es,Ls,js].forEach(U=>{R.push(...U.split('"').filter(x=>x.startsWith("qt-")))}),R.forEach(U=>{U.split(" ").forEach(x=>{["qt-1","qt-2","qt-*","qt-"].includes(x)||P.add(x)})}),P.forEach(U=>S.set(U,!0)),p()})();let I=!0,k="normal";const f=P=>{var Ct,Tt,St;((Ct=P.get("fun"))==null?void 0:Ct.trim())==="true"&&e(5,m=!0),((Tt=P.get("game-section-first"))==null?void 0:Tt.trim())==="false"&&e(7,I=!1);const x=(St=P.get("qt"))==null?void 0:St.trim();if(x===void 0){e(9,k="bold");return}e(9,k="normal");const lt=x.split(",").map(B=>(g.add(`qt-${B}`),`span.qt-${B} { font-weight: bold !important; }`)).join(`
1064
- `),yt=document.createElement("style");yt.type="text/css",yt.innerText=lt,document.head.appendChild(yt),p()},$=["niko","toba","seal","aquarium","ojisan","baikal"];let q=!1;const T=P=>{var R;for(let U of Array.from(P.children))if(U.nodeType===Node.ELEMENT_NODE){T(U);for(const x of U.childNodes)if(x.nodeType===Node.TEXT_NODE&&((R=x.textContent)!=null&&R.trim())){const lt=x.textContent.length;for(x.textContent="";x.textContent.length<lt;)x.textContent+=$[Math.floor(Math.random()*$.length)]+" "}U.hasAttribute("href")&&U.setAttribute("href","https://crouton.net/"),U.hasAttribute("src")&&!U.hasAttribute("aria-hidden")&&(U.hasAttribute("alt")?U.setAttribute("src","https://p.potaufeu.asahi.com/a2b9-p/picture/21583312/5c3310aec77068e24844c663aa62b37c.jpg"):(U.setAttribute("src","https://video.twimg.com/ext_tw_video/1318728494256410624/pu/vid/640x360/TMklz6hiTkQu3xhn.mp4"),U.setAttribute("muted","true"))),U.tagName.trim()==="VIDEO"&&(U.setAttribute("src","https://video.twimg.com/ext_tw_video/1318728494256410624/pu/vid/640x360/TMklz6hiTkQu3xhn.mp4"),U.setAttribute("muted","true")),U.tagName.trim()==="BUTTON"&&U.setAttribute("disabled","true")}};let M="visible";Ut(()=>{!s&&i.url.searchParams&&f(i.url.searchParams),s&&(T(document.body),e(15,q=!0))});const j=P=>{S.set(P,!S.get(P)),e(6,S)};let v=l;const z=()=>{const P=[],R=[];S.forEach((U,x)=>{U&&R.push(x)}),R.length===0?P.push("qt=clear"):S.size!==R.length&&P.push(`qt=${R.map(U=>U.slice(3,U.length)).join(",")}`),m&&P.push("fun=true"),I||P.push("game-section-first=false"),P.length>0?e(11,v=`${l}?${P.join("&")}`):e(11,v=l)};function Q(P){h=P,e(4,h)}function Z(P){b=P,e(8,b)}function X(P){I=P,e(7,I)}function Y(P){m=P,e(5,m)}const tt=P=>{j(P)};function nt(P){n=P,e(12,n),e(4,h)}return a.$$set=P=>{"letChaos"in P&&e(0,s=P.letChaos),"name"in P&&e(1,o=P.name),"email"in P&&e(2,u=P.email),"linkedinSlug"in P&&e(3,c=P.linkedinSlug),"domain"in P&&e(14,l=P.domain)},a.$$.update=()=>{a.$$.dirty[0]&16&&e(12,n=!h),a.$$.dirty[0]&32769&&e(10,M=s&&!q?"hidden":"visible"),a.$$.dirty[0]&224&&z()},[s,o,u,c,h,m,S,I,b,k,M,v,n,j,l,q,Q,Z,X,Y,tt,nt]}class hi extends bt{constructor(t){super(),vt(this,t,Xs,Zs,gt,{letChaos:0,name:1,email:2,linkedinSlug:3,domain:14},null,[-1,-1])}}export{hi as S};