diff --git a/package.json b/package.json
index 9b83dba..3a623fe 100644
--- a/package.json
+++ b/package.json
@@ -52,6 +52,7 @@
"@cloudflare/speedtest": "^1.4.1",
"@fontsource-variable/nunito": "^5.2.5",
"@fontsource/geist-mono": "^5.2.6",
+ "@jis3r/icons": "^1.1.5",
"@prgm/sveltekit-progress-bar": "2.0.0",
"@thaunknown/web-irc": "^1.0.3",
"@urql/core": "^5.2.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 60bd340..c4cec35 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -17,6 +17,9 @@ importers:
'@fontsource/geist-mono':
specifier: ^5.2.6
version: 5.2.6
+ '@jis3r/icons':
+ specifier: ^1.1.5
+ version: 1.1.5(react@19.0.0)
'@prgm/sveltekit-progress-bar':
specifier: 2.0.0
version: 2.0.0(@sveltejs/kit@2.21.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.19(terser@5.43.1)))(svelte@4.2.19)(vite@5.4.19(terser@5.43.1)))(svelte@4.2.19)
@@ -176,7 +179,7 @@ importers:
version: 1.8.10(@gql.tada/svelte-support@1.0.1(svelte@4.2.19)(typescript@5.8.3))(graphql@16.10.0)(typescript@5.8.3)
hayase-extensions:
specifier: github:hayase-app/extensions
- version: https://codeload.github.com/hayase-app/extensions/tar.gz/675c4a7cfa1e2b4e88c2d11c4c195c33c68116e0
+ version: https://codeload.github.com/hayase-app/extensions/tar.gz/785940de1833af9b5eb0f41dc3a537c881cb6276
jassub:
specifier: ^1.8.6
version: 1.8.6
@@ -491,6 +494,9 @@ packages:
resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
engines: {node: '>=12'}
+ '@jis3r/icons@1.1.5':
+ resolution: {integrity: sha512-A3W+SEI/EST0+UM9G/a7e5hwFpr6BTbEgJ74MeIfpH2pdUdNWR7AWzzBPCG8k36XSi2qqqg3kI1kxFj3i5kYOQ==}
+
'@jridgewell/gen-mapping@0.3.12':
resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
@@ -498,6 +504,9 @@ packages:
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -518,6 +527,11 @@ packages:
'@jridgewell/trace-mapping@0.3.29':
resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
+ '@lucide/svelte@0.535.0':
+ resolution: {integrity: sha512-LSVs0G+IXSHHxMl/U6bHTnDP/pbmwpS7/mkCDXmWD9Wi0oQlZihKFoFLjDFhC+6mdfRE6ZgBasXTusvrOYv0lA==}
+ peerDependencies:
+ svelte: ^5
+
'@melt-ui/svelte@0.76.2':
resolution: {integrity: sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==}
peerDependencies:
@@ -535,6 +549,11 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
+ '@number-flow/svelte@0.3.9':
+ resolution: {integrity: sha512-CTw1+e0074GzbPX2IHcNCaK8nqxGNCOIUnQUjEjhcmBwBxOAhN3GYLQ6cJHvhQnWwplVe4eQ3z+c25Vttr2stQ==}
+ peerDependencies:
+ svelte: ^4 || ^5
+
'@pkgjs/parseargs@0.11.0':
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
@@ -542,6 +561,9 @@ packages:
'@polka/url@1.0.0-next.29':
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
+ '@posthog/core@1.0.2':
+ resolution: {integrity: sha512-hWk3rUtJl2crQK0WNmwg13n82hnTwB99BT99/XI5gZSvIlYZ1TPmMZE8H2dhJJ98J/rm9vYJ/UXNzw3RV5HTpQ==}
+
'@prgm/sveltekit-progress-bar@2.0.0':
resolution: {integrity: sha512-N9SlYDfpqaY9MyG85Wk38R9/BipIUdTJ4U7LVPY5cFn5cwGZrVA1lsXC3I2kmGtwz+DF6v/DvySkYOWCPmJV4A==}
engines: {node: '>=18'}
@@ -1060,6 +1082,10 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ commander@14.0.0:
+ resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==}
+ engines: {node: '>=20'}
+
commander@2.20.3:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
@@ -1080,6 +1106,9 @@ packages:
resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
engines: {node: '>= 0.6'}
+ core-js@3.45.1:
+ resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==}
+
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
@@ -1378,6 +1407,9 @@ packages:
resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
engines: {node: '>=0.10'}
+ esrap@2.1.0:
+ resolution: {integrity: sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==}
+
esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
@@ -1424,6 +1456,9 @@ packages:
picomatch:
optional: true
+ fflate@0.4.8:
+ resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==}
+
file-entry-cache@8.0.0:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
@@ -1457,6 +1492,20 @@ packages:
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+ framer-motion@12.23.12:
+ resolution: {integrity: sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==}
+ peerDependencies:
+ '@emotion/is-prop-valid': '*'
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/is-prop-valid':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
fs-extra@11.3.0:
resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
engines: {node: '>=14.14'}
@@ -1583,13 +1632,16 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
- hayase-extensions@https://codeload.github.com/hayase-app/extensions/tar.gz/675c4a7cfa1e2b4e88c2d11c4c195c33c68116e0:
- resolution: {tarball: https://codeload.github.com/hayase-app/extensions/tar.gz/675c4a7cfa1e2b4e88c2d11c4c195c33c68116e0}
+ hayase-extensions@https://codeload.github.com/hayase-app/extensions/tar.gz/785940de1833af9b5eb0f41dc3a537c881cb6276:
+ resolution: {tarball: https://codeload.github.com/hayase-app/extensions/tar.gz/785940de1833af9b5eb0f41dc3a537c881cb6276}
version: 1.0.6
idb-keyval@6.2.2:
resolution: {integrity: sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==}
+ iflog@0.3.0:
+ resolution: {integrity: sha512-H66Mn4YfPG+GdTLniaV0Fa+Op19nNdXbWEIgSlq6ZuEr8M0znKEoWmKkg5XpEAaPQBK/IgPkl23PxB9HtBRa9Q==}
+
ignore@5.3.2:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
@@ -1882,9 +1934,34 @@ packages:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
+ mode-watcher@0.5.1:
+ resolution: {integrity: sha512-adEC6T7TMX/kzQlaO/MtiQOSFekZfQu4MC+lXyoceQG+U5sKpJWZ4yKXqw846ExIuWJgedkOIPqAYYRk/xHm+w==}
+ peerDependencies:
+ svelte: ^4.0.0 || ^5.0.0-next.1
+
moment@2.30.1:
resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
+ motion-dom@12.23.12:
+ resolution: {integrity: sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==}
+
+ motion-utils@12.23.6:
+ resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==}
+
+ motion@12.23.12:
+ resolution: {integrity: sha512-8jCD8uW5GD1csOoqh1WhH1A6j5APHVE15nuBkFeRiMzYBdRwyAHmSP/oXSuW0WJPZRXTFdBoG4hY9TFWNhhwng==}
+ peerDependencies:
+ '@emotion/is-prop-valid': '*'
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/is-prop-valid':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -1919,6 +1996,9 @@ packages:
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ node-fetch-native@1.6.7:
+ resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
+
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
@@ -1943,6 +2023,9 @@ packages:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
+ number-flow@0.5.8:
+ resolution: {integrity: sha512-FPr1DumWyGi5Nucoug14bC6xEz70A1TnhgSHhKyfqjgji2SOTz+iLJxKtv37N5JyJbteGYCm6NQ9p1O4KZ7iiA==}
+
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -2133,6 +2216,24 @@ packages:
resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==}
engines: {node: ^10 || ^12 || >=14}
+ postcss@8.5.6:
+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ posthog-js@1.261.0:
+ resolution: {integrity: sha512-jyiXqyrCU+VlpbNNVRA6OQYAVut0XZMYNELCZH+XvTd981VqbE4jXn4XCBreo7XCL2gdPgDVxUVOuzNvEuKcmw==}
+ peerDependencies:
+ '@rrweb/types': 2.0.0-alpha.17
+ rrweb-snapshot: 2.0.0-alpha.17
+ peerDependenciesMeta:
+ '@rrweb/types':
+ optional: true
+ rrweb-snapshot:
+ optional: true
+
+ preact@10.27.1:
+ resolution: {integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==}
+
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -2246,6 +2347,10 @@ packages:
resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
engines: {node: '>= 0.4'}
+ shadcn-svelte@1.0.7:
+ resolution: {integrity: sha512-WM012JGATJpEqCaSNd9eAscFr/HKwLmRD5TplBXvhuMgbAVUNsjKiOSyvvjrZDx9L2FEqoEu9Ld5JpKr3xe2yQ==}
+ hasBin: true
+
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -2467,6 +2572,10 @@ packages:
resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==}
engines: {node: '>=16'}
+ svelte@5.38.6:
+ resolution: {integrity: sha512-ltBPlkvqk3bgCK7/N323atUpP3O3Y+DrGV4dcULrsSn4fZaaNnOmdplNznwfdWclAgvSr5rxjtzn/zJhRm6TKg==}
+ engines: {node: '>=18'}
+
tabbable@6.2.0:
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
@@ -2667,6 +2776,9 @@ packages:
vscode-languageserver-textdocument@1.0.12:
resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==}
+ web-vitals@4.2.4:
+ resolution: {integrity: sha512-r4DIlprAGwJ7YM11VZp4R884m0Vmgr6EAKe3P+kO0PPj3Unqyvv59rczf6UiGcb9Z8QxZVcqKNwv/g0WNdWwsw==}
+
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
@@ -2761,6 +2873,9 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
+ zimmerframe@1.1.2:
+ resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==}
+
snapshots:
'@0no-co/graphql.web@1.1.2(graphql@16.10.0)':
@@ -2966,11 +3081,27 @@ snapshots:
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
+ '@jis3r/icons@1.1.5(react@19.0.0)':
+ dependencies:
+ '@lucide/svelte': 0.535.0(svelte@5.38.6)
+ '@number-flow/svelte': 0.3.9(svelte@5.38.6)
+ iflog: 0.3.0
+ mode-watcher: 0.5.1(svelte@5.38.6)
+ motion: 12.23.12(react@19.0.0)
+ posthog-js: 1.261.0
+ shadcn-svelte: 1.0.7
+ svelte: 5.38.6
+ transitivePeerDependencies:
+ - '@emotion/is-prop-valid'
+ - '@rrweb/types'
+ - react
+ - react-dom
+ - rrweb-snapshot
+
'@jridgewell/gen-mapping@0.3.12':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.29
- optional: true
'@jridgewell/gen-mapping@0.3.8':
dependencies:
@@ -2978,6 +3109,11 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.2.1': {}
@@ -2999,7 +3135,10 @@ snapshots:
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
- optional: true
+
+ '@lucide/svelte@0.535.0(svelte@5.38.6)':
+ dependencies:
+ svelte: 5.38.6
'@melt-ui/svelte@0.76.2(svelte@4.2.19)':
dependencies:
@@ -3023,11 +3162,19 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.19.1
+ '@number-flow/svelte@0.3.9(svelte@5.38.6)':
+ dependencies:
+ esm-env: 1.2.2
+ number-flow: 0.5.8
+ svelte: 5.38.6
+
'@pkgjs/parseargs@0.11.0':
optional: true
'@polka/url@1.0.0-next.29': {}
+ '@posthog/core@1.0.2': {}
+
'@prgm/sveltekit-progress-bar@2.0.0(@sveltejs/kit@2.21.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.19(terser@5.43.1)))(svelte@4.2.19)(vite@5.4.19(terser@5.43.1)))(svelte@4.2.19)':
dependencies:
'@sveltejs/kit': 2.21.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.19(terser@5.43.1)))(svelte@4.2.19)(vite@5.4.19(terser@5.43.1))
@@ -3624,6 +3771,8 @@ snapshots:
color-name@1.1.4: {}
+ commander@14.0.0: {}
+
commander@2.20.3: {}
commander@4.1.1: {}
@@ -3638,6 +3787,8 @@ snapshots:
cookie@0.6.0: {}
+ core-js@3.45.1: {}
+
cross-spawn@7.0.6:
dependencies:
path-key: 3.1.1
@@ -4066,6 +4217,10 @@ snapshots:
dependencies:
estraverse: 5.3.0
+ esrap@2.1.0:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
esrecurse@4.3.0:
dependencies:
estraverse: 5.3.0
@@ -4104,6 +4259,8 @@ snapshots:
optionalDependencies:
picomatch: 4.0.2
+ fflate@0.4.8: {}
+
file-entry-cache@8.0.0:
dependencies:
flat-cache: 4.0.1
@@ -4139,6 +4296,14 @@ snapshots:
fraction.js@4.3.7: {}
+ framer-motion@12.23.12(react@19.0.0):
+ dependencies:
+ motion-dom: 12.23.12
+ motion-utils: 12.23.6
+ tslib: 2.8.1
+ optionalDependencies:
+ react: 19.0.0
+
fs-extra@11.3.0:
dependencies:
graceful-fs: 4.2.11
@@ -4276,10 +4441,12 @@ snapshots:
dependencies:
function-bind: 1.1.2
- hayase-extensions@https://codeload.github.com/hayase-app/extensions/tar.gz/675c4a7cfa1e2b4e88c2d11c4c195c33c68116e0: {}
+ hayase-extensions@https://codeload.github.com/hayase-app/extensions/tar.gz/785940de1833af9b5eb0f41dc3a537c881cb6276: {}
idb-keyval@6.2.2: {}
+ iflog@0.3.0: {}
+
ignore@5.3.2: {}
ignore@7.0.4: {}
@@ -4553,8 +4720,25 @@ snapshots:
minipass@7.1.2: {}
+ mode-watcher@0.5.1(svelte@5.38.6):
+ dependencies:
+ svelte: 5.38.6
+
moment@2.30.1: {}
+ motion-dom@12.23.12:
+ dependencies:
+ motion-utils: 12.23.6
+
+ motion-utils@12.23.6: {}
+
+ motion@12.23.12(react@19.0.0):
+ dependencies:
+ framer-motion: 12.23.12(react@19.0.0)
+ tslib: 2.8.1
+ optionalDependencies:
+ react: 19.0.0
+
mri@1.2.0: {}
mrmime@2.0.1: {}
@@ -4580,6 +4764,8 @@ snapshots:
lower-case: 2.0.2
tslib: 2.8.1
+ node-fetch-native@1.6.7: {}
+
node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
@@ -4593,6 +4779,10 @@ snapshots:
normalize-range@0.1.2: {}
+ number-flow@0.5.8:
+ dependencies:
+ esm-env: 1.2.2
+
object-assign@4.1.1: {}
object-hash@3.0.0: {}
@@ -4771,6 +4961,22 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
+ postcss@8.5.6:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ posthog-js@1.261.0:
+ dependencies:
+ '@posthog/core': 1.0.2
+ core-js: 3.45.1
+ fflate: 0.4.8
+ preact: 10.27.1
+ web-vitals: 4.2.4
+
+ preact@10.27.1: {}
+
prelude-ls@1.2.1: {}
punycode@2.3.1: {}
@@ -4922,6 +5128,12 @@ snapshots:
es-errors: 1.3.0
es-object-atoms: 1.1.1
+ shadcn-svelte@1.0.7:
+ dependencies:
+ commander: 14.0.0
+ node-fetch-native: 1.6.7
+ postcss: 8.5.6
+
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
@@ -5192,6 +5404,23 @@ snapshots:
magic-string: 0.30.17
periscopic: 3.1.0
+ svelte@5.38.6:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@sveltejs/acorn-typescript': 1.0.5(acorn@8.14.1)
+ '@types/estree': 1.0.7
+ acorn: 8.14.1
+ aria-query: 5.3.2
+ axobject-query: 4.1.0
+ clsx: 2.1.1
+ esm-env: 1.2.2
+ esrap: 2.1.0
+ is-reference: 3.0.3
+ locate-character: 3.0.0
+ magic-string: 0.30.17
+ zimmerframe: 1.1.2
+
tabbable@6.2.0: {}
tailwind-merge@3.0.2: {}
@@ -5405,6 +5634,8 @@ snapshots:
vscode-languageserver-textdocument@1.0.12: {}
+ web-vitals@4.2.4: {}
+
webidl-conversions@3.0.1: {}
webidl-conversions@4.0.2:
@@ -5511,3 +5742,5 @@ snapshots:
yaml@2.6.0: {}
yocto-queue@0.1.0: {}
+
+ zimmerframe@1.1.2: {}
diff --git a/src/app.css b/src/app.css
index b885983..c9b6605 100644
--- a/src/app.css
+++ b/src/app.css
@@ -282,6 +282,12 @@ details,
height: 4px !important;
}
+/* animated SVG icons */
+.animated-icon:not(:hover):not(:focus-visible):not(:active) .target-animated-icon {
+ animation: none !important;
+ transform: translateX(0) translateX(0) translateZ(0) translate(0, 0) !important;
+}
+
/* Backplate related things */
body {
diff --git a/src/lib/components/EntryEditor.svelte b/src/lib/components/EntryEditor.svelte
index 37b5206..3357b78 100644
--- a/src/lib/components/EntryEditor.svelte
+++ b/src/lib/components/EntryEditor.svelte
@@ -1,5 +1,5 @@
+
+
+
+
diff --git a/src/lib/components/icons/animated/bookmark.svelte b/src/lib/components/icons/animated/bookmark.svelte
new file mode 100644
index 0000000..e99a60c
--- /dev/null
+++ b/src/lib/components/icons/animated/bookmark.svelte
@@ -0,0 +1,47 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/calendar.svelte b/src/lib/components/icons/animated/calendar.svelte
new file mode 100644
index 0000000..6e499ff
--- /dev/null
+++ b/src/lib/components/icons/animated/calendar.svelte
@@ -0,0 +1,68 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/chevronleft.svelte b/src/lib/components/icons/animated/chevronleft.svelte
new file mode 100644
index 0000000..73cf2d7
--- /dev/null
+++ b/src/lib/components/icons/animated/chevronleft.svelte
@@ -0,0 +1,33 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/chevronright.svelte b/src/lib/components/icons/animated/chevronright.svelte
new file mode 100644
index 0000000..0901028
--- /dev/null
+++ b/src/lib/components/icons/animated/chevronright.svelte
@@ -0,0 +1,33 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/clapperboard.svelte b/src/lib/components/icons/animated/clapperboard.svelte
new file mode 100644
index 0000000..effb2a4
--- /dev/null
+++ b/src/lib/components/icons/animated/clapperboard.svelte
@@ -0,0 +1,76 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/download.svelte b/src/lib/components/icons/animated/download.svelte
new file mode 100644
index 0000000..4ec4b88
--- /dev/null
+++ b/src/lib/components/icons/animated/download.svelte
@@ -0,0 +1,37 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/fileimage.svelte b/src/lib/components/icons/animated/fileimage.svelte
new file mode 100644
index 0000000..3a017c0
--- /dev/null
+++ b/src/lib/components/icons/animated/fileimage.svelte
@@ -0,0 +1,50 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/heart.svelte b/src/lib/components/icons/animated/heart.svelte
new file mode 100644
index 0000000..c34b7bf
--- /dev/null
+++ b/src/lib/components/icons/animated/heart.svelte
@@ -0,0 +1,60 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/home.svelte b/src/lib/components/icons/animated/home.svelte
new file mode 100644
index 0000000..bf94858
--- /dev/null
+++ b/src/lib/components/icons/animated/home.svelte
@@ -0,0 +1,52 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/index.ts b/src/lib/components/icons/animated/index.ts
new file mode 100644
index 0000000..2d8e169
--- /dev/null
+++ b/src/lib/components/icons/animated/index.ts
@@ -0,0 +1,18 @@
+export { default as Home } from './home.svelte'
+export { default as Search } from './search.svelte'
+export { default as Calendar } from './calendar.svelte'
+export { default as Users } from './users.svelte'
+export { default as Download } from './download.svelte'
+export { default as Bolt } from './bolt.svelte'
+export { default as LogIn } from './login.svelte'
+export { default as Messages } from './messages.svelte'
+export { default as PencilLine } from './pencilline.svelte'
+export { default as Heart } from './heart.svelte'
+export { default as Bookmark } from './bookmark.svelte'
+export { default as Clapperboard } from './clapperboard.svelte'
+export { default as ChevronRight } from './chevronright.svelte'
+export { default as ChevronLeft } from './chevronleft.svelte'
+export { default as Trash } from './trash.svelte'
+export { default as FileImage } from './fileimage.svelte'
+export { default as Minimize } from './minimize.svelte'
+export { default as Maximize } from './maximize.svelte'
diff --git a/src/lib/components/icons/animated/login.svelte b/src/lib/components/icons/animated/login.svelte
new file mode 100644
index 0000000..d4b34b6
--- /dev/null
+++ b/src/lib/components/icons/animated/login.svelte
@@ -0,0 +1,37 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/maximize.svelte b/src/lib/components/icons/animated/maximize.svelte
new file mode 100644
index 0000000..05fb4a6
--- /dev/null
+++ b/src/lib/components/icons/animated/maximize.svelte
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/messages.svelte b/src/lib/components/icons/animated/messages.svelte
new file mode 100644
index 0000000..2c32409
--- /dev/null
+++ b/src/lib/components/icons/animated/messages.svelte
@@ -0,0 +1,48 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/minimize.svelte b/src/lib/components/icons/animated/minimize.svelte
new file mode 100644
index 0000000..d03d8e4
--- /dev/null
+++ b/src/lib/components/icons/animated/minimize.svelte
@@ -0,0 +1,51 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/pencilline.svelte b/src/lib/components/icons/animated/pencilline.svelte
new file mode 100644
index 0000000..66a265e
--- /dev/null
+++ b/src/lib/components/icons/animated/pencilline.svelte
@@ -0,0 +1,51 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/search.svelte b/src/lib/components/icons/animated/search.svelte
new file mode 100644
index 0000000..b763847
--- /dev/null
+++ b/src/lib/components/icons/animated/search.svelte
@@ -0,0 +1,46 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/trash.svelte b/src/lib/components/icons/animated/trash.svelte
new file mode 100644
index 0000000..fa4c736
--- /dev/null
+++ b/src/lib/components/icons/animated/trash.svelte
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/src/lib/components/icons/animated/users.svelte b/src/lib/components/icons/animated/users.svelte
new file mode 100644
index 0000000..9189717
--- /dev/null
+++ b/src/lib/components/icons/animated/users.svelte
@@ -0,0 +1,47 @@
+
+
+
+
+
diff --git a/src/lib/components/ui/button/bookmark.svelte b/src/lib/components/ui/button/bookmark.svelte
index 3ca4697..59c2d61 100644
--- a/src/lib/components/ui/button/bookmark.svelte
+++ b/src/lib/components/ui/button/bookmark.svelte
@@ -1,11 +1,11 @@
-