diff --git a/next.config.js b/next.config.js index 2da987c6..424cf983 100644 --- a/next.config.js +++ b/next.config.js @@ -6,7 +6,7 @@ const withPWA = require('next-pwa')({ }) module.exports = withPWA({ output: 'standalone', - transpilePackages: ['@mdxeditor/editor', 'react-diff-view','highlight.js','remark-gfm','rehype-raw'], + transpilePackages: ['react-diff-view','highlight.js','remark-gfm','rehype-raw'], webpack: (config, { isServer }) => { config.experiments = { ...config.experiments, topLevelAwait: true }; if (!isServer) { diff --git a/package.json b/package.json index b7b4201e..831ae0c7 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,6 @@ "@langchain/openai": "^0.3.10", "@langchain/pinecone": "^0.1.1", "@langchain/textsplitters": "^0.1.0", - "@mdxeditor/editor": "^3.19.2", "@next/bundle-analyzer": "^14.1.4", "@nextui-org/dropdown": "^2.1.31", "@nextui-org/framer-utils": "^2.0.24", @@ -151,6 +150,7 @@ "unfurl.js": "^6.4.0", "usehooks-ts": "^3.1.0", "vanilla-tilt": "^1.8.1", + "vditor": "^3.10.8", "zod": "^3.23.8", "zod-prisma-types": "^3.1.8" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bbed4392..d70aa3bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,9 +53,6 @@ importers: '@langchain/textsplitters': specifier: ^0.1.0 version: 0.1.0(@langchain/core@0.3.13(openai@4.68.0(encoding@0.1.13)(zod@3.23.8))) - '@mdxeditor/editor': - specifier: ^3.19.2 - version: 3.19.2(@codemirror/language@6.10.3)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yjs@13.6.20) '@next/bundle-analyzer': specifier: ^14.1.4 version: 14.2.15 @@ -371,6 +368,9 @@ importers: vanilla-tilt: specifier: ^1.8.1 version: 1.8.1 + vditor: + specifier: ^3.10.8 + version: 3.10.8 zod: specifier: ^3.23.8 version: 3.23.8 @@ -1273,113 +1273,6 @@ packages: '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} - '@codemirror/autocomplete@6.18.1': - resolution: {integrity: sha512-iWHdj/B1ethnHRTwZj+C1obmmuCzquH29EbcKr0qIjA9NfDeBDJ7vs+WOHsFeLeflE4o+dHfYndJloMKHUkWUA==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - - '@codemirror/commands@6.7.0': - resolution: {integrity: sha512-+cduIZ2KbesDhbykV02K25A5xIVrquSPz4UxxYBemRlAT2aW8dhwUgLDwej7q/RJUHKk4nALYcR1puecDvbdqw==} - - '@codemirror/lang-angular@0.1.3': - resolution: {integrity: sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==} - - '@codemirror/lang-cpp@6.0.2': - resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==} - - '@codemirror/lang-css@6.3.0': - resolution: {integrity: sha512-CyR4rUNG9OYcXDZwMPvJdtb6PHbBDKUc/6Na2BIwZ6dKab1JQqKa4di+RNRY9Myn7JB81vayKwJeQ7jEdmNVDA==} - - '@codemirror/lang-go@6.0.1': - resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==} - - '@codemirror/lang-html@6.4.9': - resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} - - '@codemirror/lang-java@6.0.1': - resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} - - '@codemirror/lang-javascript@6.2.2': - resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} - - '@codemirror/lang-json@6.0.1': - resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} - - '@codemirror/lang-less@6.0.2': - resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==} - - '@codemirror/lang-liquid@6.2.1': - resolution: {integrity: sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==} - - '@codemirror/lang-markdown@6.3.0': - resolution: {integrity: sha512-lYrI8SdL/vhd0w0aHIEvIRLRecLF7MiiRfzXFZY94dFwHqC9HtgxgagJ8fyYNBldijGatf9wkms60d8SrAj6Nw==} - - '@codemirror/lang-php@6.0.1': - resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} - - '@codemirror/lang-python@6.1.6': - resolution: {integrity: sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==} - - '@codemirror/lang-rust@6.0.1': - resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} - - '@codemirror/lang-sass@6.0.2': - resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} - - '@codemirror/lang-sql@6.8.0': - resolution: {integrity: sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==} - - '@codemirror/lang-vue@0.1.3': - resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} - - '@codemirror/lang-wast@6.0.2': - resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} - - '@codemirror/lang-xml@6.1.0': - resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} - - '@codemirror/lang-yaml@6.1.1': - resolution: {integrity: sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==} - - '@codemirror/language-data@6.5.1': - resolution: {integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==} - - '@codemirror/language@6.10.3': - resolution: {integrity: sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A==} - - '@codemirror/legacy-modes@6.4.1': - resolution: {integrity: sha512-vdg3XY7OAs5uLDx2Iw+cGfnwtd7kM+Et/eMsqAGTfT/JKiVBQZXosTzjEbWAi/FrY6DcQIz8mQjBozFHZEUWQA==} - - '@codemirror/lint@6.8.2': - resolution: {integrity: sha512-PDFG5DjHxSEjOXk9TQYYVjZDqlZTFaDBfhQixHnQOEVDDNHUbEh/hstAjcQJaA6FQdZTD1hquXTK0rVBLADR1g==} - - '@codemirror/merge@6.7.2': - resolution: {integrity: sha512-HSzuWoV4E+F0DROOSwGZMYIDXh+y4iA64ffRADXPBbKKSwx9bsYNM4i7qN8t0mc8H0PYNBoehOvsW2Nitmnx9g==} - - '@codemirror/search@6.5.6': - resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} - - '@codemirror/state@6.4.1': - resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} - - '@codemirror/view@6.34.1': - resolution: {integrity: sha512-t1zK/l9UiRqwUNPm+pdIT0qzJlzuVckbTEMVNFhfWkGiBQClstzg+78vedCvLSX0xJEZ6lwZbPpnljL7L6iwMQ==} - - '@codesandbox/nodebox@0.1.8': - resolution: {integrity: sha512-2VRS6JDSk+M+pg56GA6CryyUSGPjBEe8Pnae0QL3jJF1mJZJVMDKr93gJRtBbLkfZN6LD/DwMtf+2L0bpWrjqg==} - - '@codesandbox/sandpack-client@2.19.8': - resolution: {integrity: sha512-CMV4nr1zgKzVpx4I3FYvGRM5YT0VaQhALMW9vy4wZRhEyWAtJITQIqZzrTGWqB1JvV7V72dVEUCUPLfYz5hgJQ==} - - '@codesandbox/sandpack-react@2.19.9': - resolution: {integrity: sha512-a5uXWYdg5Wtz6VHwXIegdS7C63foCofFa/eHO9crtPp1Yf5/npKimds0S3kKJL7jpOmMAascEvAOqOy5S9e6qQ==} - peerDependencies: - react: ^16.8.0 || ^17 || ^18 - react-dom: ^16.8.0 || ^17 || ^18 - '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -2039,128 +1932,6 @@ packages: peerDependencies: '@langchain/core': ^0.3.13 - '@lexical/clipboard@0.17.1': - resolution: {integrity: sha512-OVqnEfWX8XN5xxuMPo6BfgGKHREbz++D5V5ISOiml0Z8fV/TQkdgwqbBJcUdJHGRHWSUwdK7CWGs/VALvVvZyw==} - - '@lexical/code@0.17.1': - resolution: {integrity: sha512-ZspfTm6g6dN3nAb4G5bPp3SqxzdkB/bjGfa0uRKMU6/eBKtrMUgZsGxt0a8JRZ1eq2TZrQhx+l1ceRoLXii/bQ==} - - '@lexical/devtools-core@0.17.1': - resolution: {integrity: sha512-SzL1EX9Rt5GptIo87t6nDxAc9TtYtl6DyAPNz/sCltspdd69KQgs23sTRa26/tkNFCS1jziRN7vpN3mlnmm5wA==} - peerDependencies: - react: '>=17.x' - react-dom: '>=17.x' - - '@lexical/dragon@0.17.1': - resolution: {integrity: sha512-lhBRKP7RlhiVCLtF0qiNqmMhEO6cQB43sMe7d4bvuY1G2++oKY/XAJPg6QJZdXRrCGRQ6vZ26QRNhRPmCxL5Ng==} - - '@lexical/hashtag@0.17.1': - resolution: {integrity: sha512-XtP0BI8vEewAe7tzq9MC49UPUvuChuNJI/jqFp+ezZlt/RUq0BClQCOPuSlrTJhluvE2rWnUnOnVMk8ILRvggQ==} - - '@lexical/history@0.17.1': - resolution: {integrity: sha512-OU/ohajz4FXchUhghsWC7xeBPypFe50FCm5OePwo767G7P233IztgRKIng2pTT4zhCPW7S6Mfl53JoFHKehpWA==} - - '@lexical/html@0.17.1': - resolution: {integrity: sha512-yGG+K2DXl7Wn2DpNuZ0Y3uCHJgfHkJN3/MmnFb4jLnH1FoJJiuy7WJb/BRRh9H+6xBJ9v70iv+kttDJ0u1xp5w==} - - '@lexical/link@0.17.1': - resolution: {integrity: sha512-qFJEKBesZAtR8kfJfIVXRFXVw6dwcpmGCW7duJbtBRjdLjralOxrlVKyFhW9PEXGhi4Mdq2Ux16YnnDncpORdQ==} - - '@lexical/list@0.17.1': - resolution: {integrity: sha512-k9ZnmQuBvW+xVUtWJZwoGtiVG2cy+hxzkLGU4jTq1sqxRIoSeGcjvhFAK8JSEj4i21SgkB1FmkWXoYK5kbwtRA==} - - '@lexical/mark@0.17.1': - resolution: {integrity: sha512-V82SSRjvygmV+ZMwVpy5gwgr2ZDrJpl3TvEDO+G5I4SDSjbgvua8hO4dKryqiDVlooxQq9dsou0GrZ9Qtm6rYg==} - - '@lexical/markdown@0.17.1': - resolution: {integrity: sha512-uexR9snyT54jfQTrbr/GZAtzX+8Oyykr4p1HS0vCVL1KU5MDuP2PoyFfOv3rcfB2TASc+aYiINhU2gSXzwCHNg==} - - '@lexical/offset@0.17.1': - resolution: {integrity: sha512-fX0ZSIFWwUKAjxf6l21vyXFozJGExKWyWxA+EMuOloNAGotHnAInxep0Mt8t/xcvHs7luuyQUxEPw7YrTJP7aw==} - - '@lexical/overflow@0.17.1': - resolution: {integrity: sha512-oElVDq486R3rO2+Zz0EllXJGpW3tN0tfcH+joZ5h36+URKuNeKddqkJuDRvgSLOr9l8Jhtv3+/YKduPJVKMz6w==} - - '@lexical/plain-text@0.17.1': - resolution: {integrity: sha512-CSvi4j1a4ame0OAvOKUCCmn2XrNsWcST4lExGTa9Ei/VIh8IZ+a97h4Uby8T3lqOp10x+oiizYWzY30pb9QaBg==} - - '@lexical/react@0.17.1': - resolution: {integrity: sha512-DI4k25tO0E1WyozrjaLgKMOmLjOB7+39MT4eZN9brPlU7g+w0wzdGbTZUPgPmFGIKPK+MSLybCwAJCK97j8HzQ==} - peerDependencies: - react: '>=17.x' - react-dom: '>=17.x' - - '@lexical/rich-text@0.17.1': - resolution: {integrity: sha512-T3kvj4P1OpedX9jvxN3WN8NP1Khol6mCW2ScFIRNRz2dsXgyN00thH1Q1J/uyu7aKyGS7rzcY0rb1Pz1qFufqQ==} - - '@lexical/selection@0.17.1': - resolution: {integrity: sha512-qBKVn+lMV2YIoyRELNr1/QssXx/4c0id9NCB/BOuYlG8du5IjviVJquEF56NEv2t0GedDv4BpUwkhXT2QbNAxA==} - - '@lexical/table@0.17.1': - resolution: {integrity: sha512-2fUYPmxhyuMQX3MRvSsNaxbgvwGNJpHaKx1Ldc+PT2MvDZ6ALZkfsxbi0do54Q3i7dOon8/avRp4TuVaCnqvoA==} - - '@lexical/text@0.17.1': - resolution: {integrity: sha512-zD2pAGXaMfPpT8PeNrx3+n0+jGnQORHyn0NEBO+hnyacKfUq5z5sI6Gebsq5NwH789bRadmJM5LvX5w8fsuv6w==} - - '@lexical/utils@0.17.1': - resolution: {integrity: sha512-jCQER5EsvhLNxKH3qgcpdWj/necUb82Xjp8qWQ3c0tyL07hIRm2tDRA/s9mQmvcP855HEZSmGVmR5SKtkcEAVg==} - - '@lexical/yjs@0.17.1': - resolution: {integrity: sha512-9mn5PDtaH5uLMH6hQ59EAx5FkRzmJJFcVs3E6zSIbtgkG3UASR3CFEfgsLKTjl/GC5NnTGuMck+jXaupDVBhOg==} - peerDependencies: - yjs: '>=13.5.22' - - '@lezer/common@1.2.3': - resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} - - '@lezer/cpp@1.1.2': - resolution: {integrity: sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==} - - '@lezer/css@1.1.9': - resolution: {integrity: sha512-TYwgljcDv+YrV0MZFFvYFQHCfGgbPMR6nuqLabBdmZoFH3EP1gvw8t0vae326Ne3PszQkbXfVBjCnf3ZVCr0bA==} - - '@lezer/go@1.0.0': - resolution: {integrity: sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==} - - '@lezer/highlight@1.2.1': - resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} - - '@lezer/html@1.3.10': - resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} - - '@lezer/java@1.1.3': - resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==} - - '@lezer/javascript@1.4.19': - resolution: {integrity: sha512-j44kbR1QL26l6dMunZ1uhKBFteVGLVCBGNUD2sUaMnic+rbTviVuoK0CD1l9FTW31EueWvFFswCKMH7Z+M3JRA==} - - '@lezer/json@1.0.2': - resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} - - '@lezer/lr@1.4.2': - resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} - - '@lezer/markdown@1.3.1': - resolution: {integrity: sha512-DGlzU/i8DC8k0uz1F+jeePrkATl0jWakauTzftMQOcbaMkHbNSRki/4E2tOzJWsVpoKYhe7iTJ03aepdwVUXUA==} - - '@lezer/php@1.0.2': - resolution: {integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==} - - '@lezer/python@1.1.14': - resolution: {integrity: sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==} - - '@lezer/rust@1.0.2': - resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} - - '@lezer/sass@1.0.7': - resolution: {integrity: sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw==} - - '@lezer/xml@1.0.5': - resolution: {integrity: sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==} - - '@lezer/yaml@1.0.3': - resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==} - '@mantine/core@7.13.3': resolution: {integrity: sha512-IV8xSr6rFQefKr2iOEhYYkJ6rZTDEp71qNkAfn90toSNjgT/2bgnqOxXwxqZ3bwo9DyNOAbEDzs1EfdIzln5aA==} peerDependencies: @@ -2173,20 +1944,6 @@ packages: peerDependencies: react: ^18.2.0 - '@mdxeditor/editor@3.19.2': - resolution: {integrity: sha512-9p7qSXPmVa3TjQOHjMqmzlhVclhZjGIJzpOApB0FWwbxtuAVTdqyD0rvUzyTV7cdyOCNYnO5TyMLQcq9zbYxwg==} - engines: {node: '>=16'} - peerDependencies: - react: '>= 18 || >= 19' - react-dom: '>= 18 || >= 19' - - '@mdxeditor/gurx@1.1.4': - resolution: {integrity: sha512-r2n99QK7siYVrxNv3yHHe9CPwOHaTC+pckFp5khNzRL8BtsifKb/mY+26hMwULC+rGDwkXpfSjositCYhoQjgg==} - engines: {node: '>=16'} - peerDependencies: - react: '>= 18 || >= 19' - react-dom: '>= 18 || >= 19' - '@mermaid-js/parser@0.3.0': resolution: {integrity: sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==} @@ -2972,9 +2729,6 @@ packages: '@octokit/types@13.6.1': resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} - '@open-draft/deferred-promise@2.2.0': - resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} - '@opentelemetry/api@1.4.1': resolution: {integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==} engines: {node: '>=8.0.0'} @@ -3053,488 +2807,114 @@ packages: '@radix-ui/colors@3.0.0': resolution: {integrity: sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==} - '@radix-ui/number@1.1.0': - resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} - - '@radix-ui/primitive@1.1.0': - resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} - - '@radix-ui/react-arrow@1.1.0': - resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} + '@react-aria/breadcrumbs@3.5.19': + resolution: {integrity: sha512-mVngOPFYVVhec89rf/CiYQGTfaLRfHFtX+JQwY7sNYNqSA+gO8p4lNARe3Be6bJPgH+LUQuruIY9/ZDL6LT3HA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-collection@1.1.0': - resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + '@react-aria/button@3.11.0': + resolution: {integrity: sha512-b37eIV6IW11KmNIAm65F3SEl2/mgj5BrHIysW6smZX3KoKWTGYsYfcQkmtNgY0GOSFfDxMCoolsZ6mxC00nSDA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-compose-refs@1.1.0': - resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + '@react-aria/button@3.9.5': + resolution: {integrity: sha512-dgcYR6j8WDOMLKuVrtxzx4jIC05cVKDzc+HnPO8lNkBAOfjcuN5tkGRtIjLtqjMvpZHhQT5aDbgFpIaZzxgFIg==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - '@radix-ui/react-context@1.1.0': - resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + '@react-aria/calendar@3.6.0': + resolution: {integrity: sha512-tZ3nd5DP8uxckbj83Pt+4RqgcTWDlGi7njzc7QqFOG2ApfnYDUXbIpb/Q4KY6JNlJskG8q33wo0XfOwNy8J+eg==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + '@react-aria/checkbox@3.15.0': + resolution: {integrity: sha512-z/8xd4em7o0MroBXwkkwv7QRwiJaA1FwqMhRUb7iqtBGP2oSytBEDf0N7L09oci32a1P4ZPz2rMK5GlLh/PD6g==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-dialog@1.1.2': - resolution: {integrity: sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==} + '@react-aria/combobox@3.11.0': + resolution: {integrity: sha512-s88YMmPkMO1WSoiH1KIyZDLJqUwvM2wHXXakj3cYw1tBHGo4rOUFq+JWQIbM5EDO4HOR4AUUqzIUd0NO7t3zyg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-direction@1.1.0': - resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + '@react-aria/datepicker@3.12.0': + resolution: {integrity: sha512-VYNXioLfddIHpwQx211+rTYuunDmI7VHWBRetCpH3loIsVFuhFSRchTQpclAzxolO3g0vO7pMVj9VYt7Swp6kg==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-dismissable-layer@1.1.1': - resolution: {integrity: sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==} + '@react-aria/dialog@3.5.14': + resolution: {integrity: sha512-oqDCjQ8hxe3GStf48XWBf2CliEnxlR9GgSYPHJPUc69WBj68D9rVcCW3kogJnLAnwIyf3FnzbX4wSjvUa88sAQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - '@radix-ui/react-focus-guards@1.1.1': - resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + '@react-aria/dialog@3.5.20': + resolution: {integrity: sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-focus-scope@1.1.0': - resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} + '@react-aria/focus@3.17.1': + resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - '@radix-ui/react-icons@1.3.0': - resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==} + '@react-aria/focus@3.18.4': + resolution: {integrity: sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==} peerDependencies: - react: ^16.x || ^17.x || ^18.x + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + '@react-aria/focus@3.19.0': + resolution: {integrity: sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==} peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-popover@1.1.2': - resolution: {integrity: sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==} + '@react-aria/form@3.0.11': + resolution: {integrity: sha512-oXzjTiwVuuWjZ8muU0hp3BrDH5qjVctLOF50mjPvqUbvXQTHhoDxWweyIXPQjGshaqBd2w4pWaE4A2rG2O/apw==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-popper@1.2.0': - resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + '@react-aria/grid@3.11.0': + resolution: {integrity: sha512-lN5FpQgu2Rq0CzTPWmzRpq6QHcMmzsXYeClsgO3108uVp1/genBNAObYVTxGOKe/jb9q99trz8EtIn05O6KN1g==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-portal@1.1.2': - resolution: {integrity: sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==} + '@react-aria/i18n@3.11.1': + resolution: {integrity: sha512-vuiBHw1kZruNMYeKkTGGnmPyMnM5T+gT8bz97H1FqIq1hQ6OPzmtBZ6W6l6OIMjeHI5oJo4utTwfZl495GALFQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - '@radix-ui/react-presence@1.1.1': - resolution: {integrity: sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==} + '@react-aria/i18n@3.12.3': + resolution: {integrity: sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@radix-ui/react-primitive@2.0.0': - resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + '@react-aria/i18n@3.12.4': + resolution: {integrity: sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-roving-focus@1.1.0': - resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + '@react-aria/interactions@3.21.3': + resolution: {integrity: sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - '@radix-ui/react-select@2.1.2': - resolution: {integrity: sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==} + '@react-aria/interactions@3.22.4': + resolution: {integrity: sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - '@radix-ui/react-separator@1.1.0': - resolution: {integrity: sha512-3uBAs+egzvJBDZAzvb/n4NxxOYpnspmWxO2u5NbZ8Y6FM/NdrGSF9bop3Cf6F6C71z1rTSn8KV0Fo2ZVd79lGA==} + '@react-aria/interactions@3.22.5': + resolution: {integrity: sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==} peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@radix-ui/react-slot@1.1.0': - resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-toggle-group@1.1.0': - resolution: {integrity: sha512-PpTJV68dZU2oqqgq75Uzto5o/XfOVgkrJ9rulVmfTKxWp3HfUjHE6CP/WLRR4AzPX9HWxw7vFow2me85Yu+Naw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-toggle@1.1.0': - resolution: {integrity: sha512-gwoxaKZ0oJ4vIgzsfESBuSgJNdc0rv12VhHgcqN0TEJmmZixXG/2XpsLK8kzNWYcnaoRIEEQc0bEi3dIvdUpjw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-toolbar@1.1.0': - resolution: {integrity: sha512-ZUKknxhMTL/4hPh+4DuaTot9aO7UD6Kupj4gqXCsBTayX1pD1L+0C2/2VZKXb4tIifQklZ3pf2hG9T+ns+FclQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-tooltip@1.1.3': - resolution: {integrity: sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-escape-keydown@1.1.0': - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-previous@1.1.0': - resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-rect@1.1.0': - resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-use-size@1.1.0': - resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-visually-hidden@1.1.0': - resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/rect@1.1.0': - resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - - '@react-aria/breadcrumbs@3.5.19': - resolution: {integrity: sha512-mVngOPFYVVhec89rf/CiYQGTfaLRfHFtX+JQwY7sNYNqSA+gO8p4lNARe3Be6bJPgH+LUQuruIY9/ZDL6LT3HA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/button@3.11.0': - resolution: {integrity: sha512-b37eIV6IW11KmNIAm65F3SEl2/mgj5BrHIysW6smZX3KoKWTGYsYfcQkmtNgY0GOSFfDxMCoolsZ6mxC00nSDA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/button@3.9.5': - resolution: {integrity: sha512-dgcYR6j8WDOMLKuVrtxzx4jIC05cVKDzc+HnPO8lNkBAOfjcuN5tkGRtIjLtqjMvpZHhQT5aDbgFpIaZzxgFIg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - - '@react-aria/calendar@3.6.0': - resolution: {integrity: sha512-tZ3nd5DP8uxckbj83Pt+4RqgcTWDlGi7njzc7QqFOG2ApfnYDUXbIpb/Q4KY6JNlJskG8q33wo0XfOwNy8J+eg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/checkbox@3.15.0': - resolution: {integrity: sha512-z/8xd4em7o0MroBXwkkwv7QRwiJaA1FwqMhRUb7iqtBGP2oSytBEDf0N7L09oci32a1P4ZPz2rMK5GlLh/PD6g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/combobox@3.11.0': - resolution: {integrity: sha512-s88YMmPkMO1WSoiH1KIyZDLJqUwvM2wHXXakj3cYw1tBHGo4rOUFq+JWQIbM5EDO4HOR4AUUqzIUd0NO7t3zyg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/datepicker@3.12.0': - resolution: {integrity: sha512-VYNXioLfddIHpwQx211+rTYuunDmI7VHWBRetCpH3loIsVFuhFSRchTQpclAzxolO3g0vO7pMVj9VYt7Swp6kg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/dialog@3.5.14': - resolution: {integrity: sha512-oqDCjQ8hxe3GStf48XWBf2CliEnxlR9GgSYPHJPUc69WBj68D9rVcCW3kogJnLAnwIyf3FnzbX4wSjvUa88sAQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - - '@react-aria/dialog@3.5.20': - resolution: {integrity: sha512-l0GZVLgeOd3kL3Yj8xQW7wN3gn9WW3RLd/SGI9t7ciTq+I/FhftjXCWzXLlOCCTLMf+gv7eazecECtmoWUaZWQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/focus@3.17.1': - resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - - '@react-aria/focus@3.18.4': - resolution: {integrity: sha512-91J35077w9UNaMK1cpMUEFRkNNz0uZjnSwiyBCFuRdaVuivO53wNC9XtWSDNDdcO5cGy87vfJRVAiyoCn/mjqA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - - '@react-aria/focus@3.19.0': - resolution: {integrity: sha512-hPF9EXoUQeQl1Y21/rbV2H4FdUR2v+4/I0/vB+8U3bT1CJ+1AFj1hc/rqx2DqEwDlEwOHN+E4+mRahQmlybq0A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/form@3.0.11': - resolution: {integrity: sha512-oXzjTiwVuuWjZ8muU0hp3BrDH5qjVctLOF50mjPvqUbvXQTHhoDxWweyIXPQjGshaqBd2w4pWaE4A2rG2O/apw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/grid@3.11.0': - resolution: {integrity: sha512-lN5FpQgu2Rq0CzTPWmzRpq6QHcMmzsXYeClsgO3108uVp1/genBNAObYVTxGOKe/jb9q99trz8EtIn05O6KN1g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/i18n@3.11.1': - resolution: {integrity: sha512-vuiBHw1kZruNMYeKkTGGnmPyMnM5T+gT8bz97H1FqIq1hQ6OPzmtBZ6W6l6OIMjeHI5oJo4utTwfZl495GALFQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - - '@react-aria/i18n@3.12.3': - resolution: {integrity: sha512-0Tp/4JwnCVNKDfuknPF+/xf3/woOc8gUjTU2nCjO3mCVb4FU7KFtjxQ2rrx+6hpIVG6g+N9qfMjRa/ggVH0CJg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - - '@react-aria/i18n@3.12.4': - resolution: {integrity: sha512-j9+UL3q0Ls8MhXV9gtnKlyozq4aM95YywXqnmJtzT1rYeBx7w28hooqrWkCYLfqr4OIryv1KUnPiCSLwC2OC7w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/interactions@3.21.3': - resolution: {integrity: sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 - - '@react-aria/interactions@3.22.4': - resolution: {integrity: sha512-E0vsgtpItmknq/MJELqYJwib+YN18Qag8nroqwjk1qOnBa9ROIkUhWJerLi1qs5diXq9LHKehZDXRlwPvdEFww==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0 - - '@react-aria/interactions@3.22.5': - resolution: {integrity: sha512-kMwiAD9E0TQp+XNnOs13yVJghiy8ET8L0cbkeuTgNI96sOAp/63EJ1FSrDf17iD8sdjt41LafwX/dKXW9nCcLQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/label@3.7.13': - resolution: {integrity: sha512-brSAXZVTey5RG/Ex6mTrV/9IhGSQFU4Al34qmjEDho+Z2qT4oPwf8k7TRXWWqzOU0ugYxekYbsLd2zlN3XvWcg==} + '@react-aria/label@3.7.13': + resolution: {integrity: sha512-brSAXZVTey5RG/Ex6mTrV/9IhGSQFU4Al34qmjEDho+Z2qT4oPwf8k7TRXWWqzOU0ugYxekYbsLd2zlN3XvWcg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -3721,16 +3101,6 @@ packages: resolution: {integrity: sha512-J1eI7cIm2IXE6EwhHR1OyoefvobUJEn/vJWEBwOM5uW4JkkLwuVoV9vk++XJyAmKUNQ87gdWZvSWrI2LjfrSug==} engines: {node: '>=12.0.0'} - '@react-hook/intersection-observer@3.1.2': - resolution: {integrity: sha512-mWU3BMkmmzyYMSuhO9wu3eJVP21N8TcgYm9bZnTrMwuM818bEk+0NRM3hP+c/TqA9Ln5C7qE53p1H0QMtzYdvQ==} - peerDependencies: - react: '>=16.8' - - '@react-hook/passive-layout-effect@1.2.1': - resolution: {integrity: sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg==} - peerDependencies: - react: '>=16.8' - '@react-stately/calendar@3.6.0': resolution: {integrity: sha512-GqUtOtGnwWjtNrJud8nY/ywI4VBP5byToNVRTnxbMl+gYO1Qe/uc5NG7zjwMxhb2kqSBHZFdkF0DXVqG2Ul+BA==} peerDependencies: @@ -4422,9 +3792,6 @@ packages: '@sqltools/formatter@1.2.5': resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==} - '@stitches/core@1.2.8': - resolution: {integrity: sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==} - '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} @@ -4588,9 +3955,6 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -4882,11 +4246,6 @@ packages: peerDependencies: acorn: ^8 - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.4: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} @@ -4944,9 +4303,6 @@ packages: resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} engines: {node: '>=0.4.2'} - anser@2.3.0: - resolution: {integrity: sha512-pGGR7Nq1K/i9KGs29PvHDXA8AsfZ3OiYRMDClT3FIC085Kbns9CJ7ogq9MEiGnrjd9THOGoh7B+kWzePHzZyJQ==} - ansi-escapes@7.0.0: resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} engines: {node: '>=18'} @@ -5012,10 +4368,6 @@ packages: argv-formatter@1.0.0: resolution: {integrity: sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==} - aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} - engines: {node: '>=10'} - array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -5295,9 +4647,6 @@ packages: classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - clean-set@1.1.2: - resolution: {integrity: sha512-cA8uCj0qSoG9e0kevyOWXwPaELRPVg5Pxp6WskLMwerx257Zfnh8Nl0JBH59d7wQzij2CK7qEfJQK3RjuKKIug==} - clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -5339,14 +4688,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cm6-theme-basic-light@0.2.0: - resolution: {integrity: sha512-1prg2gv44sYfpHscP26uLT/ePrh0mlmVwMSoSd3zYKQ92Ab3jPRLzyCnpyOCQLJbK+YdNs4HvMRqMNYdy4pMhA==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/highlight': ^1.0.0 - co-body@6.2.0: resolution: {integrity: sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==} engines: {node: '>=8.0.0'} @@ -5354,9 +4695,6 @@ packages: code-block-writer@12.0.0: resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} - codemirror@6.0.1: - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -5426,9 +4764,6 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - compute-scroll-into-view@2.0.4: - resolution: {integrity: sha512-y/ZA3BGnxoM/QHHQ2Uy49CLtnWPbt4tTPpEEZiEmmiWBFKjej7nEyH8Ryz54jH0MLXflUYA3Er2zUxPSJu5R+g==} - compute-scroll-into-view@3.1.0: resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} @@ -5537,9 +4872,6 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - cron@3.1.7: resolution: {integrity: sha512-tlBg7ARsAMQLzgwqVxy8AZl/qlTc5nibqYwtNGoCrd+cV+ugI+tvZC1oT/8dFH8W455YrywGykx/KMmAqOr7Jw==} @@ -5777,10 +5109,6 @@ packages: resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} engines: {node: '>=12'} - d@1.0.2: - resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} - engines: {node: '>=0.12'} - dagre-d3-es@7.0.11: resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} @@ -5931,10 +5259,6 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - dingbat-to-unicode@1.0.1: resolution: {integrity: sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==} @@ -5990,11 +5314,6 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - downshift@7.6.2: - resolution: {integrity: sha512-iOv+E1Hyt3JDdL9yYcOgW7nZ7GQ2Uz6YbggwXvKUSleetYhU2nXD482Rz6CzvM4lvI1At34BYruKAL4swRGxaA==} - peerDependencies: - react: '>=16.12.0' - drange@1.1.1: resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} engines: {node: '>=4'} @@ -6109,24 +5428,10 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} - es5-ext@0.10.64: - resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} - engines: {node: '>=0.10'} - - es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - - es6-symbol@3.1.4: - resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} - engines: {node: '>=0.12'} - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-carriage@1.3.1: - resolution: {integrity: sha512-GwBr6yViW3ttx1kb7/Oh+gKQ1/TrhYwxKqVmg5gS+BK+Qe2KrOa/Vh7w3HPBvgGf0LfcDGoY9I6NHKoA5Hozhw==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -6153,10 +5458,6 @@ packages: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} - esniff@2.0.1: - resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} - engines: {node: '>=0.10'} - esprima@1.0.4: resolution: {integrity: sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==} engines: {node: '>=0.4.0'} @@ -6186,9 +5487,6 @@ packages: estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - estree-walker@0.6.1: resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} @@ -6206,9 +5504,6 @@ packages: eve@0.5.4: resolution: {integrity: sha512-aqprQ9MAOh1t66PrHxDFmMXPlgNO6Uv1uqvxmwjprQV50jaQ2RqO7O1neY4PJwC+hMnkyMDphu2AQPOPZdjQog==} - event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} @@ -6239,9 +5534,6 @@ packages: expr-eval@2.0.2: resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==} - ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -6278,9 +5570,6 @@ packages: fault@1.0.4: resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - figures@2.0.0: resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==} engines: {node: '>=4'} @@ -6894,9 +6183,6 @@ packages: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - intersection-observer@0.10.0: - resolution: {integrity: sha512-fn4bQ0Xq8FTej09YC/jqKZwtijpvARlRp6wxL5WTA6yPe2YWSJ5RJh7Nm79rK2qB0wr6iDQzH60XGq5V/7u8YQ==} - intl-messageformat@10.7.0: resolution: {integrity: sha512-2P06M9jFTqJnEQzE072VGPjbAx6ZG1YysgopAwc8ui0ajSjtwX1MeQ6bXFXIzKcNENJTizKkcJIcZ0zlpl1zSg==} @@ -7108,9 +6394,6 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isomorphic.js@0.2.5: - resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} - issue-parser@7.0.1: resolution: {integrity: sha512-3YZcUUR2Wt1WsapF+S/WiA2WmlW0cWAoPccMqne7AxEBhCdFeTPjfv/Axb8V2gyCgY3nRw+ksZ3xSUX+R47iAg==} engines: {node: ^18.17 || >=20.6.1} @@ -7305,11 +6588,6 @@ packages: lexical@0.17.1: resolution: {integrity: sha512-72/MhR7jqmyqD10bmJw8gztlCm4KDDT+TPtU4elqXrEvHoO5XENi34YAEUD9gIkPfqSwyLa9mwAX1nKzIr5xEA==} - lib0@0.2.98: - resolution: {integrity: sha512-XteTiNO0qEXqqweWx+b21p/fBnNHUA1NwAtJNJek1oPrewEZs2uiT4gWivHKr9GqCjDPAhchz0UQO8NwU3bBNA==} - engines: {node: '>=16'} - hasBin: true - lie@3.3.0: resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} @@ -7459,10 +6737,6 @@ packages: resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==} engines: {node: '>=12'} - lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} - hasBin: true - magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} @@ -7543,18 +6817,12 @@ packages: peerDependencies: markmap-common: '*' - mdast-util-directive@3.0.0: - resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} - mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} mdast-util-from-markdown@2.0.1: resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} - mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} - mdast-util-gfm-autolink-literal@2.0.0: resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} @@ -7582,9 +6850,6 @@ packages: mdast-util-mdx-jsx@3.1.3: resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} - mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - mdast-util-mdxjs-esm@2.0.1: resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} @@ -7638,12 +6903,6 @@ packages: micromark-core-commonmark@2.0.1: resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - micromark-extension-directive@3.0.2: - resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} - - micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - micromark-extension-gfm-autolink-literal@2.1.0: resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} @@ -7668,30 +6927,12 @@ packages: micromark-extension-math@3.1.0: resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - - micromark-extension-mdx-jsx@3.0.1: - resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} - - micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - - micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - - micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - micromark-factory-destination@2.0.0: resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} micromark-factory-label@2.0.0: resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - micromark-factory-mdx-expression@2.0.2: - resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} - micromark-factory-space@2.0.0: resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} @@ -7722,9 +6963,6 @@ packages: micromark-util-encode@2.0.0: resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - micromark-util-html-tag-name@2.0.0: resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} @@ -7757,10 +6995,6 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} - engines: {node: '>= 0.6'} - mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -7973,9 +7207,6 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - next@14.2.10: resolution: {integrity: sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww==} engines: {node: '>=18.17.0'} @@ -8275,9 +7506,6 @@ packages: otplib@12.0.1: resolution: {integrity: sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg==} - outvariant@1.4.0: - resolution: {integrity: sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==} - p-each-series@3.0.0: resolution: {integrity: sha512-lastgtAdoH9YaLyDa5i5z64q+kzOcQHsQ5SsZJD3q0VEyI8mq872S3geuNbRUQLVAE9siMfgKrpj7MloKFHruw==} engines: {node: '>=12'} @@ -9055,9 +8283,6 @@ packages: typescript: optional: true - react-devtools-inline@4.4.0: - resolution: {integrity: sha512-ES0GolSrKO8wsKbsEkVeiR/ZAaHQTY4zDh1UW8DImVmm8oaGLl3ijJDvSGe+qDRKPZdPRnDtWWnSvvrgxXdThQ==} - react-diff-view@3.2.1: resolution: {integrity: sha512-JoDahgiyeReeH9W9lrI3Z4c4esbd/HNAOdThj6Pce/ZAukFBmXSbZ4Qv8ayo7yow+fTpRNfqtQ9gX5nArEi08w==} peerDependencies: @@ -9080,12 +8305,6 @@ packages: peerDependencies: react: '>= 16.8 || 18.0.0' - react-error-boundary@3.1.4: - resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} - engines: {node: '>=10', npm: '>=6'} - peerDependencies: - react: '>=16.13.1' - react-error-overlay@6.0.11: resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} @@ -9101,12 +8320,6 @@ packages: react: '>= 16.3.0' react-dom: '>= 16.3.0' - react-hook-form@7.53.0: - resolution: {integrity: sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 - react-hot-toast@2.4.1: resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==} engines: {node: '>=10'} @@ -9153,9 +8366,6 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-markdown@9.0.1: resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: @@ -9717,9 +8927,6 @@ packages: resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - static-browser-server@1.0.3: - resolution: {integrity: sha512-ZUyfgGDdFRbZGGJQ1YhiM930Yczz5VlbJObrQLlk24+qNHVQx4OlLcYswEUo3bIyNAbQUIUR9Yr5/Hqjzqb4zA==} - statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} @@ -9734,9 +8941,6 @@ packages: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} - strict-event-emitter@0.4.6: - resolution: {integrity: sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==} - string-hash@1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} @@ -9814,9 +9018,6 @@ packages: style-inject@0.3.0: resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} - style-mod@4.1.2: - resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} - style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} @@ -10125,9 +9326,6 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} - type@2.7.3: - resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} - typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -10275,9 +9473,6 @@ packages: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} - unidiff@1.0.4: - resolution: {integrity: sha512-ynU0vsAXw0ir8roa+xPCUHmnJ5goc5BTM2Kuc3IJd8UwgaeRs7VSD5+eeaQL+xp1JtB92hu/Zy/Lgy7RZcr1pQ==} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -10304,9 +9499,6 @@ packages: unist-util-map@1.0.5: resolution: {integrity: sha512-dFil/AN6vqhnQWNCZk0GF/G3+Q5YwsB+PqjnzvpO2wzdRtUJ1E8PN+XRE/PRr/G3FzKjRTJU0haqE0Ekl+O3Ag==} - unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} @@ -10442,6 +9634,9 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vditor@3.10.8: + resolution: {integrity: sha512-u9npjvMuGJVk0QGbpqiGAmvgiR4QvMVpNQYrvFYZ/yWDtTFLZrHmLxuUbtswotR6KY10u5kVuaoSEoBGGWQGjQ==} + vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -10475,9 +9670,6 @@ packages: vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - w3c-xmlserializer@4.0.0: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} @@ -10734,10 +9926,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yjs@13.6.20: - resolution: {integrity: sha512-Z2YZI+SYqK7XdWlloI3lhMiKnCdFCVC4PchpdO+mCYwtiTwncjUbnRK9R1JmkNfdmHyDXuWN3ibJAt0wsqTbLQ==} - engines: {node: '>=16.0.0', npm: '>=8.0.0'} - yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -12188,305 +11376,6 @@ snapshots: '@chevrotain/utils@11.0.3': {} - '@codemirror/autocomplete@6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3)': - dependencies: - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - - '@codemirror/commands@6.7.0': - dependencies: - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - - '@codemirror/lang-angular@0.1.3': - dependencies: - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@codemirror/lang-cpp@6.0.2': - dependencies: - '@codemirror/language': 6.10.3 - '@lezer/cpp': 1.1.2 - - '@codemirror/lang-css@6.3.0(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.3 - '@lezer/css': 1.1.9 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/lang-go@6.0.1(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.3 - '@lezer/go': 1.0.0 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/lang-html@6.4.9': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - '@lezer/css': 1.1.9 - '@lezer/html': 1.3.10 - - '@codemirror/lang-java@6.0.1': - dependencies: - '@codemirror/language': 6.10.3 - '@lezer/java': 1.1.3 - - '@codemirror/lang-javascript@6.2.2': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.3 - '@codemirror/lint': 6.8.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - '@lezer/javascript': 1.4.19 - - '@codemirror/lang-json@6.0.1': - dependencies: - '@codemirror/language': 6.10.3 - '@lezer/json': 1.0.2 - - '@codemirror/lang-less@6.0.2(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) - '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/lang-liquid@6.2.1': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@codemirror/lang-markdown@6.3.0': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - '@lezer/markdown': 1.3.1 - - '@codemirror/lang-php@6.0.1': - dependencies: - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.3 - '@lezer/php': 1.0.2 - - '@codemirror/lang-python@6.1.6(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.3 - '@lezer/python': 1.1.14 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/lang-rust@6.0.1': - dependencies: - '@codemirror/language': 6.10.3 - '@lezer/rust': 1.0.2 - - '@codemirror/lang-sass@6.0.2(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.3 - '@lezer/sass': 1.0.7 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/lang-sql@6.8.0(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/lang-vue@0.1.3': - dependencies: - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@codemirror/lang-wast@6.0.2': - dependencies: - '@codemirror/language': 6.10.3 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@codemirror/lang-xml@6.1.0': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - '@lezer/xml': 1.0.5 - - '@codemirror/lang-yaml@6.1.1(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/yaml': 1.0.3 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/language-data@6.5.1(@codemirror/view@6.34.1)': - dependencies: - '@codemirror/lang-angular': 0.1.3 - '@codemirror/lang-cpp': 6.0.2 - '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) - '@codemirror/lang-go': 6.0.1(@codemirror/view@6.34.1) - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-java': 6.0.1 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/lang-json': 6.0.1 - '@codemirror/lang-less': 6.0.2(@codemirror/view@6.34.1) - '@codemirror/lang-liquid': 6.2.1 - '@codemirror/lang-markdown': 6.3.0 - '@codemirror/lang-php': 6.0.1 - '@codemirror/lang-python': 6.1.6(@codemirror/view@6.34.1) - '@codemirror/lang-rust': 6.0.1 - '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.34.1) - '@codemirror/lang-sql': 6.8.0(@codemirror/view@6.34.1) - '@codemirror/lang-vue': 0.1.3 - '@codemirror/lang-wast': 6.0.2 - '@codemirror/lang-xml': 6.1.0 - '@codemirror/lang-yaml': 6.1.1(@codemirror/view@6.34.1) - '@codemirror/language': 6.10.3 - '@codemirror/legacy-modes': 6.4.1 - transitivePeerDependencies: - - '@codemirror/view' - - '@codemirror/language@6.10.3': - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - style-mod: 4.1.2 - - '@codemirror/legacy-modes@6.4.1': - dependencies: - '@codemirror/language': 6.10.3 - - '@codemirror/lint@6.8.2': - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - crelt: 1.0.6 - - '@codemirror/merge@6.7.2': - dependencies: - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/highlight': 1.2.1 - style-mod: 4.1.2 - - '@codemirror/search@6.5.6': - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - crelt: 1.0.6 - - '@codemirror/state@6.4.1': {} - - '@codemirror/view@6.34.1': - dependencies: - '@codemirror/state': 6.4.1 - style-mod: 4.1.2 - w3c-keyname: 2.2.8 - - '@codesandbox/nodebox@0.1.8': - dependencies: - outvariant: 1.4.0 - strict-event-emitter: 0.4.6 - - '@codesandbox/sandpack-client@2.19.8': - dependencies: - '@codesandbox/nodebox': 0.1.8 - buffer: 6.0.3 - dequal: 2.0.3 - mime-db: 1.53.0 - outvariant: 1.4.0 - static-browser-server: 1.0.3 - - '@codesandbox/sandpack-react@2.19.9(@lezer/common@1.2.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/commands': 6.7.0 - '@codemirror/lang-css': 6.3.0(@codemirror/view@6.34.1) - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@codesandbox/sandpack-client': 2.19.8 - '@lezer/highlight': 1.2.1 - '@react-hook/intersection-observer': 3.1.2(react@18.3.1) - '@stitches/core': 1.2.8 - anser: 2.3.0 - clean-set: 1.1.2 - dequal: 2.0.3 - escape-carriage: 1.3.1 - lz-string: 1.5.0 - react: 18.3.1 - react-devtools-inline: 4.4.0 - react-dom: 18.3.1(react@18.3.1) - react-is: 17.0.2 - transitivePeerDependencies: - - '@lezer/common' - '@colors/colors@1.5.0': optional: true @@ -12849,244 +11738,6 @@ snapshots: '@langchain/core': 0.3.13(openai@4.68.0(encoding@0.1.13)(zod@3.23.8)) js-tiktoken: 1.0.15 - '@lexical/clipboard@0.17.1': - dependencies: - '@lexical/html': 0.17.1 - '@lexical/list': 0.17.1 - '@lexical/selection': 0.17.1 - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/code@0.17.1': - dependencies: - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - prismjs: 1.29.0 - - '@lexical/devtools-core@0.17.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@lexical/html': 0.17.1 - '@lexical/link': 0.17.1 - '@lexical/mark': 0.17.1 - '@lexical/table': 0.17.1 - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@lexical/dragon@0.17.1': - dependencies: - lexical: 0.17.1 - - '@lexical/hashtag@0.17.1': - dependencies: - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/history@0.17.1': - dependencies: - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/html@0.17.1': - dependencies: - '@lexical/selection': 0.17.1 - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/link@0.17.1': - dependencies: - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/list@0.17.1': - dependencies: - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/mark@0.17.1': - dependencies: - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/markdown@0.17.1': - dependencies: - '@lexical/code': 0.17.1 - '@lexical/link': 0.17.1 - '@lexical/list': 0.17.1 - '@lexical/rich-text': 0.17.1 - '@lexical/text': 0.17.1 - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/offset@0.17.1': - dependencies: - lexical: 0.17.1 - - '@lexical/overflow@0.17.1': - dependencies: - lexical: 0.17.1 - - '@lexical/plain-text@0.17.1': - dependencies: - '@lexical/clipboard': 0.17.1 - '@lexical/selection': 0.17.1 - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/react@0.17.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yjs@13.6.20)': - dependencies: - '@lexical/clipboard': 0.17.1 - '@lexical/code': 0.17.1 - '@lexical/devtools-core': 0.17.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@lexical/dragon': 0.17.1 - '@lexical/hashtag': 0.17.1 - '@lexical/history': 0.17.1 - '@lexical/link': 0.17.1 - '@lexical/list': 0.17.1 - '@lexical/mark': 0.17.1 - '@lexical/markdown': 0.17.1 - '@lexical/overflow': 0.17.1 - '@lexical/plain-text': 0.17.1 - '@lexical/rich-text': 0.17.1 - '@lexical/selection': 0.17.1 - '@lexical/table': 0.17.1 - '@lexical/text': 0.17.1 - '@lexical/utils': 0.17.1 - '@lexical/yjs': 0.17.1(yjs@13.6.20) - lexical: 0.17.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-error-boundary: 3.1.4(react@18.3.1) - transitivePeerDependencies: - - yjs - - '@lexical/rich-text@0.17.1': - dependencies: - '@lexical/clipboard': 0.17.1 - '@lexical/selection': 0.17.1 - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/selection@0.17.1': - dependencies: - lexical: 0.17.1 - - '@lexical/table@0.17.1': - dependencies: - '@lexical/utils': 0.17.1 - lexical: 0.17.1 - - '@lexical/text@0.17.1': - dependencies: - lexical: 0.17.1 - - '@lexical/utils@0.17.1': - dependencies: - '@lexical/list': 0.17.1 - '@lexical/selection': 0.17.1 - '@lexical/table': 0.17.1 - lexical: 0.17.1 - - '@lexical/yjs@0.17.1(yjs@13.6.20)': - dependencies: - '@lexical/offset': 0.17.1 - lexical: 0.17.1 - yjs: 13.6.20 - - '@lezer/common@1.2.3': {} - - '@lezer/cpp@1.1.2': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/css@1.1.9': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/go@1.0.0': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/highlight@1.2.1': - dependencies: - '@lezer/common': 1.2.3 - - '@lezer/html@1.3.10': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/java@1.1.3': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/javascript@1.4.19': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/json@1.0.2': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/lr@1.4.2': - dependencies: - '@lezer/common': 1.2.3 - - '@lezer/markdown@1.3.1': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - - '@lezer/php@1.0.2': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/python@1.1.14': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/rust@1.0.2': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/sass@1.0.7': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/xml@1.0.5': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - - '@lezer/yaml@1.0.3': - dependencies: - '@lezer/common': 1.2.3 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - '@mantine/core@7.13.3(@mantine/hooks@7.13.3(react@18.3.1))(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13105,76 +11756,6 @@ snapshots: dependencies: react: 18.3.1 - '@mdxeditor/editor@3.19.2(@codemirror/language@6.10.3)(@lezer/common@1.2.3)(@lezer/highlight@1.2.1)(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yjs@13.6.20)': - dependencies: - '@codemirror/lang-markdown': 6.3.0 - '@codemirror/language-data': 6.5.1(@codemirror/view@6.34.1) - '@codemirror/merge': 6.7.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@codesandbox/sandpack-react': 2.19.9(@lezer/common@1.2.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@lexical/clipboard': 0.17.1 - '@lexical/link': 0.17.1 - '@lexical/list': 0.17.1 - '@lexical/markdown': 0.17.1 - '@lexical/plain-text': 0.17.1 - '@lexical/react': 0.17.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(yjs@13.6.20) - '@lexical/rich-text': 0.17.1 - '@lexical/selection': 0.17.1 - '@lexical/utils': 0.17.1 - '@mdxeditor/gurx': 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/colors': 3.0.0 - '@radix-ui/react-dialog': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-icons': 1.3.0(react@18.3.1) - '@radix-ui/react-popover': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-select': 2.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toolbar': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-tooltip': 1.1.3(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - classnames: 2.5.1 - cm6-theme-basic-light: 0.2.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/highlight@1.2.1) - codemirror: 6.0.1(@lezer/common@1.2.3) - downshift: 7.6.2(react@18.3.1) - js-yaml: 4.1.0 - lexical: 0.17.1 - mdast-util-directive: 3.0.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-frontmatter: 2.0.1 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-mdx: 3.0.0 - mdast-util-mdx-jsx: 3.1.3 - mdast-util-to-markdown: 2.1.0 - micromark-extension-directive: 3.0.2 - micromark-extension-frontmatter: 2.0.0 - micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.0 - micromark-extension-gfm-task-list-item: 2.1.0 - micromark-extension-mdx-jsx: 3.0.1 - micromark-extension-mdx-md: 2.0.0 - micromark-extension-mdxjs: 3.0.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-hook-form: 7.53.0(react@18.3.1) - unidiff: 1.0.4 - transitivePeerDependencies: - - '@codemirror/language' - - '@lezer/common' - - '@lezer/highlight' - - '@types/react' - - '@types/react-dom' - - supports-color - - yjs - - '@mdxeditor/gurx@1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@mermaid-js/parser@0.3.0': dependencies: langium: 3.0.0 @@ -14554,8 +13135,6 @@ snapshots: dependencies: '@octokit/openapi-types': 22.2.0 - '@open-draft/deferred-promise@2.2.0': {} - '@opentelemetry/api@1.4.1': optional: true @@ -14593,412 +13172,50 @@ snapshots: '@pnpm/config.env-replace@1.1.0': {} - '@pnpm/network.ca-file@1.0.2': - dependencies: - graceful-fs: 4.2.10 - - '@pnpm/npm-conf@2.3.1': - dependencies: - '@pnpm/config.env-replace': 1.1.0 - '@pnpm/network.ca-file': 1.0.2 - config-chain: 1.1.13 - - '@polka/url@1.0.0-next.28': {} - - '@prisma/client@5.22.0(prisma@5.21.1)': - optionalDependencies: - prisma: 5.21.1 - - '@prisma/debug@5.21.1': {} - - '@prisma/debug@5.22.0': {} - - '@prisma/engines-version@5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36': {} - - '@prisma/engines@5.21.1': - dependencies: - '@prisma/debug': 5.21.1 - '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 - '@prisma/fetch-engine': 5.21.1 - '@prisma/get-platform': 5.21.1 - - '@prisma/fetch-engine@5.21.1': - dependencies: - '@prisma/debug': 5.21.1 - '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 - '@prisma/get-platform': 5.21.1 - - '@prisma/generator-helper@5.22.0': - dependencies: - '@prisma/debug': 5.22.0 - - '@prisma/get-platform@5.21.1': - dependencies: - '@prisma/debug': 5.21.1 - - '@radix-ui/colors@3.0.0': {} - - '@radix-ui/number@1.1.0': {} - - '@radix-ui/primitive@1.1.0': {} - - '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 - - '@radix-ui/react-context@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 - - '@radix-ui/react-context@1.1.1(@types/react@18.2.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 - - '@radix-ui/react-dialog@1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.8)(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.2.8)(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-direction@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 - - '@radix-ui/react-dismissable-layer@1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-focus-guards@1.1.1(@types/react@18.2.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 - - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-icons@1.3.0(react@18.3.1)': - dependencies: - react: 18.3.1 - - '@radix-ui/react-id@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 - - '@radix-ui/react-popover@1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.8)(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.2.8)(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-portal@1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-presence@1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-select@2.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/number': 1.1.0 - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.0(@types/react@18.2.8)(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-separator@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-slot@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 - - '@radix-ui/react-toggle-group@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@pnpm/network.ca-file@1.0.2': dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-context': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 + graceful-fs: 4.2.10 - '@radix-ui/react-toggle@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@pnpm/npm-conf@2.3.1': dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 + '@pnpm/config.env-replace': 1.1.0 + '@pnpm/network.ca-file': 1.0.2 + config-chain: 1.1.13 - '@radix-ui/react-toolbar@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-context': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-separator': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-toggle-group': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-tooltip@1.1.3(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-context': 1.1.1(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.2(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.2.8)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 + '@polka/url@1.0.0-next.28': {} - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - react: 18.3.1 + '@prisma/client@5.22.0(prisma@5.21.1)': optionalDependencies: - '@types/react': 18.2.8 + prisma: 5.21.1 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 + '@prisma/debug@5.21.1': {} - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 + '@prisma/debug@5.22.0': {} - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.2.8)(react@18.3.1)': - dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 + '@prisma/engines-version@5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36': {} - '@radix-ui/react-use-previous@1.1.0(@types/react@18.2.8)(react@18.3.1)': + '@prisma/engines@5.21.1': dependencies: - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 + '@prisma/debug': 5.21.1 + '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 + '@prisma/fetch-engine': 5.21.1 + '@prisma/get-platform': 5.21.1 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.2.8)(react@18.3.1)': + '@prisma/fetch-engine@5.21.1': dependencies: - '@radix-ui/rect': 1.1.0 - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 + '@prisma/debug': 5.21.1 + '@prisma/engines-version': 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 + '@prisma/get-platform': 5.21.1 - '@radix-ui/react-use-size@1.1.0(@types/react@18.2.8)(react@18.3.1)': + '@prisma/generator-helper@5.22.0': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.2.8)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.2.8 + '@prisma/debug': 5.22.0 - '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@prisma/get-platform@5.21.1': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.2.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.8 - '@types/react-dom': 18.3.1 + '@prisma/debug': 5.21.1 - '@radix-ui/rect@1.1.0': {} + '@radix-ui/colors@3.0.0': {} '@react-aria/breadcrumbs@3.5.19(react@18.3.1)': dependencies: @@ -15642,16 +13859,6 @@ snapshots: - vue-template-compiler - webpack - '@react-hook/intersection-observer@3.1.2(react@18.3.1)': - dependencies: - '@react-hook/passive-layout-effect': 1.2.1(react@18.3.1) - intersection-observer: 0.10.0 - react: 18.3.1 - - '@react-hook/passive-layout-effect@1.2.1(react@18.3.1)': - dependencies: - react: 18.3.1 - '@react-stately/calendar@3.6.0(react@18.3.1)': dependencies: '@internationalized/date': 3.6.0 @@ -16676,8 +14883,6 @@ snapshots: '@sqltools/formatter@1.2.5': {} - '@stitches/core@1.2.8': {} - '@surma/rollup-plugin-off-main-thread@2.2.3': dependencies: ejs: 3.1.10 @@ -17078,10 +15283,6 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@types/acorn@4.0.6': - dependencies: - '@types/estree': 1.0.6 - '@types/d3-array@3.2.1': {} '@types/d3-axis@3.0.6': @@ -17422,10 +15623,6 @@ snapshots: dependencies: acorn: 8.14.0 - acorn-jsx@5.3.2(acorn@8.13.0): - dependencies: - acorn: 8.13.0 - acorn-walk@8.3.4: dependencies: acorn: 8.13.0 @@ -17486,8 +15683,6 @@ snapshots: amdefine@1.0.1: optional: true - anser@2.3.0: {} - ansi-escapes@7.0.0: dependencies: environment: 1.1.0 @@ -17540,10 +15735,6 @@ snapshots: argv-formatter@1.0.0: {} - aria-hidden@1.2.4: - dependencies: - tslib: 2.8.0 - array-buffer-byte-length@1.0.1: dependencies: call-bind: 1.0.7 @@ -17887,8 +16078,6 @@ snapshots: classnames@2.5.1: {} - clean-set@1.1.2: {} - clean-stack@2.2.0: {} clean-stack@5.2.0: @@ -17933,13 +16122,6 @@ snapshots: clsx@2.1.1: {} - cm6-theme-basic-light@0.2.0(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/highlight@1.2.1): - dependencies: - '@codemirror/language': 6.10.3 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - '@lezer/highlight': 1.2.1 - co-body@6.2.0: dependencies: '@hapi/bourne': 3.0.0 @@ -17950,18 +16132,6 @@ snapshots: code-block-writer@12.0.0: {} - codemirror@6.0.1(@lezer/common@1.2.3): - dependencies: - '@codemirror/autocomplete': 6.18.1(@codemirror/language@6.10.3)(@codemirror/state@6.4.1)(@codemirror/view@6.34.1)(@lezer/common@1.2.3) - '@codemirror/commands': 6.7.0 - '@codemirror/language': 6.10.3 - '@codemirror/lint': 6.8.2 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.34.1 - transitivePeerDependencies: - - '@lezer/common' - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -18018,8 +16188,6 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - compute-scroll-into-view@2.0.4: {} - compute-scroll-into-view@3.1.0: {} concat-map@0.0.1: {} @@ -18124,8 +16292,6 @@ snapshots: create-require@1.1.1: {} - crelt@1.0.6: {} - cron@3.1.7: dependencies: '@types/luxon': 3.4.2 @@ -18424,11 +16590,6 @@ snapshots: d3-transition: 3.0.1(d3-selection@3.0.0) d3-zoom: 3.0.0 - d@1.0.2: - dependencies: - es5-ext: 0.10.64 - type: 2.7.3 - dagre-d3-es@7.0.11: dependencies: d3: 7.9.0 @@ -18559,8 +16720,6 @@ snapshots: diff@4.0.2: {} - diff@5.2.0: {} - dingbat-to-unicode@1.0.1: {} dir-glob@3.0.1: @@ -18625,15 +16784,6 @@ snapshots: dotenv@16.4.5: {} - downshift@7.6.2(react@18.3.1): - dependencies: - '@babel/runtime': 7.25.7 - compute-scroll-into-view: 2.0.4 - prop-types: 15.8.1 - react: 18.3.1 - react-is: 17.0.2 - tslib: 2.8.0 - drange@1.1.1: {} duck@0.1.12: @@ -18788,28 +16938,8 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 - es5-ext@0.10.64: - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.4 - esniff: 2.0.1 - next-tick: 1.1.0 - - es6-iterator@2.0.3: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - es6-symbol: 3.1.4 - - es6-symbol@3.1.4: - dependencies: - d: 1.0.2 - ext: 1.7.0 - escalade@3.2.0: {} - escape-carriage@1.3.1: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} @@ -18838,13 +16968,6 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - esniff@2.0.1: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - event-emitter: 0.3.5 - type: 2.7.3 - esprima@1.0.4: {} esprima@4.0.1: @@ -18862,11 +16985,6 @@ snapshots: estree-util-is-identifier-name@3.0.0: {} - estree-util-visit@2.0.0: - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/unist': 3.0.3 - estree-walker@0.6.1: {} estree-walker@1.0.1: {} @@ -18877,11 +16995,6 @@ snapshots: eve@0.5.4: {} - event-emitter@0.3.5: - dependencies: - d: 1.0.2 - es5-ext: 0.10.64 - event-target-shim@5.0.1: {} eventemitter3@4.0.7: {} @@ -18931,10 +17044,6 @@ snapshots: expr-eval@2.0.2: {} - ext@1.7.0: - dependencies: - type: 2.7.3 - extend@3.0.2: {} faiss-node@0.5.1: @@ -18973,10 +17082,6 @@ snapshots: dependencies: format: 0.2.2 - fault@2.0.1: - dependencies: - format: 0.2.2 - figures@2.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -19683,8 +17788,6 @@ snapshots: internmap@2.0.3: {} - intersection-observer@0.10.0: {} - intl-messageformat@10.7.0: dependencies: '@formatjs/ecma402-abstract': 2.2.0 @@ -19862,8 +17965,6 @@ snapshots: isexe@2.0.0: {} - isomorphic.js@0.2.5: {} - issue-parser@7.0.1: dependencies: lodash.capitalize: 4.2.1 @@ -20073,10 +18174,6 @@ snapshots: lexical@0.17.1: {} - lib0@0.2.98: - dependencies: - isomorphic.js: 0.2.5 - lie@3.3.0: dependencies: immediate: 3.0.6 @@ -20208,8 +18305,6 @@ snapshots: luxon@3.4.4: {} - lz-string@1.5.0: {} - magic-string@0.25.9: dependencies: sourcemap-codec: 1.4.8 @@ -20335,19 +18430,6 @@ snapshots: d3-flextree: 2.1.2 markmap-common: 0.17.1 - mdast-util-directive@3.0.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.4 - unist-util-visit-parents: 6.0.1 - transitivePeerDependencies: - - supports-color - mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.4 @@ -20372,17 +18454,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@2.0.1: - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - escape-string-regexp: 5.0.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - micromark-extension-frontmatter: 2.0.0 - transitivePeerDependencies: - - supports-color - mdast-util-gfm-autolink-literal@2.0.0: dependencies: '@types/mdast': 4.0.4 @@ -20480,16 +18551,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx@3.0.0: - dependencies: - mdast-util-from-markdown: 2.0.1 - mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.1.3 - mdast-util-mdxjs-esm: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 @@ -20597,23 +18658,6 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-directive@3.0.2: - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - parse-entities: 4.0.1 - - micromark-extension-frontmatter@2.0.0: - dependencies: - fault: 2.0.1 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.0 @@ -20682,58 +18726,6 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-extension-mdx-expression@3.0.0: - dependencies: - '@types/estree': 1.0.6 - devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.2 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-extension-mdx-jsx@3.0.1: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.2 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - - micromark-extension-mdx-md@2.0.0: - dependencies: - micromark-util-types: 2.0.0 - - micromark-extension-mdxjs-esm@3.0.0: - dependencies: - '@types/estree': 1.0.6 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 - - micromark-extension-mdxjs@3.0.0: - dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) - micromark-extension-mdx-expression: 3.0.0 - micromark-extension-mdx-jsx: 3.0.1 - micromark-extension-mdx-md: 2.0.0 - micromark-extension-mdxjs-esm: 3.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-types: 2.0.0 - micromark-factory-destination@2.0.0: dependencies: micromark-util-character: 2.1.0 @@ -20747,18 +18739,6 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 - micromark-factory-mdx-expression@2.0.2: - dependencies: - '@types/estree': 1.0.6 - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 - micromark-factory-space@2.0.0: dependencies: micromark-util-character: 2.1.0 @@ -20811,17 +18791,6 @@ snapshots: micromark-util-encode@2.0.0: {} - micromark-util-events-to-acorn@2.0.2: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 - '@types/unist': 3.0.3 - devlop: 1.1.0 - estree-util-visit: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - micromark-util-html-tag-name@2.0.0: {} micromark-util-normalize-identifier@2.0.0: @@ -20878,8 +18847,6 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.53.0: {} - mime-types@2.1.35: dependencies: mime-db: 1.52.0 @@ -21065,8 +19032,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next-tick@1.1.0: {} - next@14.2.10(@babel/core@7.25.8)(@opentelemetry/api@1.4.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.10 @@ -21309,8 +19274,6 @@ snapshots: '@otplib/preset-default': 12.0.1 '@otplib/preset-v11': 12.0.1 - outvariant@1.4.0: {} - p-each-series@3.0.0: {} p-filter@4.1.0: @@ -22089,10 +20052,6 @@ snapshots: - supports-color - vue-template-compiler - react-devtools-inline@4.4.0: - dependencies: - es6-symbol: 3.1.4 - react-diff-view@3.2.1(react@18.3.1): dependencies: classnames: 2.5.1 @@ -22123,11 +20082,6 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 - react-error-boundary@3.1.4(react@18.3.1): - dependencies: - '@babel/runtime': 7.25.7 - react: 18.3.1 - react-error-overlay@6.0.11: {} react-file-icon@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -22148,10 +20102,6 @@ snapshots: react-resizable: 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resize-observer-polyfill: 1.5.1 - react-hook-form@7.53.0(react@18.3.1): - dependencies: - react: 18.3.1 - react-hot-toast@2.4.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: goober: 2.1.16(csstype@3.1.3) @@ -22191,8 +20141,6 @@ snapshots: react-is@16.13.1: {} - react-is@17.0.2: {} - react-markdown@9.0.1(@types/react@18.2.8)(react@18.3.1): dependencies: '@types/hast': 3.0.4 @@ -22899,13 +20847,6 @@ snapshots: stable@0.1.8: {} - static-browser-server@1.0.3: - dependencies: - '@open-draft/deferred-promise': 2.2.0 - dotenv: 16.4.5 - mime-db: 1.53.0 - outvariant: 1.4.0 - statuses@2.0.1: {} stream-browserify@3.0.0: @@ -22920,8 +20861,6 @@ snapshots: streamsearch@1.1.0: {} - strict-event-emitter@0.4.6: {} - string-hash@1.1.3: {} string-width@4.2.3: @@ -23013,8 +20952,6 @@ snapshots: style-inject@0.3.0: {} - style-mod@4.1.2: {} - style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 @@ -23397,8 +21334,6 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 - type@2.7.3: {} - typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 @@ -23524,10 +21459,6 @@ snapshots: unicorn-magic@0.3.0: {} - unidiff@1.0.4: - dependencies: - diff: 5.2.0 - unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -23569,10 +21500,6 @@ snapshots: dependencies: object-assign: 4.1.1 - unist-util-position-from-estree@2.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-position@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -23693,6 +21620,10 @@ snapshots: vary@1.1.2: {} + vditor@3.10.8: + dependencies: + diff-match-patch: 1.0.5 + vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 @@ -23727,8 +21658,6 @@ snapshots: vscode-uri@3.0.8: {} - w3c-keyname@2.2.8: {} - w3c-xmlserializer@4.0.0: dependencies: xml-name-validator: 4.0.0 @@ -24075,10 +22004,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yjs@13.6.20: - dependencies: - lib0: 0.2.98 - yn@3.1.1: {} yocto-queue@0.1.0: {} diff --git a/public/locales/ar/translation.json b/public/locales/ar/translation.json index 4e5a0318..aec3ac59 100644 --- a/public/locales/ar/translation.json +++ b/public/locales/ar/translation.json @@ -255,5 +255,91 @@ "user-custom-azureopenai-api-deployment-tooltip": " أدخل اسم النشر المراد استخدامه، مثل gpt-4o", "ollama-ai-model-tooltip": "أدخل اسم الطراز المراد استخدامه، مثل llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "نقطة نهاية أولاما الافتراضية هي http://localhost:11434", - "your-azure-openai-instance-name": "اسم مثيل Azure OpenAI الخاص بك" + "your-azure-openai-instance-name": "اسم مثيل Azure OpenAI الخاص بك", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "date-range": "", + "2fa-setup-successful": "تم إعداد المصادقة الثنائية بنجاح", + "both": "المحرر والمعاينة", + "code": "كود بلوك", + "copied": "تم النسخ", + "dark-mode": "الوضع الداكن", + "delete-column": "حذف الصف", + "delete-row": "حذف العمود", + "devtools": "أدوات المطورين", + "down": "أسفل", + "download-tip": "لا يدعم المتصفح وظيفة التنزيل", + "edit-mode": "تبديل وضع التحرير", + "emoji": "إيموجي", + "exclude-tag-from-embedding-desc": "حدد علامة لاستبعاد ملاحظاتها المرتبطة من إنشاء النواة التضمينية باستخدام الذكاء الصناعي", + "exclude-tag-from-embedding-tip": "سيتم استبعاد الملاحظات التي تحتوي على هذه العلامة من معالجة تضمين الذكاء الاصطناعي", + "file-type-error": "نوع الملف خاطىء", + "follow-system": "متابعة النظام", + "footnote-ref": "المرجع السفلي", + "fullscreen": "تبديل وضع ملء الشاشة", + "generate": "توليد", + "go-to-share-page": "انتقل إلى صفحة المشاركة", + "heading1": "العنوان ١", + "heading2": "العنوان ٢", + "heading3": "العنوان 3", + "heading4": "العنوان 4", + "heading5": "العنوان 5", + "heading6": "العنوان 6", + "headings": "العناوين", + "help": "مساعدة", + "image-url": "عنوان URL", + "import-done": "تم الاستيراد", + "import-from-bko": "استيراد من .bko", + "indent": "المسافة البادئة", + "info": "معلومات", + "inline-code": "كود مضمن", + "insert-column-left": "ادخل 1 يسار", + "insert-column-right": "أدخل 1 يمين", + "insert-row-above": "أدخل 1 أعلى", + "insert-row-below": "أدخل 1 أسفل", + "instant-rendering": "التقديم الفوري", + "light-mode": "وضع النور", + "line": "خط", + "link": "رابط", + "link-ref": "رابط المرجع", + "list": "قائمة", + "local-file-system": "نظام الملفات المحلي", + "more": "أكثر", + "name-empty": "الاسم فارغ", + "new-version-available": "الإصدار الجديد متاح", + "notes-imported-by-other-means-may-not-have-embedded-vectors": "قد لا تحتوي الملاحظات المستوردة بطرق أخرى على متجهات مضمنة", + "object-storage": "تخزين الكائنات", + "order-by-create-time": "ترتيب حسب وقت الإنشاء", + "ordered-list": "قائمة الطلبات", + "outdent": "نسبة العجز", + "outline": "مخطط/ تفصيلات", + "over": "فوق", + "performance-tip": "المعاينة في الوقت الحقيقي تتطلب ${x} ميلِّ ثانية، يمكنك إغلاقها", + "preview": "معاينة", + "rebuild": "إعادة البناء", + "rebuild-embedding-index": "إعادة بناء فهرس التضمين", + "rebuilding-embedding-progress": "إعادة بناء تقدم التضمين", + "record": "بدء التسجيل / إنهاء التسجيل", + "record-tip": "الجهاز لا يدعم التسجيل", + "redo": "إعادة", + "remove": "إزالة", + "row": "صف", + "spin": "الدوران", + "split-view": "تقسيم العرض", + "storage": "تخزين", + "strike": "ضربة", + "table": "الطاولة", + "text-is-not-empty": "النص (غير فارغ)", + "time-format": "تنسيق الوقت", + "title": "العنوان", + "tooltip-text": "نص التلميح", + "undo": "تراجع", + "up": "فوق", + "update": "تحديث", + "upload-error": "خطأ في التحميل", + "uploading": "جاري التحميل...", + "version": "الإصدار", + "wysiwyg": "ما تراه هو ما تحصل عليه", + "search-tags": "البحث عن العلامات", + "insert-attachment-or-note": "الإرفاق بملف أو المذكرة؟" } diff --git a/public/locales/de/translation.json b/public/locales/de/translation.json index 7e58a2d3..5b662683 100644 --- a/public/locales/de/translation.json +++ b/public/locales/de/translation.json @@ -251,5 +251,82 @@ "user-custom-azureopenai-api-deployment-tooltip": " Geben Sie den zu verwendenden Einsatznamen ein, z. B. gpt-4o", "ollama-ai-model-tooltip": "Geben Sie den zu verwendenden Modellnamen ein, z. B. llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "Der Standard-Endpunkt von Ollama ist http://localhost:11434.", - "your-azure-openai-instance-name": "Der Name Ihrer Azure OpenAI-Instanz" + "your-azure-openai-instance-name": "Der Name Ihrer Azure OpenAI-Instanz", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "api-key": "", + "date-range": "", + "days-ago": "", + "enter-your-api-key": "", + "hours-ago": "", + "impoort-from-bko": "", + "minutes-ago": "", + "months-ago": "", + "superadmin": "", + "user": "", + "weeks-ago": "", + "years-ago": "", + "both": "Editor & Vorschau", + "code": "Code-Block", + "column": "Spalte", + "content-theme": "Vorschau des Inhaltsdesigns", + "dark-mode": "Dunkelmodus", + "delete-column": "Zeile löschen", + "delete-row": "Spalte löschen", + "down": "Nach unten", + "download-tip": "Der Browser unterstützt die Download-Funktion nicht.", + "edit-mode": "Umschalten in den Bearbeitungsmodus", + "edit-user": "Benutzer bearbeiten", + "emoji": "Emoji\n\nEmoji", + "exclude-tag-from-embedding": "Schließen Sie markierten Inhalt aus.", + "exclude-tag-from-embedding-desc": "Wählen Sie ein Tag aus, um die zugehörigen Notizen von der Generierung des KI-Einbettungsvektors auszuschließen.", + "exclude-tag-from-embedding-tip": "Notizen mit diesem Tag werden von der KI-Einbettungsverarbeitung ausgeschlossen.", + "file-type-error": "Dateityp ist fehlerhaft", + "follow-system": "Folgen Sie dem System.", + "footnote-ref": "Fußnotenverweis", + "fullscreen": "Vollbild umschalten", + "generate": "Generieren", + "heading1": "Überschrift 1", + "heading2": "Überschrift 2", + "heading3": "Überschrift 3", + "heading4": "Überschrift 4", + "heading5": "Überschrift 5", + "heading6": "Überschrift 6", + "headings": "Überschriften", + "help": "Hilfe", + "image-url": "Bild-URL", + "indent": "Einzug", + "info": "Informationen", + "inline-code": "Inline-Code", + "insert-column-left": "Fügen Sie 1 links ein.", + "insert-column-right": "Fügen Sie 1 richtig ein.", + "insert-row-above": "Fügen Sie 1 oben ein", + "insert-row-below": "Fügen Sie unten die 1 ein.", + "instant-rendering": "Echtzeit-Rendering", + "light-mode": "Hellmodus", + "line": "Linie", + "link": "Verbindung", + "link-ref": "Link-Verweis", + "list": "Liste", + "more": "Mehr", + "name-empty": "Der Name ist leer", + "order-by-create-time": "Sortieren nach Erstellungszeit", + "ordered-list": "Bestellliste", + "outdent": "Ausrücken", + "outline": "Gliederung", + "over": "über", + "performance-tip": "Echtzeitvorschau benötigt ${x}ms, du kannst sie schließen.", + "preview": "Vorschau", + "rebuild-embedding-index": "Erstellen Sie den Einbettungsindex neu", + "record": "Startaufnahme/Endaufnahme", + "record-tip": "Das Gerät unterstützt keine Aufzeichnung.", + "redo": "Neu machen", + "remove": "Entfernen", + "row": "Reihe", + "spin": "Drehen", + "split-view": "geteilte Ansicht", + "strike": "Schlag", + "table": "Tisch", + "search-tags": "Suchbegriffe", + "insert-attachment-or-note": "In Anhang oder Notiz einfügen?" } diff --git a/public/locales/en/translation.json b/public/locales/en/translation.json index ddae2665..564b9e3d 100644 --- a/public/locales/en/translation.json +++ b/public/locales/en/translation.json @@ -9,7 +9,6 @@ "search": "Search...", "i-have-a-new-idea": "I have a new idea...", "note": "Note", - "edit": "Edit", "multiple-select": "Multiple select", "convert-to": "Convert to", "delete": "Delete", @@ -23,13 +22,11 @@ "this-operation-removes-the-associated-label-and-cannot-be-restored-please-confirm": "This operation removes the associated label and cannot be restored please confirm", "add-tag": "Add Tag", "cancel": "Cancel", - "confirm": "Confirm", "no-data-here-well-then-time-to-write-a-note": "No data here~", "basic-information": "Basic Information", "name": "Name", "preference": "Preference", "theme": "Theme", - "language": "Language", "change-type": "Change type", "insert-hashtag": "Insert hashtag", "bulleted-list": "Bulleted list", @@ -74,7 +71,6 @@ "enter-your-username": "Enter your username", "save": "Save", "keep-sign-in": "Keep sign in", - "recording": "Recording", "required-items-cannot-be-empty": "Required items cannot be empty", "the-two-passwords-are-inconsistent": "The two passwords are inconsistent", "create-successfully-is-about-to-jump-to-the-login": "Create successfully, is about to jump to the login", @@ -182,8 +178,6 @@ "update-tag-name": "Update Tag Name", "thinking": "Thinking...", "select-all": "Select All", - "insert-before": "Insert content before", - "insert-after": "Insert content after", "ai-emoji": "Ai Emoji", "custom-icon": "Custom Icon", "ai-enhanced-search": "AI Enhanced Search", @@ -195,10 +189,7 @@ "source-code-mode": "Source Code Mode", "heading": "Heading", "paragraph": "Paragraph", - "quote": "Quote", - "bold": "Bold", "remove-bold": "Remove Bold", - "italic": "Italic", "remove-italic": "Remove Italic", "underline": "Underline", "remove-underline": "Remove Underline", @@ -224,7 +215,6 @@ "verify": "Verify", "2fa-setup-successful": "2FA setup successful", "about": "About", - "upload": "Upload", "days": "Days", "select-model-provider": "Select Model Provider", "select-model": "Select Model", @@ -237,7 +227,6 @@ "copy-share-link": "Copy share link", "share-and-copy-link": "Share and copy link", "endpoint": "Endpoint", - "export": "Export", "export-format": "Export Format", "time-range": "Time Range", "all": "All", @@ -265,5 +254,91 @@ "user-custom-azureopenai-api-deployment-tooltip": " Enter the deployment name to use, such as gpt-4o", "ollama-ai-model-tooltip": "Enter the model name to use, such as llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "Ollama default endpoint is http://localhost:11434", - "your-azure-openai-instance-name": "Your Azure OpenAI instance name" + "your-azure-openai-instance-name": "Your Azure OpenAI instance name", + "align-center": "Center", + "align-left": "Left", + "align-right": "Right", + "alternate-text": "Alternate text", + "bold": "Bold", + "both": "editor & preview", + "check": "Task List", + "close": "Close", + "code": "Code Block", + "code-theme": "Code Block Theme Preview", + "column": "Column", + "comment": "Comment", + "confirm": "Confirm", + "content-theme": "Content Theme Preview", + "copied": "Copied", + "copy": "Copy", + "delete-column": "Delete Row", + "delete-row": "Delete Column", + "devtools": "DevTools", + "down": "Down", + "download-tip": "The browser does not support the download function", + "edit": "Edit", + "edit-mode": "Toggle Edit Mode", + "emoji": "Emoji", + "export": "Export", + "file-type-error": "file type is error", + "footnote-ref": "Footnote Ref", + "fullscreen": "Toggle Fullscreen", + "generate": "Generating", + "headings": "Headings", + "heading1": "Heading 1", + "heading2": "Heading 2", + "heading3": "Heading 3", + "heading4": "Heading 4", + "heading5": "Heading 5", + "heading6": "Heading 6", + "help": "Help", + "image-url": "image URL", + "indent": "Indent", + "info": "Info", + "inline-code": "Inline Code", + "insert-after": "Insert line after", + "insert-before": "Insert line before", + "insert-column-left": "Insert 1 left", + "insert-column-right": "Insert 1 right", + "insert-row-above": "Insert 1 above", + "insert-row-below": "Insert 1 below", + "instant-rendering": "Instant Rendering", + "italic": "Italic", + "language": "Language", + "line": "Line", + "link": "Link", + "link-ref": "Link Ref", + "list": "List", + "more": "More", + "name-empty": "Name is empty", + "ordered-list": "Order List", + "outdent": "Outdent", + "outline": "Outline", + "over": "over", + "performance-tip": "Real-time preview requires ${x}ms, you can close it", + "preview": "Preview", + "quote": "Quote", + "record": "Start Record/End Record", + "record-tip": "The device does not support recording", + "recording": "recording...", + "redo": "Redo", + "remove": "Remove", + "row": "Row", + "spin": "Spin", + "split-view": "Split View", + "strike": "Strike", + "table": "Table", + "text-is-not-empty": "text(no empty)", + "title": "Title", + "tooltip-text": "Tooltip text", + "undo": "Undo", + "up": "Up", + "update": "Update", + "upload": "Upload image or file", + "upload-error": "upload error", + "uploading": "uploading...", + "wysiwyg": "WYSIWYG", + "search-tags": "Search Tags", + "insert-attachment-or-note": "Insert to attachment or note?", + "paste-to-note-or-attachment": "Are you sure to paste to note or attachment? Choose cancel to upload to attachement." } diff --git a/public/locales/es/translation.json b/public/locales/es/translation.json index 77dcad0b..a301b55d 100644 --- a/public/locales/es/translation.json +++ b/public/locales/es/translation.json @@ -251,5 +251,73 @@ "user-custom-azureopenai-api-deployment-tooltip": " Introduzca el nombre de despliegue que desea utilizar, por ejemplo gpt-4o", "ollama-ai-model-tooltip": "Introduce el nombre del modelo a utilizar, por ejemplo llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "El punto final por defecto de Ollama es http://localhost:11434", - "your-azure-openai-instance-name": "Nombre de su instancia de Azure OpenAI" + "your-azure-openai-instance-name": "Nombre de su instancia de Azure OpenAI", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "api-key": "", + "date-range": "", + "days-ago": "", + "enter-your-api-key": "", + "hours-ago": "", + "impoort-from-bko": "", + "minutes-ago": "", + "months-ago": "", + "superadmin": "", + "user": "", + "weeks-ago": "", + "years-ago": "", + "about": "Acerca de", + "alternate-text": "Texto alternativo", + "close": "Cerrar", + "code": "Bloque de código", + "code-theme": "Vista previa del tema de bloque de código", + "content-theme": "Vista previa del tema del contenido", + "delete-row": "Eliminar columna", + "devtools": "Herramientas de desarrollo", + "down": "Abajo", + "download-tip": "El navegador no es compatible con la función de descarga", + "edit-mode": "Alternar modo de edición", + "edit-user": "Editar usuario", + "emoji": "Emoji", + "exclude-tag-from-embedding": "Excluir contenido etiquetado", + "exclude-tag-from-embedding-desc": "Seleccione una etiqueta para excluir sus notas asociadas de la generación de vectores de incrustación de IA.", + "exclude-tag-from-embedding-tip": "Las notas con esta etiqueta serán excluidas del procesamiento de incrustación de IA.", + "file-type-error": "El tipo de archivo es error", + "follow-system": "Sistema de seguimiento", + "footnote-ref": "Nota al pie de página", + "fullscreen": "Alternar pantalla completa", + "generate": "Generando", + "heading1": "Título 1", + "heading2": "Encabezado 2", + "heading3": "Título 3", + "heading4": "Encabezado 4", + "heading5": "Encabezado 5", + "heading6": "Encabezado 6", + "headings": "Encabezados", + "help": "Ayuda", + "image-url": "URL de la imagen", + "indent": "Sangría", + "info": "Información", + "inline-code": "Código en línea", + "insert-column-left": "Insertar 1 izquierda", + "insert-column-right": "Inserte 1 a la derecha", + "insert-row-above": "Insertar 1 arriba", + "insert-row-below": "Inserte 1 debajo", + "instant-rendering": "Renderizado instantáneo", + "light-mode": "Modo claro", + "line": "Línea", + "link": "Enlace", + "link-ref": "Enlace de referencia", + "list": "Lista", + "more": "Más", + "name-empty": "El nombre está vacío", + "ordered-list": "Lista de pedidos", + "original-password": "Contraseña original", + "outdent": "Sangrar", + "outline": "Esquema", + "over": "sobre", + "performance-tip": "La vista previa en tiempo real requiere ${x} ms, puedes cerrarla", + "preview": "Vista previa", + "search-tags": "Buscar etiquetas", + "insert-attachment-or-note": "¿Insertar en el archivo adjunto o en la nota?" } diff --git a/public/locales/fr/translation.json b/public/locales/fr/translation.json index 009729ff..529060ed 100644 --- a/public/locales/fr/translation.json +++ b/public/locales/fr/translation.json @@ -253,5 +253,68 @@ "user-custom-azureopenai-api-deployment-tooltip": " Saisissez le nom de déploiement à utiliser, par exemple gpt-4o", "ollama-ai-model-tooltip": "Saisissez le nom du modèle à utiliser, par exemple llama3.2.", "ollama-default-endpoint-is-http-localhost-11434": "Le point de terminaison par défaut d'Ollama est http://localhost:11434", - "your-azure-openai-instance-name": "Nom de votre instance Azure OpenAI" + "your-azure-openai-instance-name": "Nom de votre instance Azure OpenAI", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "api-key": "", + "date-range": "", + "days-ago": "", + "enter-your-api-key": "", + "hours-ago": "", + "impoort-from-bko": "", + "minutes-ago": "", + "months-ago": "", + "superadmin": "", + "user": "", + "weeks-ago": "", + "years-ago": "", + "align-center": "Centre", + "both": "éditeur & aperçu", + "check": "Liste de tâches", + "close": "Fermer", + "code-theme": "Aperçu du thème de bloc de code", + "content-theme": "Aperçu du thème de contenu", + "dark-mode": "Mode sombre", + "delete-column": "Supprimer la ligne", + "delete-row": "Supprimer la colonne", + "devtools": "Outils de développement", + "download-tip": "Le navigateur ne prend pas en charge la fonction de téléchargement", + "edit-mode": "Activer/désactiver le mode d'édition", + "emoji": "Emoji", + "exclude-tag-from-embedding": "Exclure le contenu balisé", + "exclude-tag-from-embedding-desc": "Sélectionnez une balise pour exclure ses notes associées de la génération du vecteur d'encastrement de l'IA.", + "exclude-tag-from-embedding-tip": "Les notes avec cette étiquette seront exclues du traitement d'intégration de l'IA.", + "file-type-error": "Le type de fichier est une erreur.", + "follow-system": "Système de suivi", + "footnote-ref": "Référence de bas de page", + "fullscreen": "Activer/désactiver le mode plein écran", + "generate": "Génération", + "heading1": "Titre 1", + "heading2": "Sous-titre 2", + "heading3": "Titre 3", + "heading4": "Titre 4", + "heading5": "Niveau 5", + "heading6": "Niveau 6", + "headings": "Titres", + "help": "Aider", + "image-url": "URL de l'image", + "indent": "Retrait", + "info": "Informations", + "inline-code": "Code en ligne", + "insert-column-left": "Insérez 1 à gauche", + "insert-column-right": "Insérez 1 à droite", + "insert-row-above": "Insérez 1 ci-dessus", + "insert-row-below": "Insérez 1 ci-dessous", + "instant-rendering": "Rendu instantané", + "light-mode": "Mode clair", + "line": "Ligne", + "link": "Lien", + "link-ref": "Lien de référence", + "list": "Liste", + "more": "Plus", + "name-empty": "Le nom est vide", + "preview": "Aperçu", + "select-model": "Sélectionner un modèle", + "search-tags": "Balises de recherche", + "insert-attachment-or-note": "Insérer dans la pièce jointe ou la note ?" } diff --git a/public/locales/ja/translation.json b/public/locales/ja/translation.json index 6dbac246..8a7e2e55 100644 --- a/public/locales/ja/translation.json +++ b/public/locales/ja/translation.json @@ -250,5 +250,56 @@ "user-custom-azureopenai-api-deployment-tooltip": "使用するデプロイメント名(gpt-4o など)を入力します。", "ollama-ai-model-tooltip": "llama3.2のように、使用するモデル名を入力してください。", "ollama-default-endpoint-is-http-localhost-11434": "Ollama デフォルトのエンドポイントは http://localhost:11434", - "your-azure-openai-instance-name": "Azure OpenAIインスタンス名" + "your-azure-openai-instance-name": "Azure OpenAIインスタンス名", + "action": "行動", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "align-center": "センター", + "align-left": "左", + "align-right": "正しい", + "alternate-text": "代替テキスト", + "api-key": "", + "both": "エディター&プレビュー", + "check": "タスクリスト", + "close": "閉める", + "code": "コードブロック", + "code-theme": "コードブロックテーマプレビュー", + "column": "列", + "comment": "コメント", + "content-theme": "コンテンツテーマのプレビュー", + "copied": "コピーされました", + "copy": "コピー", + "dark-mode": "ダークモード", + "date-range": "", + "days-ago": "", + "delete-column": "行を削除する", + "delete-row": "列を削除します。", + "devtools": "DevTools\n\nデベロッパーツール", + "down": "ダウン", + "download-tip": "ブラウザはダウンロード機能をサポートしていません", + "edit-mode": "編集モードの切り替え", + "emoji": "絵文字", + "enter-your-api-key": "", + "exclude-tag-from-embedding": "タグ付けされたコンテンツを除外します。", + "exclude-tag-from-embedding-desc": "AI埋め込みベクトル生成から関連するノートを排除するためのタグを選択します。", + "exclude-tag-from-embedding-tip": "このタグが付けられたノートは、AIの埋め込み処理から除外されます。", + "follow-system": "システムに従う", + "footnote-ref": "脚注参照", + "fullscreen": "フルスクリーン切り替え", + "generate": "生成します", + "heading1": "見出し1", + "heading2": "見出し2", + "headings": "見出し", + "help": "助けてください", + "hours-ago": "", + "image-url": "画像のURL", + "impoort-from-bko": "", + "import-done": "インポートが完了しました。", + "indent": "インデント", + "info": "情報", + "inline-code": "インラインコード", + "insert-column-left": "1 を挿入左", + "insert-column-right": "1を右に挿入", + "search-tags": "検索タグ", + "insert-attachment-or-note": "添付ファイルに挿入しますか、それともメモに書き込みますか?" } diff --git a/public/locales/ko/translation.json b/public/locales/ko/translation.json index 6d11e529..b26a3971 100644 --- a/public/locales/ko/translation.json +++ b/public/locales/ko/translation.json @@ -252,5 +252,76 @@ "user-custom-azureopenai-api-deployment-tooltip": " 사용할 배포 이름(예: gpt-4o)을 입력합니다.", "ollama-ai-model-tooltip": "사용할 모델 이름(예: llama3.2)을 입력합니다.", "ollama-default-endpoint-is-http-localhost-11434": "Ollama 기본 엔드포인트는 http://localhost:11434", - "your-azure-openai-instance-name": "Azure OpenAI 인스턴스 이름" + "your-azure-openai-instance-name": "Azure OpenAI 인스턴스 이름", + "2fa-setup-successful": "2단계 인증 설정이 성공적으로 완료되었습니다.", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "align-center": "중앙", + "align-left": "왼쪽", + "align-right": "옳다", + "alternate-text": "대체 텍스트", + "api-key": "", + "both": "편집기 및 미리 보기", + "check": "작업 목록", + "close": "가까운", + "code": "코드 블록", + "code-theme": "코드 블록 테마 미리보기", + "comment": "의견", + "content-theme": "콘텐츠 테마 미리보기", + "copied": "복사된", + "copy": "복사하기", + "dark-mode": "다크 모드", + "date-range": "", + "days-ago": "", + "delete-column": "행 삭제", + "delete-row": "열 삭제", + "devtools": "개발자 도구", + "down": "아래", + "download-tip": "브라우저는 다운로드 기능을 지원하지 않습니다.", + "edit-mode": "편집 모드 전환", + "emoji": "이모지", + "enter-your-api-key": "", + "exclude-tag-from-embedding": "태그가 지정된 콘텐츠 제외", + "exclude-tag-from-embedding-desc": "AI 임베딩 벡터 생성에서 해당 노트를 제외하려는 태그를 선택하세요.", + "exclude-tag-from-embedding-tip": "이 태그가 있는 노트는 AI 임베딩 처리에서 제외됩니다.", + "file-type-error": "파일 유형이 오류입니다.", + "follow-system": "시스템 따르기", + "footnote-ref": "각주 참조", + "fullscreen": "전체 화면 전환", + "generate": "생성하기", + "heading1": "제목 1", + "heading2": "제목 2", + "heading3": "제목 3", + "heading4": "4단계 제목", + "heading5": "제목 5", + "heading6": "6단계", + "headings": "제목", + "help": "도와주세요", + "hours-ago": "", + "image-url": "이미지 URL", + "impoort-from-bko": "", + "indent": "들여쓰기", + "info": "정보", + "inline-code": "인라인 코드", + "insert-column-left": "1개를 왼쪽에 삽입하세요.", + "insert-column-right": "1을 삽입하십시오.", + "insert-row-above": "위에 1을 삽입하세요.", + "insert-row-below": "아래에 1을 삽입하세요.", + "instant-rendering": "즉각적 렌더링", + "light-mode": "라이트 모드", + "line": "라인", + "link": "링크", + "link-ref": "링크 참조", + "list": "목록", + "minutes-ago": "", + "months-ago": "", + "more": "더 많은", + "name-empty": "이름이 비어 있습니다.", + "ordered-list": "주문 목록", + "outdent": "내어쓰다", + "outline": "개요", + "over": "넘어서다", + "performance-tip": "실시간 미리보기에는 ${x}ms가 필요합니다. 닫을 수 있습니다.", + "search-tags": "검색 태그", + "insert-attachment-or-note": "첨부 파일이나 메모로 삽입하시겠습니까?" } diff --git a/public/locales/pt/translation.json b/public/locales/pt/translation.json index 5c2e6cf9..7ebb7310 100644 --- a/public/locales/pt/translation.json +++ b/public/locales/pt/translation.json @@ -249,5 +249,7 @@ "user-custom-azureopenai-api-deployment-tooltip": " Introduza o nome da implantação a utilizar, por exemplo, gpt-4o", "ollama-ai-model-tooltip": "Introduza o nome do modelo a utilizar, por exemplo, llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "O ponto de extremidade predefinido da Ollama é http://localhost:11434", - "your-azure-openai-instance-name": "O nome da sua instância do Azure OpenAI" + "your-azure-openai-instance-name": "O nome da sua instância do Azure OpenAI", + "search-tags": "Tags de pesquisa", + "insert-attachment-or-note": "Inserir em anexo ou nota?" } diff --git a/public/locales/ru/translation.json b/public/locales/ru/translation.json index d40d7d9c..5b00ebe2 100644 --- a/public/locales/ru/translation.json +++ b/public/locales/ru/translation.json @@ -254,5 +254,7 @@ "user-custom-azureopenai-api-deployment-tooltip": " Введите имя развертывания, которое необходимо использовать, например gpt-4o", "ollama-ai-model-tooltip": "Введите имя модели, которое необходимо использовать, например llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "Конечная точка Ollama по умолчанию - http://localhost:11434.", - "your-azure-openai-instance-name": "Имя вашего экземпляра Azure OpenAI" + "your-azure-openai-instance-name": "Имя вашего экземпляра Azure OpenAI", + "search-tags": "Поиск тегов", + "insert-attachment-or-note": "Вставить во вложение или заметку?" } diff --git a/public/locales/tr/translation.json b/public/locales/tr/translation.json index 4d525a5c..709f7396 100644 --- a/public/locales/tr/translation.json +++ b/public/locales/tr/translation.json @@ -58,5 +58,216 @@ "user-custom-azureopenai-api-deployment-tooltip": " Kullanılacak dağıtım adını girin, örneğin gpt-4o", "ollama-ai-model-tooltip": "Kullanılacak model adını girin, örneğin llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "Ollama varsayılan uç noktası http://localhost:11434", - "your-azure-openai-instance-name": "Azure OpenAI örnek adınız" + "your-azure-openai-instance-name": "Azure OpenAI örnek adınız", + "2fa-setup-successful": "2FA kurulumu başarılı", + "about": "Hakkında", + "accept": "Kabul etmek", + "access-key-secret": "Erişim anahtarı gizli", + "action": "Eylem", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "ai-tag": "Yapay Zeka Etiketi", + "all": "Hepsi", + "allow-register": "Kayıt izni ver", + "already-have-an-account-direct-login": "Zaten bir hesabınız mı var? Doğrudan giriş yapın", + "alternate-text": "Yedek metin", + "always-hide-toolbar": "Her zaman gizle", + "always-show-toolbar": "Her zaman göster", + "api-key": "", + "apply-filter": "Filtre uygula", + "article": "Makale", + "block-type-select-placeholder": "Blog Türü", + "bold": "Koyu", + "both": "düzenleyici ve önizleme", + "bucket": "Kova", + "camera": "Kamera", + "card-columns": "Kart Sütunları", + "chars": "Karakterler", + "check": "Görev Listesi", + "close": "Kapatmak", + "code": "Kod Bloğu", + "code-theme": "Kod Blok Teması Önizlemesi", + "column": "Sütun", + "columns-for-different-devices": "Farklı cihazlar için sütunlar", + "comment": "Yorum", + "confirm-your-password": "Şifrenizi onaylayın", + "content-rest-of-the-text-if-the-text-is-longer-than-the-length": "İçerik (metnin geri kalanı, eğer metin uzunsa)", + "content-theme": "İçerik Tema Önizlemesi", + "copied": "Kopyalandı", + "copy": "Kopyala", + "copy-share-link": "Paylaşım bağlantısını kopyala", + "created-at": "Oluşturun At", + "date-range": "", + "days": "Günler", + "days-ago": "", + "desktop": "Masaüstü", + "enter-your-api-key": "", + "exporting": "İhracat yapılıyor...", + "heading2": "Başlık 2", + "heading3": "Başlık 3", + "heading4": "Başlık 4", + "heading5": "Başlık 5", + "heading6": "Başlık 6", + "headings": "Başlıklar", + "hello": "merhaba", + "help": "Yardım", + "hide-toolbar-on-mobile": "Mobilde Gizle", + "hours-ago": "", + "if-you-have-a-lot-of-notes-you-may-consume-a-certain-number-of-tokens": "Eğer çok fazla notunuz varsa, belirli bir sayıda jeton tüketebilirsiniz.", + "image-url": "görsel URL'ı", + "impoort-from-bko": "", + "import-done": "İthalat yapıldı", + "import-from-bko": ".bko'dan içe aktar", + "import-from-memos-memos_prod-db": "Memos'dan (memos_prod.db) içe aktar", + "in-addition-to-the-gpt-model-there-is-a-need-to-ensure-that-it-is-possible-to-invoke-the": "GPT modelinin yanı sıra, onu çağırmanın mümkün olduğundan emin olmak gerekmektedir.", + "in-progress": "Devam ediyor...", + "indent": "Girinti", + "info": "Bilgi", + "insert-before": "Satır eklemeden önce", + "local-file-system": "Yerel Dosya Sistemi", + "medium-device-card-columns": "Orta Cihaz Kartı Sütunları", + "minutes-ago": "", + "mobile": "Mobil", + "months-ago": "", + "new-version-detected-click-to-get-the-latest-version": "Yeni sürüm tespit edildi, en son sürümü almak için tıklayın 🎉", + "no-data-here-well-then-time-to-write-a-note": "Burada veri yok~", + "no-tag": "Etiket Yok", + "no-tag-found": "Etiket bulunamadı", + "not-a-bko-file": "bko dosyası değil", + "note": "Not", + "notes-imported-by-other-means-may-not-have-embedded-vectors": "Başka yollarla içe aktarılan notlarda gömülü vektörler bulunamaz", + "numbered-list": "Numaralı liste", + "object-storage": "Nesne depolama", + "open-your-third-party-authentication-app-and-enter-the-codeshown-on-screen": "Üçüncü taraf kimlik doğrulama uygulamanızı açın ve ekranda gösterilen kodu girin.", + "operation-failed": "İşlem başarısız oldu.", + "or-enter-this-code-manually": "Ya da bu kodu manuel olarak girin:", + "order-by-create-time": "Oluşturma zamanına göre sırala", + "ordered-list": "Sipariş Listesi", + "original-password": "Orijinal Şifre", + "outdent": "Girinti dışı bırakma", + "outline": "Taslak", + "over": "üzerinde", + "page-size": "Sayfa Boyutu", + "paragraph": "Paragraf", + "password": "şifre", + "performance-tip": "Gerçek zamanlı önizleme ${x} ms gerektiriyor, kapatabilirsiniz.", + "preference": "Tercih", + "preview": "Önizleme", + "preview-mode": "Önizleme Modu", + "public": "Halk", + "quote": "Alıntı", + "rebuild": "Yeniden inşa etmek", + "rebuild-embedding-index": "Gömme Dizini Yeniden Oluştur", + "rebuilding-embedding-progress": "Gömme Yeniden İnşa Etmek İlerlemesi", + "record": "Kaydı Başlat/Kaydı Sonlandır", + "record-tip": "Cihaz kayıt desteklemez", + "recording": "kayıt yapılıyor...", + "recovery": "İyileşmek", + "redo": "Yeniden yapmak", + "reference": "Referans", + "reference-note": "Referans Notu", + "region": "Bölge", + "reject": "Reddetmek", + "remove": "Kaldır", + "remove-bold": "Kalınları kaldır", + "remove-italic": "İtalik Kaldır", + "remove-underline": "Altını çıkar", + "required-items-cannot-be-empty": "Gerekli olan öğeler boş olamaz.", + "reset": "Sıfırla", + "rest-user-password": "Kullanıcı şifresini sıfırla", + "reviewed": "Gözden geçirildi.", + "role": "Rol", + "row": "Sıra", + "running": "Koşu", + "save": "Koruyun", + "scan-this-qr-code-with-your-authenticator-app": "Bu QR kodu kimlik doğrulama uygulamanızla tarayın.", + "schedule": "PROGRAM", + "schedule-archive-blinko": "Program Arşivi Blinko", + "schedule-back-up": "Yedekleme Planı", + "schedule-task": "Görev Zamanlaması", + "select-a-columns": "Bir sütun seçin.", + "select-a-time-format": "Bir zaman formatı seçin", + "select-all": "Tümünü Seç", + "select-block-type": "Blok Türünü Seç", + "select-model": "Model Seçiniz", + "select-model-provider": "Model Sağlayıcısını Seçin", + "select-tags": "Etiketleri Seç", + "select-toolbar-visibility": "Araç çubuğu görünürlüğünü seçin.", + "set-as-public": "Halka Ayarla", + "share-and-copy-link": "Paylaş ve bağlantıyı kopyala", + "show-less": "Daha Az Göster", + "show-more": "Daha Fazla Göster", + "show-navigation-bar-on-mobile": "Mobil cihazlarda gizli gezinti çubuğu", + "sign-in": "Giriş yap", + "sign-up": "Kaydol", + "small-device-card-columns": "Küçük Cihaz Kartı Sütunları", + "source-code": "Kaynak Kodu", + "source-code-mode": "Kaynak Kod Modu", + "speech-recognition-requires-the-use-of": "Konuşma tanıma kullanımını gerektirir.", + "spin": "Döndürmek", + "split-view": "Bölünmüş Görünüm", + "start-date": "Başlangıç Tarihi", + "status": "DURUM", + "stop": "Durdur", + "stopped": "Durduruldu", + "storage": "Depolama", + "strike": "Grev", + "superadmin": "", + "table": "Tablo", + "tablet": "Tablet", + "tag-status": "Etiket Durumu", + "text-fold-length": "Metin Katlama Uzunluğu", + "text-is-not-empty": "metin", + "the-two-passwords-are-inconsistent": "İki şifre uyuşmuyor", + "theme": "Tema", + "there-are-no-resources-yet-go-upload-them-now": "Henüz kaynak yok, şimdi onları yükle.", + "thinking": "Düşünüyorum...", + "this-operation-removes-the-associated-label-and-cannot-be-restored-please-confirm": "Bu işlem ilişkili etiketi kaldırır ve geri alınamaz, lütfen onaylayın.", + "this-operation-will-be-delete-resource-are-you-sure": "Bu işlem kaynağı silecek, emin misiniz?", + "time-format": "Zaman Biçimi", + "time-range": "Zaman Aralığı", + "title": "Başlık", + "title-first-line-of-the-text": "Başlık (metnin ilk satırı)", + "to": "\"Kime\"", + "toolbar-visibility": "Araç Çubuğu Görünürlüğü", + "tooltip-text": "Araç ipucu metni", + "top": "Tepe", + "top-k-description": "Sonunda döndürülecek belgelerin maksimum sayısı", + "total": "Toplam", + "trash": "Geridönüşüm Kutusu", + "two-factor-authentication": "İki Faktörlü Kimlik Doğrulama", + "underline": "Altı çizmek", + "undo": "Geri al", + "unset-as-public": "Genel olmaması.", + "up": "Yukarı", + "update": "Güncelleme", + "update-name": "İsmi Güncelle", + "update-successfully": "Başarıyla güncellendi", + "update-tag-icon": "Güncelleme etiket simgesi", + "update-tag-name": "Etiket Adını Güncelle", + "updated-at": "Güncelleme Saati", + "upload": "Resim veya dosya yükle", + "upload-error": "yükleyici hatası", + "upload-file": "Dosya yükle", + "uploading": "yükleniyor...", + "use-ai": "Yapay zekayı kullanın.", + "user": "", + "user-custom-openai-api-key": "Kullanıcı özel OpenAI Api Anahtarı", + "user-list": "Kullanıcı Listesi", + "user-or-password-error": "Kullanıcı adı veya şifre hatası", + "username": "Kullanıcı adı", + "verify": "Doğrula", + "version": "Sürüm", + "weeks-ago": "", + "when-exporting-memos_prod-db-please-close-the-memos-container-to-avoid-partial-loss-of-data": "memos_prod.db dışa aktarılırken, veri kaybının kısmen önlenmesi için memos konteynerını kapatınız.", + "width-less-than": "Genişlikten daha az", + "width-less-than-1024px": "1024 pikselden küçük genişlik", + "with-link": "Bağlantı ile", + "with-tags": "Etiketlerle", + "without-tags": "Etiketler olmadan", + "wysiwyg": "Ne gördüğün, onu alırsın.", + "years-ago": "", + "your-changes-have-been-saved": "Değişiklikleriniz kaydedildi!", + "search-tags": "Arama Etiketleri", + "insert-attachment-or-note": "Eklentiye mi yoksa notlara mı ekleyeceksiniz?" } diff --git a/public/locales/zh-TW/translation.json b/public/locales/zh-TW/translation.json index 14d282c8..4c2d879f 100644 --- a/public/locales/zh-TW/translation.json +++ b/public/locales/zh-TW/translation.json @@ -254,5 +254,104 @@ "user-custom-azureopenai-api-deployment-tooltip": "输入要使用的部署名称,如 gpt-4o", "ollama-ai-model-tooltip": "输入要使用的模型名称,如 llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "Ollama 默认端点为 http://localhost:11434", - "your-azure-openai-instance-name": "您的 Azure OpenAI 实例名称" + "your-azure-openai-instance-name": "您的 Azure OpenAI 实例名称", + "ai-generate-emoji": "", + "ai-generating-emoji": "", + "api-key": "", + "date-range": "", + "days-ago": "", + "enter-your-api-key": "", + "hours-ago": "", + "impoort-from-bko": "", + "minutes-ago": "", + "months-ago": "", + "superadmin": "", + "user": "", + "weeks-ago": "", + "years-ago": "", + "2fa-setup-successful": "2FA 设置成功", + "align-center": "中心", + "align-left": "左侧", + "align-right": "对", + "alternate-text": "备用文本", + "both": "编辑和预览", + "check": "任务清单", + "close": "关闭", + "code": "代码块", + "code-theme": "代码块主题预览", + "column": "专栏", + "comment": "评论", + "content-theme": "内容主题预览", + "copied": "复制的", + "copy": "复制", + "dark-mode": "黑暗模式", + "delete-column": "删除行", + "delete-row": "删除栏", + "devtools": "开发工具", + "down": "向下", + "download-tip": "浏览器不支持下载功能", + "edit-mode": "切换编辑模式", + "emoji": "表情符号", + "exclude-tag-from-embedding": "排除标记内容", + "exclude-tag-from-embedding-desc": "选择一个标记,将其相关笔记排除在人工智能嵌入向量生成之外", + "exclude-tag-from-embedding-tip": "带有此标记的笔记将被排除在人工智能嵌入处理之外", + "file-type-error": "文件类型错误", + "follow-system": "遵循系统", + "footnote-ref": "参考脚注", + "fullscreen": "切换全屏", + "generate": "生成", + "heading1": "标题 1", + "heading2": "标题 2", + "heading3": "标题 3", + "heading4": "标题 4", + "heading5": "标题 5", + "heading6": "标题 6", + "headings": "标题", + "help": "帮助", + "image-url": "图像 URL", + "indent": "缩进", + "info": "信息", + "inline-code": "内联代码", + "insert-column-left": "左侧插入 1", + "insert-column-right": "插入 1 个右", + "insert-row-above": "插入上文 1", + "insert-row-below": "下面插入 1", + "instant-rendering": "即时渲染", + "light-mode": "灯光模式", + "line": "线路", + "link": "链接", + "link-ref": "链接参考", + "list": "列表", + "more": "更多信息", + "name-empty": "名称为空", + "ordered-list": "订单列表", + "original-password": "原始密码", + "outdent": "外齿", + "outline": "概要", + "over": "越过", + "performance-tip": "实时预览需要 ${x}ms,您可以关闭它", + "preview": "预览", + "record": "开始记录/结束记录", + "record-tip": "设备不支持录音", + "redo": "重做", + "remove": "移除", + "role": "角色", + "row": "行", + "spin": "旋转", + "split-view": "分割视图", + "strike": "罢工", + "table": "表格", + "text-is-not-empty": "文本(无空)", + "title": "标题", + "tooltip-text": "工具提示文本", + "undo": "撤消", + "up": "向上", + "update": "更新", + "updated-at": "更新于", + "upload-error": "上传错误", + "uploading": "上传...", + "user-list": "用户列表", + "wysiwyg": "所见即所得", + "search-tags": "搜尋標籤", + "insert-attachment-or-note": "插入至附件或備註?" } diff --git a/public/locales/zh/translation.json b/public/locales/zh/translation.json index ced95384..464bc3a0 100644 --- a/public/locales/zh/translation.json +++ b/public/locales/zh/translation.json @@ -262,5 +262,97 @@ "user-custom-azureopenai-api-deployment-tooltip": "输入要使用的部署名称,如 gpt-4o", "ollama-ai-model-tooltip": "输入要使用的模型名称,如 llama3.2", "ollama-default-endpoint-is-http-localhost-11434": "Ollama 默认端点为 http://localhost:11434", - "your-azure-openai-instance-name": "您的 Azure OpenAI 实例名称" + "your-azure-openai-instance-name": "您的 Azure OpenAI 实例名称", + "api-key": "", + "days-ago": "", + "enter-your-api-key": "", + "hours-ago": "", + "impoort-from-bko": "", + "minutes-ago": "", + "months-ago": "", + "superadmin": "", + "user": "", + "weeks-ago": "", + "years-ago": "", + "2fa-setup-successful": "2FA设置成功", + "align-center": "中心", + "align-left": "左", + "align-right": "对", + "alternate-text": "备用文本", + "both": "编辑器和预览", + "check": "任务清单", + "close": "关闭", + "code": "代码块", + "code-theme": "代码块主题预览", + "content-theme": "内容主题预览", + "dark-mode": "深色模式", + "delete-column": "删除行", + "download-tip": "浏览器不支持下载功能", + "edit-mode": "切换编辑模式", + "emoji": "表情符号", + "file-type-error": "文件类型错误。", + "follow-system": "遵循系统", + "footnote-ref": "脚注参考", + "heading4": "标题4", + "heading5": "标题5", + "headings": "标题", + "image-url": "图像网址", + "info": "信息", + "insert-column-left": "插入1个左边", + "column": "专栏", + "comment": "评论", + "copied": "复制的", + "copy": "复制", + "delete-row": "删除栏", + "devtools": "开发工具", + "down": "向下", + "fullscreen": "切换全屏", + "generate": "生成", + "heading1": "标题 1", + "heading2": "标题 2", + "heading3": "标题 3", + "heading6": "标题 6", + "help": "帮助", + "indent": "缩进", + "inline-code": "内联代码", + "insert-column-right": "插入 1 个右", + "insert-row-above": "插入上文 1", + "insert-row-below": "下面插入 1", + "instant-rendering": "即时渲染", + "light-mode": "灯光模式", + "line": "线路", + "link": "链接", + "link-ref": "链接参考", + "list": "列表", + "more": "更多信息", + "name-empty": "名字为空", + "ordered-list": "订单列表", + "outdent": "凹排", + "outline": "大綱", + "over": "结束", + "performance-tip": "实时预览需要${x}毫秒,您可以关闭它。", + "preview": "预览", + "record": "开始记录/结束记录", + "record-tip": "该设备不支持录音", + "redo": "重做", + "remove": "移除", + "role": "角色", + "row": "行", + "spin": "旋转", + "split-view": "分屏显示", + "strike": "罢工", + "table": "桌子", + "text-is-not-empty": "文本(非空)", + "title": "标题", + "tooltip-text": "工具提示文本", + "undo": "撤销", + "up": "向上", + "update": "更新", + "updated-at": "更新于", + "upload-error": "上传错误", + "uploading": "上传中...", + "wysiwyg": "所见即所得", + "search-tags": "搜索标签", + "insert-attachment-or-note": "插入附件还是笔记中?", + "paste-to-note-or-attachment": "您是否要粘贴到笔记中?选择否将会作为附件上传。" } diff --git a/src/components/BlinkoAddButton/index.tsx b/src/components/BlinkoAddButton/index.tsx index ec639776..a860ce66 100644 --- a/src/components/BlinkoAddButton/index.tsx +++ b/src/components/BlinkoAddButton/index.tsx @@ -5,7 +5,7 @@ import { Icon } from '@iconify/react'; import { observer } from 'mobx-react-lite'; import { useMediaQuery } from 'usehooks-ts'; import { ShowEditBlinkoModel } from '../BlinkoRightClickMenu'; -import { FocusEditor, getEditorElements } from '../Common/Editor/editorUtils'; +import { FocusEditorFixMobile } from '../Common/Editor/editorUtils'; import { RootStore } from '@/store'; import { DialogStore } from '@/store/module/Dialog'; import { BlinkoAiChat } from '../BlinkoAi'; @@ -99,7 +99,7 @@ export const BlinkoAddButton = observer(() => { // Handle write action const handleWriteAction = () => { ShowEditBlinkoModel('2xl', 'create') - FocusEditor() + FocusEditorFixMobile() setShowActions(false); }; @@ -109,9 +109,9 @@ export const BlinkoAddButton = observer(() => { setIsDragging(false); if (activeButton === 'top') { - handleWriteAction(); + handleWriteAction(); } else if (activeButton === 'bottom') { - handleAiAction(); + handleAiAction(); } else if (activeButton !== 'none') { setShowActions(false); } diff --git a/src/components/BlinkoCard/index.tsx b/src/components/BlinkoCard/index.tsx index 46dc089f..9c4ff795 100644 --- a/src/components/BlinkoCard/index.tsx +++ b/src/components/BlinkoCard/index.tsx @@ -16,7 +16,7 @@ import { CardHeader } from "./cardHeader"; import { CardFooter } from "./cardFooter"; import { useHistoryBack } from "@/lib/hooks"; import { useRouter } from "next/router"; -import { FocusEditor } from "../Common/Editor/editorUtils"; +import { FocusEditorFixMobile } from "../Common/Editor/editorUtils"; interface BlinkoCardProps { blinkoItem: Note & { @@ -73,7 +73,7 @@ export const BlinkoCard = observer(({ blinkoItem, isShareMode = false }: BlinkoC if (isShareMode) return; blinko.curSelectedNote = _.cloneDeep(blinkoItem); ShowEditBlinkoModel(); - FocusEditor(true) + FocusEditorFixMobile() }; return ( diff --git a/src/components/BlinkoEditor/index.tsx b/src/components/BlinkoEditor/index.tsx index f6284744..4671f2a8 100644 --- a/src/components/BlinkoEditor/index.tsx +++ b/src/components/BlinkoEditor/index.tsx @@ -6,8 +6,6 @@ import dayjs from "@/lib/dayjs" import { useEffect, useRef } from "react" import { NoteType } from "@/server/types" import { useRouter } from "next/router" -import { FocusEditor } from "../Common/Editor/editorUtils" - type IProps = { mode: 'create' | 'edit', onSended?: () => void, diff --git a/src/components/BlinkoRightClickMenu/index.tsx b/src/components/BlinkoRightClickMenu/index.tsx index d5a807bf..8cd0239f 100644 --- a/src/components/BlinkoRightClickMenu/index.tsx +++ b/src/components/BlinkoRightClickMenu/index.tsx @@ -14,7 +14,7 @@ import { useEffect, useState } from "react"; import { NoteType } from "@/server/types"; import { useRouter } from "next/router"; import { AiStore } from "@/store/aiStore"; -import { FocusEditor } from "../Common/Editor/editorUtils"; +import { FocusEditorFixMobile } from "../Common/Editor/editorUtils"; export const ShowEditBlinkoModel = (size: string = '2xl', mode: 'create' | 'edit' = 'edit') => { const blinko = RootStore.Get(BlinkoStore) @@ -32,7 +32,8 @@ export const ShowEditBlinkoModel = (size: string = '2xl', mode: 'create' | 'edit } const handleEdit = (isDetailPage: boolean) => { - ShowEditBlinkoModel(isDetailPage ? '5xl' : '3xl') + ShowEditBlinkoModel(isDetailPage ? '5xl' : '5xl') + FocusEditorFixMobile() } const handleMultiSelect = () => { diff --git a/src/components/Common/Editor/EditorToolbar/extends.ts b/src/components/Common/Editor/EditorToolbar/extends.ts new file mode 100644 index 00000000..1fcecbdf --- /dev/null +++ b/src/components/Common/Editor/EditorToolbar/extends.ts @@ -0,0 +1,17 @@ +import { BlinkoStore } from "@/store/blinkoStore" +import { RootStore } from "@/store/root" + +export const Extend: IHintExtend[] = [{ + key: '#', + hint(value: string) { + const blinko = RootStore.Get(BlinkoStore) + return blinko.tagList?.value?.pathTags.filter(i => + i.toLowerCase().includes(value.toLowerCase().replace("#", '')) + ).map(i => { + return { + html: `#${i}`, + value:`#${i} ` + } + }) ?? [] + } +}] \ No newline at end of file diff --git a/src/components/Common/Editor/EditorToolbar/i18n.ts b/src/components/Common/Editor/EditorToolbar/i18n.ts new file mode 100644 index 00000000..f2968dc0 --- /dev/null +++ b/src/components/Common/Editor/EditorToolbar/i18n.ts @@ -0,0 +1,82 @@ +export const i18nEditor = (t) => { + return { + alignCenter: t('align-center'), + alignLeft: t('align-left'), + alignRight: t('align-right'), + alternateText: t('alternate-text'), + bold: t('bold'), + both: t('both'), + check: t('check'), + close: t('close'), + code: t('code'), + "code-theme": t('code-theme'), + column: t('column'), + comment: t('comment'), + confirm: t('confirm'), + "content-theme": t('content-theme'), + copied: t('copied'), + copy: t('copy'), + "delete-column": t('delete-column'), + "delete-row": t('delete-row'), + devtools: t('devtools'), + down: t('down'), + downloadTip: t('download-tip'), + edit: t('edit'), + "edit-mode": t('edit-mode'), + emoji: t('emoji'), + export: t('export'), + fileTypeError: t('file-type-error'), + footnoteRef: t('footnote-ref'), + fullscreen: t('fullscreen'), + generate: t('generate'), + headings: t('headings'), + help: t('help'), + imageURL: t('image-url'), + indent: t('indent'), + info: t('info'), + "inline-code": t('inline-code'), + "insert-after": t('insert-after'), + "insert-before": t('insert-before'), + insertColumnLeft: t('insert-column-left'), + insertColumnRight: t('insert-column-right'), + insertRowAbove: t('insert-row-above'), + insertRowBelow: t('insert-row-below'), + instantRendering: t('instant-rendering'), + italic: t('italic'), + language: t('language'), + line: t('line'), + link: t('link'), + linkRef: t('link-ref'), + list: t('list'), + more: t('more'), + nameEmpty: t('name-empty'), + "ordered-list": t('ordered-list'), + outdent: t('outdent'), + outline: t('outline'), + over: t('over'), + performanceTip: t('performance-tip'), + preview: t('preview'), + quote: t('quote'), + record: t('record'), + "record-tip": t('record-tip'), + recording: t('recording'), + redo: t('redo'), + remove: t('remove'), + row: t('row'), + spin: t('spin'), + splitView: t('split-view'), + strike: t('strike'), + table: t('table'), + textIsNotEmpty: t('text-is-not-empty'), + title: t('title'), + tooltipText: t('tooltip-text'), + undo: t('undo'), + up: t('up'), + update: t('update'), + upload: t('upload'), + uploadError: t('upload-error'), + uploading: t('uploading'), + wysiwyg: t('wysiwyg'), + } + +} \ No newline at end of file diff --git a/src/components/Common/Editor/EditorToolbar/index.ts b/src/components/Common/Editor/EditorToolbar/index.ts new file mode 100644 index 00000000..297fbde2 --- /dev/null +++ b/src/components/Common/Editor/EditorToolbar/index.ts @@ -0,0 +1,142 @@ +export const Emoji = { + name: 'emoji', + className: 'right', + icon: '', +} +//https://icon-sets.iconify.design/tabler/?icon-filter=italic + +export const Check = { + name: 'check', + className: 'right', + icon: '', +} + +export const Italic = { + name: 'italic', + className: 'right', + icon: '', +} + +export const Headings = { + name: 'headings', + className: 'right', + icon: '', +} + +export const Bold = { + name: 'bold', + className: 'right', + icon: '' +} + +export const Strike = { + name: 'strike', + className: 'right', + icon: '', +} + +export const Link = { + name: 'link', + className: 'right', + icon: '', +} + +export const List = { + name: 'list', + className: 'right', + icon: '', +} + +export const OrderedList = { + name: 'ordered-list', + className: 'right', + icon: '', +} + +export const Code = { + name: 'code', + className: 'right', + icon: '', +} + +export const InlineCode = { + name: 'inline-code', + className: 'right', + icon: '', +} + + +export const Fullscreen = { + name: 'fullscreen', + className: 'right', + icon: '', +} + +export const Outline = { + name: 'outline', + className: 'right', + icon: '', +} + +export const Export = { + name: 'export', + className: 'right', + icon: '', +} + +export const Preview = { + name: 'preview', + className: 'right', + icon: '', +} + +export const MorePC = { + name: 'more', + icon: '', + toolbar: [ + Outline, + Export, + Preview, + ], +} + +export const MoreMobile = { + name: 'more', + icon: '', + toolbar: [ + Headings, + Code, + InlineCode, + Outline, + Export, + Preview, + ], +} + +export const ToolbarPC = [ + Emoji, + Headings, + Bold, + Italic, + Strike, + Link, + List, + OrderedList, + Check, + Code, + InlineCode, + MorePC +] + +export const ToolbarMobile = [ + Emoji, + Bold, + Italic, + Strike, + Link, + List, + OrderedList, + Check, + MoreMobile +] +// emoji,headings,bold,italic,strike,|,line,quote,list,ordered-list,check ,outdent ,indent,code,inline-code,insert-after,insert-before ,undo,redo,upload,link,table,record,edit-mode,both,preview,fullscreen,outline,code-theme,content-theme,export, devtools,info,help,br \ No newline at end of file diff --git a/src/components/Common/Editor/Toolbar/HashtagButton/index.tsx b/src/components/Common/Editor/Toolbar/HashtagButton/index.tsx index 0f5bd3f0..917029e0 100644 --- a/src/components/Common/Editor/Toolbar/HashtagButton/index.tsx +++ b/src/components/Common/Editor/Toolbar/HashtagButton/index.tsx @@ -1,19 +1,113 @@ import { IconButton } from '../IconButton'; import { useTranslation } from 'react-i18next'; import { EditorStore } from '../../editorStore'; +import { useMediaQuery } from 'usehooks-ts'; +import { Input } from '@nextui-org/react'; +import { Popover, PopoverContent, PopoverTrigger } from '@nextui-org/react'; +import { ScrollArea } from '@/components/Common/ScrollArea'; +import { BlinkoStore } from '@/store/blinkoStore'; +import { RootStore } from '@/store/root'; +import { observer } from 'mobx-react-lite'; +import { useEffect } from 'react'; interface Props { store: EditorStore; + content: string; } -export const HashtagButton = ({ store }: Props) => { +export const HashtagButton = observer(({ store, content }: Props) => { const { t } = useTranslation(); - + const isPc = useMediaQuery('(min-width: 768px)') + const blinko = RootStore.Get(BlinkoStore) + const localStore = RootStore.Local(() => ({ + show: false, + setShow: (show: boolean) => { + localStore.show = show + }, + isSearchMode: true, + searchText: '', + selectedIndex: 0, + get tagList() { + if (!localStore.searchText) { + return blinko.tagList?.value?.pathTags + } + return blinko.tagList?.value?.pathTags.filter(i => + i.toLowerCase().includes(localStore.searchText.toLowerCase().replace("#", '')) + ) + }, + })) + + useEffect(() => { + localStore.searchText = '' + }, []) + return ( - store.inertHash()} - /> + //
store.inertHash()} + // onTouchEnd={e => { + // e.preventDefault() + // store.inertHash() + // }} + // > + // + //
+ + + +
{ + e.preventDefault() + e.stopPropagation() + localStore.setShow(true) + }}> + +
+
+ + { }}> + { + localStore.searchText = e.target.value + }} /> + + {localStore.tagList?.map((i, index) => ( +
{ + localStore.setShow(false) + store.vditor?.insertValue(`#${i} `, false) + store.focus() + }} + > + #{i} +
+ ))} + {localStore.tagList?.length == 0 && ( +
+ {t('no-tag-found')} +
+ )} +
+ +
+
+ ); -}; \ No newline at end of file +}); \ No newline at end of file diff --git a/src/components/Common/Editor/Toolbar/IconButton/index.tsx b/src/components/Common/Editor/Toolbar/IconButton/index.tsx index c684baec..d0d24c88 100644 --- a/src/components/Common/Editor/Toolbar/IconButton/index.tsx +++ b/src/components/Common/Editor/Toolbar/IconButton/index.tsx @@ -13,7 +13,7 @@ export const IconButton = observer(({ tooltip, icon, onClick, classNames, childr }, children?: any }) => { - return + return { onClick?.(e) }}> diff --git a/src/components/Common/Editor/Toolbar/ReferenceButton/index.tsx b/src/components/Common/Editor/Toolbar/ReferenceButton/index.tsx index 5ecfd036..d68e955e 100644 --- a/src/components/Common/Editor/Toolbar/ReferenceButton/index.tsx +++ b/src/components/Common/Editor/Toolbar/ReferenceButton/index.tsx @@ -7,6 +7,7 @@ import { ScrollArea } from '../../../ScrollArea' import { BlinkoStore } from '@/store/blinkoStore' import { RootStore } from '@/store' import { EditorStore } from '../../editorStore' +import { useEffect } from 'react' interface Props { store: EditorStore @@ -14,11 +15,12 @@ interface Props { export const ReferenceButton = observer(({ store }: Props) => { const blinko = RootStore.Get(BlinkoStore) - + useEffect(() => { + blinko.referenceSearchList.resetAndCall({ searchText: ' ' }) + }, []) return ( @@ -41,17 +43,16 @@ export const ReferenceButton = observer(({ store }: Props) => { className='w-full my-2 focus:outline-none focus:ring-0' placeholder='Search' size='sm' - endContent={} /> { blinko.referenceSearchList.callNextPage({}) }} > {blinko.referenceSearchList && blinko.referenceSearchList?.value?.map(i => { return (
{ if (store.references?.includes(i.id!)) return diff --git a/src/components/Common/Editor/Toolbar/SendButton/index.tsx b/src/components/Common/Editor/Toolbar/SendButton/index.tsx index 3dea3209..80f93997 100644 --- a/src/components/Common/Editor/Toolbar/SendButton/index.tsx +++ b/src/components/Common/Editor/Toolbar/SendButton/index.tsx @@ -2,7 +2,6 @@ import { Button } from '@nextui-org/react'; import { Icon } from '@iconify/react'; import { SendIcon } from '../../../Icons'; import { EditorStore } from '../../editorStore'; -import { FocusEditor } from '../../editorUtils'; import { useMediaQuery } from 'usehooks-ts'; import { Div } from '@/components/Common/Div'; import { observer } from 'mobx-react-lite'; diff --git a/src/components/Common/Editor/Toolbar/ViewModeButton/index.tsx b/src/components/Common/Editor/Toolbar/ViewModeButton/index.tsx index de9c4a61..bec2ffac 100644 --- a/src/components/Common/Editor/Toolbar/ViewModeButton/index.tsx +++ b/src/components/Common/Editor/Toolbar/ViewModeButton/index.tsx @@ -1,26 +1,52 @@ import { IconButton } from '../IconButton'; import { useTranslation } from 'react-i18next'; import { eventBus } from '@/lib/event'; -import { ViewMode } from '@mdxeditor/editor' +import { useMediaQuery } from 'usehooks-ts'; interface Props { - viewMode: ViewMode; + viewMode: "wysiwyg" | "sv" | "ir"; } export const ViewModeButton = ({ viewMode }: Props) => { const { t } = useTranslation(); + + const isPc = useMediaQuery('(min-width: 768px)') + + const getNextMode = () => { + if (!isPc) { + return viewMode === 'sv' ? 'ir' : 'sv'; + } else { + return viewMode === 'wysiwyg' ? 'sv' : 'wysiwyg'; + } + }; + + const getButtonIcon = () => { + if (!isPc) { + return viewMode === 'sv' ? 'tabler:source-code' : 'grommet-icons:form-view'; + } else { + return viewMode === 'wysiwyg' ? 'grommet-icons:form-view' : 'tabler:source-code'; + } + }; + + const getTooltipText = () => { + if (!isPc) { + return viewMode === 'sv' ? t('preview-mode') : t('source-code'); + } else { + return viewMode === 'wysiwyg' ? t('preview-mode') : t('source-code'); + } + }; return (
{ - const nextMode = viewMode === 'source' ? 'rich-text' : 'source'; + const nextMode = getNextMode(); eventBus.emit('editor:setViewMode', nextMode); }} > -
+
); }; \ No newline at end of file diff --git a/src/components/Common/Editor/editorPlugins.tsx b/src/components/Common/Editor/editorPlugins.tsx deleted file mode 100644 index 4b94b475..00000000 --- a/src/components/Common/Editor/editorPlugins.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { codeMirrorPlugin, diffSourcePlugin, headingsPlugin, imagePlugin, linkPlugin, realmPlugin, ViewMode, sandpackPlugin, viewMode$, linkDialogPlugin } from '@mdxeditor/editor'; -import { simpleSandpackConfig } from './type'; -import { eventBus } from '@/lib/event'; -const { codeBlockPlugin, tablePlugin, listsPlugin, quotePlugin, markdownShortcutPlugin } = await import('@mdxeditor/editor') -export const codeBlockLanguages = { - plain: "plain", - typescript: "TypeScript", - go: "Go", - html: "HTML", - python: "Python", - yaml: "YAML", - mermaid: "Mermaid", - mindmap: "MindMap", - echarts:"Echarts", - java: "Java", - js: "JavaScript", - javascript: "JavaScript", - c: "C", - csharp: "C#", - php: "PHP", - sql: "SQL", - lua: "Lua", - bash: "Shell (Bash)", - shell: "Shell Script", - json: "JSON", - xml: "XML", - - ini: "INI", -} - -export const ProcessCodeBlocks = (content: string): string => { - if (!content) return ''; - const codeBlockRegex = /```(?:(\w*)\n)?([\s\S]*?)```/g; - - let lastIndex = 0; - let result = ''; - let match; - - while ((match = codeBlockRegex.exec(content)) !== null) { - const beforeCode = content.slice(lastIndex, match.index); - result += beforeCode.replace(/(<[^>]+>)/gi, '\\$1').replace(/^[-*_]{3,}$/gm, '\\$&').replace(/<>/gm, '\\<>'); - - const [_, language, code] = match; - if (!language || !(language in codeBlockLanguages)) { - result += '```plain\n' + code.trim() + '\n```'; - } else { - result += '```' + language + '\n' + code.trim() + '\n```'; - } - - lastIndex = codeBlockRegex.lastIndex; - } - - const afterLastCode = content.slice(lastIndex); - result += afterLastCode.replace(/(<[^>]+>)/gi, '\\$1').replace(/^[-*_]{3,}$/gm, '\\$&').replace(/<>/gm, '\\<>'); - - return result; -}; - -export const viewModePlugin = realmPlugin({ - init: (realm) => { - eventBus.on('editor:setViewMode', (mode) => { - realm.pub(viewMode$, mode) - }) - } -}) - -export const MyPlugins = [ - codeBlockPlugin({ defaultCodeBlockLanguage: 'plain' }), - sandpackPlugin({ sandpackConfig: simpleSandpackConfig }), - codeMirrorPlugin({ - codeBlockLanguages - }), - imagePlugin(), - listsPlugin(), - linkPlugin(), - quotePlugin(), - tablePlugin(), - headingsPlugin(), - markdownShortcutPlugin(), - diffSourcePlugin({ viewMode: 'rich-text' }), - viewModePlugin(), - // linkDialogPlugin() -] \ No newline at end of file diff --git a/src/components/Common/Editor/editorStore.ts b/src/components/Common/Editor/editorStore.ts index 4edfb37d..13523ea9 100644 --- a/src/components/Common/Editor/editorStore.ts +++ b/src/components/Common/Editor/editorStore.ts @@ -1,4 +1,3 @@ -import '@/styles/editor.css'; import { RootStore } from '@/store'; import { PromiseState } from '@/store/standard/PromiseState'; import { helper } from '@/lib/helper'; @@ -10,25 +9,31 @@ import { api } from '@/lib/trpc'; import { IsTagSelectVisible, showTagSelectPop } from '../PopoverFloat/tagSelectPop'; import { showAiWriteSuggestions } from '../PopoverFloat/aiWritePop'; import { AiStore } from '@/store/aiStore'; -import { getEditorElements, ViewMode } from './editorUtils'; +import { getEditorElements, type ViewMode } from './editorUtils'; import { makeAutoObservable } from 'mobx'; - - +import Vditor from 'vditor'; +import { showTipsDialog } from '../TipsDialog'; +import i18n from '@/lib/i18n'; +import { DialogStandaloneStore } from '@/store/module/DialogStandalone'; +import { handlePaste } from '@/lib/hooks'; export class EditorStore { files: FileType[] = [] lastRange: Range | null = null + lastStartOffset: number = 0 + lastEndOffset: number = 0 lastRangeText: string = '' - viewMode: ViewMode = "rich-text" + lastRect: DOMRect | null = null + viewMode: ViewMode = "wysiwyg" lastSelection: Selection | null = null - mdxEditorRef: any | null = null + vditor: Vditor | null = null onChange: ((markdown: string) => void) | null = null mode: 'edit' | 'create' = 'edit' references: number[] = [] isShowSearch: boolean = false - onSend: ((args: OnSendContentType) => Promise) | null = null + onSend: (args: OnSendContentType) => Promise get canSend() { - return this.files?.every(i => !i?.uploadPromise?.loading?.value) && (this.files?.length != 0 || this.mdxEditorRef?.current?.getMarkdown() != '') + return this.files?.every(i => !i?.uploadPromise?.loading?.value) && (this.files?.length != 0 || this.vditor?.getValue() != '') } get blinko() { @@ -38,87 +43,66 @@ export class EditorStore { handleIOSFocus() { try { if (helper.env.isIOS() && this.mode == 'edit') { - this.focus(true) + this.focus() } } catch (error) { } } - replaceMarkdownTag = (text: string, forceFocus = false) => { - if (this.mdxEditorRef?.current) { - if (this.lastRange) { - const currentTextBeforeRange = this.lastRangeText.replace(/ /g, " ") ?? '' - const currentText = this.mdxEditorRef?.current!.getMarkdown().replace(/\\/g, '').replace(/ /g, " ") - const tag = currentTextBeforeRange.replace(helper.regex.isEndsWithHashTag, "#" + text + ' ') - const MyContent = currentText.replace(currentTextBeforeRange, tag) - this.mdxEditorRef?.current.setMarkdown(MyContent) - this.focus(forceFocus) - } - } - } - insertMarkdown = (text) => { - const Mycontent = this.mdxEditorRef?.current!.getMarkdown() - this.mdxEditorRef?.current!.setMarkdown(Mycontent + text) - this.mdxEditorRef?.current!.focus(() => { - this.onChange?.(Mycontent + text) - }, { - defaultSelection: 'rootEnd' - }) - } - - insertMarkdownByEvent = (text) => { - this.mdxEditorRef?.current!.insertMarkdown(text) + this.vditor?.insertValue(text) this.focus() } - focus = (force = false) => { - if (force && this.lastRange) { - const editorElements = getEditorElements() - if (editorElements.length > 0) { - editorElements.forEach(editorElement => { - requestAnimationFrame(() => { - const range = document.createRange() - const selection = window.getSelection() - const walker = document.createTreeWalker( - editorElement, - NodeFilter.SHOW_TEXT, - null - ) - let lastNode: any = null - while (walker.nextNode()) { - lastNode = walker.currentNode - } - if (lastNode) { - range.setStart(lastNode, lastNode?.length) - range.setEnd(lastNode, lastNode?.length) - selection?.removeAllRanges() - selection?.addRange(range) - editorElement.focus() - } - }) - }) + getEditorRange = (vditor: IVditor) => { + let range: Range; + const element = vditor[vditor.currentMode]!.element; + if (getSelection()!.rangeCount > 0) { + range = getSelection()!.getRangeAt(0); + if (element.isEqualNode(range.startContainer) || element.contains(range.startContainer)) { + return range; } - this.onChange?.(this.mdxEditorRef?.current!.getMarkdown()) - } else { - this.mdxEditorRef?.current!.focus(() => { - this.onChange?.(this.mdxEditorRef?.current!.getMarkdown()) - }, { - defaultSelection: 'rootEnd' - }) } - } + if (vditor[vditor.currentMode]!.range) { + return vditor[vditor.currentMode]!.range; + } + element.focus(); + range = element.ownerDocument.createRange(); + range.setStart(element, 0); + range.collapse(true); + return range; + }; - clearMarkdown = () => { - if (this.mdxEditorRef?.current) { - this.mdxEditorRef?.current.setMarkdown("") - this.focus() + + focus = () => { + this.vditor?.focus(); + const editorElement = getEditorElements(this.viewMode, this.vditor!) + try { + const range = document.createRange() + const selection = window.getSelection() + const walker = document.createTreeWalker( + editorElement!, + NodeFilter.SHOW_TEXT, + null + ) + let lastNode: any = null + while (walker.nextNode()) { + lastNode = walker.currentNode + } + if (lastNode) { + range.setStart(lastNode, lastNode?.length) + range.setEnd(lastNode, lastNode?.length) + selection?.removeAllRanges() + selection?.addRange(range) + editorElement!.focus() + } + } catch (error) { } } - inertHash = () => { - this.mdxEditorRef?.current!.insertMarkdown(" #") - this.mdxEditorRef?.current!.focus() - this.handlePopTag() + clearMarkdown = () => { + this.vditor?.setValue('') + this.onChange?.('') + this.focus() } speechToText = async (filePath) => { @@ -133,7 +117,7 @@ export class EditorStore { } } - uploadFiles = (acceptedFiles) => { + uploadFiles = (acceptedFiles, isShowConfirm = false) => { const _acceptedFiles = acceptedFiles.map(file => { const extension = helper.getFileExtension(file.name) const previewType = helper.getFileType(file.type, file.name) @@ -152,6 +136,13 @@ export class EditorStore { body: formData, }); const data = await response.json(); + if (isShowConfirm) { + if (data.type.includes('image')) { + this.vditor?.insertValue(`![${data.fileName}](${data.filePath})`) + } else { + this.vditor?.insertValue(`[${data.fileName}](${data.filePath})`) + } + } this.speechToText(data.filePath) if (data.filePath) { return data.filePath @@ -161,37 +152,23 @@ export class EditorStore { type: file.type } }) - this.files.push(..._acceptedFiles) - Promise.all(_acceptedFiles.map(i => i.uploadPromise.call())) - } - - handlePopTag = () => { - const selection = window.getSelection(); - if (selection!.rangeCount > 0) { - // if (!IsTagSelectVisible()) { - let lastRange = selection!.getRangeAt(0); - this.lastRange = lastRange - this.lastRangeText = lastRange.endContainer.textContent?.slice(0, lastRange.endOffset) ?? '' - // console.log('this.lastRangeText', this.lastRangeText) - this.lastSelection = selection - // } - const hasHashTagRegex = /#[^\s#]+/g - const endsWithBankRegex = /\s$/g - const currentText = this.lastRange?.startContainer.textContent?.slice(0, this.lastRange?.endOffset) ?? '' - const isEndsWithBank = endsWithBankRegex.test(currentText) - const isEndsWithHashTag = helper.regex.isEndsWithHashTag.test(currentText) - if (currentText == '' || !isEndsWithHashTag) { - setTimeout(() => eventBus.emit('tagselect:hidden')) - return - } - if (isEndsWithHashTag && currentText != '' && !isEndsWithBank) { - const match = currentText.match(hasHashTagRegex) - let searchText = match?.[match?.length - 1] ?? '' - if (currentText.endsWith("#")) { - searchText = '' + if (isShowConfirm) { + showTipsDialog({ + title: i18n.t('insert-attachment-or-note'), + content: i18n.t('paste-to-note-or-attachment'), + onConfirm: async () => { + await Promise.all(_acceptedFiles.map(i => i.uploadPromise.call())) + RootStore.Get(DialogStandaloneStore).close() + }, + onCancel: () => { + this.files.push(..._acceptedFiles) + Promise.all(_acceptedFiles.map(i => i.uploadPromise.call())) + RootStore.Get(DialogStandaloneStore).close() } - showTagSelectPop(searchText.toLowerCase()) - } + }) + } else { + this.files.push(..._acceptedFiles) + Promise.all(_acceptedFiles.map(i => i.uploadPromise.call())) } } @@ -202,7 +179,7 @@ export class EditorStore { const selection = window.getSelection(); if (selection!.rangeCount > 0) { const lastRange = selection!.getRangeAt(0); - const currentText = lastRange.startContainer.textContent?.slice(0, lastRange.endOffset) ?? ''; + const currentText = lastRange.startContainer?.textContent?.slice(0, lastRange.endOffset) ?? ''; const isEndsWithSlash = /[^\s]?\/$/.test(currentText); if (currentText === '' || !isEndsWithSlash) { setTimeout(() => eventBus.emit('aiwrite:hidden')); @@ -215,21 +192,11 @@ export class EditorStore { } deleteLastChar = () => { - const content = this.mdxEditorRef?.current!.getMarkdown() - this.mdxEditorRef?.current!.setMarkdown(content.slice(0, -1)) + const v = this.vditor?.getValue() + this.vditor?.setValue(v?.slice(0, -1) ?? '') + this.focus() } - setMarkdownLoading = (loading: boolean) => { - if (loading) { - this.mdxEditorRef?.current!.insertMarkdown("Thinking...") - this.focus() - } else { - const content = this.mdxEditorRef?.current!.getMarkdown() - const newContent = content.replace(/Thinking.../g, '') - this.mdxEditorRef?.current!.setMarkdown(newContent) - this.focus() - } - } // ************************************* reference logic start ************************************************************************************ get currentReferences() { return this.noteListByIds.value?.slice()?.sort((a, b) => this.references.indexOf(a.id) - this.references.indexOf(b.id)) @@ -247,10 +214,10 @@ export class EditorStore { addReference = (id: number) => { if (!this.references.includes(id)) { - console.log('addReference', id) + // console.log('addReference', id) this.references.push(id) this.noteListByIds.call({ ids: this.references }) - console.log('addReference', this.references) + // console.log('addReference', this.references) } } @@ -270,11 +237,11 @@ export class EditorStore { // ************************************* reference logic end ************************************************************************************ handleSend = async () => { - console.log('handleSend', this.references) if (!this.canSend) return; + console.log('handleSend', this.vditor?.getValue()) try { await this.onSend?.({ - content: this.mdxEditorRef?.current?.getMarkdown() ?? '', + content: this.vditor?.getValue() ?? '', files: this.files.map(i => ({ ...i, uploadPath: i.uploadPromise.value })), references: this.references }); @@ -286,12 +253,10 @@ export class EditorStore { } clearEditor = () => { - this.mdxEditorRef?.current?.setMarkdown('') - this.onChange?.(''); + this.vditor?.setValue('') this.files = []; this.references = [] this.noteListByIds.value = [] - eventBus.emit('editor:setViewMode', 'rich-text'); } constructor() { @@ -300,6 +265,36 @@ export class EditorStore { init = (args: Partial) => { Object.assign(this, args) + //remove listener on pc + const wysiwyg = document.querySelector('.vditor-wysiwyg .vditor-reset') + if (wysiwyg) { + wysiwyg.addEventListener('paste', (e) => { + if (wysiwyg.contains(e.target as Node)) { + e.stopImmediatePropagation(); + e.preventDefault(); + const files = handlePaste(e) + this.uploadFiles(files, true) + } + }, true); + wysiwyg.addEventListener('ondragstart', (e) => { + if (wysiwyg.contains(e.target as Node)) { + e.stopImmediatePropagation(); + e.preventDefault(); + } + }, true); + } } + isShowEditorToolbar(isPc: boolean) { + const blinko = RootStore.Get(BlinkoStore) + let showToolbar = true + if (blinko.config.value?.toolbarVisibility) { + showToolbar = blinko.config.value?.toolbarVisibility == 'always-show-toolbar' ? true : ( + blinko.config.value?.toolbarVisibility == 'hide-toolbar-on-mobile' ? + (isPc ? true : false) + : false + ) + } + return showToolbar + } } \ No newline at end of file diff --git a/src/components/Common/Editor/editorUtils.tsx b/src/components/Common/Editor/editorUtils.tsx index 79ec7f68..1d16516b 100644 --- a/src/components/Common/Editor/editorUtils.tsx +++ b/src/components/Common/Editor/editorUtils.tsx @@ -3,9 +3,9 @@ import { Attachment } from "@/server/types" import { FileType } from "./type" import { PromiseState } from "@/store/standard/PromiseState" import { IsTagSelectVisible } from "../PopoverFloat/tagSelectPop" -import { MDXEditorMethods } from "@mdxeditor/editor" +import Vditor from "vditor" -export type ViewMode = 'source' | 'rich-text'; +export type ViewMode = "wysiwyg" | "sv" | "ir" export type ToolbarProps = { store: any; @@ -16,7 +16,6 @@ export type ToolbarProps = { isPc: boolean; canSend: boolean; isSendLoading?: boolean; - mdxEditorRef: React.RefObject; onSend?: (args: any) => Promise; onChange?: (content: string) => void; } @@ -28,6 +27,7 @@ export type UploadAction = { onClick: () => void; showCondition?: boolean; } + export const HandleFileType = (originFiles: Attachment[]): FileType[] => { if (originFiles?.length == 0) return [] const res = originFiles?.map(file => { @@ -47,40 +47,40 @@ export const HandleFileType = (originFiles: Attachment[]): FileType[] => { return res } -export const getEditorElements = () => { - const editorElements = document.querySelectorAll('._contentEditable_uazmk_379') as NodeListOf - return editorElements +export const getEditorElements = (mode: ViewMode, editor: Vditor) => { + if (!editor) return + switch (mode) { + case 'sv': + return editor.vditor.sv?.element + case 'ir': + return editor.vditor.ir?.element + case 'wysiwyg': + return editor.vditor.wysiwyg?.element + default: + return editor.vditor.wysiwyg?.element + } } +export const FocusEditorFixMobile = () => { + try { + requestAnimationFrame(() => { + const editorElements = document.querySelectorAll('.vditor-ir .vditor-reset') as NodeListOf + console.log('editorElements', editorElements) + if (editorElements.length === 0) return -export const handleEditorKeyEvents = () => { - const editorElements = getEditorElements() - editorElements.forEach(element => { - element.addEventListener('keydown', (e) => { - const isTagSelectVisible = IsTagSelectVisible() - if (e.key === 'Enter' && isTagSelectVisible) { - e.preventDefault() - return false + if (editorElements.length > 0) { + editorElements.forEach(editorElement => { + editorElement.focus() + const range = document.createRange() + range.selectNodeContents(editorElement) + range.collapse(false) + const selection = window.getSelection() + selection?.removeAllRanges() + selection?.addRange(range) + }) } - }, true) - }) -} + }) + } catch (error) { - -export const FocusEditor = (focusToEnd: boolean = false) => { - requestAnimationFrame(() => { - const editorElements = getEditorElements() - if (editorElements.length > 0) { - editorElements.forEach(editorElement => { - editorElement.focus() - if(!focusToEnd) return - const range = document.createRange() - range.selectNodeContents(editorElement) - range.collapse(false) - const selection = window.getSelection() - selection?.removeAllRanges() - selection?.addRange(range) - }) - } - }) + } } \ No newline at end of file diff --git a/src/components/Common/Editor/hooks/useEditor.ts b/src/components/Common/Editor/hooks/useEditor.ts index 119859cc..7febf319 100644 --- a/src/components/Common/Editor/hooks/useEditor.ts +++ b/src/components/Common/Editor/hooks/useEditor.ts @@ -1,65 +1,131 @@ import { useEffect } from 'react'; import { eventBus } from '@/lib/event'; import { EditorStore } from '../editorStore'; -import { handleEditorKeyEvents } from '../editorUtils'; -import { HandleFileType } from '../editorUtils'; +import { FocusEditorFixMobile, HandleFileType } from '../editorUtils'; import { BlinkoStore } from '@/store/blinkoStore'; -import { usePasteFile } from '@/lib/hooks'; +import { handlePaste, usePasteFile } from '@/lib/hooks'; import { OnSendContentType } from '../type'; +import Vditor from 'vditor'; +import { ToolbarMobile, ToolbarPC } from '../EditorToolbar'; +import { RootStore } from '@/store'; +import { UserStore } from '@/store/user'; +import { i18nEditor } from '../EditorToolbar/i18n'; +import { useTranslation } from 'react-i18next'; +import { useMediaQuery } from 'usehooks-ts'; +import { Extend } from '../EditorToolbar/extends'; export const useEditorInit = ( store: EditorStore, - mdxEditorRef: any, onChange: ((content: string) => void) | undefined, onSend: (args: OnSendContentType) => Promise, mode: 'create' | 'edit', - originReference: number[] = [] + originReference: number[] = [], + content: string, ) => { + const { t } = useTranslation() + const isPc = useMediaQuery('(min-width: 768px)') + const blinko = RootStore.Get(BlinkoStore) useEffect(() => { - if (mdxEditorRef.current) { - store.init({ - onChange, - onSend, - mode, - mdxEditorRef - }); + const showToolbar = store.isShowEditorToolbar(isPc) + if (store.vditor) { + store.vditor?.destroy(); + store.vditor = null } - }, [onChange, mode, mdxEditorRef.current]); + + const theme = RootStore.Get(UserStore).theme + const vditor = new Vditor("vditor" + "-" + mode, { + width: '100%', + "toolbar": isPc ? ToolbarPC : ToolbarMobile, + mode: isPc ? store.viewMode : (store.viewMode == 'wysiwyg' ? 'ir' : store.viewMode), + theme, + counter: { + enable: true, + type: 'markdown', + }, + hint: { + extend: Extend + }, + async ctrlEnter(md) { + await store.handleSend() + }, + placeholder: t('i-have-a-new-idea'), + i18n: { + ...i18nEditor(t) + }, + input: (value) => { + onChange?.(value) + store.handlePopAiWrite() + }, + undoDelay: 20, + value: content, + toolbarConfig: { + hide: !showToolbar, + }, + + preview: { + hljs: { + style: theme === 'dark' ? 'github-dark' : 'github', + lineNumber: true, + }, + theme, + delay: 20 + }, + after: () => { + vditor.setValue(content); + store.init({ + onChange, + onSend, + mode, + vditor + }); + isPc ? store.focus() : FocusEditorFixMobile() + }, + }); + // Clear the effect + return () => { + store.vditor?.destroy(); + store.vditor = null; + }; + + }, [mode, blinko.config.value?.toolbarVisibility, store.viewMode, isPc]); useEffect(() => { store.references = originReference - if(store.references.length > 0) { - store.noteListByIds.call({ids: store.references}) + if (store.references.length > 0) { + store.noteListByIds.call({ ids: store.references }) } }, []); }; + export const useEditorEvents = (store: EditorStore) => { useEffect(() => { - eventBus.on('editor:replace', store.replaceMarkdownTag); eventBus.on('editor:clear', store.clearMarkdown); - eventBus.on('editor:insert', store.insertMarkdownByEvent); + eventBus.on('editor:insert', store.insertMarkdown); eventBus.on('editor:deleteLastChar', store.deleteLastChar); eventBus.on('editor:focus', store.focus); - eventBus.on('editor:setMarkdownLoading', store.setMarkdownLoading); - eventBus.on('editor:setViewMode', (mode) => store.viewMode = mode); + eventBus.on('editor:setViewMode', (mode) => { + store.viewMode = mode + }); - handleEditorKeyEvents(); + // handleEditorKeyEvents(); store.handleIOSFocus(); return () => { - eventBus.off('editor:replace', store.replaceMarkdownTag); eventBus.off('editor:clear', store.clearMarkdown); - eventBus.off('editor:insert', store.insertMarkdownByEvent); + eventBus.off('editor:insert', store.insertMarkdown); eventBus.off('editor:deleteLastChar', store.deleteLastChar); eventBus.off('editor:focus', store.focus); - eventBus.off('editor:setMarkdownLoading', store.setMarkdownLoading); - eventBus.off('editor:setViewMode', (mode) => store.viewMode = mode); + eventBus.off('editor:setViewMode', (mode) => { + store.viewMode = mode + }); }; }, []); }; + + export const useEditorFiles = ( store: EditorStore, blinko: BlinkoStore, @@ -72,23 +138,24 @@ export const useEditorFiles = ( }, [originFiles]); }; -export const useEditorPaste = (store: EditorStore, cardRef: React.RefObject) => { - const pastedFiles = usePasteFile(cardRef); +// export const useEditorPaste = (store: EditorStore, cardRef: React.RefObject) => { +// const pastedFiles = usePasteFile(cardRef); +// useEffect(() => { +// if (pastedFiles) { +// store.uploadFiles(pastedFiles); +// } +// }, [pastedFiles]); +// }; + - useEffect(() => { - if (pastedFiles) { - store.uploadFiles(pastedFiles); - } - }, [pastedFiles]); -}; export const useEditorHeight = ( onHeightChange: (() => void) | undefined, blinko: BlinkoStore, content: string, - files: any[] + store: EditorStore ) => { useEffect(() => { onHeightChange?.(); - }, [blinko.noteTypeDefault, content, files?.length]); + }, [blinko.noteTypeDefault, content, store.files?.length, store.viewMode]); }; \ No newline at end of file diff --git a/src/components/Common/Editor/index.tsx b/src/components/Common/Editor/index.tsx index 1beb7873..2045f9ef 100644 --- a/src/components/Common/Editor/index.tsx +++ b/src/components/Common/Editor/index.tsx @@ -1,18 +1,16 @@ -import '@mdxeditor/editor/style.css'; -import '@/styles/editor.css'; +import "vditor/dist/index.css"; +import '@/styles/vditor.css'; import { RootStore } from '@/store'; import { useTheme } from 'next-themes'; -import React, { ReactElement, useRef } from 'react'; +import React, { ReactElement, useEffect, useRef, useState } from 'react'; import { useDropzone } from 'react-dropzone'; import { observer, useLocalObservable } from 'mobx-react-lite'; -import { OnSendContentType, TranslationEditor } from './type'; -import { MyPlugins, ProcessCodeBlocks } from './editorPlugins'; +import { OnSendContentType } from './type'; import { BlinkoStore } from '@/store/blinkoStore'; import { _ } from '@/lib/lodash'; import { useTranslation } from 'react-i18next'; import { useMediaQuery } from 'usehooks-ts'; import { type Attachment } from '@/server/types'; -import { BlockTypeSelect, BoldItalicUnderlineToggles, ChangeCodeMirrorLanguage, ConditionalContents, CreateLink, InsertCodeBlock, InsertImage, InsertSandpack, InsertTable, ListsToggle, MDXEditorMethods, ShowSandpackInfo, toolbarPlugin, ViewMode } from '@mdxeditor/editor'; import { Card } from '@nextui-org/react'; import { AttachmentsRender, ReferenceRender } from '../AttachmentRender'; import { EditorStore } from './editorStore'; @@ -26,14 +24,10 @@ import { useEditorInit, useEditorEvents, useEditorFiles, - useEditorPaste, useEditorHeight } from './hooks/useEditor'; -const { MDXEditor } = await import('@mdxeditor/editor') - -// https://mdxeditor.dev/editor/docs/theming -// https://react-dropzone.js.org/ +//https://ld246.com/guide/markdown type IProps = { mode: 'create' | 'edit', content: string, @@ -47,107 +41,49 @@ type IProps = { } const Editor = observer(({ content, onChange, onSend, isSendLoading, originFiles, originReference = [], mode, onHeightChange }: IProps) => { - content = ProcessCodeBlocks(content) - const { t } = useTranslation() - const isPc = useMediaQuery('(min-width: 768px)') - const { theme } = useTheme(); - - const mdxEditorRef = useRef(null) const cardRef = React.useRef(null) const store = useLocalObservable(() => new EditorStore()) const blinko = RootStore.Get(BlinkoStore) - useEditorInit(store, mdxEditorRef, onChange, onSend, mode, originReference); + useEditorInit(store, onChange, onSend, mode, originReference, content); useEditorEvents(store); useEditorFiles(store, blinko, originFiles); - useEditorPaste(store, cardRef); - useEditorHeight(onHeightChange, blinko, content, store.files); + useEditorHeight(onHeightChange, blinko, content, store); const { getRootProps, isDragAccept, getInputProps, open - } = useDropzone({ multiple: true, noClick: true, onDrop: acceptedFiles => { store.uploadFiles(acceptedFiles) } }); + } = useDropzone({ + multiple: true, + noClick: true, + onDrop: acceptedFiles => { + store.uploadFiles(acceptedFiles) + }, + onDragOver: (e) => { + e.preventDefault(); + e.stopPropagation(); + }, + onDragEnter: (e) => { + e.preventDefault(); + e.stopPropagation(); + } + }); return + className={`p-2 relative border-2 border-border transition-all overflow-visible + ${isDragAccept ? 'border-2 border-green-500 border-dashed' : ''} `}>
{ - event.preventDefault(); - if (event.key === 'Enter' && event.ctrlKey) { - await store.handleSend() - } - }} + className="overflow-visible relative" onKeyDown={e => { onHeightChange?.() }}> - TranslationEditor(key, defaultValue, interpolations, t)} - ref={mdxEditorRef} - placeholder={t('i-have-a-new-idea')} - className={theme == 'dark' ? "dark-theme dark-editor" : ''} - contentEditableClassName='prose' - onChange={v => { - onChange?.(v) - store.handlePopTag() - store.handlePopAiWrite() - }} - autoFocus={{ - defaultSelection: 'rootEnd' - }} - markdown={content} - plugins={[ - toolbarPlugin({ - toolbarContents: () => ( -
- { - (() => { - const visibility = blinko.config.value?.toolbarVisibility; - if (visibility === 'always-hide-toolbar') return null; - if (visibility === 'hide-toolbar-on-mobile' && !isPc) return null; - - return ( -
- {/******************** Insert List *****************/} - - {isPc && } - - - {/* */} - {/******************** Insert Code *****************/} - editor?.editorType === 'codeblock', contents: () => }, - { when: (editor) => editor?.editorType === 'sandpack', contents: () => }, - { - fallback: () => (<> - - - ) - } - ]} - /> - {isPc && } -
- {t('source-code-mode')} -
-
- ) - })() - } -
- ) - }), - ...MyPlugins - ]} - /> +
{/******************** AttchMent Render *****************/} {store.files.length > 0 && (
@@ -162,7 +98,7 @@ const Editor = observer(({ content, onChange, onSend, isSendLoading, originFiles {/******************** Toolbar Render *****************/}
- + -

Hello CodeSandbox

-

Start editing to see some magic happen!

-
- ); -} -`.trim() - -export const simpleSandpackConfig: SandpackConfig = { - defaultPreset: 'react', - presets: [ - { - label: 'React', - name: 'react', - meta: 'live react', - sandpackTemplate: 'react', - sandpackTheme: 'light', - snippetFileName: '/App.js', - snippetLanguage: 'jsx', - initialSnippetContent: defaultSnippetContent - }, - ] -} export type OnSendContentType = { content: string; @@ -43,30 +15,3 @@ export type FileType = { uploadPromise: PromiseState type: string // audio/webm } - -export const TranslationEditor = (key: string, defaultValue: string, interpolations, t: (key: string) => string) => { - // Handle basic toolbar items - if (key === 'toolbar.bulletedList') return t('bulleted-list'); - if (key === 'toolbar.numberedList') return t('numbered-list'); - if (key === 'toolbar.checkList') return t('check-list'); - if (key === 'toolbar.table') return t('insert-table'); - if (key === 'toolbar.codeBlock') return t('insert-codeblock'); - if (key === 'toolbar.insertSandpack') return t('insert-sandpack'); - if (key === 'toolbar.blockTypes.paragraph') return t('paragraph'); - if (key === 'toolbar.blockTypes.quote') return t('quote'); - if (key === 'toolbar.bold') return t('bold'); - if (key === 'toolbar.removeBold') return t('remove-bold'); - if (key === 'toolbar.italic') return t('italic'); - if (key === 'toolbar.removeItalic') return t('remove-italic'); - if (key === 'toolbar.underline') return t('underline'); - if (key === 'toolbar.removeUnderline') return t('remove-underline'); - if (key === 'toolbar.blockTypeSelect.selectBlockTypeTooltip') return t('select-block-type'); - if (key === 'toolbar.blockTypeSelect.placeholder') return t('block-type-select-placeholder'); - // console.log(key, defaultValue, interpolations?.level); // Keep for debugging if needed - // Handle heading translations - if (key.startsWith('toolbar.blockTypes.heading')) { - return t('heading') + ' ' + interpolations?.level; - } - return defaultValue; -} - diff --git a/src/components/Common/MdxPlugin/hashTagPlugin/index.ts b/src/components/Common/MdxPlugin/hashTagPlugin/index.ts deleted file mode 100644 index 2f379dc3..00000000 --- a/src/components/Common/MdxPlugin/hashTagPlugin/index.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { eventBus } from "@/lib/event"; -import { helper } from "@/lib/helper"; -import { - addActivePlugin$, - realmPlugin, - activeEditor$, -} from "@mdxeditor/editor"; -import { TextNode } from "lexical"; -import { showTagSelectPop } from "../../PopoverFloat/tagSelectPop"; - -//@deprecated -export const hashTagPlugin = realmPlugin({ - init(realm): void { - realm.pubIn({ - [addActivePlugin$]: "hashTag-highlight", - }); - }, - postInit(realm, params) { - const currentEditor = realm.getValue(activeEditor$); - if (!currentEditor) { - return; - } - currentEditor.registerNodeTransform(TextNode, (textNode) => { - const currentText = textNode.getTextContent(); - const hasHashTagRegex = /#[^\s#]+/g - const endsWithBankRegex = /\s$/g - - const isEndsWithBank = endsWithBankRegex.test(currentText) - const isEndsWithHashTag = helper.regex.isEndsWithHashTag.test(currentText) - if (currentText == '' || !isEndsWithHashTag) { - setTimeout(() => eventBus.emit('tagselect:hidden')) - return - } - if (isEndsWithHashTag && currentText != '' && !isEndsWithBank) { - const match = currentText.match(hasHashTagRegex) - let searchText = match?.[match?.length - 1] ?? '' - if (currentText.endsWith("#")) { - searchText = '' - } - showTagSelectPop(searchText.toLowerCase()) - } - - }); - }, -}); diff --git a/src/components/Common/PopoverFloat/index.tsx b/src/components/Common/PopoverFloat/index.tsx index ace94ea0..ee17eb7c 100644 --- a/src/components/Common/PopoverFloat/index.tsx +++ b/src/components/Common/PopoverFloat/index.tsx @@ -75,7 +75,7 @@ const PopoverFloat = observer(({ enter: { opacity: 1, transition: { type: 'spring', bounce: 0.5, duration: 0.4 }, - zIndex: 2002, + zIndex: 3000, y: 5, x: 0 }, diff --git a/src/components/Common/PopoverFloat/tagSelectPop.tsx b/src/components/Common/PopoverFloat/tagSelectPop.tsx index 7cb0ec05..c1f6283d 100644 --- a/src/components/Common/PopoverFloat/tagSelectPop.tsx +++ b/src/components/Common/PopoverFloat/tagSelectPop.tsx @@ -14,12 +14,11 @@ export const IsTagSelectVisible = () => { return isTagSelectVisible } -export const showTagSelectPop = (text: string = '') => { +export const showTagSelectPop = (text: string = '', _rect: DOMRect | null = null) => { setTimeout(() => { const selection = window.getSelection(); if (selection && selection.rangeCount > 0) { - const range = selection.getRangeAt(0); - const rect = range.getBoundingClientRect(); + const rect = _rect ?? selection.getRangeAt(0).getBoundingClientRect(); eventBus.emit('tagselect:update', { rect, text }) } }) diff --git a/src/components/Common/TipsDialog/index.tsx b/src/components/Common/TipsDialog/index.tsx index 292fb819..64d35ad3 100644 --- a/src/components/Common/TipsDialog/index.tsx +++ b/src/components/Common/TipsDialog/index.tsx @@ -4,8 +4,9 @@ import { Icon } from "@iconify/react" import { observer } from "mobx-react-lite" import { useTranslation } from "react-i18next" import { Popover, PopoverTrigger, PopoverContent, Button } from "@nextui-org/react"; +import { DialogStandaloneStore } from "@/store/module/DialogStandalone" -const TipsDialog = observer(({ content, onConfirm }: any) => { +const TipsDialog = observer(({ content, onConfirm, onCancel }: any) => { const { t } = useTranslation() return
@@ -14,7 +15,8 @@ const TipsDialog = observer(({ content, onConfirm }: any) => {
}) -export const showTipsDialog = async (props: { title: string, content: string, onConfirm }) => { - RootStore.Get(DialogStore).setData({ +export const showTipsDialog = async (props: { title: string, content: string, onConfirm, onCancel?: any }) => { + RootStore.Get(DialogStandaloneStore).setData({ isOpen: true, onlyContent: false, size: 'xl', @@ -33,7 +35,7 @@ export const showTipsDialog = async (props: { title: string, content: string, on }) } -export const TipsPopover = observer((props: { children: React.ReactNode, content, onConfirm, isLoading?: boolean }) => { +export const TipsPopover = observer((props: { children: React.ReactNode, content, onConfirm, onCancel?, isLoading?: boolean }) => { const { t } = useTranslation() const { isLoading = false } = props return @@ -43,13 +45,14 @@ export const TipsPopover = observer((props: { children: React.ReactNode, content
-
{props.content}
+
{props.content}
- -
diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx index f0d1724b..1e45e292 100644 --- a/src/components/Layout/index.tsx +++ b/src/components/Layout/index.tsx @@ -24,6 +24,7 @@ import { createPortal } from "react-dom"; import { Sidebar } from "./Sidebar"; import { MobileNavBar } from "./MobileNavBar"; import FilterPop from "../Common/PopoverFloat/filterPop"; +import { AppProvider } from "@/store/module/AppProvider"; export const SideBarItem = "p-2 flex flex-row items-center cursor-pointer gap-2 hover:bg-hover rounded-xl transition-all" @@ -79,6 +80,7 @@ export const CommonLayout = observer(({ return (
{blinkoStore.showAi && createPortal(, document.body)} + @@ -174,9 +176,9 @@ export const CommonLayout = observer(({
{header} - {/* backdrop */} - - { }} className="flex h-[calc(100%_-_70px)] overflow-y-scroll scroll-container"> + {/* backdrop pt-6 -mt-6 to fix the editor tooltip position */} + + { }} className="flex h-[calc(100%_-_70px)] overflow-y-scroll pt-6 -mt-6">
{children}
diff --git a/src/lib/hooks.ts b/src/lib/hooks.ts index 46c5de9a..1377ccb7 100644 --- a/src/lib/hooks.ts +++ b/src/lib/hooks.ts @@ -1,28 +1,30 @@ import { useEffect, useState } from "react"; import { helper } from "./helper"; +export const handlePaste = (event) => { + //@ts-ignore + const clipboardData = event.clipboardData || window.clipboardData; + const items = clipboardData.items; + let files = []; + + for (let i = 0; i < items.length; i++) { + if (items[i].kind === "file") { + const file = items[i].getAsFile(); + //@ts-ignore + files.push(file); + } + } + + if (files.length > 0) { + return files + } +}; + const usePasteFile = (targetRef) => { const [pastedFiles, setPastedFiles] = useState([]); useEffect(() => { - const handlePaste = (event) => { - //@ts-ignore - const clipboardData = event.clipboardData || window.clipboardData; - const items = clipboardData.items; - let files = []; - - for (let i = 0; i < items.length; i++) { - if (items[i].kind === "file") { - const file = items[i].getAsFile(); - //@ts-ignore - files.push(file); - } - } - if (files.length > 0) { - setPastedFiles(files); - } - }; const targetElement = targetRef.current; @@ -42,21 +44,21 @@ const usePasteFile = (targetRef) => { interface HistoryBackProps { - state: boolean; - onStateChange: () => void; + state: boolean; + onStateChange: () => void; historyState: T; } -export const useHistoryBack = ({ - state, - onStateChange, - historyState +export const useHistoryBack = ({ + state, + onStateChange, + historyState }: HistoryBackProps) => { useEffect(() => { if (state) { history.pushState({ [historyState]: true }, ''); } - + const handlePopState = () => { if (state) { onStateChange(); @@ -78,6 +80,6 @@ export const useIsIOS = () => { return isIOS; }; -export {usePasteFile}; +export { usePasteFile }; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 406eac35..c3fe420d 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -34,7 +34,6 @@ const MyApp = ({ Component, pageProps }) => { }} /> - diff --git a/src/pages/index.tsx b/src/pages/index.tsx index bc7f1667..482b3dda 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -18,7 +18,7 @@ const Home = observer(() => { const blinko = RootStore.Get(BlinkoStore) blinko.useQuery(useRouter()) const store = RootStore.Local(() => ({ - editorHeight: 65, + editorHeight: 30, get showEditor() { return !blinko.noteListFilterConfig.isArchived && !blinko.noteListFilterConfig.isRecycle }, @@ -51,7 +51,7 @@ const Home = observer(() => { { !blinko.noteList.isEmpty && blinko.onBottom()} - style={{ height: store.showEditor ? `calc(100% - ${(isPc ? 40 : 0) + (isPc ? store.editorHeight : 1)}px)` : '100%' }} + style={{ height: store.showEditor ? `calc(100% - ${(isPc ? store.editorHeight : 1)}px)` : '100%' }} className={`px-2 mt-0 md:mt-4 md:px-6 w-full h-full transition-all scroll-area`}> {}[\]|`*-_.])/g, '$1'); - } + // if (content != null) { + // content = content?.replace(/ /g, ' ')?.replace(/ \\/g, '')?.replace(/\\([#<>{}[\]|`*-_.])/g, '$1'); + // } const tagTree = helper.buildHashTagTreeFromHashString(extractHashtags(content?.replace(/\\/g, '') + ' ')) let newTags: Prisma.tagCreateManyInput[] = [] const handleAddTags = async (tagTree: TagTreeNode[], parentTag: Prisma.tagCreateManyInput | undefined, noteId?: number) => { diff --git a/src/store/aiStore.tsx b/src/store/aiStore.tsx index 41f1a453..436749a5 100644 --- a/src/store/aiStore.tsx +++ b/src/store/aiStore.tsx @@ -197,13 +197,11 @@ export class AiStore implements Store { eventBus.emit('editor:clear') } this.writingResponseText = '' - // eventBus.emit('editor:setMarkdownLoading', true) const res = await streamApi.ai.writing.mutate({ question: this.writeQuestion, type: writeType, content }, { signal: this.abortController.signal }) - // eventBus.emit('editor:setMarkdownLoading', false) for await (const item of res) { // eventBus.emit('editor:insert', item.content) this.writingResponseText += item.content diff --git a/src/store/blinkoStore.tsx b/src/store/blinkoStore.tsx index 5c8c3afc..0b6dabd0 100644 --- a/src/store/blinkoStore.tsx +++ b/src/store/blinkoStore.tsx @@ -279,7 +279,6 @@ export class BlinkoStore implements Store { @action setExcludeEmbeddingTagId(tagId: number | null) { this.excludeEmbeddingTagId = tagId; - // 可能需要保存到本地存储或发送到服务器 } constructor() { diff --git a/src/store/user.ts b/src/store/user.ts index 433b4be4..1e406648 100644 --- a/src/store/user.ts +++ b/src/store/user.ts @@ -24,6 +24,7 @@ export class UserStore implements User, Store { image?: string = ''; token: string = ''; role: string = ''; + theme: any = 'light'; wait() { return new Promise((res, rej) => { @@ -98,6 +99,7 @@ export class UserStore implements User, Store { useEffect(() => { this.updatePWAColor(theme ?? 'light'); + this.theme = theme }, [theme]); useEffect(() => { @@ -111,7 +113,7 @@ export class UserStore implements User, Store { }, [session]); useEffect(() => { - if(!this.isLogin) return + if (!this.isLogin) return this.setupUserPreferences(setTheme, i18n); }, [this.isLogin]); diff --git a/src/styles/editor.css b/src/styles/editor.css deleted file mode 100644 index 57af02e9..00000000 --- a/src/styles/editor.css +++ /dev/null @@ -1,383 +0,0 @@ -.ͼo { - background-color: transparent; -} - -.ͼ1 .cm-scroller { - font-family: system-ui; -} - -.prose :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - color: #0969da; -} - - -._linkDialogPopoverContent_uazmk_600, -._tableColumnEditorPopoverContent_uazmk_601, -._dialogContent_uazmk_602 { - background-color: var(--background); -} - - -._contentEditable_uazmk_379 { - max-height: 60vh; - overflow-y: scroll; - color: var(--foreground); - padding: 0; - padding-left: 5px; -} - -.mdxeditor-source-editor { - max-height: 60vh; - overflow-y: scroll; -} - -.prose :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)), -.prose :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)), -.prose :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)), -.prose :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)), -.prose :where(h5):not(:where([class~="not-prose"], [class~="not-prose"] *)), -.prose :where(h6):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - color: var(--foreground); -} - -.prose :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - color: var(--foreground); -} - -.ͼ1x { - background-color: var(--background); - color: var(--foreground); - height: 100%; -} - -._codeMirrorToolbar_uazmk_408 { - background-color: transparent; -} - -._codeMirrorWrapper_uazmk_391 { - border-color: var(--hover); -} - -._selectWithLabel_uazmk_1002 label { - display: none; -} - -._placeholder_uazmk_1084 p { - margin-left: 5px; -} - -.ͼo { - color: var(--foreground); -} - -.ͼo .cm-activeLineGutter { - background-color: var(--sencondbackground); -} - -div[id^="radix-"][role="dialog"] { - display: flex; - /* flex-direction: column; */ - padding-top: 10px; - border: 2px solid var(--sencondbackground); -} - -div[id^="radix-"][role="dialog"] h2 { - display: none; -} - -._actionButton_uazmk_694 { - color: var(--foreground); - cursor: pointer; -} - -._actionButton_uazmk_694:hover { - background-color: var(--sencondbackground); - transition: all 0.2s ease-in-out; -} - - - - -._dialogContent_uazmk_602 { - border-radius: 16px; - filter: unset; -} - -._imageWrapper_uazmk_922 img { - border-radius: 16px; -} - -._imageResizer_uazmk_1027 { - border-radius: 2px; - background-color: var(--desc); -} - -._editImageToolbar_uazmk_935 { - background-color: transparent; -} - -._primaryButton_uazmk_506, -._secondaryButton_uazmk_507 { - background-color: var(--primary); - color: var(--primary-foreground); - border-radius: 12px; - cursor: pointer; - border: none; - transition: all 0.2s ease-in-out; -} - -._primaryButton_uazmk_506, -._secondaryButton_uazmk_507:hover { - transition: all 0.2s ease-in-out; - opacity: 0.8; -} - - - -/* [id^="radix-"]:not(._selectItem_uazmk_300 [id^="radix-"]), -[id^="radix-"]:not(._dialogContent_uazmk_602 [id^="radix-"]){ - display: none; -} */ -#radix-\:r1dv\: { - display: flex; - flex-direction: column; - gap: 10px; -} - -._textInput_uazmk_1186 { - border: none; - background-color: var(--sencondbackground); - border-radius: 12px; -} - -#radix-\:rc2\: { - background-color: var(--background); - color: var(--foreground); -} - -#radix-\:rm\: { - display: flex; - flex-direction: column; - padding: 10px; -} - -._selectItem_uazmk_300 { - background-color: var(--background); - color: var(--foreground); - cursor: pointer; - transition: all 0.2s ease-in-out; - /* height: 30px ;00 */ - padding-top: 2px; - padding-bottom: 2px; - padding-left: 10px; - padding-right: 10px; -} - - -._code_1tncs_52 { - background-color: var(--background); - color: var(--foreground); -} - -#cm-ac-czkr li { - background-color: var(--background); - color: var(--foreground); -} - -#cm-ac-czkr li[aria-selected="true"] { - background-color: var(--foreground); - color: var(--background); -} - -._selectItem_uazmk_300:hover { - background-color: var(--sencondbackground); - transition: all 0.2s ease-in-out; -} - -#radix-\:r4q\: { - color: var(--foreground); - display: block; -} - -/* ._codeMirrorToolbar_uazmk_408 { - background-color: transparent ; -} */ - -._toolbarNodeKindSelectTrigger_uazmk_305, -._toolbarButtonSelectTrigger_uazmk_306, -._selectTrigger_uazmk_307 { - background-color: var(--background); - color: var(--foreground); -} - -@media (hover: hover) { - - ._toolbarToggleItem_uazmk_206:hover, - ._toolbarButton_uazmk_237:hover { - background-color: var(--sencondbackground); - } -} - -.mdxeditor-toolbar { - background-color: transparent; - padding: 0; -} - -.mdxeditor-toolbar svg { - width: 20px; - height: 20px; - cursor: pointer; - color: var(--foreground); -} - -.mdxeditor-toolbar .blinko { - color: #EAB308; -} - -.mdxeditor-toolbar .note { - color: #3B82F6; -} - -.mdxeditor-toolbar .white { - color: white; -} - -.mdxeditor-toolbar .green { - color: var(--green-500); -} - -.mdxeditor-toolbar .red { - color: var(--red-500); -} - -._toolbarToggleItem_uazmk_206[data-state=on], -._toolbarButton_uazmk_237[data-state=on], -._toolbarToggleItem_uazmk_206:active, -._toolbarButton_uazmk_237:active { - background-color: var(--sencondbackground); - -} - -.mdxeditor-toolbar .custom-svg { - width: 18px; - height: 18px; - cursor: pointer; -} - - -.mdxeditor-root-contenteditable>div:first-of-type { - padding: 0; - padding-left: 5px; - padding-right: 5px; -} - -._popupContainer_uazmk_1220 { - position: relative; - z-index: 99; -} - -.mdxeditor { - display: flex; - flex-direction: column; - /* flex-direction: column-reverse; */ -} - -._toolbarNodeKindSelectTrigger_uazmk_305, -._toolbarButtonSelectTrigger_uazmk_306, -._selectTrigger_uazmk_307 { - width: 80px; -} - -._toolbarNodeKindSelectContainer_uazmk_284, -._toolbarButtonDropdownContainer_uazmk_285, -._toolbarCodeBlockLanguageSelectContent_uazmk_286, -._selectContainer_uazmk_287 { - background-color: transparent; -} - -.mdxeditor-diff-source-wrapper { - margin-top: 5px; -} - -._toolbarNodeKindSelectTrigger_uazmk_305, -._toolbarButtonSelectTrigger_uazmk_306, -._selectTrigger_uazmk_307 { - background-color: transparent; -} - -[data-radix-select-viewport] { - border-radius: 12px; -} - -.prose { - max-width: 100%; -} - -.prose li[role=checkbox] { - text-indent: 2rem; -} - -.prose li[role=checkbox]:before { - transform: translate(6px, 6px); -} - -.prose li[role=checkbox]:after { - transform: translate(6px, 6px) rotate(45deg); -} - -.prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - margin-top: 0; - margin-bottom: 0.75em; -} - -.prose :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - color: var(--foreground); -} - -.blinko-toolbaricon { - color: rgb(234 179 8 / var(--tw-text-opacity)); -} - -.note-toolbaricon { - color: rgb(59 130 246 / var(--tw-text-opacity)); -} - -.prose :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - list-style-type: disc; - padding-inline-start: 15px; - margin-bottom: 0; - margin-top: 0; -} - -.prose :where(ol):not(:where([class~=not-prose], [class~=not-prose] *)) { - list-style-type: decimal !important; - padding-inline-start: 15px; - margin-bottom: 0; - margin-top: 0; -} - -.prose :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - margin-top: 0; -} - -.prose :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - margin-top: 1px; - margin-bottom: 1px; -} - -.prose :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { - padding-inline-start: 0; -} - -.prose ul>li { - margin: 0; -} - -.prose ol>li { - margin: 0; -} - -.audio-recorder { - box-shadow: none; - background-color: transparent; -} \ No newline at end of file diff --git a/src/styles/github-markdown.css b/src/styles/github-markdown.css index 1f2f2388..5fae622e 100644 --- a/src/styles/github-markdown.css +++ b/src/styles/github-markdown.css @@ -520,7 +520,7 @@ ol { padding: 2px 1em; color: var(--foreground); background-color: var(--sencondbackground); - border-left: .25em solid #7A1CAC; + border-left: .25em solid #EAB308; } .markdown-body ul, diff --git a/src/styles/globals.css b/src/styles/globals.css index 814256ee..073ad1fc 100644 --- a/src/styles/globals.css +++ b/src/styles/globals.css @@ -114,7 +114,7 @@ body { background-color: var(--sencondbackground) !important; } -.PhotoView-Portal{ +.PhotoView-Portal { z-index: 3000; } @@ -188,7 +188,7 @@ body { --md-editor-text: hsl(222.2 47.4% 11.2%); --md-editor-separator: #bcbcbe; --md-editor-border: #e5e7eb; - --shadow: 0 0 20px rgb(195 195 195 / 36%) + --shadow: 1px 1px 7px 3px #b1b1b142; } .dark { @@ -241,7 +241,7 @@ body { --md-editor-text: hsl(210 40% 98%); --md-editor-separator: #4b4b4d; --md-editor-border: #27272a; - --shadow: 0 + --shadow: 0 0 1px 1px #303030; } } @@ -289,7 +289,7 @@ body { border-radius: 0.5rem; } -.markmap-foreign{ +.markmap-foreign { color: var(--foreground); } @@ -302,3 +302,6 @@ body { background: var(--sencondbackground); } +.group[data-focus-visible="true"] .group-data-\[focus-visible\=true\]\:ring-2 { + --tw-ring-shadow: 0!important; +} \ No newline at end of file diff --git a/src/styles/vditor.css b/src/styles/vditor.css new file mode 100644 index 00000000..336df35d --- /dev/null +++ b/src/styles/vditor.css @@ -0,0 +1,230 @@ +.vditor { + border: none; +} + +.vditor-content { + min-height: 20px; +} + +@media screen and (max-width: 520px) { + .vditor-toolbar__item { + padding: 0 !important; + } +} + +.vditor a { + color: #C35AF7; + font-weight: 700; +} + +.vditor-wysiwyg pre.vditor-reset {} + +.vditor-toolbar { + padding: 0; + padding-left: 4px !important; + background-color: transparent; + border: none; + overflow: visible; + height: 25px; +} +.vditor-toolbar--hide{ + display: none; +} +.vditor-counter{ + background-color: var(--background); + color: var(--foreground); +} +.vditor-reset { + padding: 0; + padding-left: 10px !important; + padding-right: 10px !important; + background-color: transparent; + color: var(--foreground); + max-height: 80vh; + padding-top: 5px; + padding-bottom: 5px; +} + +.vditor-reset p { + margin-bottom: 8px; +} + +.vditor-reset code:not(.hljs):not(.highlight-chroma) { + background-color: var(--background); + padding-left: 4px !important; + padding-right: 4px !important; +} + +.vditor-reset pre>code { + border-radius: 8px; +} + +.vditor-reset:focus { + background-color: transparent !important; +} + +.vditor-wysiwyg pre.vditor-reset { + background-color: transparent; + color: var(--foreground); +} + +.vditor-task input { + width: 16px; + height: 16px; + + appearance: none; + border: 2px solid #EAB308; + border-radius: 50%; + + margin-right: 8px; + vertical-align: middle; + cursor: pointer; +} + +.vditor-task input:checked { + background-color: #EAB308; + border-color: #EAB308; + position: relative; +} + +.vditor-task input:checked::after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + width: 8px; + height: 8px; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3E%3C/svg%3E"); + background-size: contain; + background-repeat: no-repeat; + background-position: center; +} + +.vditor-toolbar__item .vditor-tooltipped { + padding: 0; + color: var(--foreground); + border-radius: 8px; + transition: all 0.3s; + width: 25px; + height: 25px; +} + +.vditor-toolbar__item .vditor-tooltipped:hover { + background-color: var(--hover); + transition: all 0.3s; + color: var(--foreground); +} + +.vditor-toolbar__item svg { + fill: var(--foreground); + width: 20px; + height: 20px; + stroke: var(--foreground); +} +.vditor-reset img{ + max-height: 150px; +} +/* .vditor-menu--current { + color: #C35AF7 !important; +} */ +.vditor-hint--current, +.vditor-hint button:not(.vditor-menu--disabled):hover { + background-color: var(--sencondbackground) !important; + border-radius: 6px; + transition: all 0.3s; + color: var(--desc) !important; +} + +.vditor-hint { + z-index: 2002; + box-shadow: var(--shadow); + transition: all 0.3s ease-in-out; + border-radius: 12px; + background-color: var(--background)!important; + padding: 3px; + gap: 2px; +} + +.vditor-preview__action { + display: none; +} + +.vditor-preview { + background-color: transparent; + color: var(--foreground); + border-left: 1px solid var(--ignore); +} + +.vditor-input { + background-color: var(--background); + color: var(--foreground); +} + +.vditor-input:focus { + background-color: var(--sencondbackground); +} + +.vditor-ir pre.vditor-reset { + background-color: transparent; +} + +.vditor-hint button { + color: var(--foreground); + border-radius: 8px; +} + +.vditor-tooltipped::after { + z-index: 10000; +} + +/* tooltip toolbar */ +.vditor-panel { + box-shadow: var(--shadow); + border-radius: 7px; + background-color: var(--background); + z-index: 100; +} + +.vditor-panel--arrow:before { + display: none; +} + +.vditor-outline { + margin-top: 16px; + border-radius: 14px; + background-color: var(--sencondbackground); +} + +.vditor-outline__title { + background-color: transparent; +} + +.vditor-reset h1, +.vditor-reset h2, +.vditor-reset h3, +.vditor-reset h4, +.vditor-reset h5, +.vditor-reset h6 { + margin-top: 12px; + margin-bottom: 8px; +} + +.vditor-reset table tr { + background-color: var(--background); + border-top: 1px solid var(--desc); +} + +.vditor-reset table td, +.vditor-reset table th { + border: 1px solid var(--desc); +} + +.vditor-reset table tbody tr:nth-child(2n) { + background-color: var(--background); +} + +.vditor-reset blockquote { + border-left: 0.25em solid #EAB308; + color: var(--desc); +} \ No newline at end of file