From 5a231be1b4d0f7588f88661335bfa4cceaa8b281 Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Wed, 22 Apr 2026 16:11:23 +0000 Subject: [PATCH 01/21] fix(ui)[app]: opening and closing animation for folder nodes in file manager were not animating --- apps/site-showcase/package.json | 4 ++-- bun.lock | 36 ++++++++++++++++++--------------- package.json | 2 +- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/apps/site-showcase/package.json b/apps/site-showcase/package.json index d998611..af177b6 100644 --- a/apps/site-showcase/package.json +++ b/apps/site-showcase/package.json @@ -11,7 +11,7 @@ "astro": "astro" }, "dependencies": { - "@0x-jerry/unocss-preset-daisyui": "^0.2.3", + "@0x-jerry/unocss-preset-daisyui": "catalog:", "@astrojs/check": "0.9.8", "@astrojs/mdx": "^5.0.3", "@astrojs/sitemap": "^3.7.2", @@ -29,7 +29,7 @@ "astro": "^6.1.8", "astro-robots-txt": "^1.0.0", "astro-seo": "^1.1.0", - "daisyui": "^5.5.19", + "daisyui": "catalog:", "pretty-bytes": "^7.1.0", "svelte": "^5.55.4", "tiny-invariant": "^1.3.3", diff --git a/bun.lock b/bun.lock index 7e72628..60c61a1 100644 --- a/bun.lock +++ b/bun.lock @@ -87,7 +87,7 @@ "name": "site-showcase", "version": "0.0.1", "dependencies": { - "@0x-jerry/unocss-preset-daisyui": "^0.2.3", + "@0x-jerry/unocss-preset-daisyui": "catalog:", "@astrojs/check": "0.9.8", "@astrojs/mdx": "^5.0.3", "@astrojs/sitemap": "^3.7.2", @@ -105,7 +105,7 @@ "astro": "^6.1.8", "astro-robots-txt": "^1.0.0", "astro-seo": "^1.1.0", - "daisyui": "^5.5.19", + "daisyui": "catalog:", "pretty-bytes": "^7.1.0", "svelte": "^5.55.4", "tiny-invariant": "^1.3.3", @@ -151,7 +151,7 @@ "@unocss/preset-typography": "^66.6.7", "astro": "6.1.1", "astro-robots-txt": "^1.0.0", - "daisyui": "5.5.19", + "daisyui": "5.4.7", "sharp": "^0.34.2", "svelte": "^5.55.0", "typescript": "^6.0.2", @@ -282,7 +282,7 @@ "@codemirror/lint": ["@codemirror/lint@6.9.5", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.35.0", "crelt": "^1.0.5" } }, "sha512-GElsbU9G7QT9xXhpUg1zWGmftA/7jamh+7+ydKRuT0ORpWS3wOSP0yT1FOlIZa7mIJjpVPipErsyvVqB9cfTFA=="], - "@codemirror/search": ["@codemirror/search@6.6.0", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.37.0", "crelt": "^1.0.5" } }, "sha512-koFuNXcDvyyotWcgOnZGmY7LZqEOXZaaxD/j6n18TCLx2/9HieZJ5H6hs1g8FiRxBD0DNfs0nXn17g872RmYdw=="], + "@codemirror/search": ["@codemirror/search@6.7.0", "", { "dependencies": { "@codemirror/state": "^6.0.0", "@codemirror/view": "^6.37.0", "crelt": "^1.0.5" } }, "sha512-ZvGm99wc/s2cITtMT15LFdn8aH/aS+V+DqyGq/N5ZlV5vWtH+nILvC2nw0zX7ByNoHHDZ2IxxdW38O0tc5nVHg=="], "@codemirror/state": ["@codemirror/state@6.6.0", "", { "dependencies": { "@marijn/find-cluster-break": "^1.0.0" } }, "sha512-4nbvra5R5EtiCzr9BTHiTLc+MLXK2QGiAVYMyi8PkQd3SR+6ixar/Q/01Fa21TBIDOZXgeWV4WppsQolSreAPQ=="], @@ -318,7 +318,7 @@ "@emnapi/core": ["@emnapi/core@1.9.2", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA=="], - "@emnapi/runtime": ["@emnapi/runtime@1.9.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw=="], + "@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], @@ -890,19 +890,19 @@ "@upsetjs/venn.js": ["@upsetjs/venn.js@2.0.0", "", { "optionalDependencies": { "d3-selection": "^3.0.0", "d3-transition": "^3.0.1" } }, "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw=="], - "@vitest/expect": ["@vitest/expect@4.1.4", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.4", "@vitest/utils": "4.1.4", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww=="], + "@vitest/expect": ["@vitest/expect@4.1.5", "", { "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", "@vitest/spy": "4.1.5", "@vitest/utils": "4.1.5", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" } }, "sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw=="], - "@vitest/mocker": ["@vitest/mocker@4.1.4", "", { "dependencies": { "@vitest/spy": "4.1.4", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg=="], + "@vitest/mocker": ["@vitest/mocker@4.1.5", "", { "dependencies": { "@vitest/spy": "4.1.5", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, "peerDependencies": { "msw": "^2.4.9", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["msw", "vite"] }, "sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw=="], - "@vitest/pretty-format": ["@vitest/pretty-format@4.1.4", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A=="], + "@vitest/pretty-format": ["@vitest/pretty-format@4.1.5", "", { "dependencies": { "tinyrainbow": "^3.1.0" } }, "sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g=="], - "@vitest/runner": ["@vitest/runner@4.1.4", "", { "dependencies": { "@vitest/utils": "4.1.4", "pathe": "^2.0.3" } }, "sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ=="], + "@vitest/runner": ["@vitest/runner@4.1.5", "", { "dependencies": { "@vitest/utils": "4.1.5", "pathe": "^2.0.3" } }, "sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ=="], - "@vitest/snapshot": ["@vitest/snapshot@4.1.4", "", { "dependencies": { "@vitest/pretty-format": "4.1.4", "@vitest/utils": "4.1.4", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw=="], + "@vitest/snapshot": ["@vitest/snapshot@4.1.5", "", { "dependencies": { "@vitest/pretty-format": "4.1.5", "@vitest/utils": "4.1.5", "magic-string": "^0.30.21", "pathe": "^2.0.3" } }, "sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ=="], - "@vitest/spy": ["@vitest/spy@4.1.4", "", {}, "sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ=="], + "@vitest/spy": ["@vitest/spy@4.1.5", "", {}, "sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ=="], - "@vitest/utils": ["@vitest/utils@4.1.4", "", { "dependencies": { "@vitest/pretty-format": "4.1.4", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw=="], + "@vitest/utils": ["@vitest/utils@4.1.5", "", { "dependencies": { "@vitest/pretty-format": "4.1.5", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" } }, "sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug=="], "@volar/kit": ["@volar/kit@2.4.28", "", { "dependencies": { "@volar/language-service": "2.4.28", "@volar/typescript": "2.4.28", "typesafe-path": "^0.2.2", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "typescript": "*" } }, "sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg=="], @@ -1130,7 +1130,7 @@ "dagre-d3-es": ["dagre-d3-es@7.0.14", "", { "dependencies": { "d3": "^7.9.0", "lodash-es": "^4.17.21" } }, "sha512-P4rFMVq9ESWqmOgK+dlXvOtLwYg0i7u0HBGJER0LZDJT2VHIPAMZ/riPxqJceWMStH5+E61QxFra9kIS3AqdMg=="], - "daisyui": ["daisyui@5.5.19", "", {}, "sha512-pbFAkl1VCEh/MPCeclKL61I/MqRIFFhNU7yiXoDDRapXN4/qNCoMxeCCswyxEEhqL5eiTTfwHvucFtOE71C9sA=="], + "daisyui": ["daisyui@5.4.7", "", {}, "sha512-2wYO61vTPCXk7xEBgnzLZAYoE0xS5IRLu/GSq0vORpB+cTrtubdx69NnA0loc0exvCY1s2fYL4lGZtFHe2ohNQ=="], "data-urls": ["data-urls@7.0.0", "", { "dependencies": { "whatwg-mimetype": "^5.0.0", "whatwg-url": "^16.0.0" } }, "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA=="], @@ -1174,7 +1174,7 @@ "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], - "dompurify": ["dompurify@3.4.0", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg=="], + "dompurify": ["dompurify@3.4.1", "", { "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, "sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw=="], "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], @@ -1338,7 +1338,7 @@ "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], - "internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], + "internmap": ["internmap@2.0.3", "", {}, "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg=="], "iobuffer": ["iobuffer@5.4.0", "", {}, "sha512-DRebOWuqDvxunfkNJAlc3IzWIPD5xVxwUNbHr7xKB8E6aLJxIPfNX3CoMJghcFjpv6RWQsrcJbghtEwSPoJqMA=="], @@ -1956,7 +1956,7 @@ "vitefu": ["vitefu@1.1.3", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" }, "optionalPeers": ["vite"] }, "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg=="], - "vitest": ["vitest@4.1.4", "", { "dependencies": { "@vitest/expect": "4.1.4", "@vitest/mocker": "4.1.4", "@vitest/pretty-format": "4.1.4", "@vitest/runner": "4.1.4", "@vitest/snapshot": "4.1.4", "@vitest/spy": "4.1.4", "@vitest/utils": "4.1.4", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.4", "@vitest/browser-preview": "4.1.4", "@vitest/browser-webdriverio": "4.1.4", "@vitest/coverage-istanbul": "4.1.4", "@vitest/coverage-v8": "4.1.4", "@vitest/ui": "4.1.4", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg=="], + "vitest": ["vitest@4.1.5", "", { "dependencies": { "@vitest/expect": "4.1.5", "@vitest/mocker": "4.1.5", "@vitest/pretty-format": "4.1.5", "@vitest/runner": "4.1.5", "@vitest/snapshot": "4.1.5", "@vitest/spy": "4.1.5", "@vitest/utils": "4.1.5", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", "obug": "^2.1.1", "pathe": "^2.0.3", "picomatch": "^4.0.3", "std-env": "^4.0.0-rc.1", "tinybench": "^2.9.0", "tinyexec": "^1.0.2", "tinyglobby": "^0.2.15", "tinyrainbow": "^3.1.0", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", "why-is-node-running": "^2.3.0" }, "peerDependencies": { "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", "@vitest/browser-playwright": "4.1.5", "@vitest/browser-preview": "4.1.5", "@vitest/browser-webdriverio": "4.1.5", "@vitest/coverage-istanbul": "4.1.5", "@vitest/coverage-v8": "4.1.5", "@vitest/ui": "4.1.5", "happy-dom": "*", "jsdom": "*" }, "optionalPeers": ["@edge-runtime/vm", "@opentelemetry/api", "@types/node", "@vitest/browser-playwright", "@vitest/browser-preview", "@vitest/browser-webdriverio", "@vitest/coverage-istanbul", "@vitest/coverage-v8", "@vitest/ui", "happy-dom", "jsdom"], "bin": { "vitest": "vitest.mjs" } }, "sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg=="], "volar-service-css": ["volar-service-css@0.0.70", "", { "dependencies": { "vscode-css-languageservice": "^6.3.0", "vscode-languageserver-textdocument": "^1.0.11", "vscode-uri": "^3.0.8" }, "peerDependencies": { "@volar/language-service": "~2.4.0" }, "optionalPeers": ["@volar/language-service"] }, "sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw=="], @@ -2044,6 +2044,8 @@ "@expressive-code/plugin-shiki/shiki": ["shiki@3.23.0", "", { "dependencies": { "@shikijs/core": "3.23.0", "@shikijs/engine-javascript": "3.23.0", "@shikijs/engine-oniguruma": "3.23.0", "@shikijs/langs": "3.23.0", "@shikijs/themes": "3.23.0", "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA=="], + "@rolldown/binding-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.9.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw=="], + "@rollup/pluginutils/estree-walker": ["estree-walker@2.0.2", "", {}, "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="], "@sveltejs/vite-plugin-svelte-inspector/@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@6.2.4", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "deepmerge": "^4.3.1", "magic-string": "^0.30.21", "obug": "^2.1.0", "vitefu": "^1.1.1" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA=="], @@ -2128,6 +2130,8 @@ "cytoscape-fcose/cose-base/layout-base": ["layout-base@2.0.1", "", {}, "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="], + "d3-sankey/d3-array/internmap": ["internmap@1.0.1", "", {}, "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw=="], + "d3-sankey/d3-shape/d3-path": ["d3-path@1.0.9", "", {}, "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg=="], "hast-util-from-html/parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], diff --git a/package.json b/package.json index c1810a2..4b6fe33 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "@prosemark/paste-rich-text": "^0.0.3", "@prosemark/render-html": "^0.0.7", "astro": "6.1.1", - "daisyui": "5.5.19", + "daisyui": "5.4.7", "astro-robots-txt": "^1.0.0", "@0x-jerry/unocss-preset-daisyui": "0.2.3", "typescript": "^6.0.2", From ccd231cef28b0d14d4beda317005235dcb004bfb Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Thu, 2 Apr 2026 23:43:51 +0000 Subject: [PATCH 02/21] feat(docs): add inital docs for planning state management --- apps/site-docs/astro.config.mjs | 19 +++- .../docs/dev_docs/state_management.mdx | 100 ++++++++++++++++++ 2 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 apps/site-docs/src/content/docs/dev_docs/state_management.mdx diff --git a/apps/site-docs/astro.config.mjs b/apps/site-docs/astro.config.mjs index 8d62cd8..e7e7fc8 100644 --- a/apps/site-docs/astro.config.mjs +++ b/apps/site-docs/astro.config.mjs @@ -14,7 +14,24 @@ export default defineConfig({ integrations: [ sitemap(), robotsTxt(), - mermaid(), + mermaid({ + iconPacks: [ + { + name: 'logos', + loader: () => + fetch('https://unpkg.com/@iconify-json/logos@1/icons.json').then( + (res) => res.json() + ), + }, + { + name: 'iconoir', + loader: () => + fetch('https://unpkg.com/@iconify-json/iconoir@1/icons.json').then( + (res) => res.json() + ), + }, + ], + }), starlight({ title: 'Cherit', tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4 }, diff --git a/apps/site-docs/src/content/docs/dev_docs/state_management.mdx b/apps/site-docs/src/content/docs/dev_docs/state_management.mdx new file mode 100644 index 0000000..192262b --- /dev/null +++ b/apps/site-docs/src/content/docs/dev_docs/state_management.mdx @@ -0,0 +1,100 @@ +--- +title: How State management works +description: A discussion about how the various app states are managemed +--- +import { Card, CardGrid } from '@astrojs/starlight/components'; + + +so generally, an app's states fall into 2 main categories + + + + the non persistent states only required for current session and don't need to be persisted + + + the states that need to be persisted amoung sessions + + + +In case of Cherit, we can divide states into further categories + +```mermaid +graph LR + %% Root + State["App States"] + State@{ icon: "iconoir:code-brackets-square" } + + %% Level 1 - Split + Persistent["Persistent State
(Disk / OS)"] + Persistent@{ icon: "iconoir:hard-drive" } + + NonPersistent["Non-Persistent
(System RAM)"] + NonPersistent@{ icon: "iconoir:flash" } + + State --> Persistent + State --> NonPersistent + + %% Level 2 - Persistent Sub-types + Secure["Secure
(OS Keychain)"] + Secure@{ icon: "iconoir:lock-key" } + + Normal["Normal
(AppData Dir)"] + Normal@{ icon: "iconoir:folder" } + + Persistent --> Secure + Persistent --> Normal + + %% Level 3 - Secure Items + Sec1["Sync Tokens"] + Sec1@{ icon: "iconoir:key" } + + Sec2["LLM API Keys"] + Sec2@{ icon: "iconoir:key" } + + Secure --> Sec1 + Secure --> Sec2 + + %% Level 3 - Normal Persistent Sub-types + Domain["Domain Specific"] + Domain@{ icon: "iconoir:task-list" } + + UIPrefs["UI & Window
Preferences"] + UIPrefs@{ icon: "iconoir:mac-os-window" } + + Normal --> Domain + Normal --> UIPrefs + + %% Level 4 - Domain Files + F1["Workspaces.json"] + F1@{ icon: "iconoir:page" } + + F2["Sync_settings.json"] + F2@{ icon: "iconoir:settings" } + + F3["LLM_settings.json"] + F3@{ icon: "iconoir:bright-crown" } + + Domain --> F1 + Domain --> F2 + Domain --> F3 + + %% Level 4 - UI Files + U1["window_geometry.json"] + U1@{ icon: "iconoir:view-grid" } + + UIPrefs --> U1 + + %% Level 2 - Non-Persistent Items + Ram_Editor["Editor State
(Active Drafts)"] + Ram_Editor@{ icon: "iconoir:edit-pencil" } + + Ram_Sys["System Env
(mDNS/Sync)"] + Ram_Sys@{ icon: "iconoir:network-alt" } + + Ram_UI["UI View
(Hover/Modals)"] + Ram_UI@{ icon: "iconoir:mouse-pointer" } + + NonPersistent --> Ram_Editor + NonPersistent --> Ram_Sys + NonPersistent --> Ram_UI +``` From 2a8bb31c9589ed0a7c6e5569e1705987ffefd7c9 Mon Sep 17 00:00:00 2001 From: keshav-writes-code Date: Fri, 3 Apr 2026 17:38:07 +0000 Subject: [PATCH 03/21] feat: add inital implementation --- apps/app/src/App.svelte | 2 +- .../general/app_settings/index.svelte | 2 +- .../general/breadcrumb_path/index.svelte | 2 +- .../general/context_menu/index.svelte | 2 +- .../general/workspace_selector/index.svelte | 2 +- .../src/components/main_section/index.svelte | 4 +- .../main_section/pane_menu/index.svelte | 4 +- .../text_editor/editor/index.svelte | 4 +- .../main_section/text_editor/index.svelte | 2 +- .../main_section/titlebar/index.svelte | 4 +- .../sidebar_section/bottom_sidebar.svelte | 2 +- .../sidebar_section/file_manager/index.svelte | 2 +- .../file_manager/items_renderer.svelte | 2 +- .../file_manager/toolbar.svelte | 4 +- .../components/sidebar_section/index.svelte | 2 +- .../lib/operations/file_tree/operations.ts | 2 +- .../file_tree/utils/platform_utils.ts | 2 +- .../src/lib/operations/pdf_export/index.ts | 2 +- .../src/lib/operations/picker_dialog/index.ts | 2 +- .../lib/operations/window_listeners/index.ts | 2 +- .../operations/workspace/operations.svelte.ts | 4 +- .../domain_specific/context_menu.svelte.ts | 0 .../{ => session}/domain_specific/index.ts | 0 .../domain_specific/os.svelte.ts | 0 .../domain_specific/user_activity.svelte.ts | 0 .../domain_specific/workspace.svelte.ts | 0 .../{ => session}/global/index.svelte.ts | 0 .../app/src/lib/states/{ => session}/index.ts | 0 apps/app/src/lib/types/index.ts | 2 +- .../docs/dev_docs/state_management.mdx | 126 +++++++++--------- state_management_local | 1 + 31 files changed, 91 insertions(+), 92 deletions(-) rename apps/app/src/lib/states/{ => session}/domain_specific/context_menu.svelte.ts (100%) rename apps/app/src/lib/states/{ => session}/domain_specific/index.ts (100%) rename apps/app/src/lib/states/{ => session}/domain_specific/os.svelte.ts (100%) rename apps/app/src/lib/states/{ => session}/domain_specific/user_activity.svelte.ts (100%) rename apps/app/src/lib/states/{ => session}/domain_specific/workspace.svelte.ts (100%) rename apps/app/src/lib/states/{ => session}/global/index.svelte.ts (100%) rename apps/app/src/lib/states/{ => session}/index.ts (100%) create mode 160000 state_management_local diff --git a/apps/app/src/App.svelte b/apps/app/src/App.svelte index febfb77..dbc8e99 100644 --- a/apps/app/src/App.svelte +++ b/apps/app/src/App.svelte @@ -5,7 +5,7 @@ import { Toaster } from 'svelte-sonner'; import Main from '@/components/main_section/index.svelte'; import AppSettings from '@/components/general/app_settings/index.svelte'; - import { drawer_open } from '@/lib/states/global/index.svelte'; + import { drawer_open } from '@/lib/states/session/global/index.svelte'; import { attach_window_listeners } from './lib/operations/window_listeners'; $effect(() => { const detach = attach_window_listeners(); diff --git a/apps/app/src/components/general/app_settings/index.svelte b/apps/app/src/components/general/app_settings/index.svelte index 7ea0c63..7fc4ed0 100644 --- a/apps/app/src/components/general/app_settings/index.svelte +++ b/apps/app/src/components/general/app_settings/index.svelte @@ -3,7 +3,7 @@ import type { Component } from 'svelte'; import { sidebar_items } from './sidebar_items'; import { fade } from 'svelte/transition'; - import { current_platform_type } from '@/lib/states'; + import { current_platform_type } from '@/lib/states/session'; const viewMap: Record = {}; let activeTab = $state(); diff --git a/apps/app/src/components/general/breadcrumb_path/index.svelte b/apps/app/src/components/general/breadcrumb_path/index.svelte index fe3e471..8fee3aa 100644 --- a/apps/app/src/components/general/breadcrumb_path/index.svelte +++ b/apps/app/src/components/general/breadcrumb_path/index.svelte @@ -1,6 +1,6 @@ diff --git a/apps/app/src/components/main_section/pane_menu/index.svelte b/apps/app/src/components/main_section/pane_menu/index.svelte index ef81c4d..feab523 100644 --- a/apps/app/src/components/main_section/pane_menu/index.svelte +++ b/apps/app/src/components/main_section/pane_menu/index.svelte @@ -1,8 +1,8 @@ diff --git a/apps/app/src/components/sidebar_section/bottom_sidebar.svelte b/apps/app/src/components/sidebar_section/bottom_sidebar.svelte index 1d751eb..d2fcf45 100644 --- a/apps/app/src/components/sidebar_section/bottom_sidebar.svelte +++ b/apps/app/src/components/sidebar_section/bottom_sidebar.svelte @@ -1,6 +1,6 @@ diff --git a/apps/app/src/components/sidebar_section/file_manager/index.svelte b/apps/app/src/components/sidebar_section/file_manager/index.svelte index 544c094..40a5ec2 100644 --- a/apps/app/src/components/sidebar_section/file_manager/index.svelte +++ b/apps/app/src/components/sidebar_section/file_manager/index.svelte @@ -3,7 +3,7 @@ import ItemsRender from './items_renderer.svelte'; import Toolbar from './toolbar.svelte'; import { toast } from 'svelte-sonner'; - import { workspace_root_path } from '@/lib/states'; + import { workspace_root_path } from '@/lib/states/session'; import { file_tree } from './states.svelte'; let focused_directory_path: string | undefined = $derived( workspace_root_path.data?.path diff --git a/apps/app/src/components/sidebar_section/file_manager/items_renderer.svelte b/apps/app/src/components/sidebar_section/file_manager/items_renderer.svelte index de0b509..46b239b 100644 --- a/apps/app/src/components/sidebar_section/file_manager/items_renderer.svelte +++ b/apps/app/src/components/sidebar_section/file_manager/items_renderer.svelte @@ -24,7 +24,7 @@ current_platform_type, opened_filenode, workspace_root_path, - } from '@/lib/states'; + } from '@/lib/states/session'; import { get_parent_path, rename_node } from '@/lib/operations/file_tree'; let { diff --git a/apps/app/src/components/sidebar_section/file_manager/toolbar.svelte b/apps/app/src/components/sidebar_section/file_manager/toolbar.svelte index 5dfa04c..befb5e1 100644 --- a/apps/app/src/components/sidebar_section/file_manager/toolbar.svelte +++ b/apps/app/src/components/sidebar_section/file_manager/toolbar.svelte @@ -4,7 +4,7 @@ drawer_open, opened_filenode, workspace_root_path, - } from '@/lib/states'; + } from '@/lib/states/session'; import { file_tree, focused_subtree, @@ -15,7 +15,7 @@ expand_override_global, expand_override_fine_grain, } from './states.svelte'; - import { current_platform_type } from '@/lib/states/'; + import { current_platform_type } from '@/lib/states/session/'; let { focused_directory_path, }: { focused_directory_path: string | undefined } = $props(); diff --git a/apps/app/src/components/sidebar_section/index.svelte b/apps/app/src/components/sidebar_section/index.svelte index a077e3f..e4caa15 100644 --- a/apps/app/src/components/sidebar_section/index.svelte +++ b/apps/app/src/components/sidebar_section/index.svelte @@ -1,7 +1,7 @@
{ - const data = await persistent_states.get(); - console.log(data); + const data = await persistent_states.load(); }}>get persistent states +
{JSON.stringify(
+            persistent_states.states,
+            null,
+            '\t'
+          )}
+
diff --git a/apps/app/src/components/general/workspace_selector/index.svelte b/apps/app/src/components/general/workspace_selector/index.svelte index 78f8556..0ff4c33 100644 --- a/apps/app/src/components/general/workspace_selector/index.svelte +++ b/apps/app/src/components/general/workspace_selector/index.svelte @@ -1,39 +1,16 @@ @@ -56,23 +33,24 @@
- {#if recent_workspaces.data.length} + {#if persistent_states.states?.app_config.workspaces_metadata.length}