diff --git a/components.json b/components.json index 8250277..ac2f0ef 100644 --- a/components.json +++ b/components.json @@ -1,5 +1,5 @@ { - "$schema": "https://shadcn-svelte.com/schema.json", + "$schema": "https://next.shadcn-svelte.com/schema.json", "style": "default", "tailwind": { "config": "tailwind.config.ts", @@ -8,6 +8,10 @@ }, "aliases": { "components": "$lib/components", - "utils": "$lib/utils" - } + "utils": "$lib/utils", + "ui": "$lib/components/ui", + "hooks": "$lib/hooks" + }, + "typescript": true, + "registry": "https://next.shadcn-svelte.com/registry" } diff --git a/package.json b/package.json index 15bbc50..6eac0da 100644 --- a/package.json +++ b/package.json @@ -21,13 +21,13 @@ "@sveltejs/adapter-vercel": "^5.5.2", "@sveltejs/kit": "^2.15.3", "@sveltejs/vite-plugin-svelte": "^5.0.3", + "@tanstack/table-core": "^8.20.5", "@total-typescript/ts-reset": "^0.6.1", "@unovis/svelte": "^1.5.0", "@vercel/speed-insights": "^1.1.0", "autoprefixer": "^10.4.20", - "bits-ui": "^0.22.0", + "bits-ui": "1.0.0-next.84", "clsx": "^2.1.1", - "cmdk-sv": "^0.0.18", "eslint": "^9.18.0", "eslint-config-prettier": "^10.0.1", "eslint-plugin-svelte": "^2.46.1", @@ -44,12 +44,12 @@ "svelte": "^5.18.0", "svelte-check": "^4.1.4", "svelte-dnd-action": "^0.9.54", - "svelte-headless-table": "^0.18.3", "svelte-sonner": "^0.3.28", "tailwind-merge": "^2.6.0", "tailwind-variants": "^0.3.0", "tailwindcss": "^3.4.17", "tailwindcss-3d": "^1.0.7", + "tailwindcss-animate": "^1.0.7", "tslib": "^2.8.1", "typescript": "^5.7.3", "typescript-eslint": "^8.20.0", @@ -58,7 +58,6 @@ }, "pnpm": { "onlyBuiltDependencies": [ - "@sveltejs/kit", "@vercel/speed-insights", "esbuild" ] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f629357..d44202b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,6 +20,9 @@ importers: '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 version: 5.0.3(svelte@5.18.0)(vite@6.0.7(jiti@1.21.6)) + '@tanstack/table-core': + specifier: ^8.20.5 + version: 8.20.5 '@total-typescript/ts-reset': specifier: ^0.6.1 version: 0.6.1 @@ -33,14 +36,11 @@ importers: specifier: ^10.4.20 version: 10.4.20(postcss@8.5.1) bits-ui: - specifier: ^0.22.0 - version: 0.22.0(svelte@5.18.0) + specifier: 1.0.0-next.84 + version: 1.0.0-next.84(svelte@5.18.0) clsx: specifier: ^2.1.1 version: 2.1.1 - cmdk-sv: - specifier: ^0.0.18 - version: 0.0.18(svelte@5.18.0) eslint: specifier: ^9.18.0 version: 9.18.0(jiti@1.21.6) @@ -89,9 +89,6 @@ importers: svelte-dnd-action: specifier: ^0.9.54 version: 0.9.54(svelte@5.18.0) - svelte-headless-table: - specifier: ^0.18.3 - version: 0.18.3(svelte@5.18.0) svelte-sonner: specifier: ^0.3.28 version: 0.3.28(svelte@5.18.0) @@ -107,6 +104,9 @@ importers: tailwindcss-3d: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.17) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -379,14 +379,14 @@ packages: resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.5.1': - resolution: {integrity: sha512-QgcKYwzcc8vvZ4n/5uklchy8KVdjJwcOeI+HnnTNclJjs2nYsy23DOCf+sSV1kBwD9yDAoVKCkv/gEPzgQU3Pw==} + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} - '@floating-ui/dom@1.5.3': - resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==} + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - '@floating-ui/utils@0.1.6': - resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -408,8 +408,8 @@ packages: resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} engines: {node: '>=18.18'} - '@internationalized/date@3.5.1': - resolution: {integrity: sha512-LUQIfwU9e+Fmutc/DpRTGXSdgYZLBegi4wygCWDSVmUdLTaMHsQyASDiJtREwanwKuQLq0hY76fCJ9J/9I2xOQ==} + '@internationalized/date@3.7.0': + resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -480,11 +480,6 @@ packages: resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} engines: {node: '>=6.0.0'} - '@melt-ui/svelte@0.76.2': - resolution: {integrity: sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==} - peerDependencies: - svelte: '>=3 <5' - '@neoconfetti/svelte@2.2.1': resolution: {integrity: sha512-2Ts0Rxaf6clW2qG+AKhTwpl01AAyZEAe03XeuQ7Vp+qYIaM3ycuI94j546fmEkUxwACwGI3Zl2cZ/pncTuNcJg==} @@ -628,8 +623,9 @@ packages: '@swc/helpers@0.5.12': resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} - '@swc/helpers@0.5.8': - resolution: {integrity: sha512-lruDGw3pnfM3wmZHeW7JuhkGQaJjPyiKjxeGhdmfoOT53Ic9qb5JLDNaK2HUdl1zLDeX28H221UvKjfdvSLVMg==} + '@tanstack/table-core@8.20.5': + resolution: {integrity: sha512-P9dF7XbibHph2PFRz8gfBKEXEY/HJPOhym8CHmjF8y3q5mWpKx9xtZapXQUWCgkqvsK0R46Azuz+VaxD4Xl+Tg==} + engines: {node: '>=12'} '@total-typescript/ts-reset@0.6.1': resolution: {integrity: sha512-cka47fVSo6lfQDIATYqb/vO1nvFfbPw7uWLayIXIhGETj0wcOOlrlkobOMDNQOFr9QOafegUPq13V2+6vtD7yg==} @@ -979,15 +975,11 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - bits-ui@0.21.16: - resolution: {integrity: sha512-XFZ7/bK7j/K+5iktxX/ZpmoFHjYjpPzP5EOO/4bWiaFg5TG1iMcfjDhlBTQnJxD6BoVoHuqeZPHZvaTgF4Iv3Q==} + bits-ui@1.0.0-next.84: + resolution: {integrity: sha512-ZXsPfh/fOU1E2XvP8gRGk2G6c2vMWylDm3bCP888gwViI2lnwxz7D/fMuzBp3oKzovNxWMr8GR27yJQVOd9/jg==} + engines: {node: '>=18', pnpm: '>=8.7.0'} peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.118 - - bits-ui@0.22.0: - resolution: {integrity: sha512-r7Fw1HNgA4YxZBRcozl7oP0bheQ8EHh+kfMBZJgyFISix8t4p/nqDcHLmBgIiJ3T5XjYnJRorYDjIWaCfhb5fw==} - peerDependencies: - svelte: ^4.0.0 || ^5.0.0 + svelte: ^5.11.0 brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1039,11 +1031,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cmdk-sv@0.0.18: - resolution: {integrity: sha512-istixiQSy9Ez/mQ4VXWB69btqNyDZckbd1XFEwR46Vw+n5zjdmvoWAcOTj0uX3FZXtw9ikwLVmfoW2nwwMClRg==} - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.1 - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1279,10 +1266,6 @@ packages: delaunator@5.0.1: resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - detect-libc@2.0.2: resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} engines: {node: '>=8'} @@ -1464,9 +1447,6 @@ packages: flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - focus-trap@7.5.4: - resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} - foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -1592,6 +1572,9 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} @@ -1790,16 +1773,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.0.6: - resolution: {integrity: sha512-rRq0eMHoGZxlvaFOUdK1Ev83Bd1IgzzR+WJ3IbDJ7QOSdAxYjlurSPqFs9s4lJg29RT6nPwizFtJhQS6V5xgiA==} - engines: {node: ^18 || >=20} - hasBin: true - - nanoid@5.0.7: - resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} - engines: {node: ^18 || >=20} - hasBin: true - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2141,6 +2114,11 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + runed@0.23.2: + resolution: {integrity: sha512-AhHCb5/B+YQW6ar1pzhGQOQy+byfjCH63ofuhrexSWwQKhC0EbQ60Z/wMYwETLo3ZubhwlNryxBt0seOMOrVFQ==} + peerDependencies: + svelte: ^5.7.0 + rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} @@ -2206,6 +2184,9 @@ packages: striptags@3.2.0: resolution: {integrity: sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==} + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + stylis@4.2.0: resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} @@ -2251,38 +2232,21 @@ packages: svelte: optional: true - svelte-headless-table@0.18.3: - resolution: {integrity: sha512-1zVnqXW0dvn6ZceYa94k+ziK+w5Dj9nlWYTQGXBv2JhM0resj9w7CWpclZK1TJwAALfEeH4InPBPO87L5fr+nQ==} - peerDependencies: - svelte: ^4.0.0 - - svelte-keyed@2.0.0: - resolution: {integrity: sha512-7TeEn+QbJC2OJrHiuM0T8vMBkms3DNpTE+Ir+NtnVBnBMA78aL4f1ft9t0Hn/pBbD/TnIXi4YfjFRAgtN+DZ5g==} - peerDependencies: - svelte: ^4.0.0 - - svelte-render@2.0.1: - resolution: {integrity: sha512-RpB0SurwXm4xhjvHHtjeqMmvd645FURb79GFOotScOSqnKK5vpqBgoBPGC0pp+E/eZgDSQ9rRAdn/+N4ys1mXQ==} - peerDependencies: - svelte: ^4.0.0 - svelte-sonner@0.3.28: resolution: {integrity: sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==} peerDependencies: svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.1 - svelte-subscribe@2.0.1: - resolution: {integrity: sha512-eKXIjLxB4C7eQWPqKEdxcGfNXm2g/qJ67zmEZK/GigCZMfrTR3m7DPY93R6MX+5uoqM1FRYxl8LZ1oy4URWi2A==} + svelte-toolbelt@0.7.1: + resolution: {integrity: sha512-HcBOcR17Vx9bjaOceUvxkY3nGmbBmCBBbuWLLEWO6jtmWH8f/QoWmbyUfQZrpDINH39en1b8mptfPQT9VKQ1xQ==} + engines: {node: '>=18', pnpm: '>=8.7.0'} peerDependencies: - svelte: ^4.0.0 + svelte: ^5.0.0 svelte@5.18.0: resolution: {integrity: sha512-/Eb81lB8bVUxQPmkPVNBYrU9cZ544+9hE91ZUUXTMf7eWcGW84N1hS3gvv/XsUNOWLLg3IicXP2qa8W3KpTUHA==} engines: {node: '>=18'} - tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwind-merge@2.6.0: resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} @@ -2297,6 +2261,11 @@ packages: peerDependencies: tailwindcss: '>=3.2.0' + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + tailwindcss@3.4.17: resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} @@ -2697,16 +2666,16 @@ snapshots: '@eslint/core': 0.10.0 levn: 0.4.1 - '@floating-ui/core@1.5.1': + '@floating-ui/core@1.6.9': dependencies: - '@floating-ui/utils': 0.1.6 + '@floating-ui/utils': 0.2.9 - '@floating-ui/dom@1.5.3': + '@floating-ui/dom@1.6.13': dependencies: - '@floating-ui/core': 1.5.1 - '@floating-ui/utils': 0.1.6 + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 - '@floating-ui/utils@0.1.6': {} + '@floating-ui/utils@0.2.9': {} '@humanfs/core@0.19.1': {} @@ -2721,9 +2690,9 @@ snapshots: '@humanwhocodes/retry@0.4.1': {} - '@internationalized/date@3.5.1': + '@internationalized/date@3.7.0': dependencies: - '@swc/helpers': 0.5.8 + '@swc/helpers': 0.5.12 '@isaacs/cliui@8.0.2': dependencies: @@ -2799,16 +2768,6 @@ snapshots: '@mapbox/whoots-js@3.1.0': {} - '@melt-ui/svelte@0.76.2(svelte@5.18.0)': - dependencies: - '@floating-ui/core': 1.5.1 - '@floating-ui/dom': 1.5.3 - '@internationalized/date': 3.5.1 - dequal: 2.0.3 - focus-trap: 7.5.4 - nanoid: 5.0.7 - svelte: 5.18.0 - '@neoconfetti/svelte@2.2.1': {} '@nodelib/fs.scandir@2.1.5': @@ -2938,9 +2897,7 @@ snapshots: dependencies: tslib: 2.8.1 - '@swc/helpers@0.5.8': - dependencies: - tslib: 2.8.1 + '@tanstack/table-core@8.20.5': {} '@total-typescript/ts-reset@0.6.1': {} @@ -3364,19 +3321,15 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - bits-ui@0.21.16(svelte@5.18.0): - dependencies: - '@internationalized/date': 3.5.1 - '@melt-ui/svelte': 0.76.2(svelte@5.18.0) - nanoid: 5.0.6 - svelte: 5.18.0 - - bits-ui@0.22.0(svelte@5.18.0): + bits-ui@1.0.0-next.84(svelte@5.18.0): dependencies: - '@internationalized/date': 3.5.1 - '@melt-ui/svelte': 0.76.2(svelte@5.18.0) - nanoid: 5.0.7 + '@floating-ui/core': 1.6.9 + '@floating-ui/dom': 1.6.13 + '@internationalized/date': 3.7.0 + esm-env: 1.2.2 + runed: 0.23.2(svelte@5.18.0) svelte: 5.18.0 + svelte-toolbelt: 0.7.1(svelte@5.18.0) brace-expansion@1.1.11: dependencies: @@ -3435,12 +3388,6 @@ snapshots: clsx@2.1.1: {} - cmdk-sv@0.0.18(svelte@5.18.0): - dependencies: - bits-ui: 0.21.16(svelte@5.18.0) - nanoid: 5.0.7 - svelte: 5.18.0 - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -3680,8 +3627,6 @@ snapshots: dependencies: robust-predicates: 3.0.2 - dequal@2.0.3: {} - detect-libc@2.0.2: {} devalue@5.1.1: {} @@ -3901,10 +3846,6 @@ snapshots: flatted@3.2.9: {} - focus-trap@7.5.4: - dependencies: - tabbable: 6.2.0 - foreground-child@3.3.0: dependencies: cross-spawn: 7.0.6 @@ -4014,6 +3955,8 @@ snapshots: ini@1.3.8: {} + inline-style-parser@0.2.4: {} + internmap@1.0.1: {} internmap@2.0.3: {} @@ -4194,10 +4137,6 @@ snapshots: nanoid@3.3.8: {} - nanoid@5.0.6: {} - - nanoid@5.0.7: {} - natural-compare@1.4.0: {} node-fetch@2.7.0: @@ -4439,6 +4378,11 @@ snapshots: dependencies: queue-microtask: 1.2.3 + runed@0.23.2(svelte@5.18.0): + dependencies: + esm-env: 1.2.2 + svelte: 5.18.0 + rw@1.3.3: {} sade@1.8.1: @@ -4493,6 +4437,10 @@ snapshots: striptags@3.2.0: {} + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + stylis@4.2.0: {} sucrase@3.35.0: @@ -4545,28 +4493,15 @@ snapshots: optionalDependencies: svelte: 5.18.0 - svelte-headless-table@0.18.3(svelte@5.18.0): - dependencies: - svelte: 5.18.0 - svelte-keyed: 2.0.0(svelte@5.18.0) - svelte-render: 2.0.1(svelte@5.18.0) - svelte-subscribe: 2.0.1(svelte@5.18.0) - - svelte-keyed@2.0.0(svelte@5.18.0): - dependencies: - svelte: 5.18.0 - - svelte-render@2.0.1(svelte@5.18.0): - dependencies: - svelte: 5.18.0 - svelte-subscribe: 2.0.1(svelte@5.18.0) - svelte-sonner@0.3.28(svelte@5.18.0): dependencies: svelte: 5.18.0 - svelte-subscribe@2.0.1(svelte@5.18.0): + svelte-toolbelt@0.7.1(svelte@5.18.0): dependencies: + clsx: 2.1.1 + runed: 0.23.2(svelte@5.18.0) + style-to-object: 1.0.8 svelte: 5.18.0 svelte@5.18.0: @@ -4586,8 +4521,6 @@ snapshots: magic-string: 0.30.11 zimmerframe: 1.1.2 - tabbable@6.2.0: {} - tailwind-merge@2.6.0: {} tailwind-variants@0.3.0(tailwindcss@3.4.17): @@ -4601,6 +4534,10 @@ snapshots: lodash: 4.17.21 tailwindcss: 3.4.17 + tailwindcss-animate@1.0.7(tailwindcss@3.4.17): + dependencies: + tailwindcss: 3.4.17 + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 diff --git a/src/app.pcss b/src/app.pcss index a961af6..20feda1 100644 --- a/src/app.pcss +++ b/src/app.pcss @@ -25,6 +25,7 @@ --ring: 142.1 76.2% 36.3%; --radius: 0.5rem; } + .dark { --background: 20 14.3% 4.1%; --foreground: 0 0% 95%; @@ -56,6 +57,7 @@ * { @apply border-border; } + body { @apply bg-background text-foreground; } diff --git a/src/lib/components/Snowflakes.svelte b/src/lib/components/Snowflakes.svelte index 36dced2..e65fb58 100644 --- a/src/lib/components/Snowflakes.svelte +++ b/src/lib/components/Snowflakes.svelte @@ -1,4 +1,4 @@ - - + - + diff --git a/src/lib/components/days/2023/Day1.svelte b/src/lib/components/days/2023/Day1.svelte index 6e7d3b3..6d23208 100644 --- a/src/lib/components/days/2023/Day1.svelte +++ b/src/lib/components/days/2023/Day1.svelte @@ -8,19 +8,13 @@ import * as Command from "$lib/components/ui/command"; import * as Popover from "$lib/components/ui/popover"; - export let kids: Promise<{ name: string; tally: number }[]>; - let search = ""; - let open = false; + type Props = { + kids: Promise<{ name: string; tally: number }[]>; + }; - // We want to refocus the trigger button when the user selects - // an item from the list so users can continue navigating the - // rest of the form with the keyboard. - function closeAndFocusTrigger(triggerId: string) { - open = false; - tick().then(() => { - document.getElementById(triggerId)?.focus(); - }); - } + let { kids }: Props = $props(); + let search = $state(""); + let open = $state(false); @@ -43,29 +37,31 @@ {:then kids} - - -
- -

- - {kids.filter(f => f.tally > 0).length} - - nice children •{" "} - - {kids.filter(f => f.tally < 0).length} - naughty children -

-
+ + + {#snippet child({ props })} +
+ +

+ + {kids.filter(f => f.tally > 0).length} + + nice children •{" "} + + {kids.filter(f => f.tally < 0).length} + naughty children +

+
+ {/snippet}
@@ -75,9 +71,9 @@ {#each kids as kid} { - search = currentValue; - closeAndFocusTrigger(ids.trigger); + onSelect={() => { + search = kid.name; + open = false; }} > diff --git a/src/lib/components/days/2023/Day11.svelte b/src/lib/components/days/2023/Day11.svelte index b0d34d6..8140bd7 100644 --- a/src/lib/components/days/2023/Day11.svelte +++ b/src/lib/components/days/2023/Day11.svelte @@ -7,13 +7,9 @@ let firstNames: string[] = []; let lastNames: string[] = []; - let realName = ""; - $: if (realName) { - error = ""; - elfName = ""; - } - let error = ""; - let elfName = ""; + let realName = $state(""); + let error = $state(""); + let elfName = $state(""); function generateName() { const [firstName, lastName] = realName.split(" "); @@ -62,7 +58,7 @@
{ + onsubmit={e => { e.preventDefault(); if (realName.length < 1) { @@ -80,6 +76,10 @@ placeholder="Your first and last name" class="flex-1 bg-background" bind:value={realName} + oninput={() => { + error = ""; + elfName = ""; + }} />